官方I3C协议规范技术文档中文版​​​​​​​

一、热加入机制

I3C协议支持热加入机制,以允许从设备在已配置后加入I3C总线。在配置I3C总线之前,热连接不允许从设备加入I3C总线。

热连接可用于:

•I3C设备安装在同一板上,但是在需要之前断电。此类设备在第6节中定义的断电(或转换)时,不得违反从站的电气限制,包括容性负载。

•安装在已配置I3C总线后物理插入的模块/板上的I3C设备。 本规范并未试图解决如何处理物理插入,但是这种插入不会破坏SCL和SDA线路,包括遵守第6节中定义的所有电气限制。

热加入从机可以包含任何有效的从机类型,包括第二主机。热加入后,当前主机应使用DEFSLVS CCC。为了确保任何第二主机都知道所有可用的从机,如果主机发现任何先前加入的从机不再存在,则应立即通知I3C总线(例如由于无响应或总线外部的机制)。

热加入机制提供了以下过程,以向主机通知新加入I3C总线的从机:

  1. 从机应至少等待tIDLE总线可用状态(见表58)。
  2. 从机确定总线空闲后,它可以发出启动信号,也可以等待启动信号。(要发出启动信号,请将SDA线拉低并保持低电平,直到SCL线变低。)

注意:热连接设备可以在与主主设备同时上电(例如,当系统通电时可以连接到I3C总线)。 在这种情况下,假设SCL和SDA被上拉,即使在启动I3C总线之前,主控制器也可能将SDA拉低。 如果主机需要1毫秒或更长的时间才能开始在I3C总线上起作用,则该主机在准备初始化I3C总线时应能够适应SDA保持低电平的情况,否则,它可能会延迟将SDA拉高和/或将SCL拉高,直到准备就绪为止。

具有热连接功能的设备应实现某种方法,该方法可以使系统设计人员防止在设备不用作热连接设备时尝试进行热连接。 例如:使用NVMEM,或者将设备焊接到板上并用I3C总线的其余部分供电时,可以使用别针扎带。

3. 从机在START之后使用W(写)将IBD的保留从机地址7’b0000_010作为IBI发布。 这要求动态地址分配过程。

4. 当前主机将执行以下三个动作之一:

  1. 拒绝请求,从机将在下一个START再次尝试;
  2. 响应请求,但发布广播CCC来禁止热加入。如果另一台设备在主机准备好为从机分配动态地址之前尝试进行热连接,则主机可能需要重复此过程。
  3. 相应请求并发布广播命令,开始动态地址分配过程。只有没有动态地址的从机才可以加入,这样,新加入的从机可以获取动态地址。

5. 如果发出了输入动态地址分配(ENTDAA)命令代码,则从机将按照正常机制发送其48位地址。每次加入时需要接收相同分配的动态地址的热加入从属可以使用固定值ID。

如果从机由于断开或断电而掉落了I3C总线,那么主机可能不会意识到这一点。 主机可以通过反复尝试使用安全(应响应)命令代码(例如,获取设备状态(GETSTATUS))与从机联系来确定这种情况。 如果主机确定从机不再是I3C总线的一部分,则它应回收该从机的动态地址,或者保留该从机的动态地址,以防从机以后重新加入总线。

除非焊盘外有保护方法,否则热连接设备应具有故障保护功能。 故障安全意味着,当SCL和SDA焊盘未上电但通过导线连接到I3C总线时,它们不得从总线汲取额外的泄漏电流。

器件SCL和SDA焊盘的设计应避免在保持高电平和保持低电平时从系统SCL和SDA线汲取电流。 可以通过使用特殊的连接器或其他隔离方法(例如,插头中的物理连接顺序)来避免这种泄漏。 无论是由于二极管效应,ESD的铁轨扎结还是钳位,都应避免这种过量电流。 未通电和通电之间的泄漏电流变化不得超过有源焊盘Ii的正常变化范围。

二、 带内中断

1. 优先级

在I3C中,优先级控制从站的带内中断请求和主站请求的处理顺序。 I3C总线实例中每个从设备的优先级都在其从设备地址中编码,较低的地址具有较高的优先级。 也就是说,具有较低值地址和较高优先级的从站的带内中断和主请求要比具有较高值地址和较低优先级的从站更快地处理。 此优先级排序是指定的I3C地址仲裁行为的自然结果,其中值为0的地址位优先于值为1的位。

结果,在每次动态地址分配操作期间,主控器应为较高优先级的带内中断请求向从站分配较低的地址。

2. I3C从机中断请求

为了请求中断,I3C从设备必须在启动之后(但不要在重复启动之后)将其地址发送到仲裁的地址报头中。 如果在总线可用状态下没有启动信号出现,那么I3C从机可以通过将SDA线拉低,然后等待当前主机将SCL拉低来发出启动条件。

