0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C时序:定义和规范指南

星星科技指导员 来源:ADI 作者:Sal Afzal 2023-01-05 15:07 次阅读

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

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

poYBAGO2d1CAAf47AAGZ8LM40kY622.png?la=en&h=300&imgver=1

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

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

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

poYBAGO2d1GAJk8-AABjmZQKe44371.png?la=en&h=300&imgver=1

图 2:上升和下降时间

设置和保持时间

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

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

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

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

poYBAGO2d1OAOg3GAACQMOn-D7s053.png?la=en&h=300&imgver=1

图 3:启动和停止条件

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

pYYBAGO2d1SAL7EdAABdqE5zsBg185.png?la=en&h=300&imgver=1

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

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

停止条件设置

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

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

poYBAGO2d1aAUzWCAAA8S608jB4657.png?la=en&h=300&imgver=1

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

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

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

pYYBAGO2d1iAenxXAABs6LGsg7E606.png?la=en&h=300&imgver=1

图 6:数据的设置时间

数据有效时间 (tDV;DAT)

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

缓冲时间(t迷)

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

poYBAGO2d1qAb0mVAABQ9eAevWU781.png?la=en&h=300&imgver=1

图7:公交车空闲时间

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

pYYBAGO2d16AaXNuAAcDvndD0uI067.jpg?la=en&h=300&imgver=1

图8:恩智浦I2C 时序规格

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

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

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

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

poYBAGO2d2CARHvJAAJVc6xOwcQ006.jpg?la=en&h=300&imgver=1

图 9:LTC2493 I2C 时序规格表

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

pYYBAGO2d2KANzalAAPe64QKRrQ269.jpg?la=en&h=300&imgver=1

图 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
    I2C
    +关注

    关注

    28

    文章

    1473

    浏览量

    122981
收藏 人收藏

    评论

    相关推荐

    I2C读写时序分析和实现思路

    上篇推文对I2C总线的特性进行了介绍和描述。对于开发者而言,最重要的是编码I2C的读写时序驱动。本篇推文主要总结和分享I2C总线主机端通信的编程实现思路,并不对应特定MCU的硬件
    发表于 10-01 16:54 1548次阅读
    <b class='flag-5'>I2C</b>读写<b class='flag-5'>时序</b>分析和实现思路

    i2c总线规范

    Philips 的I2C 总线元件购买Philips 的I2C 元件同时传递了一个在Philips 的I2C 专利下在I2C 系统使用元件使系统符合由Philips
    发表于 08-13 17:18

    I2C规范,I2C总线原理

    I2C规范,I2C总线原理1 序言
    发表于 04-09 18:34

    I2C总线规范I2C器件C51读写程序

    I2C总线规范I2C器件C51读写程序:本文简要介绍了I2C总线,并给出了I2C器件的
    发表于 08-22 17:51 93次下载

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpl
    发表于 04-23 13:55 36次下载

    I2C 快速指南

    I2C 快速指南,有需要的朋友下来看看。
    发表于 06-03 15:53 3次下载

    基于I2C 逻辑选型指南

    基于I2C 逻辑选型指南
    发表于 09-22 13:30 5次下载
    基于<b class='flag-5'>I2C</b> 逻辑选型<b class='flag-5'>指南</b>

    I2C总线的结构、工作时序和模拟编程

    I2C总线的结构、工作时序和模拟编程
    发表于 10-24 14:34 13次下载
    <b class='flag-5'>I2C</b>总线的结构、工作<b class='flag-5'>时序</b>和模拟编程

    I2C快速指南

    I2C快速指南
    发表于 04-22 16:51 32次下载
    <b class='flag-5'>I2C</b>快速<b class='flag-5'>指南</b>

    嵌入式内核及驱动开发-09IIC子系统框架使用(I2C协议和时序I2C驱动框架,I2C从设备驱动开发,MPU6050硬件连接

    文章目录I2c协议和时序I2c介绍I2c硬件连接I2c总线的信号I2c总线写
    发表于 12-06 14:06 17次下载
    嵌入式内核及驱动开发-09IIC子系统框架使用(<b class='flag-5'>I2C</b>协议和<b class='flag-5'>时序</b>,<b class='flag-5'>I2C</b>驱动框架,<b class='flag-5'>I2C</b>从设备驱动开发,MPU6050硬件连接

    硬件I2C与模拟I2C

    配置;而软件I2C是没有寄存器这个概念的。 软件I2C一般是使用GPIO管脚,用软件控制SCL,SDA线输出高低电平,模拟i2c协议的时序。例如下面这段
    发表于 12-28 19:14 81次下载
    硬件<b class='flag-5'>I2C</b>与模拟<b class='flag-5'>I2C</b>

    Gowin I2C Master/Slave用户指南

    Gowin I2C Master 和 Slave 用户指南主要包括功能简介、信号定义、工 作原理、实例化等,旨在帮助用户快速了解 Gowin I2C Master IP 和 Slav
    发表于 09-15 10:07 1次下载
    Gowin <b class='flag-5'>I2C</b> Master/Slave用户<b class='flag-5'>指南</b>

    分享I2C总线规范

    电子发烧友网站提供《分享I2C总线规范.pdf》资料免费下载
    发表于 11-18 10:49 0次下载
    分享<b class='flag-5'>I2C</b>总线<b class='flag-5'>规范</b>

    I2C逻辑选型指南

    电子发烧友网站提供《I2C逻辑选型指南.pdf》资料免费下载
    发表于 06-20 16:20 1次下载

    I2C基本指南

    电子发烧友网站提供《I2C基本指南.pdf》资料免费下载
    发表于 09-10 09:40 0次下载
    <b class='flag-5'>I2C</b>基本<b class='flag-5'>指南</b>