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