如果当前主机将SCL线设置为低电平,从而完成启动条件,然后在SCL线上提供时钟,则从机应使用自己的地址驱动SDA线,后跟一个值为1’b1的RnW位。 如果在相同的开始条件后有多个从设备发出了IBI请求,则当前主设备应按优先级顺序处理这些IBI。 失去仲裁的从站可以发出另一个IBI请求,但直到总线可用条件出现后才这样做。

届时,现任主机应执行以下三项动作之一:

(1)通过提供ACK位来接受IBI。 当前主设备可用的操作取决于从设备的BCR [2]位(从设备的BCR寄存器中)的值:

如果I3C从机的BCR [2]位设置为1,则当前主机应以从机允许的任何“读取”时钟速度读取被接受的IBI请求之后的强制数据字节。此操作类似于从从机的“读取”操作,所有相关规则均适用。请注意,由于当前主机以推挽模式发送,因此它无法避免接收强制性数据字节。

读取强制数据字节后,当前主机可以执行任何其他有效的I3C动作。例如,当前主机可以发出STOP或发出重复的START信息,或者可以继续从从机读取其他数据字节(例如,如果事先在两个设备之间建立了私有联系)。如果当前主机在读取所有其他数据字节之前完成了该传输,则从机将不会重复尚未服务的IBI请求;当前的主人已经评估了该请求,并将在以后的时间为其提供服务。根据数据的特性,主机可以尝试读取完整数据(例如读取短数据包),或从传输中断的位置继续(例如FIFO传输),或中止IBI服务(例如获取定时控制信息)。

在所有情况下,都应通过设备之间的私人联系确定具体的后续措施,同时要考虑到数据在此期间被破坏的可能性。

下面的图20显示了此序列的一个概念性时序图:

如果I3C从机的BCR [2]位设置为0,则当前主机可能会执行任何其他有效的I3C操作。 例如,当前主机可以发出STOP或发出重复的START信息,或者可以以任何允许的“读取”时钟速度继续从从机读取其他数据字节(例如,如果预先在两个设备之间建立了私有联系)。

(2)在不禁用中断的情况下拒绝IBI。为此,当前主机只是被动地否定NACK来拒绝IBI。 从机应在总线可用状态后重试。

(3)拒绝IBI并禁用中断。为此,当前主机NACK拒绝IBI,然后发送重复的START,最后将命令代码禁用从事件命令(DISEC)中的DISINT位置设置为中断的从设备。 (当前主机可以稍后在命令代码使能从动事件命令(DISEC)中将ENINT位置1。)

在新请求的事务完成之前,预期更高的优先级事务可能需要I3C总线,则主机可以拒绝访问(通过不确认请求),也可以驱动更高的优先级设备地址,而不是发送IBI请求的设备的地址。 然后,主控主机将SCL线保持为低,直到预期的更高优先级的传输开始。

在地址评估期间会发生总线竞争。如果多个I3C器件同时尝试赢得总线,则除一个以外的所有I3C器件都将失去仲裁。 这些设备将有机会(但不是必需)在下一个总线可用条件下重复尝试。 请注意,从设备可以选择不重试。

3. I3C第二主机请求成为当前主机

当I3C辅助主机请求成为当前主机时:

1. 为了执行请求,I3C辅助主机应等待一个START(不是重复的START)或总线可用状态,然后发出自己的START。

2. 启动后,I3C辅助主设备应在I3C总线上发布其自己的动态地址,其后的RnW位为0,以请求成为当前主设备。

3. 如果I3C辅助主机通过拥有较低的动态地址而赢得仲裁,并且如果当前主机当前愿意将主控权交还给请求者,则当前主机应以ACK做出响应。

4.  ACK之后,当前主控方可以发出一个或多个命令,然后发出GETACCMST CCC,然后发出STOP,这将释放SCL线的控制权,因此也释放I3C总线的主控权。

5. 在STOP和总线可用状态之后,I3C辅助主设备承担当前主设备的角色,并控制I3C总线。

图44给出了主机到主机切换过程的简化概括图。尽管此过程可能有很多变体,但最重要的状态如下:

1. 在数据传输结束时,当前主机(在图中用“ CM”表示)控制SCL和SDA,而新主机(在图中用“ NM”表示)的SCL和SDA处于高阻态。

2. 当前主机提供SCL的上升沿,同时保持SDA为低。

3. 经过tSU_STO之后,当前主机使用活动驱动器或漏极开路上拉电阻将SDA驱动为高电平。但是,一旦SDA为高电平,就应使用漏极开路上拉电阻。

4.在新主机确定SDA为高后,并且在其时钟到数据周转时间和飞行时间都经过之后,它将采取以下两项操作:

a. 新主机主动将SCL驱动为高电平,与当前主机的活动驱动器重叠;和

