|作者:罗宾·米切尔
虽然 I3C 已经存在 6 年,但其前身 I2C 仍然是传感器、内存和接口的主要总线技术。 I3C到底是什么,I3C对新设计有什么优势,I2C会被I3C取代吗?
I3C到底是什么? I3C 是一种串行总线协议,允许设备通过公共总线进行通信,并且基于其前身 I2C。 I3C 作为一种总线技术旨在解决 I2C 和 SPI 设备面临的许多挑战,包括最小化连接、减少总体能源使用、允许动态寻址技术、提高数据速度以及允许与 I2C 设备向后兼容。 I3C 使用与 I2C 相同的两个引脚用于时钟和数据,以保持向后兼容性。但是,I3C 中引入的一个主要变化是数据和时钟线可以在集电极开路和推挽式之间切换。这是一个重要的特性,因为通过 I3C 的初始通信是使用传统的 I2C 通信方法完成的,然后一旦主设备选择了 I3C 设备,就会使用推挽电路来大幅提高数据传输速度。 虽然这确实允许高速运行(高达 33Mbits/s),但使用推挽输出的缺点是不再允许 I3C 从设备延长主时钟,这意味着所有设备都应该在可能的最大速度。使用双倍数据速率也可以增加数据吞吐量,每个时钟周期(上升沿和下降沿)可以发送两位。 关于减少所需连接的总数,I3C 协议允许设备通过总线发送中断消息(多主机支持),从而消除了对专用中断引脚的需求。
此外,还引入了通用命令代码以及动态地址分配,以消除对外部地址引脚的需求(相反,设备具有唯一的内部 48 位序列号)。 I3C 为新设计带来哪些优势? I3C 与 I2C 设备的向后兼容性允许新旧设备混合使用相同的总线。一些工程师可能想知道这怎么可能,因为 I2C 设备不支持双倍数据速率和极高的时钟速度,但解决方案是集成尖峰滤波器的 I2C 设备忽略低于 50ns 的信号转换。
因此,通过 I3C 设备进行设备的初始通信使用较旧的 I2C 速度,当启动全速时,I2C 设备不会检测到信号总线上的任何变化。 (即显示为空闲总线)。 没有额外的引脚也有助于减小新设计的尺寸,这对物联网设备尤其有利。通过减少所需的 I/O 数量,可以将更多功能集成到设备中,并且使用没有额外 I/O 的单个总线允许许多设备连接到单个总线。 动态地址还允许设备扫描,而支持热插拔的能力使 I3C 比 I2C 更类似于 USB。这对于期望具有可配置硬件(例如可移动传感器和未来升级端口)的设备是有利的。虽然 I3C 仍然支持 I2C 寻址,但使用动态寻址允许通过最低设备地址分配中断优先级。
I3C会取代I2C吗? 尽管 I3C 在保持向后兼容性的同时与 I2C 相比具有许多优势,但引入新总线技术的麻烦在于被更广泛的社区采用,而且 I3C 的名气远不及 I2C。考虑到微控制器、微处理器和数字控制器对 I2C 的支持要大得多,I2C 仍将是传感器、存储器和接口的主要总线技术。 I3C 面临的另一个挑战是,没有多少设计需要超高速总线进行通信,尤其是那些涉及物联网的设计。
概念 I3C 设计通常显示智能手机在同一总线上包含多个高速设备(显示器、触摸屏等),但物联网设备通常会使用带有许多 I/O 引脚的无线 SoC 连接一些低速传感器。 这并不是说 I3C 将来不会取代 I2C,因为它显然支持更多功能。为了帮助制造商采用它,I3C 协议的开发人员开发了 I3C Basic,它没有许可证或版税要求,但不允许支持高数据速率和双倍数据速率。