在用于嵌入式设备的所有串行接口中,I 2 C 是我个人喜欢的。虽然它可能没有与其他串行通信方法相同的吞吐量,但仅用两条线控制如此多的设备,同时具有多个主设备的能力,使 I 2 C 成为嵌入式工程师尝试管理成本、引脚数、和复杂性。
但有时,设计限制可能会使 I 2 C 实现变得复杂。 I 2 C 缓冲区是一种可以让事情变得更简单的工具。
采用 7 位寻址方案,理论上可将 128 个设备连接到 I 2 C 总线。其中一些地址被保留,只剩下 112 个可用。通过新的 10 位寻址方案,可以连接更多设备。然而,添加到总线的每个设备都会增加总总线电容,当所有 PCB 电容和设备电容相加时,总线电容可能会高得惊人。为了符合标准,一旦达到 400 pF 值,总线上就不能放置更多设备。解决这个问题的一种方法是在您的设计中添加 I 2 C 缓冲区。下图取自 德州仪器 (TI) 发布的本应用笔记(PDF),显示了具有相关总线电容的典型 I 2 C 总线。
图 1. 具有相关总线电容的典型I 2 C 总线。图表由TI提供。
I 2 C 缓冲器简介
在标准或快速模式下运行时,I 2 C 总线的总线电容为 400 pF。在增强型快速模式下,该值增加至 500 pF。一旦达到该限制,任何更多的电容都会使您超出标准和外部设备规格。当工程师在意识到需要添加更多器件之前选择并指定器件和上拉电阻时,这个问题可能会特别麻烦。
I 2 C 缓冲器将 I 2 C 总线分成两条独立的总线,同时仍允许设备通过它进行通信。无论缓冲器放置在何处,这都可以有效地减少总总线电容,因为单独的总线具有单独的总线电容。这意味着对于相同的上拉电阻,我们可以获得更低的 RC 时间常数,从而缩短上升时间。这种减少上升时间的能力是使用缓冲器的主要原因之一。
缓冲器插入 I2C 总线,将总线电容减半。
图 2. 缓冲器插入 I 2 C 总线,将总线电容减半。图表取自本应用笔记。
静态电压偏移 (SVO)
I 2 C 通信的双向特性意味着 I 2 C 缓冲区必须采用特殊技术来避免“锁定”总线。如下图所示,如果主设备将线路拉低,则从设备侧也会拉低。然而,从机侧的逻辑低电平也会将主机侧拉低。因此,当主设备试图释放总线时,从设备侧仍然驱动为低电平。
如果设计不正确,缓冲区可能会锁定总线
图 3. 如果设计不正确,缓冲器可能会锁定总线
此问题的一种解决方案是使用静态电压偏移 (SVO)。本质上,低压齐纳二极管用于在缓冲器的一侧创建额外的阈值电压,使得缓冲器的 SVO 侧的逻辑低电平可以是“低于 SVO”逻辑低电平或“高于 SVO”逻辑低电平,具体取决于逻辑低电平是由主机端还是从机端驱动。因此,缓冲器内的控制器可以确定逻辑低电平的来源并使用该信息来防止锁定。
可以沿总线使用多个缓冲器作为管理电容的手段。即使使用完全相同的部件,您也不能假设 SVO 电压电平相同,因此必须配置多个缓冲器以确保两个 SVO 电压不会连接在一起。还必须根据从设备的输入电压检查 SVO,以确保其远低于 30% 阈值。许多器件使用 0.5V 的 SVO,但该值的范围至少为 0.1V 至 0.6V。
I 2 C 缓冲器示例
Texas Instruments 的 PC9515A 被描述为双路双向 I 2 C 缓冲器。它可用于与 3.3 V 总线一起运行 5 V 总线,因此它也可用作逻辑电平转换器。以下是数据表中的一个应用示例:
PC9515A 以两种不同的总线电压运行
图 4. PC9515A 在两种不同的总线电压下运行
Linear Tech/Analog Devices 的 LTC4311 是一种不同类型的 I 2 C 缓冲器。实际上,该部件不是被描述为缓冲器,而是被描述为“加速器”。它与总线上的其他设备并联连接,其内部电路通过检测正信号转换然后注入额外电流使转换更快地发生来补偿大量总线电容。下图显示了 LTC4311 的使用方法。
该图取自 LTC4311 数据表。
图 5. LTC4311 的使用原理图。摘自 LTC4311数据表 。
工业应用中的I 2 C 缓冲器
在工业自动化领域,电子系统通常控制着高度敏感的过程,不允许出现故障。无论如何,关键任务应用程序都需要硬件和软件才能工作。这导致了对冗余系统和控制器的巨额投资。
I 2 C 缓冲器的另一个应用是创建冗余总线。两个缓冲区都运行回同一个主设备,可用于在一条总线锁定或受到损害时提供故障保护。具有冗余设备的冗余 I 2 C 总线可用于降低总线或设备故障的风险。下面是此类系统的示例。
具有冗余设备的示例系统 I2C 总线
图 6.具有冗余设备的 I 2 C 总线系统示例。
本质上,主设备可以使用 EN 引脚来控制当前正在通信的总线,并在发生故障时切换到非活动总线。可以定期检查辅助总线,以确保在主总线发生故障时它仍然准备好接管。这样的设置增加了设计的稳健性,当可靠性成为首要考虑因素时,可以带来巨大的好处。
这种冗余总线配置创建了两组独立的从设备。因此,当一个主设备需要与以不同模式运行的从设备进行通信时(例如,一些从设备使用快速模式,而其他从设备使用标准模式),它也很有用。