I2C總線的工作原理是什么?I2C總線可以如何應(yīng)用?
在這篇文章中,小編將為大家?guī)?lái)I2C總線的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。
一、I2C總線工作原理
SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)都是雙向I/O線,接口電路為開(kāi)漏輸出。需通過(guò)上拉電阻接電源VCC。當(dāng)總線空閑時(shí),兩根線都是高電平,連接總線的外同器件都是CMOS器件,輸出級(jí)也是開(kāi)漏電路。在總線上消耗的電流很小,因此,總線上擴(kuò)展的器件數(shù)量主要由電容負(fù)載來(lái)決定,因?yàn)槊總€(gè)器件的總線接口都有一定的等效電容。而線路中電容會(huì)影響總線傳輸速度。當(dāng)電容過(guò)大時(shí),有可能造成傳輸錯(cuò)誤。所以,其負(fù)載能力為400pF,因此可以估算出總線允許長(zhǎng)度和所接器件數(shù)量。
主器件用于啟動(dòng)總線傳送數(shù)據(jù),并產(chǎn)生時(shí)鐘以開(kāi)放傳送的器件,此時(shí)任何被尋址的器件均被認(rèn)為是從器件。在總線上主和從、發(fā)和收的關(guān)系不是恒定的,而取決于此時(shí)數(shù)據(jù)傳送方向。如果主機(jī)要發(fā)送數(shù)據(jù)給從器件,則主機(jī)首先尋址從器件,然后主動(dòng)發(fā)送數(shù)據(jù)至從器件,最后由主機(jī)終止數(shù)據(jù)傳送;如果主機(jī)要接收從器件的數(shù)據(jù),首先由主器件尋址從器件。然后主機(jī)接收從器件發(fā)送的數(shù)據(jù),最后由主機(jī)終止接收過(guò)程。在這種情況下。主機(jī)負(fù)責(zé)產(chǎn)生定時(shí)時(shí)鐘和終止數(shù)據(jù)傳送。
發(fā)送到SDA線上的每個(gè)字節(jié)必須為8位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB),如果從機(jī)要完成一些其他功能后(例如一個(gè)內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個(gè)完整的數(shù)據(jù)字節(jié),可以使時(shí)鐘線SCL保持低電平,迫使主機(jī)進(jìn)入等待狀態(tài),當(dāng)從機(jī)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)字節(jié)并釋放時(shí)鐘線SCL后數(shù)據(jù)傳輸繼續(xù)。
二、I2C總線的應(yīng)用
I2C總線的主要用途有以下幾點(diǎn):
1.用于外圍芯片的接口:I2C總線可以和可編程的外圍芯片進(jìn)行鏈接,如定時(shí)器,繼電器,存儲(chǔ)器和模擬電路,可以大大減少數(shù)據(jù)通訊和控制電路的連接線數(shù)量,降低系統(tǒng)復(fù)雜度,節(jié)省成本。
2.用于傳感器的接口:I2C總線可以實(shí)現(xiàn)各種類型的傳感器和微處理器或微控制器之間的高速通信,從而可以實(shí)現(xiàn)復(fù)雜的控制系統(tǒng),以及實(shí)時(shí)檢測(cè)和實(shí)時(shí)狀態(tài)監(jiān)測(cè)系統(tǒng);
3.用于顯示器:通過(guò)I2C總線,可以使處理器和顯示器之間的交互更加方便,如更新屏幕顯示數(shù)據(jù),實(shí)現(xiàn)更加人性化的系統(tǒng)控制;
4.用于模擬和數(shù)字芯片的接口:I2C總線用于主機(jī)和模擬和數(shù)字芯片之間的數(shù)據(jù)傳輸,同時(shí)也可以實(shí)現(xiàn)外設(shè)和外設(shè)之間的快速傳輸,這種鏈路通訊方式有助于滿足系統(tǒng)各部分通信協(xié)作和控制需求;
5.用于系統(tǒng)間的擴(kuò)展:I2C總線可以連接兩個(gè)或者更多的系統(tǒng),實(shí)現(xiàn)系統(tǒng)間的快速擴(kuò)展,避免系統(tǒng)因拓?fù)浣Y(jié)構(gòu)問(wèn)題而出現(xiàn)混亂情況。
I2C總線使用注意事項(xiàng)
當(dāng)使用I2C總線時(shí),除了遵循I2C總線規(guī)范,還需要注意以下幾個(gè)要點(diǎn):
1.I2C總線不支持多級(jí)主機(jī),只支持單級(jí),只有一個(gè)主機(jī)可以激活總線,這個(gè)主機(jī)負(fù)責(zé)控制和管理
總線的數(shù)據(jù)傳輸,多個(gè)主機(jī)存在時(shí),只能有一個(gè)處于激活狀態(tài),其他主機(jī)要進(jìn)行數(shù)據(jù)通信時(shí),必須先通知當(dāng)前主機(jī)放權(quán),再等待放權(quán)成功后才能激活。
2.I2C總線只支持先進(jìn)先出等單向數(shù)據(jù)傳輸,不支持雙向數(shù)據(jù)傳輸和多級(jí)傳輸。
3.主機(jī)要保證在總線上傳輸?shù)臄?shù)據(jù)字節(jié)不能超過(guò)1024字節(jié)。
4.在I2C總線中,主機(jī)只能改變數(shù)據(jù)傳輸?shù)乃俣龋瑥臋C(jī)只能接受主機(jī)傳輸?shù)臄?shù)據(jù)速度。
5.I2C總線的傳輸速度有低速模式(100 Kbps)和高速模式(400 Kbps),要求在1M歐姆外的環(huán)境范圍內(nèi)使用低速模式,在2M歐姆外的環(huán)境范圍內(nèi)使用高速模式。
經(jīng)由小編的介紹,不知道你對(duì)I2C總線是否充滿了興趣?如果你想對(duì)它有更多的了解,不妨嘗試度娘更多信息或者在我們的網(wǎng)站里進(jìn)行搜索哦。





