beat365·(中国)官方网站-手机版 Best App Store

/ EN
13922884048

技术交流

Technology Exchange
/
/

MIPI I3C 协议

发布时间:2024-04-09作者来源:beat365官方网站浏览:839

引言

随着物联网和嵌入式系统的迅猛发展,设备之间的通信需求变得越来越复杂。在这一背景下,I3C(MIPI I3C)协议应运而生,为连接多种传感器和外设提供了一种高效而灵活的解决方案。本文将详细介绍I3C协议,并通过对比I2C和SPI通信,展示其优势。

I2C 协议简介

I2C(Inter-Integrated Circuit)是一种基于主从结构的串行通信协议,常用于连接微控制器与传感器、存储器等外设。它使用两根线(时钟线SCL和数据线SDA)进行双向通信。

I2C的优点包括简单易用、适用于短距离通信等,但其缺点也显而易见,包括速度相对较慢、主从设备数量受限等。

SPI 协议简介

SPI(Serial Peripheral Interface)是一种同步串行通信协议,通过四根线(时钟线SCK、主设备输出从设备输入MOSI、主设备输入从设备输出MISO、片选线CS)进行通信。SPI通常用于连接微控制器与外设、存储器等。

SPI的优势在于高速传输、支持全双工通信等,但也存在线数较多、硬件连接较为复杂等缺点。

I3C 协议特点

I3C是由MIPI联盟开发与完善,它是基于I2C协议改进而来,诞生的目的是为了统一传感器通讯协议,随着Micro Chip的发展,MCU越来越强大,诞生了许多移动设备,这些移动设备主要使用I2C、SPI、Uart作为通讯协议,但并不统一,比如A传感器使用Uart,B传感器使用SPI,如果你想要在你的设备上使用这两个传感器那么需要在你的设备里集成Uart和SPI的通讯模块,这无疑大大增加了MCU走线布局,其次Uart和SPI使用的线较多,SPI用了4根线,虽然SPI可以达到较高的传输赫兹,但是使用的线数较多,而且不能解决多主多从的情况,而Uart需要至少三根线,其次是Uart很慢且内部中断需要额外的GPIO线。

I2C虽然两根线,但功能和传输速度都不算优秀,而且中断需要外接线,其次也不支持多主多从的情况。

同时这些协议有一个通病,就是不支持热拔插,如果设备在连接着突然断了,再次接入协议会影响继续通讯,热拔插是需要主设备恢复从设备的状态,这个情况就影响了低功耗,比如某些传感器在这一时刻需要进入低功耗模式,进入沉睡,那么此时唤醒就会导致无法继续正常工作。

为此MIPI在I2C的基础上诞生了I3C,它与I2C一样使用两根线,并且支持IBI中断和热拔插,同时频率可以达到较高的频率,因为它与I2C不同,I2C两根引脚使用的是开漏输出,开漏内部接地是无法输出高电平的,如果需要输出高电平必须外接上拉电阻才能实现高电平输出,但是电阻会阻碍电流导通,所以会比较耗时,I2C[敏感词]也才达到5MB,但是I3C可达12.5MB,并且功能比I2C强大许多且它支持I2C,向前兼容。

只有在推挽输出模式下I3C才可以达到12.5MB,并且特定模式下的频率可以达20MB

I3C(MIPI I3C)协议融合了I2C和SPI的优点,提供了更高的通信速度和更灵活的连接方式。以下是I3C协议的一些特点:

多主机支持:I3C协议允许多个主机设备同时连接总线,提高系统的可扩展性。

动态地址分配:I3C支持动态分配设备地址,简化了系统配置和维护。

高速模式:I3C在支持I2C设备的同时,还提供了更高的通信速度,满足对快速数据传输的需求。

数据方向交替:I3C采用半双工和全双工的混合通信方式,使得数据方向更加灵活。

推挽输出与漏极输出

I3C与I2C不同之处在于SCL和SDA线两根线分别使用了推挽与开漏:SCL(推挽输出时钟线),SDA(开漏输出数据线),而I2C则全部使用开漏输出,则全部需要外接上拉电阻,这就降低了时钟频率。

SCL电路:

图片

SDA电路:

图片


奇偶校验位

与I2C不同,I3C为了安全与可靠,第九位采用的是奇偶校验位,原始的I2C第九位为ACK信号,接收方收到这个信号时需要把SDA拉低已表示收到ACK信号并返回确认ACK信号告知主机已经接收完成,I3C第九位使用的是奇偶校验位,XOR (Data [7:0], 1),即所有位与1进行异或的结果,接收方接收到以后需要自行异或并与第九位做比较,如果相同则回复ACK确认,否则NACK要求重发

I3C总体下来每次传输数据可以说是传输十位

data[7 : 0] → T [0] → ACK [0]

I3C把这个位称之为T位,也叫过渡位/交换位

应答的方式

I2C:发送方将SCL拉高,随后将SDA也拉高,接收方需要在一个周期内将SDA拉低以回应确认收到信息,如果周期内没有拉低则代表NACK

I3C:发送方将SCL拉低,随后SDA拉高,从机需要将SDA拉低来确认ACK,如果不将SDA拉低则意味着NACK

I3C上因为SCL是推挽电路,但同时I3C仍然支持I2C的ACK确认方式,只是某些情况下I3C要求只能使用I3C的方式来进行ACK,这么做的目的是忽略掉总线上I2C的设备,例如分配动态地址是时不想让I2C设备参与进来那么久使用这个方式来忽略掉I2C设备,因为传统I2C设备只会在SCL拉高时来确认ACK,如果I3C将SCL拉低那么I2C设备会把此次通讯视为没有ACK讯息视为失败则放弃本次通讯。

I3C vs. I2C 和 SPI

下表对比了I3C、I2C和SPI协议的一些关键特点:

图片

通过对比可以看出,I3C协议在多方面具有优势,尤其是在支持多主机、动态地址分配和通信速度等方面。在一些对性能和灵活性要求较高的应用中,I3C协议成为一种理想的选择。

I3C协议的出现为嵌入式系统提供了一种更先进、更灵活的通信解决方案。它继承了I2C和SPI的优点,同时弥补了它们的不足之处。在未来的物联网和嵌入式应用中,我们有理由期待I3C协议的更广泛应用。

支持I3C的Microchip MCU

2023年9月26日,微芯(Microchip)率先推出PIC18-Q20 系列单片机(MCU)是业界[敏感词]具有多达两个I3C外设和多电压 I/O(MVIO)的低引脚数MCU。
PIC18-Q20 MCU采用14引脚和20引脚封装,尺寸小至3x3mm,是实时控制、触摸传感和连接应用的紧凑型解决方案。其I3C功能、灵活的外设和在三个独立电压域上工作的能力,非常适合在较大的整体系统中与主 MCU 配合使用。
该系列MCU可执行主MCU无法高效执行的任务,如处理传感器数据、处理低延迟中断和系统状态报告。中央处理器(CPU)在不同的电压域运行,而I3C外设的工作电压为1.0~3.6V。 
图片


免责声明:本文采摘自“大印蓝海科技”公众号,本文仅代表作者个人观点,不代表beat365官方网站及行业观点,只为转载与分享,支持保护知识产权,转载请注明原出处及作者,如有侵权请联系我们删除。

服务热线

0755-83044319

霍尔元件咨询

肖特基二极管咨询

TVS/ESD咨询

获取产品资料

客服微信

微信服务号

XML 地图