b. 新主机启用其“开漏”类上拉,与当前主机的“开漏”类上拉器同时使用

这些动作均与当前的主机没有冲突。

尽管tSCO通常适用于从设备,但在此步骤中,它适用于新主机,因为在总线传输之前,新主机将扮演从设备角色。

在图中,tSCO开始显示,就好像CM使用SDA High的漏极开路驱动器一样。这描绘了该切换阶段的最坏情况,显示了NM开始将线路控制与CM重叠时的最新可能时刻。

5.经过tMMoverlap时间延迟后,当前主机:

a. 将SCL发布到High-Z;并

b. 在SDA上禁用其漏极开路类别上拉,并将SDA设置为高阻状态。在图中,tMMoverlap在最坏的情况下显示:在SDA的漏极开路驱动器上,CM从较低的位置开始对其进行计数SDA上升沿的一侧。 CM必须控制线路,直到NM可以安全接管为止,并且可以肯定的是tDIG_OD_L Min之后。结果,tMMoverlap应大于或等于tDIG_OD_L Min。

6. tMMlock之后(新主机不得将SDA驱动为低电平的时间间隔),新主机可以主动将SDA驱动为低电平,从而产生启动条件。从机此时也可能将SDA驱动为低电平。这是允许的,因为SDA由漏极开路的上拉电路保持。 tMMlock周期时序参数类似于I3C的tAVAL和I2C的tBUF,因此,对于纯总线和混合总线,分别需要不同的值。在图中,tMMlock表示为漏极开路驱动模式下的SDA上升沿,类似于I3C的tAVAL和I2C的tBUF。

7. tCAS到期后,新主机可能会将SCL驱动为低电平,从而产生第一个SCL下降沿。在此SCL下降沿之后,新主机应主动驱动SCL,同时还要在开漏模式下以可寻址地址驱动SDA。

4. I3C主要主机初始化一个传输

启动I3C事务时,I3C 当前主机必须在地址调用期间执行动态地址仲裁。 任何其他试图中断的I3C设备都应赢得仲裁。 优先级较低的中断设备应等待下一个总线可用条件。

注意:

为了允许较低优先级的从机执行带内中断,主机可以执行以下操作:

1)在开始新的通信之前,等待的时间超过最小“可用总线”时间。

2)发送保留的I3C广播地址,然后发送重复的START和正常消息。 (保留的I3C广播地址的优先级低于任何中断。)

三、第二主机功能

一旦被授予对总线的控制权,第二主机将保持控制权,直到另一个主机被授予总线控制权为止。次要主机转换为当前主机角色后,除了自身发起的数据传输外,它还可能遇到总线管理活动。 一些示例是带内中断或热加入请求。 一种可选的可能性是,次要主机可以利用主机的全部功能执行当前主机的动作。 另一个可选的可能性是,辅助主机在担任“当前主机”角色时,可以将某些操作延迟给功能更强大的“主机”。

辅助主机应根据其功能支持以下方案。

1. 硬件和软件要求

能够执行主要主机任务的次要主机应具有以下最低硬件和软件功能:

1.内存用于:

a. 所有总线设备在系统级别的功能

b. 保留所有I3C总线设备的动态地址

C. 保留I3C总线设备能够执行的数据传输协议

2.用于传输带内中断请求(IBI)的从站的链路要求,例如: 时钟速度和最大数据传输长度

3.与所有I3C总线设备通信所需的数据传输协议功能

2. 总线管理程序

能够执行主要主机任务的次要主机应执行以下最低总线管理程序:

1.在总线初始化期间,辅助主站应通过使用主要主机发送的命令代码定义从站列表(DEFSLVS)或通过在动态地址分配期间监视总线来获得总线上的设备特性。

2.为热连接设备执行动态地址分配

a. 辅助主站需要了解系统级别的所有总线设备的功能,以便能够为热联接设备分配正确的优先级

b. 当前主机应发布命令代码定义从机列表(DEFSLVS),以确保其他主机具有相同的知识

3.管理带内中断过程辅助主机需要从机知道中断的含义,并且需要适当地服务该中断。

4.请求将总线控制权转移到另一个主机(包括主机)的过程次级主机使用命令代码获取接受主机(GETACCMST)。

3. 缩减功能的第二主机

不需要第二主机来执行,并且能够执行主要主机所需的所有任务。必要时,辅助主机可以将总线控制延迟或转移给主机。

功能减少的辅助主机应具有以下最低功能:

1.足以保留其支持的任何从机的设备地址和特性的内存

2.内存足以保留其将返回总线控制的主机的设备地址和特征

4. 带内中断处理

次要主机可以为带内中断请求提供服务,也可以通过将命令代码禁用从机事件命令(DISEC)中的DISINT位置为中断从机,将带内中断处理延迟给有能力的主机。

