文章目錄
1 前言
常見的板級間通信總線有i2c、spi、uart、i2s等,這類總線常用於ADC、DAC、傳感器、觸摸屏等等外設中;i2s則用於傳輸音頻信息,在音頻ADC和DAC中應用。隨着物聯網的應用越來越廣泛,涌現各類傳感器,溫度、氣壓、心率、陀螺儀,傳統傳感器一般是以i2c、spi、uart爲接口,隨着傳感器種類的激增和對性能與功耗的要求,暴露出總線的一部分缺陷,典型的問題有幾點。
- 功耗問題,i2c、spi、uart設計之初並未考慮到低功耗問題,物聯網應用對於功耗要求十分苛刻
- i2c、spi、uart都是隻支持單一主機
- i2c、spi是同步通信,必須由主機端(處理器)發起時鐘進行通信,從機端沒法主動向主機傳輸數據
- i2c、spi一般需增加中斷線通知主機來讀取數據,隨着傳感器增加,佔用大量IO口和中斷資源
- uart是異步通信,雖然沒有第三第四點的缺陷,但其是點對點通信,一個總線只能掛一個從設備
基於上述問題,MIPI主導並提出了i3c總線,可以解決現有問題,適用於多個傳感器的場合。
2 i3c總線接口
2.1 什麼是i3c
i2c全稱是Inter Integrated Circuit
,i3c是MIPI(Mobile Industry Processor Interface)移動產業處理器接口聯盟推出的改進型i2c總線接口,全稱是Improved Inter Integrated Circuit
,因此簡稱爲i3c。i3c仍然是採用2根通信線,一根數據線SDL,一根時鐘線SCL。i3c向下兼容i2c,也就是i3c總線可以掛載傳統i2c接口的器件,使用很是方便。MIPI聯盟的新接口標準旨在通過減少傳感器系統集成的物理引腳來實現傳感器通訊的標準化,提供一個快速、低成本、低功耗、兩線數字接口標準。
注
i3c向下兼容i2c,但不兼容10bit的i2c擴展地址
2.2 i3c的特點
i3c除了向下兼容i2c的特點外,最重要是引入了自身特有的功能,以適應物聯網應用的需求發展。
低目標電壓
i3c標準的目標電平電壓是3.3V、1.8V、1.2V,甚至更低。
支持軟中斷
傳統i2c、spi接口需增加中斷線通知主控制器,i3c支持軟中斷,無需外部中斷線,傳感器數目多的情況下,節約IO引腳和中斷資源。i3c軟中斷的基本原理是,當總線處於空閒狀態時,從設備可以通過中斷機制發送一個"START"
信號,然後主設備會爲從設備提供一個時鐘信號,從設備可以通過主設備提供的分配地址將設備驅動到總線上來啓動中斷。如果此時有多個從設備嘗試啓動中斷,則地址最小的從設備獲得此次仲裁。同時主設備發出ACK信號響應此次中斷並重新啓動總線或者繼續從從設備接收數據,也可以發出NACK信號來結束通信。
支持數據內命令碼,錯誤檢查
支持多個主機
i3c不僅支持多個從設備,還支持多個主設備。i3c總線上可以支持的設備有:
- Main Master(當前主設備)
- Secondary master(輔助主設備)
- i3c Slave(i3c從設備)
- i2c Slave(i2c從設備)
支持熱插拔
熱插拔特性可以讓i3c從設備在不工作時處理睡眠或者關閉狀態,需使用時才掛載到總線上使用,進一步達到降低功耗的目的。
支持動態地址
i3c支持動態地址,同時可以分配7bit靜態地址以適配傳統i2c 從設備。i3c從設備地址由主設備仲裁,但並不是所有設備地址都可用,部分地址是i3c標準所保留的,用於後期拓展或者錯誤仲裁。
功耗低,通信速率高
i3c支持從12.5 Mbps到接近37.5 Mbps的通信速率。
支持多種通信模式
i3c支持4種通信模式,分別是SDR、HDR-DDR、HDR-TSL、HDR-TSP,不同模式通信速率有差異。
- SDR 模式:12.5Mbit/s
- HDR-DDR模式: 25Mbit/s
- HDR-TSL模式:30 Mbit/s
- HDR-TSP模式:37.5 Mbit/s
上述i3c特點,傳統i2c、spi、uart所不具備的,因此彌補了前面提及的弊端。
2.3 i3c 時序圖
起始信號
起始時序與i2c一致,當SCL線爲高電平是,SDA線由高電平到低電平變化。
停止時序
停止時序與i2c一致,當SCL線爲高電平是,SDA線由低電平到高電平變化。
數據傳輸時序
i3c傳輸1位數據時需要一個時鐘脈衝,配合主設備的時鐘信號完成數據逐位傳輸。在進行數據傳輸時,SCL線爲高電平時SDA線電平保持穩定,低電平表示數據0,高電平表示數據1;在SCL線爲低電平時允許SDA線電平變化。
完整時序圖
2.4 i3c應用場景
- 多傳感器領域,節約總線IO
- 物聯網領域,功耗低
- 傳統i2c、spi、uart設備接口中
- camera、touch panel
- i3c向下兼容i2c,可與傳統i2c接口器件一起使用
2.5 i3c不適用的場景
- 帶寬要求超出了i3c接口的理論最大值
- 長距離通信,即使可以通過i3c中繼線延長通信鏈路
- 高吞吐量的數據流器件,如音視頻數據傳輸
i3c相比i2c要複雜得很多很多,前面只是提及其主要特點,關於其實現原理、支持模式、糾錯原理過程等,進一步深入研究,可以參考官方協議文檔。
3 總結
通過對比分析,i3c繼承了i2c、spi、uart的優點,並增加了新的特性,實現了一個快速、低成本、低功耗、掛載節點數目多的總線標準。i3c將會像type-c統一外部接口(充電、數據傳輸)一樣,統一板間通信,解決接口碎片化問題。但目前只是初步階段,支持i3c接口的cpu和外設比較少,傳統i2c、spi、uart依然是主流。
可以通過一個表格,對比幾種總線的特性。
通信接口 | uart | i2c | spi | i3c |
---|---|---|---|---|
線數 | 2 | 2 | 4 | 2 |
最大通信速率 | 典型115200bps | 3Mbps | 60Mbps | 37.5Mbps |
主設備 | 單一 | 單一 | 單一 | 支持多個 |
從設備 | 點對點 | 多個 | 多個 | 多個 |
軟中斷 | 不支持 | 不支持 | 不支持 | 支持 |
熱插拔 | 不支持 | 不支持 | 不支持 | 支持 |
從設備地址 | 不支持 | 靜態地址 | 不支持 | 靜態和動態地址 |
4 參考文章
【1】I3C 總線協議詳細解析(第一章)
【2】mipi i3c官網