在過去的幾十年里,I2C的廣泛應用可以說是有目共睹,但是其本身也有著兩個避不開的缺點,一是速率受限,二是功耗偏大。此前也有不少SPI代替I2C的做法,但是SPI本身應用比較寬泛,最終也沒能替代I2C。隨著移動設備上傳感器數量的增加,總線上數據量開始膨脹,I2C的瓶頸越來越明顯。為了提升I2C的性能,早在2013年,MIPI聯盟傳感器接口工作組就啟動了基于I2C的需求升級。![]() 眾所周知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有著全面的提升。 |