0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > I3C接口通信基础知识

I3C接口通信基础知识

来源: edn
2022-12-07
类别:基础知识
eye 10
文章创建人 拍明芯城

原标题:I3C接口通信基础知识

  I3C 是一种用于嵌入式系统的新型串行通信协议,可提供比 I 更高的数据吞吐量和更高级的功能2C. 借助 I3C,工程师和设计人员可以提高设计性能,同时添加热连接、带内中断 (IBI) 和高数据速率 (HDR) 模式等新功能。此外,I3C 向后兼容,可以与旧版 I 通信2C 目标。 表1 总结了 I3C 和 I 之间的差异2C.

  

image.png


  表1 上述数据展示了 I3C 如何提供比 I 更高的数据吞吐量和更高级的功能2C. 资料来源: 微片

  笔记:

  标称值。不允许使用其他值。

  时钟拉伸可以由主动控制器(而不是目标)执行,但对时序和总线状态有限制。

  基本 I3C 通信不需要 HDR。I3C 总线支持 HDR 通信,即使连接了不支持的设备。有关详细信息,请参阅高数据速率 (HDR) 模式。

  巴士速度

  I 之间最明显的变化2C 和 I3C 是时钟速度。我2C 通常为 100 kHz、400 kHz 或 1 MHz,而 I3C 可以达到高达 12.5 MHz 的速度。这种增长的主要因素之一是在I3C中使用推挽输出。I3C 根据总线状态在漏极开路和推挽式驱动器之间切换。漏极开路在初始寻址或仲裁期间使用,其中多个目标可能同时控制线路。相反,当通信是单向的,并且没有另一个设备同时通信的机会时,使用推挽式。

  电气特性

  不像我2C、I3C不需要外部上拉电阻,因为总线上的主控制器提供这些功能。我2C 具有较宽的工作范围,最常见的是 3.3 V 和 5 V。I3C 具有三个标称电平:1.2 V、1.8 V 和 3.3 V。但是,允许其他操作范围。

  设备寻址

  我2C 支持目标设备的 7 位和 10 位寻址。使用 I3C,仅支持 7 位寻址。但是,I3C 使用动态寻址,其中主动控制器为每个目标分配一个唯一的地址以防止地址冲突。这与我形成鲜明对比2C,开发人员必须跟踪当前使用的地址,以防止两个设备共享同一地址。目标的动态寻址发生在总线初始化期间。

  带内中断和热加入

  在我2C,目标没有机制向控制器指示数据已准备就绪,而无需使用额外的 I/O 行。但在 I3C 中,目标设备可能会使用串行数据 (SDA) 和串行时钟 (SCL) 线路发出中断信号,从而使其成为真正的双线协议。同样,这种类型的带内信令也用于在I3C中实现热加入功能,因此设备可以在初始地址分配后加入。带内中断(IBI)和地址仲裁部分将更详细地讨论这个问题。

  主动控制器和辅助控制器

  我2C 支持多控制器总线,其中多个设备作为控制器运行,但一次只有一个设备主动通信。但是,在 I3C 中,只有一个设备可以作为主动控制器;其他支持的设备可能会请求成为总线上的主动控制器。此类设备称为辅助控制器。当辅助控制器不充当主动控制器时,它将充当 I3C 目标。

  我2C 支持

  I3C 支持与 I 通信2C 目标设备。为了使通信成为可能,I2C 目标必须:

  具有 7 位地址

  不时钟拉伸

  还强烈建议 I2C 目标在其输入上包含 50ns 滤波器。如果满足这些要求,则 I2C 目标与 I3C 总线兼容。此外,一些 I3C 器件可以作为 I 运行2C 目标,直到分配了动态地址。在我2C模式,I3C设备具有用于通信的静态地址。此静态地址不一定与动态地址相同,但如果需要,可以为其分配相同的地址。I3C 总线的示例如下所示。

