6、I3C Introduction
I3C :Improved Inter Integrated Circuit ,是 MIPI(Mobile Industry Processor Interface)移动产业处理器接口联盟推出的改进型 i2c 总线接口。
传感器在手机等移动产品中的快速发展,带来了新的设计挑战。因为没有统一的方法来连接物理传感器,设计师面临的数字接口碎片包括 I2C、SPI 和 UART 等。
除了主接口,还可能需要其他信号,例如专用中断、芯片选择信号(SPI),启用和睡眠信号。这会增加所需的主机 GPIO 数量和更多 PCB 层的系统成本。
随着时间的推移和传感器数量的增加,这种情况变得越来越难以控制。
MIPI I3C 接口的开发旨在简化移动无线传感器系统的设计架构该产品通过为传感器提供快速、低成本、低功耗的二线数字接口。
框架如下:

Example classes of sensor addressed by I3C are listed in Table 1.

翻译一下:

是否需要额外中断线

I2C 和 I3C 主要区别如下:
如果所有 sensor 器件都采用 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。

使用推挽功能的双线串行接口,最高可达 12.5 MHz
同一总线上共存的传统 I2C 设备(有一些限制)
动态寻址,同时支持传统I2C设备的静态寻址
传统I2C通讯
类似I2C的单数据速率消息传输(SDR)
I3C BASIC 不支持:可选的高数据速率消息模式(HDR)
多点功能
多主功能
带内中断支持
热连接支持
I3C BASIC 中不支持:同步计时支持和异步计时冲压
secondary master support
不支持 I2C master
不支持从机 clock stretching
每个 I2C 从机设备需要有 50ns spile filter on SCL
现在还没有太多的 I3C 设备出现在市场中
I3C 支持许多传统 I2C 从设备,I3C 有两个模式:SDR Mode、HDR Modes
I3C Single Data Rate (SDR) Mode
I3C High Data Rate (HDR) Modes
SDR Mode

I3C Master Device

I3C Slave Device

7、I3C Protocol
本文讲解 I3C 协议规范的详细内容,从规范中可以看出,I3C 比 I2C 复杂很多,硬件简单带来的是软件的复杂。
对于 Linux 常用版本,kernel-4.14 和 kernel-4.19 并没有提供 I3C 驱动,kernel-5.10 有提供 I3C 驱动(从 kernel-5.0开始提供的)
如下可以在线查看,目录/drivers/i3c/…
https://elixir.bootlin.com/linux/latest/source
I3C 不仅支持多个从设备,还支持多个主设备。I3C 总线上可以支持的设备有:

I3C 特性寄存器描述并定义了 I3C 兼容设备在 I3C 总线上的 capabilities 和 functions,没有 I3C 特性寄存器的设备不得连接到公共I3C总线。
有三种特征寄存器类型:

SDR 协议基于 I2C 标准协议,有几个显著的变化:

SDR Message

Role of I3C Slave
I3C Address Header
I3C Address Arbitration
Hot-Join Mechanism
In-Band Interrupt
Secondary Master Functions
I3C Bus conditions
I3C总线应被视为不活动的三种不同情况:
I3C为主设备提供了一种机制,用于通知从属设备I3C总线上预期即将到来的活动级别:

总线初始化和动态地址分配模式

头地址是 7h7E(I3C 广播地址),所有的 I3C 从机将匹配 7h7E,任何的 I2C 从机设备将不会匹配此地址,因为这个地址在 I2C 中是保留的并且未使用。
Common Command Codes (CCC)
通用命令代码(CCC)是全球支持的命令,可以直接传输到特定的I3C从设备,也可以同时传输到所有I3C从设备。
CCC 命令分为四类:


支持动态地址
i3c支持动态地址,同时可以分配 7bit 静态地址以适配传统 i2c 从设备。i3c从设备地址由主设备仲裁,但并不是所有设备地址都可用,部分地址是 i3c 标准所保留的,用于后期拓展或者错误仲裁。
i3c支持4种通信模式,分别是SDR、HDR-DDR、HDR-TSL、HDR-TSP,不同模式通信速率有差异。
SDR 很多 I3C 主控和设备支持,HDR 很多设备不支持,所以最常用的是 12.5MHz。

