登录

I 3 C兼容传统I 2 C通信报错,是时钟延展还是滤波设计出了问题?


速读:I3C是时钟延展还是滤波设计出了问题? 在这种背景下,您可能会疑惑:I2C器件能否可以在I3C总线上正常工作? 简而言之,答案是可以,但存在一些向后兼容性限制。 因此,您可能会遇到系统同时集成了I3C和I2C器件的情况。 由于时钟延展本质上是一种用于满足最小时序要求的方法,因此可以通过降低时钟速率,使系统在无需进行时钟延展的情况下也能满足该时序要求。
2026年10月10日 14:17

信号链 由放大器、数据 转换器 、接口、时钟及定时器等多个核心组件构成。其核心目标是通过对实时信息的采集与处理,实现数据获取或系统控制。随着汽车电子、工业和服务器的飞速发展,如何在高噪声、高精度要求的复杂环境下构建稳健的 信号链 设计,已成为设计工程师面临的核心挑战。

2007年,德州仪器 的 信号链 专家开始在《Electronic Design News (EDN)》杂志上推出了“信号链基础知识”(Signal Chain Basics)系列文章,深入剖析了模拟信号链的工作原理。我们从中选出了10篇文章,穿透复杂的电路图,从基础架构出发,逐步深入,结合当下高性能设计和系统级优化的需求,带您从理论到实战,更全面地掌握信号链设计的要领。

I3C 可能很快就会取代 I 2 C,成为低速至中速 串行通信 领域的行业标准,并成为 转换器 和 传感器 等嵌入式器件的主要接口。尽管市场上正不断推出许多新的 I3C 目标器件和主机器件,但 I 2 C 在未来很长一段时间内仍将继续被广泛使用。因此,您可能会遇到系统同时集成了 I3C 和 I 2 C 器件的情况。

在这种背景下,您可能会疑惑: I 2 C 器件能否可以在 I3C 总线上正常工作?简而言之,答案是可以,但存在一些向后兼容性限制。其中最复杂的一项限制是 时钟延展 。

本文将探讨 I3C 的向后兼容性问题。首先,通过对比 I 2 C 和 I3C 来帮助了解两者的区别。接下来,详细解释 时钟延展 ,包括如何判断器件何时发生时钟延展,以及如何防止器件发生时钟延展。最后,将展示 I 2 C 器件在 I3C 总线上的工作行为。

我们来对这两种协议之间的差异进行分析。I3C 是由移动行业处理器接口 (MIPI) 联盟创建的,旨在解决 I 2 C 的诸多局限性;因此,这两种协议确实存在许多差异。表 1 对这两种协议进行了对比。

表 1 I2C 和 I3C 的对比,突显了这两种通信协议之间的差异 表 1 I 2 C 和 I3C 的对比,突显了这两种通信协议之间的差异 尽管 I3C 相较于 I 2 C 具有诸多差异和优势,但 MIPI 联盟特别注重于确保 I3C 向后兼容 I 2 C。这意味着两种协议的控制器和目标可以在同一总线上共存,实现 I2C 和 I3C 的混合使用。

尽管向后兼容性是开发新协议时的主要目标之一, 但 I3C 并未完全向后兼容 I 2 C。以下是一些显著的区别:

- 干扰滤波器

干扰滤波器 (有时也称为 尖峰滤波器 )有助于滤除通信总线上的任何不必要噪声。在 I 2 C 器件中,在串行数据 ( SDA ) 和串行时钟 ( SCL ) 两条线上添加此类滤波器,可以防止数据和时钟受到噪声的干扰。许多 I 2 C 器件在每条串行线路中都已内置了 50 ns 的 干扰滤波器 。

I3C 器件支持更高的通信速度;因此,I3C 器件中不包含 50 ns 的干扰滤波器。根据 I3C 规范,所有传统 I 2 C 器件都必须配备 50 ns 的干扰滤波器。如果 I2C 器件本身没有内部滤波器,则可以在外部创建一个具有分立式元件的滤波器。

- 限速模式

在 I 2 C 协议中,存在多种速度模式,每种模式都有其特定的时序规格和最大通信速度。例如,标准模式支持最高 100 Kbps 的比特率。为了在这些速度下实现正常通信,I 2 C 器件必须遵守相应速度模式的时序规格。

每种速度模式对设置时间、保持时间、上升时间和下降时间等参数都有最低要求。I3C 并不支持 I2C 提供的所有速度模式,仅支持其中两种:快速模式(最大比特率为 400 Kbps)和快速增强模式(最大比特率为 1 Mbps)。

为了满足该要求,I 2 C 目标器件必须在这些速度模式的限制范围内运行。当 I3C 控制器与 I 2 C 目标通信时,控制器会调整总线速度以适应这种较慢的通信。这种降速仅在与 I2C 目标通信时发生,因此在与 I3C 目标通信时,总线速度不会降低。

- 时钟延展

在器件之间通信时,可能会出现这样一种情况:某个器件尝试读取或写入数据,但 数据尚未准备好进行传输 。在这种情况下,一些 I 2 C 器件会使用一种称为时钟延展的方法来拉低时钟信号,从而留出更多时间以满足相关时序要求。并非所有 I2C 器件都支持时钟延展。

I3C 的设计允许目标器件完全基于 SCL 时钟运行,而无需为 I 2 C 通信 和 模数 转换器 ( ADC) 采样分别使用独立时钟。因此,I3C 规范禁止目标器件使时钟失速。支持时钟延展的 I 2 C 器件必须以无需时钟延展的时钟频率运行,以确保在 I3C 总线上兼容。

I3C 向后兼容性的前两项限制相对容易解决:增加滤波器或更改通信速度即可满足要求。然而,时钟延展的要求则更为复杂。由于 I2C 采用开漏输出,I2C 器件只需将时钟线路拉低并保持低电平,即可提供所需的时间,直到请求的数据准备就绪。当时钟线路被释放后,控制器会继续驱动时钟,通信恢复正常。

以 ADC 为例。ADC 对采集数据进行转换需要一定时间,称为 转换时间 。如果转换时间超过了启动读取命令中的确认字符 ( ACK ) 与下一个时钟边沿之间的时间间隔,ADC 将需要额外的时间来完成转换。在此情况下,ADC 会将时钟拉低以暂停时钟,直至转换完成。随后,ADC 释放时钟,并在下一个时钟边沿开始传输转换数据。

图 1 展示了一个 I 2 C 消息传输 12 位 ADC 的转换数据的示例。可以看到,在发送每个数据块之前都会发生时钟延展,以便为完成模数转换留出额外时间。此外,支持时钟延展的目标器件可能不会在所有时钟频率下都会进行时钟延展。由于时钟延展本质上是一种用于满足最小时序要求的方法,因此可以通过 降低时钟速率 ,使系统在无需进行时钟延展的情况下也能满足该时序要求。较慢的时钟为器件提供了更多时间来采集所需数据,因此不需要时钟延展。

主题:I3C|I2C器件|干扰滤波器