I2C
匯流排 | I2C
匯流排介紹I2C
匯流排介紹I2C(
Inter - Intergrated Circuit
)匯流排(也稱IIC或I2C)是由PHILIPS
公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置,是微電子通行控制領域廣泛採用的一種匯流排標準。它是同步通訊的一種特殊形式,具有介面少、控制方式簡單,器件封裝形式少、通訊速率高等優點。
(1)兩條匯流排線路:一條序列傳輸線(SDA),一條序列時鐘線(SCL:控制時序);
(2)每個連線到匯流排的器件都可以通過唯一的地址聯絡主機,同時主機可以作為主機傳送器或者主機傳送器或主機接收器;
(3)是一個真正的多主機匯流排,如果兩個或更多的主機同時初始化,資料傳輸可以通過衝突檢測和仲裁防止資料被破壞;
(4)序列的8位元雙向資料傳輸位速率在標準模式下可達
100kbit/s
,快速模式下可達400kbit/s
,高速模式下可達3.4Mbit/s
。
(5)連線到相同匯流排的
I2C
數量只受到匯流排的最大電容400pF
限制。
I2C
匯流排術語傳送器:傳送資料到匯流排的器件。
接收器:從匯流排接收資料的器件。
主機:初始化傳送產生的時鐘訊號和終止傳送的器件。
多主機:同時有多於一個主機嘗試控制匯流排但不破壞傳輸。
仲裁:是一個在有多個主機同時嘗試控制匯流排但只允許其中一個控制匯流排並使傳輸不被破壞的過程。
同步:兩個或多個器件同步時鐘訊號的過程。
I2C
匯流排位傳輸由於連線到
I2C
匯流排的器件有不同種類的工藝(CMOS
、NMOS
、雙極性),邏輯0
(低)和邏輯1
(高)的電平是不固定的,它是電源VCC
的相關電平決定,每傳輸一個資料位就產生一個時鐘脈衝,資料的有效形如下所示:
起始條件:
SCL
線是高電平時,SDA
線從高電平向低電平切換。
停止條件:
SCL
線是高電平時,SDA
線從低電平向高電平切換。
起始和停止條件一般都是由主機產生,匯流排在起始條件後被認為是處於忙碌狀態,在停止條件的某段時間後匯流排被認為處於空閒狀態。
傳送到
SDA
線上的每個位元組必須為8位元,每次傳輸可以傳送的位元組數量不受限制。每個位元組後必須跟一個響應位。首先傳輸的是資料的最高位(MSB
),如果從機要完成一些其他的功能後(如一個內部中斷服務程式)才能接受或者傳送下一個完整的資料位元組,可以使時鐘線SCL
保持低電平,迫使主機進入等待狀態,當主機準備好接收下一個資料位元組並釋放時鐘SCL
後,資料繼續傳輸。
資料傳輸必須帶響應位,相關的響應時鐘脈衝由主機產生。在響應的時鐘脈衝期間傳送器釋放
SDA
線(高)。在響應的時鐘脈衝期間,接收器必須將SDA
線拉低,使它在這個時鐘脈衝的高電平期間保持穩定的低電平。通常被定址的接收器在接收到每個位元組後,會產生一個響應。當從機不能響應從機地址時(如它正在執行一些實時函數不能接收或傳送),從機必須使傳輸線保持高電平,主機然後產生一個停止條件終止傳輸或者產生重複起始條件開始新的傳輸。
如果從機接收器響應了從機地址,但是在傳輸了一段時間後不能接收更多位元組,主機必須再一次終止傳輸。這個情況用從機在第一個位元組後沒有產生響應來表示。從機使傳輸線保持高電平,主機產生一個停止或重複起始條件。
如果傳輸中有主機接收器,它必須在從機不產生時鐘的最後一個位元組不產生響應,向從機傳送器通知資料結束。
從機接收器必須釋放傳輸線,允許主機產生一個停止或重複起始條件。
IIC
匯流排定址方式第一個位元組的頭七位組成了從機地址,最低位(
LSB
)是第8位元,它決定了普通的和帶重複開始條件的7位地址格式方向。第一個位元組的最低位是「0」,表示主機會寫資訊到被選中的從機;「1」表示主機會向從機讀資訊。當傳送一個地址後,系統中的每個器件都在起始條件後將頭7位與它的自己的地址進行比較,如果一樣,器件會判定它被主機定址,至於是從機接收器還是從機傳送器,都有R/W
位決定。
10位定址與7位定址相容,而且可以結合使用。
10位定址採用了保留的
1111XXX
作為起始條件,或重複起始條件的後第一個位元組的頭7位。10位定址不會影響已有的7位定址,有7位和10位地址的器件都可以連線IIC
匯流排的10位地址格式到相同的IIC
匯流排。它們都能用於標準模式和高速模式系統。
10位從機地址由起始條件或重複起始條件後的頭兩個位元組組成。
第一個位元組的頭7位是
11110XX
的組合,其中最後兩位XX是10位地址的兩個最高位(MSB
)。第一個位元組的第8位元是R/W
,決定傳輸的方向。第一個位元組的最低位是「0」,表示主機將寫資訊到選中的從機,「1」表示主機將向從機讀資訊。如果R/W位是「0」,則第二位元組是10位從機地址剩下的8位元;如果R/W
位是「1」,則下一個位元組是從機發給主機的資料。
快速模式器件可以在
400kbit/s
下接收和傳送。
快速模式可以向下相容,可以和標準模式器件在
0~100kbit/s
的IIC
匯流排系統通訊。
高速模式(
Hs
模式)可以在高達3.4Mbit/s
的位速率下傳輸資訊。
向下相容快速模式和標準模式器件。
高速模式傳輸除了不執行仲裁和時鐘同步外,與快速模式系統有相同的序列匯流排協定和資料格式。