了解开漏和开集电路的功能

DigiKey 技术论坛上有一篇热门帖子探讨了“什么是漏极开路”。该帖子将开漏概念描述为:需要外部上拉电阻的数字电路。这是一个很好的答案,但我们应该通过询问 为什么 开漏电路是可取的 来扩展我们的知识。

在我们开始之前,让我们列出一个具有开漏或开集连接的逻辑器件清单:

  • 74 系列逻辑:7401、7403、7405、(7406 和更高电流的 7416)、(7407 和更高电流的 7417),以及十几个其他家族成员

  • 4000 系列逻辑器件,如 40107

  • 比较器,如 LM339D

  • 几乎所有 I^2C 器件,包括您最近连接到微控制器的传感器,包括新的 Adafruit STEMMA QTSparkfun Qwiic 接口。

  • Dallas 1-wire 器件,如 DS18B20+ 温度传感器

  • 微控制器,包括新的 PIC 家族成员,如 PIC16F18026。它为每个 I/O 引脚提供了可配置的开漏连接。

可以找到许多相关的例子。然而,重点已经明确;具有开漏和开集输出的数字器件很常见。 了解更多关于这项技术及其优势的知识是有帮助的。在这篇文章中,我们将探讨为什么这种 50 多年前的配置仍然相关,以及为什么它是现代组件(如 PIC、Stemma QT 和 Qwiic)中的设计特性。

为了清晰和简洁,本文的其余部分将使用开漏这一术语。

技术提示 :使用开漏配置有很好的理由。速度不是其中之一。通常与低到高转换相关的迟缓问题将在另一篇文章中讨论。

使用开漏器件进行电平转换

开漏连接可用于电平转换。正如你们中的许多人所经历的那样,曾经 5 VDC 数字逻辑很常见。一个典型的例子是带有 5 VDC I/O 的 Arduino UNO。然而,近年来,3.3 VDC 变得越来越流行。如今,在具有多个电压的系统中,微控制器、FPGA和传感器物理连接在一起并不罕见。我相信你已经在各种组件上遇到过“5 VDC 兼容”的规格。你可能也见过电平转换电路。

开漏配置可以轻松实现不同电压之间的电平转换。一个例子是图1中展示的虚构的Multisim Live仿真。在这里,我们看到一对逻辑缓冲器驱动MOSFET。每个MOSFET驱动一个白炽灯,作为上拉电阻的替代。请注意,一个灯连接到3.3 VDC电源,而另一个连接到5.0 VDC电源。在这个例子中,MOSFET用于将驱动数字逻辑与外部电压隔离。另一种说法是,所有电源共享一个共同的地,但正电压之间没有相互作用。最后一点,当电路中有电流流动时,白炽灯会发光。这是一个很好的视觉指示器,但可能会产生误导,因为灯在逻辑低电平时亮起,而大多数人习惯于正高逻辑。

01_00

1 :3.3和5.0 VDC之间电平转换的代表性原理图。

关于 Multisim Live :如果你点击这篇文章中的图片,你将进入一个公开的电路仿真。每个人都可以使用各种控件运行仿真。但是,除非你有Multisim Live订阅,否则你无法修改电路。Multisim Live是由Digilent托管的在线服务,Digilent是National Instruments的子公司。

我们可以将图1与PIC微控制器联系起来。在这个例子中,假设PIC由5.0 VDC电源驱动。将I/O配置为开漏。现在,PIC的配置与图1相同。在这里,PIC的内部逻辑使用5 VDC电源。PIC的MOS驱动器以与图1中的2N7000G MOSFET相同的方式接地。白炽灯可以用上拉电阻代替,使PIC能够在混合电压系统中工作,并能够驱动和接受外部3.3和5.0 VDC设备的输入。

技术提示 :每个微控制器I/O引脚上都包含一对钳位二极管。这些二极管提供了一定程度的过压和静电保护。本说明中描述的电压转换在由5.0 VDC供电的微控制器通过开漏连接驱动3.3和5.0 VDC逻辑时有效。然而,这在反向情况下无效。当通过开漏连接施加5.0 VDC负载时,我们可能会损坏由3.3 VDC供电的微控制器。相关的I/O引脚到VDD二极管将正向偏置,从而将引脚电压限制在3.3 VDC加上一个二极管压降。如果没有适当的限流措施,微控制器将被损坏。这并不是一个严重的问题,因为可以使用外部MOSFET(如2N7000)通过串联电阻由PIC驱动。

使用开漏器件的有线或逻辑

在本帖的第一部分中,我们展示了如何使用开漏配置进行电压转换。我们现在将探讨如何将多个开漏器件连接起来形成一个共享总线。这个总线是 I^2C 事务的核心特征。回想一下, I^2C 接口允许多个节点在单一的两线总线上共享数据。串行数据(SDA)和串行时钟(SCL)线各自包括一个上拉电阻,类似于图2中的表示。

技术提示 :当多个设备需要共享少量数据时, I^2C 通信总线最为有效。当单个设备必须共享大量数据时,相关的SPI协议是首选。SPI更快,因为使用专用线路来选择所需的设备,从而消除了通过串行接口发送地址的需要。SPI允许全双工。最后,SPI使用清晰的MOS驱动器用于数据线。它不会受到与 I^2C 上拉电阻相关的迟钝响应;这个话题将在另一部分中讨论。

02_00

2 :使用开漏器件的有线或逻辑的示意图。

图2显示了三个开漏MOSFET。漏极连接到一个共同的上拉电阻。在这个例子中,灯泡作为上拉电阻,使我们能够可视化电流的流动。注意电路的逻辑或特性。当单个MOSFET或MOSFET组合被激活时,灯泡将点亮。当所有MOSFET关闭时,灯泡将熄灭。

独立性和隔离性是图2的重要考虑因素。唯一的要求是所有设备共享一个共同的地。每个MOSFET将对抗上拉电阻,将其拉向共享地。此时,我们可以将注意力转移到 I^2C 通信总线,如图3所示。

技术提示 :术语“逻辑高”和“逻辑低”可能会让数字电子初学者感到困惑。考虑图2。从灯泡(逻辑低)的角度来看,电路是线或:当任何逻辑输入被断言时,灯泡将点亮。然而,当我们考虑逻辑高的角度时,电路更恰当地称为线或非。当且仅当所有输入都关闭时,输出为高。

带有开漏设备的 I^2C 通信总线

图3展示了一个微控制器系统、传感器集合和一个适用于监控和自动化照料室内植物的执行器。图2中最初提出的所有开漏概念都保留了下来。唯一的区别是MOS开漏设备隐藏在每个模块内部。上拉电阻和共同地保留了下来。我们可以看到,每个模块可以通过拉低SDA线进行通信。如有必要,每个设备可以拉低时钟线。这是一个称为时钟延展的过程,传感器可以使用它来减慢数据传输速率。


3I^2C 通信总线中线或逻辑的框图表示。

结论

在结束时,重要的是要认识到在 I^2C 总线上进行通信需要一个健壮的协议。每个设备必须在正确的时间拉低正确的电阻。失败将导致通信混乱,因为任何时候只能有一个设备进行通信。虽然我们当然可以继续探索 I^2C 协议,但总结开漏连接的亮点已经足够。

开漏和开集电极概念可以追溯到半个世纪前的74系列逻辑。当时,设计师会欣赏诸如线或电路提供的节省(减少芯片数量)。今天,开漏配置仍然是一个重要的设计工具,特别是在板载通信和一些电平转换应用中。