服務(wù)熱線
0755-83044319
發(fā)布時間:2024-04-09作者來源:薩科微瀏覽:1566
I2C 協(xié)議簡介
I2C(Inter-Integrated Circuit)是一種基于主從結(jié)構(gòu)的串行通信協(xié)議,常用于連接微控制器與傳感器、存儲器等外設(shè)。它使用兩根線(時鐘線SCL和數(shù)據(jù)線SDA)進(jìn)行雙向通信。
I2C的優(yōu)點包括簡單易用、適用于短距離通信等,但其缺點也顯而易見,包括速度相對較慢、主從設(shè)備數(shù)量受限等。
SPI 協(xié)議簡介
SPI(Serial Peripheral Interface)是一種同步串行通信協(xié)議,通過四根線(時鐘線SCK、主設(shè)備輸出從設(shè)備輸入MOSI、主設(shè)備輸入從設(shè)備輸出MISO、片選線CS)進(jìn)行通信。SPI通常用于連接微控制器與外設(shè)、存儲器等。
SPI的優(yōu)勢在于高速傳輸、支持全雙工通信等,但也存在線數(shù)較多、硬件連接較為復(fù)雜等缺點。
I3C 協(xié)議特點
I3C是由MIPI聯(lián)盟開發(fā)與完善,它是基于I2C協(xié)議改進(jìn)而來,誕生的目的是為了統(tǒng)一傳感器通訊協(xié)議,隨著Micro Chip的發(fā)展,MCU越來越強(qiáng)大,誕生了許多移動設(shè)備,這些移動設(shè)備主要使用I2C、SPI、Uart作為通訊協(xié)議,但并不統(tǒng)一,比如A傳感器使用Uart,B傳感器使用SPI,如果你想要在你的設(shè)備上使用這兩個傳感器那么需要在你的設(shè)備里集成Uart和SPI的通訊模塊,這無疑大大增加了MCU走線布局,其次Uart和SPI使用的線較多,SPI用了4根線,雖然SPI可以達(dá)到較高的傳輸赫茲,但是使用的線數(shù)較多,而且不能解決多主多從的情況,而Uart需要至少三根線,其次是Uart很慢且內(nèi)部中斷需要額外的GPIO線。
I2C雖然兩根線,但功能和傳輸速度都不算優(yōu)秀,而且中斷需要外接線,其次也不支持多主多從的情況。
同時這些協(xié)議有一個通病,就是不支持熱拔插,如果設(shè)備在連接著突然斷了,再次接入?yún)f(xié)議會影響繼續(xù)通訊,熱拔插是需要主設(shè)備恢復(fù)從設(shè)備的狀態(tài),這個情況就影響了低功耗,比如某些傳感器在這一時刻需要進(jìn)入低功耗模式,進(jìn)入沉睡,那么此時喚醒就會導(dǎo)致無法繼續(xù)正常工作。
為此MIPI在I2C的基礎(chǔ)上誕生了I3C,它與I2C一樣使用兩根線,并且支持IBI中斷和熱拔插,同時頻率可以達(dá)到較高的頻率,因為它與I2C不同,I2C兩根引腳使用的是開漏輸出,開漏內(nèi)部接地是無法輸出高電平的,如果需要輸出高電平必須外接上拉電阻才能實現(xiàn)高電平輸出,但是電阻會阻礙電流導(dǎo)通,所以會比較耗時,I2C[敏感詞]也才達(dá)到5MB,但是I3C可達(dá)12.5MB,并且功能比I2C強(qiáng)大許多且它支持I2C,向前兼容。
只有在推挽輸出模式下I3C才可以達(dá)到12.5MB,并且特定模式下的頻率可以達(dá)20MB
I3C(MIPI I3C)協(xié)議融合了I2C和SPI的優(yōu)點,提供了更高的通信速度和更靈活的連接方式。以下是I3C協(xié)議的一些特點:
多主機(jī)支持:I3C協(xié)議允許多個主機(jī)設(shè)備同時連接總線,提高系統(tǒng)的可擴(kuò)展性。
動態(tài)地址分配:I3C支持動態(tài)分配設(shè)備地址,簡化了系統(tǒng)配置和維護(hù)。
高速模式:I3C在支持I2C設(shè)備的同時,還提供了更高的通信速度,滿足對快速數(shù)據(jù)傳輸?shù)男枨蟆?/span>
數(shù)據(jù)方向交替:I3C采用半雙工和全雙工的混合通信方式,使得數(shù)據(jù)方向更加靈活。
I3C與I2C不同之處在于SCL和SDA線兩根線分別使用了推挽與開漏:SCL(推挽輸出時鐘線),SDA(開漏輸出數(shù)據(jù)線),而I2C則全部使用開漏輸出,則全部需要外接上拉電阻,這就降低了時鐘頻率。
SCL電路:
SDA電路:
奇偶校驗位
與I2C不同,I3C為了安全與可靠,第九位采用的是奇偶校驗位,原始的I2C第九位為ACK信號,接收方收到這個信號時需要把SDA拉低已表示收到ACK信號并返回確認(rèn)ACK信號告知主機(jī)已經(jīng)接收完成,I3C第九位使用的是奇偶校驗位,XOR (Data [7:0], 1),即所有位與1進(jìn)行異或的結(jié)果,接收方接收到以后需要自行異或并與第九位做比較,如果相同則回復(fù)ACK確認(rèn),否則NACK要求重發(fā)
I3C總體下來每次傳輸數(shù)據(jù)可以說是傳輸十位
data[7 : 0] → T [0] → ACK [0]
I3C把這個位稱之為T位,也叫過渡位/交換位
應(yīng)答的方式
I2C:發(fā)送方將SCL拉高,隨后將SDA也拉高,接收方需要在一個周期內(nèi)將SDA拉低以回應(yīng)確認(rèn)收到信息,如果周期內(nèi)沒有拉低則代表NACK
I3C:發(fā)送方將SCL拉低,隨后SDA拉高,從機(jī)需要將SDA拉低來確認(rèn)ACK,如果不將SDA拉低則意味著NACK
I3C上因為SCL是推挽電路,但同時I3C仍然支持I2C的ACK確認(rèn)方式,只是某些情況下I3C要求只能使用I3C的方式來進(jìn)行ACK,這么做的目的是忽略掉總線上I2C的設(shè)備,例如分配動態(tài)地址是時不想讓I2C設(shè)備參與進(jìn)來那么久使用這個方式來忽略掉I2C設(shè)備,因為傳統(tǒng)I2C設(shè)備只會在SCL拉高時來確認(rèn)ACK,如果I3C將SCL拉低那么I2C設(shè)備會把此次通訊視為沒有ACK訊息視為失敗則放棄本次通訊。
I3C vs. I2C 和 SPI
下表對比了I3C、I2C和SPI協(xié)議的一些關(guān)鍵特點:
通過對比可以看出,I3C協(xié)議在多方面具有優(yōu)勢,尤其是在支持多主機(jī)、動態(tài)地址分配和通信速度等方面。在一些對性能和靈活性要求較高的應(yīng)用中,I3C協(xié)議成為一種理想的選擇。
I3C協(xié)議的出現(xiàn)為嵌入式系統(tǒng)提供了一種更先進(jìn)、更靈活的通信解決方案。它繼承了I2C和SPI的優(yōu)點,同時彌補(bǔ)了它們的不足之處。在未來的物聯(lián)網(wǎng)和嵌入式應(yīng)用中,我們有理由期待I3C協(xié)議的更廣泛應(yīng)用。
支持I3C的Microchip MCU
免責(zé)聲明:本文采摘自“大印藍(lán)海科技”公眾號,本文僅代表作者個人觀點,不代表薩科微及行業(yè)觀點,只為轉(zhuǎn)載與分享,支持保護(hù)知識產(chǎn)權(quán),轉(zhuǎn)載請注明原出處及作者,如有侵權(quán)請聯(lián)系我們刪除。
友情鏈接:站點地圖 薩科微官方微博 立創(chuàng)商城-薩科微專賣 金航標(biāo)官網(wǎng) 金航標(biāo)英文站
Copyright ?2015-2024 深圳薩科微半導(dǎo)體有限公司 版權(quán)所有 粵ICP備20017602號-1