深度解读I3C与I2C的兼容性及时钟延展

时览财富 2026-10-22 阅读数 1551 #时览资讯

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

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

I3C 与 I2C 的兼容性及时钟延展

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

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

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

I3C 与 I2C 之间的差异

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

a24924e8-c44f-11f1-90a1-92fbcf53809c.png

表 1 I2C 和 I3C 的对比,突显了这两种

通信协议之间的差异

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

I3C 向后兼容性的局限性

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

- 干扰滤波器

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

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

- 限速模式

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

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

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

- 时钟延展

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

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

深入理解时钟延展

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

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

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

图 1 I2C 时钟延展示例展示了 ADC 转换数据的

传输过程

如何判断器件何时发生时钟延展

确定 I2C 器件在何种频率下开始时钟延展,对于确保其在 I3C 总线上的正确实现至关重要。数据手册中可能并未明确说明器件开始时钟延展的频率,但可以通过数据手册中提供的其他信息来计算出此阈值。

以ADS7142为例,这是一款基于 I2C 时钟运行的 12 位逐次逼近寄存器 ADC。数据手册说明,当转换时间大于 SCL 低电平时间时,就会发生时钟延展。为了简化计算,假设时钟占空比为 50%,这也在快速模式的规格范围内。

基于这些信息,可以得到以下关系:

tCONV= 转换时间

TSCL= I2C 时钟周期

如果 tCONV≥ 1/2 TSCL∶ 发生时钟延展

如果 tCONV< 1/2 TSCL ∶ 不发生时钟延展

数据手册还指出,当配置为具有自动时序的手动模式时,转换时间为1.8 µs。因此,可以计算器件开始时钟延展的频率:

1.8 μs ≥ 1/2 TSCL

3.6 μs ≥ TSCL

1/3.6 μs ≥ 1/TSCL

277.7 kHz ≤ fSCL

fSCL≥ 277.7 kHz

根据上述计算结果,ADS7142 ADC 在时钟频率达到或高于 277.7 kHz时会发生时钟延展。因此,在与 ADC 通信时,必须将时钟频率配置为低于 277.7 kHz的速度,以确保在 I3C 总线上成功通信。

I3C 总线上的时钟延展

为了验证上述计算结果,我将 ADS7142 连接到一个用于读取转换数据的 I3C 控制器上。在模拟电源电压为3 V时,我将 ADC 的输入连接至1.52 V,此时理论上应该会产生大约0x81B的转换代码。我分别在高于和低于阈值的时钟频率下对 ADC 进行了测试,以检查其功能并验证计算结果。

图 2 展示了一条在 I3C 总线上、时钟频率高于时钟延展阈值(500 kHz)时,ADC 发送的一条包含两个 12 位转换的消息。在此速度下,器件会在传输转换数据前尝试时钟延展。如图所示,转换数据的第一字节已正确发送;然而,转换数据的第二部分存在错误,且控制器不会确认传输(NAK)。

a322e98a-c44f-11f1-90a1-92fbcf53809c.png

图 2 以 500kHz 频率运行的 I3C 总线上 ADC

测量的截图

为了进一步分析,我观察了传输过程中的模拟电压电平。图 3 更详细地展示了当 ADC 尝试在 I3C 总线上进行时钟延展时的情况。下方的两个波形是 SDA 和 SCL 的模拟测量值。时钟脉冲 1 对应上一条消息的 ACK。时钟脉冲 2 是转换数据传输的第一个时钟脉冲。

图 3 当一个 I2C 目标尝试在 I3C 总线上进行

时钟延展时的情况

可以看到,该时钟脉冲的模拟测量值约为其他时钟脉冲振幅的一半。这表明,当 I3C 控制器将时钟驱动为高电平时,ADC 试图将时钟拉至低电平。控制器成功克服了这一干扰并继续驱动时钟,随后对数据没有应答表明目标违反了 I3C 协议。

接下来,我在低于时钟延展阈值的频率下对该器件进行了测试。图 4 展示了一条时钟速度为250 kHz的 I2C 消息。在该时钟速度下,器件不会发生时钟延展。两次转换均产生了预期的代码,且每个数据都得到确认应答(ACK)。该测试证明,当运行在无需时钟延展的时钟频率下时,ADC 在 I3C 总线上能够正常工作。

a3ef8c42-c44f-11f1-90a1-92fbcf53809c.png

图 4 以 250 kHz 频率运行的 I3C 总线上

ADC 测量的截图

了解 I3C 的向后兼容性

随着 I3C 的日益普及,以及 I2C 仍作为事实上的标准被广泛采用,这两种协议混合使用的场景将变得更加常见。在这种情况下,采用一种既能继续使用熟悉的 I2C 协议,又能支持新型 I3C 器件的系统设计方案将更具价值。

因此,了解I3C 向后兼容性的局限性至关重要。虽然I3C 不支持时钟延展,但只要将 I2C 目标器件配置为不会发生时钟延展的速度,它们仍可在 I3C 总线上进行通信。在 I3C 总线上使用 I2C 器件具有显著优势,因为这样既能保持 I2C 协议的简洁性,又有助于实现更顺应未来需求的设计。

热门