电流源输出电路具有线性的优势,通常在一些专门的总路线应用中采用。当驱动一个长的总线时,其电流输出自然而然地相互叠加,与电压源输出中非线性方式的相互影响形成鲜明对比。
由于这些电路被设计线性甲类放大器,驱动晶体管工作在非饱和状态,因而输出电路消耗大量的能量。
集电极开路驱动电路或者在电流很大时压降很小,或者在压降很大时几乎没有电流。两种状态消耗的能量都很少。与之相反,电流源驱动器在一个或多个状态中有时压降大而电流也大。尽管能量利用效率不高,但电流源输出电路在长总线结构中还是具有很大的优势。例展示了使用电流源驱动器的一大好处。
例:电流源驱动器的应用
某些系统使用电流源驱动器构成一个单向总线(见图2.12)。时钟驱动器分别从T1、T4和T8时刻开始划分了一连串的时钟间隔。时钟信号从左到右与数据总线并行传播,总线驱动器分别被命名为A1PHA、BETA和GAMMA,负责在预定的时隙把数据输入到总线。发射器件上的总路线发送时间与时钟信号到达的时间一致。这样的安排保证每个数据单元在正确的时钟间隔区间里到达总线的右端,而不管它在总线上被发送时的物理位置。仅有的一个接收器位于总线的右端随着到达的时钟信号同步地将总线上的数据信号锁存。
图2.12显示了两个数据单元,第一个由BETA发出,第二个由ALPHA发出,BETA在T2时刻开始发送,然后在一个时钟间隔后的T6时刻停止,这一时间与时钟信号A和B到达BETA处的时间相一致。同样,在时钟信号到达的T5时刻ALPHA开始发送,一个时钟隔后停止。
当每个器件发送数据时,它的信号沿着数据总线同时向左右两个方向传播。在数据总路线的右端,两个信号严格地终止于各自的指定时隙。
到目前为止,这里对该总线的运行速度还没有做理论上的限制。由于我们不必等待时钟向下传输并从远端返回,所以可以提高时钟速率至任意的频率,只受限于相关器件的工作速度,而不是总线的物理传播速度与长度。总线可以同时传送多个传向右侧接收器的数据单元。
这种单向总线的问题至于,我们只关心了传向总线右侧的信号,然而实际上发送的信号是同时向两个方向传播的。研究一下T2时刻BETA发送信号时的情况,它发送的信号传向右侧(接收器方向)的同时也朝相反方向的ALPHA传播。在T5时刻,当ALPHA要启动发送的时候,来自BETA的数据A的后半部分正在通过数据总线。
如果发送器ALPHA是一个推拉输出驱动器,并且数据A的值和数据B相同,那么在数据B完全通过之前不会有来自ALPHA驱动器的电流流过数据总线。此时,数据总线已经处在所要的逻辑状态,因此发送器ALPHA对总线没有影响,就好像ALPHA没有被连接到总线一样。一旦数据B完全通过,在T7时刻,推拉输出驱动器ALPHA开始输出电流,以使总线保持在既定的状态。在接收端,由于直到完全进入ALPHA所分配的时隙之后还没有从ALPHA发送的信号波到来,所以数据B的前端部分没有接收到。
同样,如果数据A和B正好相反,ALPHA必须用两倍的输出来驱动总线,于是数据B的前端部分在接收器输入端D会呈现出一个超常的大脉冲。
解决这个问题的办法是使用线性驱动电路,无论总线上当前是什么状态,它都能叠加上自己的信号。正确的电路结构应该是电流源,通常是用集电极开路和漏极开路电流调整电路来实现。这类电路将预定数量的电流注入数据总线。数据总线的响应如同一个阻性负载,产生一个相应的电压偏移。两个逻辑状态中的一个通常被设定为零电流,未激活的器件处于这个状态。
根据总路线的长度,每个驱动器都可能工作在多个数据同时经过的情况,每个数据分别来自位于电缆不同位置的驱动器。这一要求意味着驱动器必须在很宽的电压范围上提供线性的电流。在很宽电压范围上提供恒定驱动电流将会超耗费大量的功率。