image.png

   图1 该图突出显示了 I3C 总线。 来源:Microchip

  I3C 通信基础知识

  在 I3C 总线上开始任何通信之前,必须配置总线,并且必须将动态地址分配给目标。

  然后,沟通开始像我一样2C. 生成 START 条件,然后发送 7 位动态地址,其中 R/nW 位后跟来自目标的 ACK 或 NACK。接下来,I3C 使用 9 位串行传输,如 I2C,但功能9千 位已从 ACK/NACK 更改为转换位或 T 位。T位有两个功能;当控制器写入目标时,T 位是发送的数据字节的奇偶校验位。当控制器从目标读取时,T 位用作数据结束标志。此标志可以由控制器断言,以指示它已完成读取数据,也可以由目标断言,以指示它没有更多数据要返回。为了完成数据传输,控制器在总线上生成停止或重新启动条件。请注意,如果使用 RESTART 标头,则标头将以推挽方式传输,因为没有仲裁。

  

image.png


  图2 I3C 中数据传输的简化图显示了 1 个数据字节。来源:微芯片

  I3C的一个关键变化是缺乏时钟拉伸。我2C 使用时钟拉伸为目标设备提供更多时间进行处理,然后再返回数据。对于 I3C,时钟仅由主动控制器驱动,处于单数据速率 (SDR) 模式。因此,时钟拉伸只能在有限的情况下由控制器执行。

  但是,目标器件可以在总线初始化过程中指示速度限制,以指示最大工作频率、读写周转时间以及其他时序参数。

  通用命令代码 (CCC)

  通用命令代码 (CCC) 是 I3C 中的一个新概念。主动控制器使用 CCC 来初始化和/或配置 I3C 总线。CCC 可以广播到每个目标,也可以私下定向到特定目标。要发送 CCC,首先,发送地址 7'h7E/W。所有 I3C 设备都必须确认并侦听此地址。我2C 设备无法匹配此地址,因为每个 I 保留 7'h7E2C 规范。接下来,发送CCC代码。对于将数据写入目标的 CCC,请继续发送数据,直到完成。对于读取值的 CCC,发送任何参数(根据需要),重新启动总线,然后开始读取数据。

  有太多的CCC需要讨论,但这里有一些重要的:

  输入动态地址分配 (ENTDAA)

  输入动态地址分配会通知所有目标活动控制器正在分配动态地址。如果目标已经分配了地址,它将执行此命令。

  设置新的动态地址分配 (SETNEWDA)

  设置新的动态地址分配用于更改设备的动态地址。

  启用事件 (ENEC)/禁用事件 (DISEC)

  “启用”或“禁用事件”命令指示总线上当前是否允许热加入或带内中断等事件。

  重置动态地址分配 (RSTDAA)

  “重置动态地址”会清除当前分配的地址,但不会重新分配地址。在 I3C 规范的 v1.1 中,重置动态地址分配的直接形式已被弃用。

  设置最大读取长度 (SETMRL)/获取最大读取长度 (GETMRL)

  “设置”或“获取最大读取长度”指定一次可以读取的最大字节数。

  设置最大写入长度 (SETMWL)/获取最大写入长度 (GETMWL)

  “设置”或“获取最大写入长度”设置一次可以读取或写入的最大字节数。

  获取设备特征寄存器 (GETDCR)

  设备特性寄存器 (DCR) 是指定目标设备类型的寄存器。这方面的一个例子是代码0xC6,即微控制器的代码。I3C 规范定义了 DCR 值。这些代码的列表是 可用 来自MIPI联盟。

  获取总线特性寄存器 (GETBCR)

  总线特性寄存器(BCR)是一个寄存器,用于定义目标上存在的I3C功能。该寄存器还用于确定目标是否需要速度限制。

  目标休息操作 (RSTACT)

  CCC 中的目标复位操作定义检测到带内复位模式时目标会发生什么情况。要生成复位,SDA 保持低电平,而 SCL 时钟 14 次,然后重新启动,然后停止。目标检测带内复位模式,并根据分配的内容进行操作。此 CCC 不会触发重置,而是分配目标行为。如果未按照此命令重置,则下一个 START 条件将清除分配的操作。

  进入高数据速率模式 (ENTHDRx)

  最后,还有高数据速率或HDR,入门CCC。此 CCC 指示活动控制器正在进入四种 HDR 模式(0、1、2 或 3)之一。

  高数据速率 (HDR) 模式

  I3C 规范目前定义了四种 HDR 模式。

  HDR 双倍数据速率 (HDR-DDR) [模式 0]

  HDR 三元符号纯总线 (HDR-TSP) [模式 1]

  HDR 三元符号传统包含总线 (HDR-TSL) [模式 2]

  HDR 散装运输 (HDR-BT) [模式 3]

  在 HDR 中,时钟速率不会改变数据的编码方式。I3C 基本通信不需要 HDR。不支持 HDR 的设备在检测到 HDR 退出模式之前会忽略通信。

  HDR-DDR

  HDR-DDR 是一种使用时钟的两个边缘来传输数据的模式。这显著提高了总线的数据速率(但由于协议中的额外开销,不会将其加倍)。

  HDR-TSP 和 HDR-TSL

  在HDR-TSP和HDR-TSL中,数据以三元传输,从SDA和SCL线创建三个定义的符号。根据规范,符号由以下公式电气定义:

  仅 SCL 更改

  仅 SDA 更改

  标准及校正实验所及标准统计局均有更改

  HDR-TSP和TDR-TSL之间的选择取决于是否2存在 C 靶标。HDR-TSP 只能在存在 I3C 目标时使用,而 HDR-TSL 在传统目标2存在 C 靶标。

  高清版-BT

  HDR-BT允许同时使用多个数据通道,以提高并行性。为了兼容,只有SDA线路的最低有效位或LSB用于单数据速率(SDR)通信。HDR-BT 支持双线和四线配置。 图3 显示了一个示例配置。

  

