MIPI 联盟2018年发布了 I3C(发音为“eye-three-see”)总线规范的第 1 版,这应该是对长期存在的 I2C 和 SPI 协议的改进。与 I2C/SPI 相比,I3C 提供更高的数据速率、更低的功耗和附加功能,例如动态地址分配、主机加入、带内中断。
官网
https://www.mipi.org/specifications/i3c-sensor-specification
https://www.nxp.com/products/product-information/ip-block-licensing/mipi-i3c:MIPI
目前随着手机等移动设备包含的sensor越来越多,传统应用在sensor上的I2C/SPI接口的局限性也越来越明显,典型的缺陷如下:
- 1、sensor等设备的增加,对控制总线的速度和功耗提出了更加严苛的要求;
- 2、虽然I2C是一种2线接口,但是往往此类device需要额外增加一条中断INT信号线;
处于解决上述问题的原因,推出了I3C的接口总线和协议,下面一起来看下I3C总线的特性。
I3C的应用场景
从上图中我们可以看到:
- 1、I3C总线可以应用在各种sensor中;
- 2、可以使用在任何传统的I2C/SPI/UART等接口的设备中。
什么是I3C
I3C吸纳了I2C和SPI的关键特性,并将其统一起来,同时在I2C的基础上,保留了2线的串行接口结构,这样工程师就可以在单个设备中连接大量的传感器。
从上图中我们可以将特性具体一下:
- 1、I3C总线可以支持multi-master即多主设备
- 2、I3C总线与传统的I2C设备仍然是兼容的
- 3、可以支持软中断
- 4、相比较于I2C总线的功耗更低
- 5、速度更快,可以支持到12.5MHZ
从下图中可以看到在传统的I2C接口设备中包含了太多的I/0口了(碎片式的接口),将之(I2C/SPI)替换成I3C之后可以节省很大部分的信号线(省去了中断信号的一根线EINT,若取代SPI,可以省的更多)的开销,在布局布线时也更方便.
按照目前MIPI联盟的规划,I3C总线在将来除了应用sensor之外,还有如下的应用领域:camera、TP等
I3C接口协议
从上图就可以很清楚的看到I3C总线的应用了,I3C总线中支持多主设备,同时兼容I2C。
其中支持设备的具体类型有:
- 1、I3C主设备
SDR-only master
- 2、I3C secondary MASTER
SDR-only secondary master(注意是slave of main master,即相比较主设备而言仍然时从设备)
- 3、I3C 从设备
SDR only slave
- 4、I2C slave
上图为I3C的串行clk和data传输的波形,注意下方的标注:SDA的接口为开漏结构,而SCL的接口为推挽结构!
新的 I3C 特性解释
带内中断
2 线 I3C 接口使用推挽时钟线 (SCL) 和开漏数据线 (SDA)。SDA 允许从设备控制数据线并启动中断。(SPI 和 I2C 只能通过使用第三条专用线提供从设备中断。)I3C 从设备可以在总线空闲时请求中断。I3C 通过允许最低分配地址获胜来仲裁来自多个从设备的冲突。
热连接
热连接描述了一种事件,在该事件中,I3C 从设备在总线配置后被允许加入 I3C 总线,从而使传感器能够在需要之前关闭。
增加的吞吐量
主时钟使用 SCL 将通信总线计时到 12.5 MHz。I3C 支持多种类型的设备:I3C 主主机、I3C 辅助主机、I3C 从机和 I2C 从机。I3C 有一个标准化的程序,主机可以动态地为所有 I3C 设备分配 7 位地址,并支持同一总线上 I2C 设备的静态设备地址。I3C 提供四种数据传输模式,可有效提供 11.1、20、23.5 和 33.3 Mbps 的数据比特率,包括 I3C 比特率错误检测。
动态寻址
I2C 使用静态寻址。这里的问题之一是,对于使用 I2C 总线的产品,供应商可能使用与另一供应商相同的地址,从而导致集成过程中出现问题。I3C 通过为 I3C 总线上的设备提供寻址解决了这个问题。
I2C 与 I3C 协议:差异和相似之处
I2C总线
I2C(内部集成电路)是一种板载通信协议,非常适合短距离和低带宽。它具有主从架构,其中所有从机都通过两条线连接到主机:串行数据线 (SDA) 和串行时钟线 (SCL)。I2C 通常用于在集成电路内将低速外围设备(例如传感器)短距离连接到处理器和微控制器。
优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
I2C 协议定义了数据的发送方式。最初,主设备发出一个开始条件后跟与之通信的从设备的地址。一旦合适的从机识别了它的地址,它就会搜索主机发出的渐进式读/写标志。这个标志告诉从机它是否可以接收数据或发送数据。一旦从站确认了主站,通信就会继续。
I2C 的一个特点是内置测试系统:接收方使用 ACK 或 NAK 确认每个数据字节,以通知发送方是否已收到数据。一旦主机完成与寻址从机的通信,它就会发出一个停止条件以表示传输结束。在停止条件之后,可以开始与其他从设备的通信。
I2C 与 I3C 协议分析仪:异同
I3C 最初旨在作为移动应用程序中使用的所有数字连接传感器的唯一接口。该总线还适用于所有中高速嵌入式应用,包括传感器、电源控制器、执行器、MCU 和 FPGA。I3C 建立在并增强了 I2C 的特性和优势,同时保持向后兼容性。该接口可用于许多应用,因为它以非常低的功率水平提供高速数据传输,同时允许主机处理器和外设之间的多点,这对于任何嵌入式系统都是非常理想的。
I2C 与 I3C:区别在哪里?
- 移动设备(智能手机和物联网设备)的节能和节省空间设计。
- 双极接口,它是I2C 标准的超集。较旧的 I2C 从设备可以连接到较新的总线。
- 串行总线上的带内中断,而不需要单独的引脚。
- 当使用 CMOS I/O 级别时,标准数据速率 (SDR) 吞吐量高达 12.5 Mbps
- HDR(高数据速率)模式提供了与 SPI 相当的吞吐量,但只需要 I2C 快速模式性能的一小部分。
- 一组标准化的通用命令代码
- 支持命令队列
- 错误检测和恢复(SDR 模式下的奇偶校验和 HDR 模式下的 5 位 CRC)
- I3C 从设备的动态地址分配 (DAA),但仍支持旧 I2C 设备的静态地址
- 热连接(总线上的某些设备可以在操作期间打开和关闭)
- 具有明确定义传输的多主操作
- 四个标准模式 (SDR) 下的 I3C 总线可以支持不同的设备类别
原文:OpenFPGA
作者:碎碎思
相关文章推荐