惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
J
Java Code Geeks
雷峰网
雷峰网
WordPress大学
WordPress大学
L
LangChain Blog
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
P
Proofpoint News Feed
腾讯CDC
GbyAI
GbyAI
罗磊的独立博客
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
F
Fortinet All Blogs
Y
Y Combinator Blog
V
V2EX
A
About on SuperTechFans

博客园 - yooooooo

cache 的 refill,wr,rd的区别 I3C总线技术概述(二) I3C 总线技术概述(一) PCIe扫盲——物理层逻辑部分基础(三) PCIe扫盲——Ack Nak 机制详解(二) PCIE 的 per-vector masking ftraceoption irq-info MPAM BE/ FE 的区别及功能 IPI与CPU唤醒机制 【ARM CoreLink 系列 5 -- CI-700 控制器介绍 】 ARM CoreLink 系列 4.3 -- NI-700 Component and interface identifiers ARM CCI-500 与 NI0700 的关系. ARM NIC-400 与 NI-700 的区别 claude code命令使用 【ARM Trace32(劳特巴赫) 使用介绍 2.2 -- TRACE32 进阶命令之 DIAG 弹框命令】 trace32 .cmm脚本和.t32文件的区别 【ARM Trace32(劳特巴赫) 使用介绍 2.1 -- TRACE32 Practice 脚本 cmm 脚本学习】 【ARM Trace32(劳特巴赫) 使用介绍 1.1 - Veloce 环境中使用trace32 连接 Cortex-M33】 PCIe 总线的 ASPM 和 链路状态机制总结 fw_devlink 功能 I3C协议详解 UART 协议规范 BPF 调度器 sched_ext 实现机制、调度流程及样例 Android Camera性能分析 录像Buffer Path详解 【UEFI基础】Protocol介绍 【UEFI实战】在库中使用全局变量 sched feature TTWU_QUEUE 【ARM CoreLink 系列 4.2 -- NI-700 Function units 详细介绍】 edk2构建编译流程 UEFI:FDF文件及FD、FV、FFS
I3C协议Single Data Rate(SDR)模式研读(一):总线配置Bus C...
yooooooo · 2026-08-29 · via 博客园 - yooooooo

从本篇开始将介绍I3C Protocol,其中主要包括两种模式:SDR和HDR,详细见下图

image

1. Single Data Rate (SDR) Mode

SDR模式是I3C总线的默认模式,主要用于从当前主设备到从设备的私人消息传递。 SDR模式还用于进入其他模式,子模式和状态(如本节和第2节所述); 以及内置功能,例如通用命令(CCC),带内中断,以及通过分配动态地址从I2C到I3C的转换。

在过程和条件方面,I3C SDR模式与I2C协议[NXP01]极为相似,因此I3C设备和许多旧式I2C从设备(但不是I2C主设备)可以共存于同一I3C总线上。但是,SDR模式还包括I2C中不存在的许多新功能。 对于I3C与I2C共享的过程和条件,SDR模式严格遵循I2C规范中的定义。从I3C主设备到I2C从设备的I2C流量将被所有I3C从设备正确忽略,因为I3C协议旨在允许I2C流量。 大多数旧版I2C从设备不会看到从I3C主设备到I3C从设备的I3C流量,因为I2C峰值过滤器对于I3C更高的时钟速度是不透明的。

1.1 总线配置:BUS CONFIGURATION

I3C总线可以灵活高效地配置为多个客户端之间的链接。 在系统架构级别,为I3C兼容设备定义了八个角色(请参见表2)。

I3C互连的示例框图如图8所示。在该图中,蓝色表示具有主角色的设备,粉红色表示具有I3C从属角色的设备,而紫色表示具有I2C从属角色的设备。 请注意,I3C辅助主设备从蓝色变为粉红色,说明了它们在主角色和从角色中都起作用的能力(在不同时间)。

image

与I3C兼容的设备可能具有多种特性,以适合其在I3C总线中的功能。根据I3C总线的系统设计,可能不需要为特定的总线实例启用给定设备的所有功能。但是,应在与该设备关联的特性寄存器中描述每个I3C兼容设备的使能功能,如1.1.2节所述。I3C主控主机应在加电之前获得I3C总线上任何旧式(legacy)I2C设备的特性(例如,总线上每个旧式I2C设备的固定地址)。

