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

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

3天内不再提示

I2C为何一定要升级到I3C?I3C能取代传统通信接口?

亿佰特物联网应用专家 2023-10-13 08:21 次阅读

什么是I2C接口

I2C总线是大家比较熟悉的同步串行总线技术,是飞利浦公司于1981年发明的。它是一种2线SDA、SCL)同步串行接口,广泛用于连接外设与处理器MCU,实现设备之间的短距离通信。后来许多公司都推出了使用I2C总线规范的产品,其中包括Texas Instruments、NEC、Nordic Semiconductor、STMicroelectronics、Siemens、Intersil科技公司。

652cb2fe-695e-11ee-9788-92fbcf53809c.png

I2C 接口主要特性:

(1)支持双向数据传输。

(2)两线接口通信(SDA(串行数据)和 SCL(串行时钟)。

(3)从设备使用7位、10位进行寻址。

(4)传输速率低,HS模式下仅3.4 Mbps。

(5)无固定传输长度。

I2C具有能够在控制器和外围设备之间进行快速、可靠的数据传输,同时可支持互连多个设备,实现多种数据的传输的优点。但随着应用场景需求的变化,其局限性也被凸显出来,如有限的速率、传输距离较短、功耗偏大等。为摆脱新需求下I2C的性能缺失,I3C应运而生。

什么是I3C接口?

I3C:Improved Inter Integrated Circuit。MIPI联盟于2016年正式发布了第一个I3C规范v1.0。I3C是改进型内部集成电路的缩写形式,是类似于I2C的2线数字接口。它对之前发布的I2C和SPI接口进行了改进和优化,解决了I2C通信速度慢的问题,优化了SPI通过四线连接的缺点。I3C同时解决I2C功耗较高的问题,I3C成为低功耗、低成本和快速数字接口,它支持主机MCU和传感器等外围设备之间的多点连接以及多主控设备。

相关阅读:超全面!SPI通信协议详解,一篇就够

653fc70e-695e-11ee-9788-92fbcf53809c.png

I3C 接口主要特性:

(1)2线串行接口(使用SDA和SCL),时钟频率高达12.5 MHz。

(2)向下兼容I2C。

(3)I3C采用动态寻址。

(4)支持静态I2C寻址。

(5)支持I2C单数据速率消息传送 (SDR)。

(6)支持可选的高数据速率消息传送模式 (HDR)。

(7)支持多点、带内中断和热插拔。

I2C 与 I3C 的区别

以下是I2C 和 I3C 在主要功能和参数上的差异:

6555ef66-695e-11ee-9788-92fbcf53809c.png

与I2C相比,I3C存在许多优势和差异,MIPI联盟虽尽量使I3C向后兼容I2C,但也并非完全向后兼容。如以下方面还存在显著区别:

1. 时钟延展

当设备间进行通信,出现设备要读/写数据但传输的数据尚未准备好的情况时,一些I2C设备会通过时钟延展来暂停时钟,从而允许更多的时间来满足某些时序要求。而I3C通信所支持的设备完全独立于SCL时钟,是禁止使用时钟停滞的。因此,支持时钟延展的I2C设备为能与I3C兼容,必须在无延展的时钟频率上工作。

2. 速率模式

I2C具有时序和最大通信速率各不相同的几种速率模式。但I3C并不支持I2C提供的所有速率模式,仅支持其中的两种速率模式,即快速模式和快速模式+。当I3C控制器与I2C目标设备通信时,控制器会降低总线速率。

3. Glitch滤波器

Glitch滤波器用于滤除通信总线上的各种无用噪声。许多I2C设备在串行线上内置50ns的Glitch滤波器,可以防止对数据和时钟的干扰。由于I3C支持更高的通信速率,因此没有在I3C中内置此类滤波器。

兼容I3C的设备需要哪些条件?

(1)使用适合此类I3C目标的ENTDAA、SETDASA和SETAASA CCC的任意组合,为I3C(2)总线上的任何I3C目标分配唯一的动态地址。

(3)特定的CCC和已知的静态地址(如果有的话)必须是预先配置的,即系统设计者已知的。

(4)管理其上拉结构,包括SDA和SCL的开漏类上拉和High-Keeper上拉。

(5)在漏极开路模式下管理START请求和地址标头仲裁。

(6)使用错误恢复升级模型恢复 I3C 目标设备。

(7)支持控制器强制执行的所有CCC命令,包括ENEC、DISEC、ENTDAA、SETDASA、RSTDAA、GETCAPS、RSTACT、GETPID、GETBCR、GETDCR 和 GETSTATUS。

上述要求适用于作为其I3C总线主控的I3C设备。在总线初始化期间作为辅助控制器的 I3C 设备(或在总线初始化后随后加入的设备)不需要满足所有这些要求。

I3C最初的设计初衷是作为用于所有数字接口传感器的单一接口用于移动应用。但它现在适用于MCU、传感器、控制器、电源调节器、FPGA等所有中速嵌入式和深度嵌入式应用。由于I3C的低功耗特性,允许多点连接,适用于所有嵌入式系统。I3C和I2C两种协议混用的情况将变得更加常见。

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

    关注

    33

    文章

    7639

    浏览量

    148494
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134391
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1346

    浏览量

    120816
  • i3c
    i3c
    +关注

    关注

    0

    文章

    23

    浏览量

    4681
收藏 人收藏

    评论

    相关推荐

    使用STM32H503的I3C外设,如何设置数据线在时钟线低电平的中间位置进行翻转?

    使用STM32H503的I3C外设,但是在设置动态地址的时候直在报错无应答,我想设置数据线在时钟线低电平的中间位置进行翻转不知道应该怎么设置?请大家帮帮忙! 使用的是官方的NUCLEO-H503RB。
    发表于 03-13 06:20

    什么是I3C接口 I3C和SPI接口有什么区别

    I3C接口使用两根通信线,一根是数据线(SDL),另一根是时钟线(SCL)。与I2C总线一样,I3C接口
    的头像 发表于 03-05 16:50 735次阅读
    什么是<b class='flag-5'>I3C</b><b class='flag-5'>接口</b> <b class='flag-5'>I3C</b>和SPI<b class='flag-5'>接口</b>有什么区别

    CX3 I2C启动失败的原因?怎么解决?

    款定制的 CX3 控制板(CYUSB3065 芯片)使用 I2C EEPROM(ST M24M02)连接 OV5460 摄像机。 该测试使用了 FX3 SDK1.3.4 的常规 &
    发表于 02-23 06:53

    造成FX3 I2C延迟的原因?

    I2C 从站通信时,我在 I2C 数据包之间遇到延迟。 当不通过批量传输数据时,操作可以正常运行,延迟很短。 但是,连续使用批量传输时,I2C 数据包之间会有明显的延迟。 我
    发表于 02-23 06:39

    全面掌握面试必考题I2C协议 - 第12节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:07:43

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第4节 #硬声创作季

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:05:14

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第3节 #硬声创作季

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:04:23

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第2

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:03:33

    基于 FPGA 的模拟 I2C协议系统设计

    I2C 接口做为不同芯片间的通信协议。I2C 串行总线般有两根信号线,根是双向的数据线SD
    发表于 08-14 18:21

    STM32H5 I3C HAL_I3C_Ctrl_Receive_IT()怎样设置才能屏蔽掉reserved byte只跟target addr呀

    _PRIVATE_WITHOUT_ARB_STOP (0x90000004U) /*!< Stop between each I3C Private message.Each Message start with Target address
    发表于 08-05 07:09

    求助,可否提供份NUCLEO-H503RB开发板的I3C通信例程?

    stm32h503片上有两个I3C外设,在例程包内只看到有单独配置I3C Master或Slave的例程,能否提供个例程实现单块开发板自通信? 谢谢
    发表于 08-05 06:40

    stm32h503的i3c读写lsm6dso失败是什么原因造成的

    参考STM32Cube_FW_H5_V1.0.1\\Projects\\NUCLEO-H503RB\\Examples\\I3C下面的例子,读whoami寄存器失败,波形不是我想要的,哪位跑通了呢?例程正常吗?
    发表于 08-05 06:09

    I2CI3C关于功耗和传输速率的对比

    I2CI3C 关于功耗和传输速率的对比: I3C 使用推挽功能的双线串行接口,速度可达 12.5 MHz I3C 同一总线上共存的
    的头像 发表于 07-22 16:24 1090次阅读
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>关于功耗和传输速率的对比

    关于RT685 I3C多主机能力的问题求解

    些疑问: 1) 对于 I3CI3C 总线可以支持这种配置下的多主机吗? 2) I2C 的相同问题,如果我们在 FM+ 模式下将外围设备连
    发表于 05-24 12:24

    免费的I3C从属IP芯片是否经过验证?

    免费的 I3C 从属 IP 芯片是否经过验证?
    发表于 05-05 07:16