image.png


  图3 该图提供了支持 HDR-BT 的混合 I3C 总线的示例。来源:微芯片

  带内中断 (IBI) 和地址仲裁

  不像我2C,目标可以在总线空闲(或空闲)时生成 IBI 的启动条件。如果在一定时间内没有事务发生,则会发生这种情况。当主动控制器检测到来自目标的启动条件时,它会提供时钟信号以完成事务。如果两个目标尝试同时通信,则会发生寻址仲裁。

  仲裁是确定允许哪个设备与控制器通信的过程。例如,假设两个设备 A 和 B 希望同时与活动控制器通信。设备 A 的地址为 7'h10,而设备 B 的地址为 7'h14。生成带内中断时,两个设备都将尝试将其地址传输到主动控制器。在这种总线状态下,数据线为漏极开路。在漏极开路通信期间,线路通过上拉电阻无源返回“1”,并可主动置位至“0”。这可以防止两个同时传输 1 和 0 的设备短路。

  

image.png


  图4 SDA线的简化视图显示了上拉电阻是如何在主控制器中构建的。来源:微芯片

  仲裁中的胜诉地址是控制者收到的地址。跟随一起 图5,首先,从每个设备地址传输两个零。接下来,两者都将释放其地址中“1”的数据线。然后,两者将传输另一个 0。此时,两台设备都没有赢得仲裁,因为此时收到的地址与两者匹配。但是,在下一位中,其中一个目标将释放数据线以发送“1”,而另一个目标将尝试发送“0”。

  

image.png


  图5 该示例显示了地址为 7'h10 和 7'h14 的 I3C 仲裁。来源:微芯片

  “1”的发射器将失去仲裁,因为“1”由漏极开路配置被动驱动,而另一个目标主动置位“0”。完成传输序列的其余部分,您可以看到控制器收到的地址为 7'h10,而不是 7'h14。因此,设备B输掉了仲裁并停止了通信。在 I3C 仲裁中,高地址设备将始终丢失并让位于低地址设备。

  I3C:一系列新功能

  I3C带来了串行总线带宽的显着增加,以及一系列新功能。本文已经触及了总线的高级特性和功能,但并不是可能的特性和命令的详尽列表。有关 I3C 规范 可从MIPI联盟获得。

  Robert Perkel是Microchip Technology Inc.的8位MCU业务部门的应用工程师。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