在过去的几十年里,I2C的广泛应用可以说是有目共睹,但是其本身也有着两个避不开的缺点,一是速率受限,二是功耗偏大。此前也有不少SPI代替I2C的做法,但是SPI本身应用比较宽泛,最终也没能替代I2C。随着移动设备上传感器数量的增加,总线上数据量开始膨胀,I2C的瓶颈越来越明显。为了提升I2C的性能,早在2013年,MIPI联盟传感器接口工作组就启动了基于I2C的需求升级。
I3C作为I2C的升级版,在使用功率和性能方面有重大改进,同时速率也升级到可以替代SPI的中速,相当于SPI 30MHz下的速率。I3C规范的主要制定者包括NXP,Qualcomm,Intel,还有Invensense,TI,STM,Synopsys,Cadence,Mentor,Sony,Knowles,Lattice这些提供助力的厂商。
众所周知I2C是两根线,但是它的中断脚、使能脚等等都要通过GPIO连到SoC上,随着传感器数量的增加,使用I2C只能不断增加GPIO。I3C将这些中断做成了内置,可以帮SoC省去很多GPIO。I3C也是向后兼容I2C,I2C可以平稳地过渡到I3C。这一升级有效助力了智能手机、可穿戴设备、物联网设备、增强现实/虚拟现实和汽车系统实现更多设计创新。
从上图I2C与I3C传感器接口框图对比可以很明显地看到,虽然I2C说是只有时钟线数据线,但是还需要很多额外的从线连到SoC上,GPIO数量的增加以添加SoC包引脚和PCB层计数的形式增加了系统成本,相比之下I3C的布线情况就简洁很多,只需要两根信号线即可,可以显著缩小SoC尺寸。
至于功耗,众所周知I2C的两根线SCL和SDA都是需要接上拉电阻的,上拉电阻的存在导致了I2C功耗会比较大,I3C的SCL全程采用推挽,SDA大部分时间也在推挽模式下工作,因此功耗会降低很大一部分。速率上I2C典型的速率有3 Mbps max at 3.4 MHz(Hs)、0.8 Mbps max at 1 MHz(Fm+)、0.35 Mbps max at 400 KHz(Fm)。I3C典型的数据模式SDR是12MHz下的10.6Mbps,最高速率是HDR模式下的三元采样,达到12.5MHz下的30Mbps。
另外,I2C是没有命令字的,I3C则有着一整套通用命令字的集合。可以通过这些命令字实现动态地址分配、检查当前总线状态、时间控制、IO扩展等等功能。整个功能比I2C有着全面的提升。
|