为什么需要开漏输出?

电器工程 数字逻辑 拉起 开漏
2022-01-30 17:13:56

我对电子和电力几乎一无所知。我最近遇到了开漏输出的概念,我想我明白了。我所理解的是,它是一个连接到输出引脚的晶体管,充当接收器。因此,此类引脚将始终输出零值。

也许我把它简化得太多了,我错过了一些东西。

无论如何,我想知道为什么需要这种输出。

据我所知,如果我们要通过这样的引脚输出一个,我们将不得不连接一个外部上拉电阻。为什么不在内部连接那个电阻?

感谢您提供的任何答案。另外,除了电子方面的菜鸟之外,我是这个论坛的新手,所以如果这个问题太理论化,我很抱歉。如果是这样,我会欣赏一些论坛的建议,可以在哪里提出这类问题。

4个回答

主要原因是它允许多个端点在同一条线上共存并传输。输出只能拉一种方式,所以效果就像一个有线或门。如果输出是推挽式的,那么断言的设备将与那些没有断言的设备对抗。它会缩短 IO 线并导致损坏。而在 OD 配置中,电流仅限于上拉电流。

有时,设备设计为与可能使用一系列逻辑 1 输入电压电平的各种不同设备连接。如果输出设备总是输出 5 伏的逻辑 1,那么它可能会损坏与其连接的需要 3.3 伏的逻辑 1 电平的设备。如果输出是纯粹的集电极开路(或漏极),则没有损坏风险,但需要安装上拉电阻才能使其工作。

另一个原因是您可以将多个集电极开路(或漏极)输出连接在一起以形成线或逻辑,即任何操作的晶体管都会拉低上拉电阻,因此您可以获得额外的逻辑功能,只需添加一个电阻。

(预先说明:开漏是双极开路集电极的 MOS 版本。在功能上它们是相同的:它们只能吸收电流以产生“低”信号。)

最早的逻辑系列 RTL 和 DTL 本质上是集电极开路。有趣的事实:Apollo 制导计算机完全由一种集电极开路 RTL IC 构成:双 3 输入 NOR 门。在这里更深入地了解:http ://www.righto.com/2019/09/a-computer-built-from-nor-gates-inside.html

三态逻辑直到 1960 年代后期和 1970 年代初才出现,伴随着图腾柱驱动的 TTL 和不久之后 MOS 的出现。

由于受到这些前 TTL 芯片的影响,早期的逻辑总线并没有使用三态能力,而是依靠集电极开路驱动器进行多卡总线连接和共享信号,如中断或总线请求。

好的,那么开集电极有什么好处呢?它有一个很好的特性,即如果两个驱动器同时驱动,则没有两个驱动器可以互相“打架”,因为 OC 驱动器只能吸收电流。此外,集电极开路使线或逻辑宽度扩展非常容易:只需将另一个集电极开路驱动器连接到共享信号即可。

然而,对于计算机总线,集电极开路有几个缺点。用于驱动“低”的功率在上拉中脱落;由于缺乏主动高驱动,上升时间很慢。这限制了性能。

由于这些缺点,以及 TTL 和 MOS 中三态逻辑的新兴广泛可用性,到 1980 年代计算机总线(例如:Multibus、ISA 总线、NuBus、VME 等)已经放弃了时序关键路径的开放式收集器,只保留它用于低速边带信号。

今天,集电极开路出现在一些慢速总线上,如 I2C 和 SMBus,它的非冲突驱动程序和已知空闲状态的优势使得实现控制器网络更简单。

集电极开路还允许在同一总线上一起使用混合电压设备(警告,具有容错的 I/O。)这使得电平转换到更高或更低的电压比使用推挽输出更容易。使用集电极开路,您只需要 1 个电阻即可设置“高”电平。

关键是输出可以有比“高”和“低”更多的状态。还有“弱高”、“弱低”、“高阻”(HI-Z)。

输出端的晶体管可以呈现“低”(晶体管打开)和“高电阻”(晶体管关闭)状态。

如果像这样将多个输出连接在一起,则可以保证不会有一对一个输出驱动“高”和一个输出驱动“低”,这将是短路。

为了使其有用,您还需要在线上的“弱高”驱动器,如果所有其他驱动器都处于 HI-Z 模式,则保持电压接近“高”状态,但不会与驱动程序输出“低”。

通常,您会使用一个连接到 Vcc 的电阻器作为这种“弱高”驱动器。电源电压减去晶体管的正向电压,除以电阻值就是驱动强度,通常为几毫安,需要将线路拉至“低”状态:

\$I=\frac{V_{cc}-V_f}{R}\$

如果输出是 BJT,\$V_f\$通常在\$0.7\textrm{V}\$左右,如果输出是 FET,它会相当小,将这种设置视为电阻器更有意义用你的上拉电阻和晶体管的\$R_{ds\_on}\$分压器。

检查数据表以了解输出驱动器提供的驱动强度,并确保用于“弱高”驱动器的电阻足够大。