对于 I3C 接口来说,两个主要问题是最重要的:
因此,I3C接口具有:
有一些限制
)I3C基本版中不支持
)I3C基本版中不支持
)I3C 接口提供了总线电源的主要效率,同时提供超过I2C 10倍的速度改进。
下面主要介绍 I3C 总线接口以及 I3C主设备和从设备。
I3C 是一种两线双向串行总线,针对多个传感器从设备进行了优化,一次只有一个 I3C 主设备。I3C 向后兼容许多传统I2C 设备,并且I3C 有着显著的速度和新的通信模式,包括随时间更改设备角色的能力(即初始主控器可以将主控器角色传递给总线上的另一个 I3C 设备,如果第二个 I3C 设备支持该功能)。
I3C基础包括:
I3C 支持多种通信格式,全部共享一个两线接口。两条线分别指定为 SDA 和 SCL:
I3C总线支持各种消息类型的混合:
下图说明了如何启动I3C通信:
I3C基本框架总是至少包括开始STAR、头Header、数据Data,和停止STOP。
在START之后的报头允许总线仲裁。主设备使用报头来定位从设备。从设备可以将报头仲裁用于多种目的:
I3C在同一时间只允许一个Master控制I3C总线。提供了将主设备从一个设备切换到另一个设备的机制。
通信流程
I3C总线要求在同一时间恰好有一个I3C设备作为I3C主设备。用I3C术语来说,这个I3C主设备就是当前主设备。在典型的应用程序中,当前主设备是总线上的I3C设备,它发送大部分的I3C命令(CCC),地址可以是所有从设备(广播CCC),也可以是特定的单个从设备(定向CCC)。当前主设备也是I3C总线上唯一允许发送I2C消息的设备。
除了发送I3C命令和I2C消息外,I3C主设备还包括:
下图是一个典型的通用I3C主设备:
所有的I3C主设备都支持两个主设备角色中的一个,也可以支持两个从主设备角色中的一个。
Main Master Device Roles(Main Master和SDR-Only Main Master)
Secondary Master Device Roles(I3C Secondary Master和SDR-Only Secondary Master)
一个I3C总线支持多达11个I3C从设备,最大的设备数量取决于跟踪长度,每个设备的电容负载,以及总线上的设备类型(I2C和I3C),这些因素会影响时钟频率。
I3C从设备通过I3C总线接收当前主设备发送的相关I3C命令(ccc),并进行相应的响应。
这包括所有广播命令(CCC)和任何定向命令(CCC),专门针对该I3C从设备,并由该I3C从设备支持。
除了响应I3C命令外,I3C从设备也支持I3C SDR模式。
此外,I3C从属设备还可以选择:
下图是一个典型的通用I3C从设备:
所有I3C从设备都支持I3C从设备角色: I3C Slave SDR-Only I3C Slave
2 线 I3C 接口使用推挽时钟线 (SCL) 和开漏数据线 (SDA)。 SDA 允许从设备控制数据线并启动中断。(SPI和I2C只能通过使用第三条专用线提供从设备中断。) I3C 从设备可以在总线空闲时请求中断。 I3C 通过允许最低分配地址获胜来仲裁来自多个从设备的冲突。
I3C 总线协议支持目标在总线已配置后加入 I3C 总线的机制。这种机制称为热连接。I3C 规范定义了目标可以执行此操作的条件,例如,目标必须等待总线空闲条件。
从而使传感器能够在需要之前关闭。
主时钟使用 SCL 将通信总线计时到 12.5 MHz。I3C 支持多种类型的设备:I3C 主主机、I3C 辅助主机、I3C 从机和 I2C 从机。
I3C 有一个标准化的程序,主机可以动态地为所有 I3C 设备分配 7 位地址,并支持同一总线上 I2C 设备的静态设备地址。
I3C 提供四种数据传输模式,可有效提供 11.1、20、23.5 和 33.3 Mbps 的数据比特率,包括 I3C 比特率错误检测。
I2C 使用静态寻址。这里的问题之一是,对于使用 I2C 总线的产品,供应商可能使用与另一供应商相同的地址,从而导致集成过程中出现问题。
I3C 通过为 I3C 总线上的设备提供寻址解决了这个问题。