I3C是一种串行通信接口规范,在提升I²C功能、性能和能效的同时保持对多数设备的向后兼容性。I3支持当前由I²C和SPI承载的低功耗、高速及其他关键特性目前I3C的应用范围已扩展至所有使用I²C/SMBus、SPI和UART的设备类型。根据MIPI 官网对I3C V1.2 版本(April 2025)的性能解析,list I3C 相关知识点如下。 1. MIPI I3C的核心特性 继承I²C的简洁性、少引脚数、易布局和多点连接优势,兼具SPI的高速、简易接口和低功耗特性。新增特性包括:同频更高吞吐量、带内中断(从设备到控制器)、动态寻址、高级电源管理和热接入功能。 2. 从设备能否发起通信(中断控制器) 可以。I3C从设备可通过带内中断请求(IBI:In-Band Interrupt)发起通信,通信冲突通过目标地址仲裁机制解决。 3. 控制器与从设备的通信方式 基础字节级消息传输兼容I²C和SPI的映射机制。此外,I3C定义了一套通用命令码(CCC:Common Command Codes)用于标准操作:事件使能/禁用、动态寻址、时序控制等I3C特有功能管理。CCC命令可广播至所有设备,或通过地址定向发送至特定设备。 CCC与常规控制器-从设备通信采用独立命名空间,不会占用正常通信的消息空间。 通用命令码(CCC)的作用与意义 CCC是控制器向部分或全部从设备发送命令的编码体系。这些命令发送至I3C广播地址(0x7E),与常规目标设备消息空间隔离,即与SDR模式下的私有读写传输等"内容协议"相互独立。 CCC用于事件管理、I3C特性配置等总线标准操作。所有CCC编号由MIPI联盟统一分配,部分数值预留用于联盟功能增强和扩展 传输速率特性 I3C支持多种模式及对应速率: SDR模式:基础原始速率12.5 Mbps(12.5 Mbps时钟下实际数据速率11 Mbps),此为v1.0和Basic v1.0唯一支持模式 HDR模式:最高原始速率33.3 Mbps(实际速率30 Mbps),仅I3C v1.x版本支持 速率选择策略:常规通信采用10-11 Mbps速率,大数据量传输可选用HDR模式或v1.1+版本的多通道传输 多控制器架构 支持同一总线上存在多个控制器,但任一时刻仅允许一个控制器处于激活状态: 主控制器:负责总线初始配置并作为初始激活控制器 次级控制器:初始作为从设备运行,可通过控制器角色请求(CRR:Controller Role Request)申请控制权 控制权移交:激活控制器可通过CRR过程移交控制权,移交后自身转为从设备角色 故障恢复:当激活控制器故障时,其他控制器可通过错误类型DBR(Dynamic Bus Recovery)程序检测总线并重新获取控制权 电气特性限制 最大容性负载:规范规定了SCL/SDA的每设备最大电容值,但实际设备应远低于该值。总线频率还受传播长度、桩线效应、目标设备内部时钟数据延迟等因素影响 最大线长:与速率相关。1米线长时最高有效读取速率约为6MHz I²C中继器兼容性:不直接兼容。因I3C支持推挽模式且速率更高,现有中继器因串联电阻和开漏假设存在状态切换延迟 带内中断、热接入与控制器角色请求的异同 三者均是通过I3C总线本身(而非额外引脚)实现从设备向控制器发起请求的带内通信机制: 带内中断(IBI: In-Band Interrupt) 用于从设备向控制器通知状态变化或事件。若BCR(Bus Characteristics Register)寄存器允许,IBI可包含后续数据字节。从设备必须通过BCR声明IBI使用意向。 BCR(Bus Characteristics Register)-由控制器(Controller)读取,核心作用是向控制器声明该从设备的功能和特性 若支持数据发送,必须至少包含1字节必备数据(MDB:Mandatory Data Bit)。自I3C v1.1起,MDB需按特定规则编码,后续数据由控制器与从设备约定。 热接入(HJ: Hot Join) 仅适用于未分配动态地址的设备在主控制器初始化后接入或唤醒的场景。使用专用固定地址发起请求,且必须确认总线处于SDR模式后才可触发。控制器识别该地址后启动动态地址分配流程。 控制器角色请求(CRR: Controller Role Request) 次级控制器(含已放弃控制权的主控制器)通过CRR申请总线控制权。若当前控制器接受请求,将发送GETACCCR CCC移交控制权。当前控制器也可主动发起控制权移交(无需CRR触发) 目标应用领域 最初针对移动应用作为传感器统一接口,现已覆盖中速嵌入式领域的所有传感器、执行器、电源调节器、MCU、FPGA等设备。其低功耗高速传输及多点连接特性适用于任何嵌入式系统。 为何用I3C替代I²C? I²C的局限性包括:7位固定地址、无带内中断(需额外引脚)、速率有限、从设备时钟拉伸可能导致系统挂起。I3C不仅解决这些问题,还增强了其他功能。 能效对比 所有I3C模式的单比特传输能效均优于I²C,因其采用推挽(非开漏)和强上拉信号。更高数据速率可使设备更快返回睡眠状态,带内中断(IBI)作为低成本唤醒机制,从设备可在保持总线操作时关闭内部时钟。 与SPI的替代关系 SPI需四线制且缺乏明确定义的标准,每增加设备需额外片选线导致引脚成本和功耗上升。I3C采用两线制明确定义,覆盖SPI多数速率范围(不适用于需点对点连接的最高速率场景)。 设备兼容性 I²C设备不响应I3C命令:I3C CCC命令前导码为保留地址0x7E,传统I²C设备不会响应。动态地址分配也不会与I²C静态地址重叠。 冲突解决机制 I3C从设备仅在特定场景驱动总线:读取操作、地址应答及START信号后(非重复START)。START后总线回归开漏上拉模式,驱动低电平的设备赢得仲裁。 总线挂起防护 与I²C不同,I3C从根本上消除总线挂起:仅控制器驱动时钟,从设备基于时钟操作SDA。v1.1.1版本新增目标复位模式,通过特定总线模式可复位无响应设备。 |