从本篇开始将介绍I3C Protocol,其中主要包括两种模式:SDR和HDR,详细见下图
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辅助主设备从蓝色变为粉红色,说明了它们在主角色和从角色中都起作用的能力(在不同时间)。
与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所示。
I3C协议支持I2C从设备功能的子集。 例如,一个I3C从站可以具有静态地址,但也支持动态寻址。 在以全时钟速度运行的I3C总线中使用设备时,不应启用50 ns的滤波器。 这些差异总结在表4中。在I3C系统中使用时,I3C从设备应启用或禁用表4中所示的适当I2C功能。
I3C总线的性能在很大程度上取决于可能连接到该总线的任何仅I2C的设备。 因此,在I3C总线的任何实例上允许的所有仅I2C器件都必须符合表5中详述的类别之一。此外(如表56所示),I3C总线上不存在I2C或I3C设备 与错误类型S0相关的任何地址匹配的固定I2C地址(请参见第1.10.1.1节)。
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设备都应具有一个关联的只读设备特性寄存器(DCR)。 该只读寄存器描述了在动态地址分配和通用命令代码中使用的I3C兼容设备类型(例如,加速度计,陀螺仪等)。 DCR中的比特应符合表7中的描述。
每个可以连接到I3C总线的Legacy I2C设备都应具有一个关联的只读Legacy虚拟寄存器(LVR),以描述该设备的重要功能。 由于这些是旧版I2C设备,因此可以理解该寄存器实际上是存在的,例如作为设备驱动程序的一部分。 当I3C总线上存在旧版I2C设备时,LVR数据将确定允许的模式和最大SCL时钟频率。 LVR中的比特应符合表8中的描述。
所有LVR均应由控制I3C总线的上级实体建立,并在进行总线配置之前转移到I3C总线主控主机。 主机始终知道所有I2C设备的LVR内容。 可以使用DEFSLVS CCC将LVR信息传输到辅助主设备。
每个I3C兼容设备都应具有相关的特性寄存器,具体取决于设备类型,如下所述:
•每个I3C兼容设备应具有一个总线特性寄存器和一个设备特性寄存器。
•每个要连接到I3C总线的Legacy I2C设备都应具有一个关联的Legacy虚拟寄存器。 由于这些是旧版设备,因此可以理解,该寄存器实际可以作为设备驱动程序的一部分。