一、物理层与电气特性
-
双线结构
- SCL(串行时钟线):主设备控制,支持 推挽(Push-Pull)输出(高速模式)和 开漏(Open-Drain)(兼容I2C模式)。
- SDA(串行数据线):双向数据线,推挽模式提升速度,开漏模式兼容I2C。
- 上拉电阻:典型值 1–4.7 kΩ,比I2C更大(因推挽驱动降低电流需求)。
-
工作模式
模式 速率 特性 SDR(单倍速率) ≤ 12.5 MHz 基础模式,兼容I2C时序,但SCL高电平时SDA推挽输出加速上升沿。 HDR-DDR ≤ 25 Mbps 双倍数据率(每时钟周期传输2比特),使用三线编码(Ternary Symbol)。 HDR-TSP ≤ 33 Mbps 分时传输协议,突发传输+时分复用,需专用时序。 HDR-TSL - 保留模式,未来扩展使用。
二、协议层核心机制
1. 动态地址分配(DAA)
- 流程:
- PID结构:
- Part Number(16位) + 厂商ID(12位) + BCR/DCR(8位) + 随机数(12位)。
2. 通用命令码(CCC)
- 广播CCC(0x7E地址):所有设备同时响应(如 ENTHDR 进入高速模式)。
- 直接CCC:针对特定设备(如 SETMWL 设置最大写长度)。
- 关键CCC示例:
命令 编码 功能 RSTDAA 0x06 复位动态地址 ENTDAA 0x07 启动DAA过程 ENTHDR 0x20+ 进入HDR模式(子模式依赖参数) SETMWL 0x22 设置从设备最大写长度
3. 带内中断(IBI)
- 触发条件:从设备在SCL高电平时拉低SDA。
- 处理流程:
- 主设备检测SDA低电平(SCL高)。
- 主设备发起IBI请求事务:发送[Start] + IBI地址(0-7位) + Read。
- 从设备返回 MDB(Mandatory Data Byte):
- Bit 7:中断挂起状态(1=有中断)。
- Bit 6:0:数据长度(可选附加数据)。
三、总线事务详解
1. SDR模式帧结构
┌───┬─────┬─────┬───┬─────┬───┬───┐
│ S │ Addr│ R/W │ACK│ Data│ACK│ P │
└───┴─────┴─────┴───┴─────┴───┴───┘
- 地址帧:
- 7-bit I3C地址 或 7’h7E(广播地址)。
- R/W位:0=写,1=读。
- 数据帧:每字节后跟ACK/NACK。
2. HDR-DDR模式时序
- 每时钟传输2比特:
- SCL上升沿:发送第一位(MSB)。
- SCL下降沿:发送第二位(LSB)。
- 起始条件:SDA=0 + SCL=0 → SCL=1(推挽驱动)。
四、混合总线操作(I2C与I3C共存)
- I2C设备识别
- 主设备发送 I2C广播地址(0x7E + R/W=0),仅I2C设备响应ACK。
- 协议切换规则:
- I3C主设备需在 I2C模式(开漏) 和 I3C模式(推挽) 间动态切换。
- 关键限制:HDR模式期间禁止I2C设备通信。
五、错误处理与仲裁
- 冲突检测
- 多主竞争:主设备在SDA推挽输出时检测电平冲突(输出高却读到低)。
- 仲裁失败:立即释放总线,等待重试。
- 超时机制
- SCL超时:从设备检测SCL低电平 > 最大时钟延展时间(典型值25ms) 时复位。
六、典型应用场景
- 传感器集线器
多个低功耗传感器通过I3C接入主处理器。 - 移动设备
摄像头、触摸屏等外设的高效通信。 - 汽车电子
满足低延迟、高可靠性的车载传感器网络需求。