I3C Introduction
I3C :Improved Inter Integrated Circuit ,是 MIPI(Mobile Industry Processor Interface)移动产业处理器接口联盟推出的改进型 i2c 总线接口。
传感器在手机等移动产品中的快速发展,带来了新的设计挑战。因为没有统一的方法来连接物理传感器,设计师面临的数字接口碎片包括 I2C、SPI 和 UART 等。
除了主接口,还可能需要其他信号,例如专用中断、芯片选择信号(SPI),启用和睡眠信号。这会增加所需的主机 GPIO 数量和更多 PCB 层的系统成本。
随着时间的推移和传感器数量的增加,这种情况变得越来越难以控制。
MIPI I3C 接口的开发旨在简化移动无线传感器系统的设计架构,为传感器提供快速、低成本、低功耗的二线数字接口。
框架如下:
表 1 列出了 I3C 寻址传感器的示例类别。
翻译一下:
是否需要额外中断线(通知主控来读数据)。
I2C 和 I3C 主要区别如下:
- I2C 虽然也是两条线,但是很多时候传感器需要一条额外的中断线,来告诉主控数据已经准备好。I3C 允许从设备直接在总线上产生中断,不再需要一条额外的中断线。
- I2C 传输速度最高 3.4MHz,I3C 可以 12.5MHz +。
- I3C 向下兼容 I2C,但不兼容 10bit 的 I2C 扩展地址。
- I2C 的从设备是静态地址,I3C 是动态地址,由主设备给从设备分配动态地址。
- 由于支持带内中断,所以涉及到从设备的优先级,一般动态设备号较低的,优先级较高,中断就优先响应。(也是靠线与的特性)
- I3C 支持使用推挽输出的 GPIO,增强驱动能力,只不过需要特殊设置。
如果所有 sensor 器件都采用 I3C 通信接口,连接将变的很简单,如下图,所有的 SPI 、UART 、I2C 都变为 I3C 两根线:
I3C 关键特性
Mbps 是数据流量单位,而 MHz 是频率单位,注意区分哦。
Mbps 是 Million bits per second 的缩写,1 Mbps代表每秒传输 1048576 位(1Mb=1024Kb=1024*1024bit),即每秒传输1,048,576 / 8 = 131,072 字节 = 128 KB = 0.125MB。
I2C 和 I3C 关于功耗和传输速率的对比:
- I3C 使用推挽功能的双线串行接口,速度可达 12.5 MHz。
- I3C 同一总线上共存的传统 I2C 设备(有一些限制)。
- I3C 动态寻址,同时支持传统 I2C 设备的静态寻址。
- I3C 总线支持传统 I2C 通讯。
- 类似 I2C 的单数据速率消息传输(SDR)。
- I3C BASIC 不支持:可选的高数据速率消息模式(HDR)。
- 多点功能。
- 多主功能。
- 带内中断支持。
- 热连接支持。
- I3C BASIC 中不支持:同步计时支持和异步计时冲压。
- secondary master support。
- 不支持 I2C master。
- 不支持从机 clock stretching。
- 每个 I2C 从机设备需要有 50ns spile filter on SCL。
- 现在还没有太多的 I3C 设备出现在市场中,未来十年慢慢会普及。
I3C
I3C 支持许多传统 I2C 从设备,I3C 有两个模式:SDR Mode、HDR Modes
Single Data Rate (SDR) Mode。
- 仅在时钟的一个边缘传输数据。
- Private/Typical messages: 使用动态地址将消息发送到从机。
- 广播消息:发送给总线上的所有从机(例如:ENTDAA)。
- 直接消息:发往特定从属设备的消息(例如:SETDASA)。
High Data Rate (HDR) Modes
- 双数据速率(HDR-DDR)模式:使用与SDR模式相同的信令(即与12C协议没有显著区别),但运行速度约为 SDR 速度的 2 倍。
- 通过在两个时钟边缘传输数据实现更高的速度。
- Ternary Symbol Legacy (HDR-TSL) Mode: 更高的数据速率加上三元编码,用于混合I2C和I3C设备的总线。与I2C协议显著不同。
- Ternary Symbol Pure-bus (HDR-TSP) Mode: 更高的数据速率加上三值编码,适用于只有I3C设备的总线。与12C协议显著不同。
- 三元符号有三种状态,SCL线改变状态,SDA线改变状态,或两线改变状态。
SDR Mode 作用
- SDR 模式是 I3C 总线的默认模式。
- 用于从当前主设备到从设备的专用消息传递。
- 用于进入其他模式、子模式和状态。
- 用于内置功能,如通用命令(CCC)、带内中断,以及通过分配动态地址从I2C 过渡到 I3C。
- 在程序和条件方面与 I2C 协议【NXP01】非常相似,因此 I3C 设备和许多传统 I2C 从设备(但不是 I2C 主设备)可以在同一 I3C 总线上共存。
- 对于 I3C 与 I2C 共享的程序和条件,SDR 模式严格遵循 I2C 规范中的定义。
- 所有 I3C 从机将正确忽略从 I3C 主机到 I2C 从机的 I2C 通信,因为 I3C 协议旨在允许 I2C 通信。
- 大多数传统 I2C 从设备无法看到从 I3C 主设备到 I3C 从设备的 I3C 通信量,因为 I2C 尖峰滤波器对 I3C 的更高时钟速度不透明。