当前位置: 首页 > java >正文

I3C通信协议核心详解


一、物理层与电气特性

  1. 双线结构

    • SCL(串行时钟线):主设备控制,支持 推挽(Push-Pull)输出(高速模式)和 开漏(Open-Drain)(兼容I2C模式)。
    • SDA(串行数据线):双向数据线,推挽模式提升速度,开漏模式兼容I2C。
    • 上拉电阻:典型值 1–4.7 kΩ,比I2C更大(因推挽驱动降低电流需求)。
  2. 工作模式

    模式速率特性
    SDR(单倍速率)12.5 MHz基础模式,兼容I2C时序,但SCL高电平时SDA推挽输出加速上升沿。
    HDR-DDR25 Mbps双倍数据率(每时钟周期传输2比特),使用三线编码(Ternary Symbol)
    HDR-TSP33 Mbps分时传输协议,突发传输+时分复用,需专用时序。
    HDR-TSL-保留模式,未来扩展使用。

二、协议层核心机制

1. 动态地址分配(DAA)
  • 流程
    主设备发送RSTDAA CCC
    清除所有从设备动态地址
    主设备发送ENTDAA CCC
    从设备回复48-bit PID Provisional ID
    主设备分配唯一7-bit地址
  • PID结构
    • Part Number(16位) + 厂商ID(12位) + BCR/DCR(8位) + 随机数(12位)
2. 通用命令码(CCC)
  • 广播CCC(0x7E地址):所有设备同时响应(如 ENTHDR 进入高速模式)。
  • 直接CCC:针对特定设备(如 SETMWL 设置最大写长度)。
  • 关键CCC示例
    命令编码功能
    RSTDAA0x06复位动态地址
    ENTDAA0x07启动DAA过程
    ENTHDR0x20+进入HDR模式(子模式依赖参数)
    SETMWL0x22设置从设备最大写长度
3. 带内中断(IBI)
  • 触发条件:从设备在SCL高电平时拉低SDA。
  • 处理流程
    1. 主设备检测SDA低电平(SCL高)。
    2. 主设备发起IBI请求事务:发送[Start] + IBI地址(0-7位) + Read。
    3. 从设备返回 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共存)

  1. I2C设备识别
    • 主设备发送 I2C广播地址(0x7E + R/W=0),仅I2C设备响应ACK。
  2. 协议切换规则
    • I3C主设备需在 I2C模式(开漏)I3C模式(推挽) 间动态切换。
    • 关键限制:HDR模式期间禁止I2C设备通信。

五、错误处理与仲裁

  1. 冲突检测
    • 多主竞争:主设备在SDA推挽输出时检测电平冲突(输出高却读到低)。
    • 仲裁失败:立即释放总线,等待重试。
  2. 超时机制
    • SCL超时:从设备检测SCL低电平 > 最大时钟延展时间(典型值25ms) 时复位。

六、典型应用场景

  1. 传感器集线器
    多个低功耗传感器通过I3C接入主处理器。
  2. 移动设备
    摄像头、触摸屏等外设的高效通信。
  3. 汽车电子
    满足低延迟、高可靠性的车载传感器网络需求。
http://www.xdnf.cn/news/15475.html

相关文章:

  • 描述统计1
  • 百度移动开发面经合集
  • 【PCIe 总线及设备入门学习专栏 5.1.2 -- PCIe EP core_rst_n 与 app_rst_n】
  • Java 大视界 -- Java 大数据机器学习模型在金融风险传染路径分析与防控策略制定中的应用(347)
  • HTML网页结构(基础)
  • 使用Spring Cloud LoadBalancer报错java.lang.IllegalStateException
  • Nestjs框架: 数据库架构设计与 NestJS 多 ORM 动态数据库应用与连接池的配置
  • QTableView鼠标双击先触发单击信号
  • 项目进度与预算脱节,如何进行同步管理
  • 从0开始学习R语言--Day47--Nomogram
  • 多租户SaaS系统中设计安全便捷的跨租户流程共享
  • 文心一言开源版部署及多维度测评实例
  • 深度解析 AI 提示词工程(Prompt Engineering)
  • 【YOLOv11-目标检测】06-模型部署(C++)
  • 可微分3D高斯溅射(3DGS)在医学图像三维重建中的应用
  • gRPC实战指南:像国际快递一样调用跨语言服务 —— 解密Protocol Buffer与HTTP/2的完美结合
  • AI 增强大前端数据加密与隐私保护:技术实现与合规遵
  • 20250715武汉xx公司面试一面
  • Springboot儿童认知图文辅助系统6yhkv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • React.FC与React.Component
  • 高并发四种IO模型的底层原理
  • [Dify]--进阶3-- 如何通过插件扩展 Dify 的功能能力
  • 深入浅出 RabbitMQ-核心概念介绍与容器化部署
  • ubuntu部署kvm
  • Linux操作系统从入门到实战(十)Linux开发工具(下)make/Makefile的推导过程与扩展语法
  • OpenCSG QA:您的国产大模型与 Agent 管理平台
  • 运维技术教程之Jenkins上的known_hosts文件
  • 渲染设计图的空间革命:可视化技术如何重塑设计决策
  • Keepalived双机热备概述
  • 2025华为ODB卷-IPv4地址转换成整数三语言题解