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