I2C 总线的光电隔离

时间:2023-07-19
    内部集成电路总线(I 2 C 总线)在系统各部分之间提供了一种有吸引力的维护和控制通信接口,因为它仅使用两条信号线,但具有强大的寻址功能和相当快的、高达 400kHz 的双向数据处理能力。其中一些系统连接到电话线或直接连接到高压交流主电源的电子开关,应进行电气隔离。此外,医疗病人监护设备需要在没有任何公共物理互连线路的情况下运行,以形成安全隔离屏障,以防止任何触电的机会。
    这些和类似的应用需要电流隔离,因此在 I 2 C 总线信号线中包含光耦合器显然很有吸引力。不幸的是,提供 I 2 C 总线的光隔离并不是那么简单,因为 I 2 C 时钟和数据信号都是双向信号,而光耦合器只能处理单向信号。光学隔离 I 2 C 总线的挑战始终是如何有效地将双向 I 2 C 信号拆分为单向数据流并再次重新组合它们。

    过去十年中已经发布了许多电路,试图对 I 2 C 总线系统的各个部分进行光隔离。大多数人都承认,所有这些都会导致由信号传播延迟引起的故障问题。所有电路均基于暂时阻止双向 I 2 C 信号沿一个方向传播的概念,以防止逻辑信号反馈引起的总线闩锁。结果,这些电路在逻辑信号的传播时间内都会产生总线“毛刺”,当总线驱动信号发生变化时,必须清除阻塞过程。图 1 显示了美国国家半导体应用的电路,是已发布的用于光隔离 I 2 C 总线的典型电路。

    图 1:1998 年左右的国家半导体应用电路
    您可以应用一个简单的测试来检查隔离电路是否会在总线上产生不需要的毛刺。将隔离电路的一侧驱动为低电平,然后将侧保持为低电平,将另一侧驱动为低电平。然后释放侧的驱动器。如果系统符合 I2C协议,侧应保持低电平,由第二侧保持低电平。
    让我们在图 1 的电路上尝试此测试。将左侧 SDA 驱动为低电平。R2 中的电流打开光耦合器 IC1 中的 LED。IC1 中的光电晶体管导通,隔离的 -SDA 通过二极管 D2 拉低。现在将右侧 -SDA 拉低。它已经很低,所以 -SDA 总线不会改变状态。IC1中的光电晶体管保持导通,因此IC2的LED中没有电流。现在释放SDA。SDA 立即变高,因为没有任何东西可以将其保持在低位;IC2 中的光电晶体管未导通。这代表 I 2的不必要的“故障”的开始SDA 的 C 总线。当 SDA 高时,光耦合器 IC1 的 LED 关闭,经过一段延迟时间后,其光电晶体管关闭。IC1 关闭后,R3 可以向光耦合器 IC2 中 LED 的引脚 2 提供电流,并且电流通过 LED 流向保持低电平的 -SDA。再次开启延迟后,IC2 中的光电晶体管开启,SDA 再次下拉至正确状态,结束不必要的“毛刺”。但请注意,在 IC2 关闭的时间内加上 IC1 开启的时间内,SDA 为高电平。这是一个错误的总线信号,可能会导致问题。
    消除总线毛刺

    消除这些毛刺的方法是使用 I 2 C 光隔离缓冲器 IC。它在其输入之一上引入特殊逻辑电压电平,以防止总线锁存。它从不阻塞任何信号,而是使用不同的逻辑电压电平,这些电压电平均低于正常总线逻辑“低”电平,因此对连接的 I 2 C芯片是透明的。错误的总线毛刺被消除,但是当然仍然引入一些总线信号传播延迟,并且这些延迟可以限制总线时钟速度。

    图2:简单的5kHz光电隔离电路
    图 2 显示了使用低成本 4N36 光耦合器对I 2 C 总线信号进行光隔离的简单电路。这个简单的电路允许光耦合器中的光电晶体管饱和,从而导致由电荷存储效应引起的长关断延迟。总开关延迟约为 50μs,这将该电路的总线速度限制在 5kHz 时钟速率左右。
    实现更高的总线速度

    增加 LED 驱动电流可以减少光耦合器的开启延迟,但除非采取措施防止其光电晶体管随之出现更深的饱和,否则关闭延迟将会增加,并且总信号延误将会增加。为了减少关断延迟,防止光电晶体管饱和的传统技术是在其集电极和基极之间应用肖特基二极管钳位,如肖特基 TTL 逻辑中所使用的那样。

    图 3:具有通用低速光耦合器的 50kHz 应用
    另一种方法是应用反馈来调节(限制)光电晶体管中的电流,使其在需要关闭的瞬间不饱和并以线性模式工作,具有相对较高的集电极-发射极电压。图 3 的电路显示了在每个光耦合器中添加了一个低成本双晶体管,以防止光电晶体管饱和,并将开启和关闭延迟减少到每个小于 5μs,从而将总线操作扩展到 50kHz。该电路可适应各种耦合器,提供隔离电压规格的选择。它提供了合理的总线速度,而成本约为使用真正高速耦合器的三分之一。
    图 3 中的电阻值选择用于 5V 操作,将 LED 驱动设置为 2mA 左右,以保持在 I 2 C 系统允许的 3mA 灌电流内。对于在 3.3V 下运行,仅需要减小电阻器 R1 即可维持 2mA 驱动,同时考虑到所用光电器件已公布的二极管压降。对于4N36,R1 应减小至1kΩ。
    图 3 显示了添加到反馈路径以进一步缩短开关时间的两个 10nF 电容器。在光电晶体管开启期间,该电容器会延迟反馈,从而增加驱动并改善开启时间。当移除光电晶体管驱动器时,10nF 引起的延迟会再次延迟反馈的移除。这导致电流调节晶体管在关断期间从光电晶体管的基极汲取过量的基极电流,从而进一步改善电流的下降时间。使用 4N36 测量的光耦合器传播延迟均减少至约 2 至 3μs,为推荐的 50kHz 总线速度提供了一定的安全裕度,以考虑可能使用的不同组件。当使用指定用于 100kHz 系统的 IC 时,总线速度建议还基于符合 100kHz 标准模式总线时序。允许的时钟速度规格的计算方法是简单地将 P82B96 和光耦合器引入的延迟添加到 SCL“低”周期,并根据对称时钟计算新频率。典型的系统性能可能要好得多,特别是在使用指定用于 400kHz 总线操作的组件时,因为它们的响应延迟较小,但理论上这些低成本耦合器仍然不可能实现 100kHz 操作。允许的时钟速度规格的计算方法是简单地将 P82B96 和光耦合器引入的延迟添加到 SCL“低”周期,并根据对称时钟计算新频率。典型的系统性能可能要好得多,特别是在使用指定用于 400kHz 总线操作的组件时,因为它们的响应延迟较小,但理论上这些低成本耦合器仍然不可能实现 100kHz 操作。允许的时钟速度规格的计算方法是简单地将 P82B96 和光耦合器引入的延迟添加到 SCL“低”周期,并根据对称时钟计算新频率。典型的系统性能可能要好得多,特别是在使用指定用于 400kHz 总线操作的组件时,因为它们的响应延迟较小,但理论上这些低成本耦合器仍然不可能实现 100kHz 操作。
    当应用于任何光开关应用时,这种加速技术应该是经济的,在这种应用中,较高的速度是一种优势,但较高速度的耦合器不合理。如果可用的 LED 驱动器没有限制,您可以实现更小的开启延迟。关断延迟仍然受到光电晶体管中电流下降时间的限制。
上一篇:从高速通信中提取时钟信号
下一篇:直流电能计量的电流测量

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料