三态逻辑
在数码电路中,三态逻辑(英语:tri-state logic 或 Three-state logic)允许输出端在0和1两种逻辑电平之外呈现高阻态,等效于将输出的影响从后级电路中移除。这允许多个电路共同使用同一个输出线(例如总线)。
输入 | 输出 | |
A | B | C |
0 | 1 | 0 |
1 | 1 | |
X | 0 | Z |
三态输出在寄存器、总线以及7400系列、4000系列等各型号的逻辑IC发挥着重要的作用,并常常内建在其他各种集成电路。除此之外,三态逻辑的典型应用还包括微处理器、存储装置、外设的内部和外部总线。许多装置提供一个OE(Output Enable)用于在低电平时才令输出使能,而在不使能时保持高阻态。
应用
三态逻辑缓冲器还可以被用在数据选择器中,尤其是那些具有大量输入的情况。[2]另外,三态逻辑对于总线的工作十分关键。 三态逻辑能够减少用于驱动一系列发光二极管所用的导线数量。
输出选择和晶片选择
许多设计为连接总线的存储装置(例如 RAM 和 ROM)同时具有CS(晶片选择,chip select)和OE(输出使能,output enable)引脚,它们起到的作用即产生三态逻辑。如果CS未与一个低电平连接,那么将输出高阻态。
不同之处在于输出信号所需的时间。当晶片选择未被使能(CS连接高电平[3])时,晶片内部根本不工作,并且在提供地址和接收数据之间有显著的时间延迟。当然,这样的优点是在此情况中,晶片所消耗的功率最少。
当晶片选择连接到一个低电平,那么晶片内部将会进行预设的工作流程,只是因为输出使能引脚未连接低电平,最后并未输出对应的信号。当总线正在进行其他工作的时候,这种特性将会起到作用,而当最后输出使能连接到低电平之后,数据才会以最小延迟的状态输出。具有这样的输出使能引脚的 ROM 或者 SRAM 通常具有两个存取时序:一个是晶片被选择以及地址有效,另一个是输出被使能。
上拉电阻和下拉电阻
当一节点所有相连的输出都处于第三状态(高阻态),它们对于电路其余部门的影响就被消除了。如果没有别的电路元素来决定其具体的状态(高或者低),那么其对应的电路节点会处于一种类似“浮动”的状态。电路设计人员经常使用上拉电阻以及下拉电阻(通常为1至100 kΩ)让这个处于三态的节点能有确定的默认逻辑状态,防止状态不定或感染杂讯。例如,I²C总线协议(一种常用的装置间双向通讯的协议)在两条通讯线上使用了上拉电阻。当装置处于非激活状态,它们“释放”掉通讯线并使它们的输出端呈现高阻态,这样使它们的高低电平不影响其他电路。当总线上所有的装置都“释放”掉通讯线时,对输出目标电路的唯一影响就是上拉电阻将输出端的电平拉高。当一个装置需要通讯时,这个输出端脱离高阻态,并使得通讯线的输出端电平降低。这时,通讯的装置利用此协议将通讯的内容呈现在输出端上——这样将避免总线上一个装置驱动高电平而另一个装置驱动低电平的冲突。
PCI总线也提供了上拉电阻,但是它们要求在数个时钟周期内将输出信号拉高,为了使得高速工作成为可能,其对应的工作协议要求每一个连接到总线上的装置在至少一个时钟周期的时间里输出控制信号,然后才进入高阻态。这样,上拉电阻的作用只是在面对串扰的情况下,维持总线的信号。[4]
参考文献
- ^ Tri-state是美国国家半导体的注册商标,不过也经常用来描述任意制造商生产的这类产品。
- ^ Winfield Hill and Paul Horowitz. The Art of Electronics. Cambridge University Press. 1989: 495–497 [2011-12-01]. ISBN 0-521-37095-7. (原始内容存档于2011-08-05).
- ^ 但如果不是CS而是CS,则连接高电平才是使能
- ^ "On-Chip Buses/Networks for SoC" (页面存档备份,存于互联网档案馆) "On-Chip Buses [have] No use of tri-state signals [because] Tri-state bus is difficult for static timing analysis"