I2C學習筆記 1 I2C基礎知識

2021-10-06 16:24:03 字數 2047 閱讀 4687

根據網上搜尋到的各種資料通過自己的理解來編寫學習i2c通訊的筆記,希望接下來的內容能幫助到想掌握i2c卻又無從下手的新人。

i2c是inter integrated-circuit的縮寫,是由飛利浦公司開發的一種非常簡單的同步二進位制雙向匯流排。由於結構的簡單,i2c廣泛應用於各大廠商。i2c是半雙工匯流排,適合於在晶元之間進行近距離的資料通訊,是晶元級的匯流排

tip:半雙工即half duplex communication,是指在通訊過程的任意時刻,資訊既可由a傳到b,又能由b傳a,但只能有乙個方向上的傳輸存在。即a或b不能同時接收和傳送資料。

如圖所示,i2c匯流排由sda(資料線)、scl(時鐘線)兩條線構成。為了實現i2c匯流排的線與功能,sda與scl必須設定為開漏輸出模式。i2c匯流排經過上拉電阻接到電源上,匯流排空閒時,兩根線均為高電平,匯流排上的任意器件輸出低電平都會使匯流排拉低,各器件的sda和scl為「線與」關係。

tip:3.3v系統上拉電阻一般取3.3kω,5v系統上拉電阻一般取4.7kω。

由於連線i2c器件的工藝不同,邏輯「0」(低電平)與邏輯「1」(高電平)不是固定的。每傳輸乙個資料位,就會產生乙個時鐘脈衝。

sda 線上的資料必須在scl的高電平週期保持穩定,sda的高或低電平狀態只有在 scl 線的時鐘訊號是低電平時才能改變。

i2c的scl線一般由主機控制,每個主機產生自己的時鐘訊號,主機發出的匯流排時鐘訊號只有在以下的情況才能被改變 :

1.慢速的從機器件控制時鐘線並延長時鐘訊號

2.在發生仲裁時被另乙個主機改變

i2c含有多種傳輸速率模式。

模式速率

標準100kbit/s

快速400kbit/s

快速+1mbit/s

高速3.4mbit/s

i2c是多主機匯流排,匯流排上的器件沒有主從之分,都處於平等地位,這就是說可以連線多於乙個能控制匯流排的器件到匯流排。當匯流排空閒時(高電平),任何器件都可以向匯流排傳送資訊。

i2c匯流排通過定址的方式來實現主從機之間的通訊。每個器件都有乙個唯一的位址,無論是mcu, lcd驅動器,eerom都可以作為乙個傳送器或接收器,由器件的功能決定。很明顯lcd驅動器只是乙個接收器,而eerom則既可以接收又可以傳送資料。除了傳送器和接收器外,器件在執行資料傳輸時也可以被看作是主機或從機,主機是初始化匯流排的資料傳輸並產生允許傳輸的時鐘訊號的器件,此時任何被定址的器件都被認為是從機。

i2c的同步通過scl的線與機制來執行,scl預設為高電平,當器件時鐘為低電平時,scl為低電平,直到器件從低變回高電平。當存在另乙個器件時鐘處於低電平時,這個器件時鐘從低到高的變化將影響不到scl的狀態,也就是說,scl線被有最長低電平週期的器件保持低電平,低電平周期短的器件會進入高電平的等待狀態

scl 線是高電平時,仲裁在 sda 線發生,這樣其他主機傳送低電平時,傳送高電平的主機將斷開它的資料輸出級,因為匯流排上的電平與它自己的電平不相同。最總擁有最長低電平週期資料的器件獲得仲裁的勝利。

i2c匯流排的位址和資料資訊由贏得仲裁的主機決定,在仲裁過程中不會丟失資訊。

時鐘同步機制除了在仲裁過程中使用外還可以用於使能接收器處理快速資料傳輸。

在快速傳輸中器件可以快速接收資料位元組但需要更多時間儲存接收到的位元組或準備另乙個要傳送的位元組,然後從機以一種握手過程在接收和響應乙個位元組後使 scl 線保持低電平迫使主機進入等待狀態直到從機準備好下乙個要傳輸的位元組。

i2c學習筆記

1.1 i2c匯流排知識 1.1.1 i2c匯流排物理拓撲結構 i2c 匯流排在物理連線上非常簡單,分別由sda 序列資料線 和scl 序列時鐘線 及上拉電阻組成。通訊原理是通過對scl和sda線高低電平時序的控制,來產生i2c匯流排協議所需要的訊號進行資料的傳遞。在匯流排空閒狀態時,這兩根線一般被...

I2C學習筆記

i2c簡介 i2c inter integrated circuit 匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。它是同步通訊的一種特殊形式,具有介面線少,控制方式簡單,器件封裝形式小,通訊速率較高等優點。i2c匯流...

I2C學習記錄

i2c inter integrated circuit 匯流排是由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。通過序列資料 sda 線和序列時鐘 scl 線在連線到匯流排的器件間傳遞資訊。通過序列資料 sda 線和序列時鐘 ...