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 时序要求。
审核编辑:郭婷
-
恩智浦
+关注
关注
14文章
5815浏览量
106229 -
总线
+关注
关注
10文章
2856浏览量
87889 -
I2C
+关注
关注
28文章
1473浏览量
122981
发布评论请先 登录
相关推荐
评论