5. 热加入管理

次要主机可以管理热加入事件,也可以通过发出广播命令代码禁用从事件命令(DISEC)以通过将DISHJ位置1来禁用热加入,从而将管理推迟到有能力的主机。

I3C协议Single Data Rate(SDR)模式研读(五):热加入机制、带内中断以及第二主机功能(hot-join、In-Band Interrupt、Secondary Master)相关推荐

  1. I3C协议Single Data Rate(SDR)模式研读(一):总线配置Bus Configuration

    从本篇开始将介绍I3C Protocol,其中主要包括两种模式:SDR和HDR,详细见下图 1. Single Data Rate (SDR) Mode SDR模式是I3C总线的默认模式,主要用于从当 ...

  2. I3C协议Single Data Rate(SDR)模式研读(六):通用命令代码(CCC)

    官方I3C协议规范技术文档中文版 通用命令代码(CCC)是全局支持的命令,可以直接传输到特定的I3C从设备,也可以同时传输到所有I3C从设备. 本节指定如何在I3C总线上传输CCC,每个CCC如何工作 ...

  3. I3C总线HDR模式研读

    基本的I3C并不支持HDR模式,但是为了兼容I3C V1.x设备,基本的I3C设备必须能够检测到HDR进入.退出以及重启, I3C V1.x的设备可以在相同的总线频率上传输更多的数据. 注意:I3C总 ...

  4. 计算机网络学习笔记(一)——分层模型、协议、服务、连接模式、标准化组织

    文章目录 前言 概念 一.两种参考模型 二.协议和实体 三.封装和解封 四.服务(接口.SAP.原语) 五.面向连接和面向无连接 六.虚通信与透明通信 七.标准和标准化组织 八.服务模式 参考资料 前 ...

  5. FTP协议主动(Port)模式和被动(Passive)两种模式详解

    FTP协议主动(Port)模式和被动(Passive)两种模式详解 FTP(File Transfer Protocol)是文件传输协议的简称. 正如其名所示: FTP的主要作用,就是让用户连接上一个 ...

  6. I2C 与 I3C协议

    自从飞利浦公司在1980年推出I2C(Inter Integrated Circuit的简称)总线之后,变革了以往的存储器映射通信方式,给产业界提供了一种节约管脚的片间通信机制.作为一种使用多主从架构 ...

  7. 数据传输速率Data Rate与LCD显示的关系

    在 调试LCD屏的参数的时候,频率与LCD的显示关系密切,这里的频率是指数据传输速率Data Rate.  数据传输速率需要与60HZ频幕刷新率匹配,数据传输速率不能过大,也不能过小,需要一个准确的值 ...

  8. Oracle 11g Release 1 (11.1) Data Pump 导出模式

    http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#i1007114 本文内容 Data Pump 提供不同的导出模 ...

  9. Oracle 11g Release 1 (11.1) Data Pump 导入模式

    http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_import.htm#i1007324 本文内容 导入最显着的特点之一就是导入的模式, ...

最新文章

  1. 24招加速你的Python,超级实用!
  2. 云计算之路-道歉,无地自容的:4月7日14:15~18:35网站故障给大家带来麻烦了
  3. 从开发到上线,一个人的两周产品研发之旅
  4. 采购订单相关Table
  5. (转)使用XmlDocument类完成对XML的查、删、添、改
  6. 在Windows Mobile模拟器(Emulator)建立网络连接
  7. Spring Boot入门篇-默认安全配置
  8. GPGGA NTRIP RTCM 笔记
  9. 简单实现DButil工具类
  10. 神通数据库常用命令行
  11. 清除微信或者企业微信的缓存或cookie
  12. MYSQL Error:You must SET PASSWORD before execut...
  13. npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa
  14. 什么是X11-Forwarding
  15. android+ue设计原则,【岗位课】移动端UI/UE设计湿
  16. 【练习】第一个微信小程序
  17. 基于Linux搭建一个类似Qik手机录像直播平台(服务器端:feng streaming server + web server,客户端:Android手机应用)
  18. Some selectors are not allowed in component wxss, including tag name selectors, ID selectors,and...
  19. 电动车防盗报警器语音提示芯片,PWM功放音频ic选型——NVC
  20. 基于java的科研项目管理系统

热门文章

  1. mysql字段长度计算
  2. 嵌入式系统开发笔记91:认识ARM微控制器架构
  3. 使用占位符预防SQL注入的原理
  4. Vue 开发的组件库
  5. 航空货代系统之日常航班管理
  6. Uni-App从入门到实战
  7. 回溯法——电话号码的字母组合
  8. 挤奶牛Crowded Cows 洛谷p3088
  9. 5G的NSA和SA,到底啥意思?
  10. Git发生错误C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt