I2C时序:定义和规范指南

描述

I2C 数据传输通过物理双线接口进行,该接口由单向串行时钟 (SCL) 和双向数据 (SDA) 线路组成。这些传输可以在标准模式下以 100kbits/s 的速度进行,在快速模式下以 400kbits/s 的速度进行,在快速模式 Plus 下以 1Mbits/s 的速度进行,在高速模式下可以以高达 3.4Mbits/s 的速度进行。每个数据速率都有自己的时序规范,主站和从站必须遵守该规范才能正确传输数据。I2C 兼容设备必须能够以自己的最大比特率跟踪传输,方法是能够以选定的数据速率传输或接收数据。有一些细微差别,例如在给定数据速率下正确传输数据的设置和保持时间。

图1,取自恩智浦“I2C-Bus规范和用户手册“,描述了一个时序图,该时序图提供了I上快速模式器件的各种时序规格的定义2C总线。我们将仅使用快速模式时序图进行讨论,因为LTC I的大多数2C 部分支持此模式。但是,所讨论的定义也适用于其他速度模式。我们还将仅讨论这些规范如何应用于从属设备,因为凌力尔特 I2C 兼容设备通常是从设备。

总线

图1:I2C 快速模式时序定义

上升 (tr) 和秋天 (tf) 次

tr定义为上升沿从 SDA 和 SCL 的 30% 幅度达到 70% 幅度所花费的时间,而f定义为下降沿从 70% 的幅度达到 30% 幅度所花费的时间。

总线

图 2:上升和下降时间

设置和保持时间

设置时间定义为数据在采样之前必须保持稳定的时间量。此间隔通常在上升 SCL 边沿和 SDA 更改状态之间。另一方面,保持时间定义为开始采样后的时间间隔。此间隔通常在 SCL 边沿下降和 SDA 更改状态之间。在这些时间间隔内保持数据稳定非常重要,因为如果不这样做,将导致数据采样不正确。

在我2C 标准 这些间隔中所需的最短时间量(随运行速度模式而异)针对 START 和 STOP 条件以及数据位指定。我2在这些参数中指定了与C兼容的从设备以识别传入数据。

启动条件的设置和保持时间

回想一下,起始条件定义为在 SCL 转换为低之前 SDA 线变为低电平时,即当 SCL 线变为高电平时,SDA 转换到低状态。

总线

图 3:启动和停止条件

启动条件的保持时间 (t硬盘;斯塔):是 SCL 变为低电平之前数据应为低的最短时间。它被测量为从 SDA 的 30% 振幅从高到低过渡到 SCL 振幅的 70% 从高到低过渡所花费的时间。

总线

图4:(重复)启动条件的建立和保持时间

启动条件的设置时间 (t苏;斯塔):是仅在重复启动条件下考虑的时序规范。这是SDA线在开始重复启动之前保持高电平所需的最短时间。这是作为 SCL 从低到高转换的 70% 振幅和 SDA 从高到低跃迁的 70% 振幅之间的时间间隔来测量的。

停止条件设置

在停止条件下,SDA 在 SCL 转换为高后转换为高状态。参见图 3。停止条件没有保持时间要求,但仍需要最短设置时间。

停止条件的设置时间 (t苏;STO) 测量为 SCL 上升沿的 70% 幅度与停止条件下 SDA 信号上升沿 30% 幅度之间的时间。

总线

图 5:停止条件的设置时间

数据的设置时间 (t苏达特)

同样,数据也有一个设置时间,它被定义为在SCL转换发生之前SDA达到稳定水平所需的最短时间。这是在下降沿期间 SDA 的 30% 振幅或上升沿期间 70% 的 SDA 振幅和上升沿期间 30% 的 SCL 振幅之间测量的。

总线

图 6:数据的设置时间

数据有效时间 (tDV;DAT)

数据的有效性在每个数据和时钟转换时进行测量。我2C 规范规定了不同速度下允许的最大数据有效时间。数据有效时间 tDV;DAT在 SDA 的下降沿为 30% 或 SDA 的上升沿以 70% 幅度之间测量,参考 SCL 下降沿的 30%。还有一个单独的确认有效时间规范 tDV;ACK其测量类似于数据有效时间,只是仅在第八个时钟位的下降沿处测量。参见图1。

缓冲时间(t迷)

缓冲时间指定停止和启动条件之间的总线空闲时间。此时间段允许总线上的其他设备检测到空闲总线并尝试传输数据。从设备通常将此指定为所需的最小总线空闲时间。如果主设备(先前与另一台设备通信)尝试寻址从设备,而不让经过的缓冲时间在其停止和启动条件之间经过,则从设备可能无法将新的启动条件区分为单独的事务,并且可能不会响应。

总线

图7:公交车空闲时间

现在我们已经定义了各种时序规范,让我们看看它们是如何由 I 指定的2C 规范。参见图8,该图取自恩智浦I2C 用户手册。

总线

图8:恩智浦I2C 时序规格

I2C 规格表定义了其参数,以允许 IC 设计人员设计其 IC 以兼容总线要求。例如,与快速模式I兼容的IC2C语言设计用于识别至少0.6μs的启动条件保持时间。它可以设计为识别更快的保持时间,但至少应该识别高达0.6μs的时序。

根据此规范,制造商定义 I2其IC的C兼容性有两种方式。下面提供了其中的示例。

奴隶 I2C 时序规格:两个视角

LTC®2493 是一款 24 位三角积分 ADC,其指定其 I2C 时序如下:

总线

图 9:LTC2493 I2C 时序规格表

而 LTC4261 是一款 48V 热插拔控制器,其指定时序如下所示:

总线

图 10:LTC4261 时序规格表

注意到差异了吗?两种设备具有相同的规格,但以不同的方式呈现,虽然这可能是混淆的根源,但很容易解释。

LTC2493 时序规格表表示固件设计人员的数据,告诉设计人员该怎么做。例如,重复启动条件的设置时间指定为最小600ns,这意味着主机需要提供至少600ns建立时间的脉冲。这是 I 的副本2C 规范,并指示固件工程师信号的时序应该是什么。

另一方面,LTC4261 从 IC 本身的角度表示数据,告诉固件设计人员 IC 本身的功能。例如,重复启动条件的最短建立时间定义为典型数 30ns,最大值为 600n,这意味着 LTC4261 保证最短建立时间不超过 600ns (因此它满足规格要求的最小 600ns),事实上,它可以识别低至 30ns 的建立时间间隔, 允许更大的时间余量。

因此,即使时序规格描述相同的数据,也可以以不同的方式呈现。在上述两个示例的情况下,两个部分都与 I 一致2C标准并遵守I2C 时序要求。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分