在每次从掉电状态启动时,主控主机应为总线上的每个设备(包括其自身)分配唯一的动态地址。动态地址可创建设备带内中断的优先级。I3C总线上存在的任何辅助主设备都应通过第1.9节中所述的通用命令代码,了解与总线上每个I3C兼容设备相关的动态地址分配和特性寄存器。

1.1.1 I3C设备特性:I3C Device Characteristics

I3C总线的配置将取决于准备在该I3C总线上处于活动状态的I3C设备的特性。因此,在给定的I3C总线实例中扮演给定角色的活动I3C设备应履行该角色的所有责任,如表3所示。
image

I3C协议支持I2C从设备功能的子集。 例如,一个I3C从站可以具有静态地址,但也支持动态寻址。 在以全时钟速度运行的I3C总线中使用设备时,不应启用50 ns的滤波器。 这些差异总结在表4中。在I3C系统中使用时,I3C从设备应启用或禁用表4中所示的适当I2C功能。

image

I3C总线的性能在很大程度上取决于可能连接到该总线的任何仅I2C的设备。 因此,在I3C总线的任何实例上允许的所有仅I2C器件都必须符合表5中详述的类 别之一。此外(如表56所示),I3C总线上不存在I2C或I3C设备 与错误类型S0相关的任何地址匹配的固定I2C地址(请参见第1.10.1.1节)。

image

1.1.2 I3C特性寄存器

I3C特性寄存器在设备为给定系统提供服务时,在I3C总线上描述和定义I3C兼容设备的功能。 没有I3C特性寄存器的设备不得连接到公共I3C总线。

总共有三种特性寄存器类型:

总线特性寄存器(Bus Characteristics Register,BCR)

设备特性寄存器(Device Characteristics Register,DCR)

遗留虚拟寄存器(Legacy Virtual Register,LVR)

每个I3C兼容设备都应具有相关的特性寄存器,具体取决于设备类型,如下所述:

  • 每个I3C兼容设备(如表3所示)应具有一个总线特性寄存器和一个设备特性寄存器。
  • 每个要连接到I3C总线的Legacy I2C设备都应具有一个关联的Legacy虚拟寄存器。 由于这些是旧版设备,因此可以理解,该寄存器实际上会存在,例如作为设备驱动程序的一部分。
  • 每个连接到I3C总线的每个I3C设备都应具有一个关联的只读总线特性寄存器(BCR)。 该只读寄存器描述了I3C兼容设备在动态地址分配和通用命令代码中使用的角色和功能。 BCR中的比特应符合表6中的描述。

连接到I3C总线的每个I3C设备都应具有一个关联的只读总线特性寄存器(BCR)。 该只读寄存器描述了I3C兼容设备在动态地址分配和通用命令代码中使用的角色和功能。 BCR中的比特应符合表6中的描述。

连接到I3C总线的每个I3C设备都应具有一个关联的只读设备特性寄存器(DCR)。 该只读寄存器描述了在动态地址分配和通用命令代码中使用的I3C兼容设备类型(例如,加速度计,陀螺仪等)。 DCR中的比特应符合表7中的描述。

image

每个可以连接到I3C总线的Legacy I2C设备都应具有一个关联的只读Legacy虚拟寄存器(LVR),以描述该设备的重要功能。 由于这些是旧版I2C设备,因此可以理解该寄存器实际上是存在的,例如作为设备驱动程序的一部分。 当I3C总线上存在旧版I2C设备时,LVR数据将确定允许的模式和最大SCL时钟频率。 LVR中的比特应符合表8中的描述。

所有LVR均应由控制I3C总线的上级实体建立,并在进行总线配置之前转移到I3C总线主控主机。 主机始终知道所有I2C设备的LVR内容。 可以使用DEFSLVS CCC将LVR信息传输到辅助主设备。

image

每个I3C兼容设备都应具有相关的特性寄存器,具体取决于设备类型,如下所述:

  • 每个I3C兼容设备应具有一个总线特性寄存器和一个设备特性寄存器。
  • 每个要连接到I3C总线的Legacy I2C设备都应具有一个关联的Legacy虚拟寄存器。 由于这些是旧版设备,因此可以理解,该寄存器实际可以作为设备驱动程序的一部分。