I2C總線

I2C總線

雙向二線制同步串行總線
I2C總線是由Philips公司開發的一種簡單、雙向二線制同步串行總線。它隻需要兩根線即可在連接于總線上的器件之間傳送信息。[1]主器件用于啟動總線傳送數據,并産生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件.在總線上主和從、發和收的關系不是恒定的,而取決于此時數據傳送方向。如果主機要發送數據給從器件,則主機首先尋址從器件,然後主動發送數據至從器件,最後由主機終止數據傳送;如果主機要接收從器件的數據,首先由主器件尋址從器件.然後主機接收從器件發送的數據,最後由主機終止接收過程。在這種情況下.主機負責産生定時時鐘和終止數據傳送。
  • 中文名:I2C總線
  • 外文名:Inter-Integrated Circuit
  • 适用領域:
  • 所屬學科:
  • 模式:兩線式串行總線

工作原理

SDA(串行數據線)和SCL(串行時鐘線)都是雙向I/O線,接口電路為開漏輸出。需通過上拉電阻接電源VCC。當總線空閑時,兩根線都是高電平,連接總線的外同器件都是CMOS器件,輸出級也是開漏電路。在總線上消耗的電流很小,因此,總線上擴展的器件數量主要由電容負載來決定,因為每個器件的總線接口都有一定的等效電容。而線路中電容會影響總線傳輸速度。當電容過大時,有可能造成傳輸錯誤。所以,其負載能力為400pF,因此可以估算出總線允許長度和所接器件數量。

主器件用于啟動總線傳送數據,并産生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件。在總線上主和從、發和收的關系不是恒定的,而取決于此時數據傳送方向。如果主機要發送數據給從器件,則主機首先尋址從器件,然後主動發送數據至從器件,最後由主機終止數據傳送;如果主機要接收從器件的數據,首先由主器件尋址從器件。然後主機接收從器件發送的數據,最後由主機終止接收過程。在這種情況下。主機負責産生定時時鐘和終止數據傳送。

特征

I2C總線特點可以概括如下:

(1)在硬件上,I2C總線隻需要一根數據線和一根時鐘線兩根線,總線接口已經集成在芯片内部,不需要特殊的接口電路,而且片上接口電路的濾波器可以濾去總線數據上的毛刺。因此I2C總線簡化了硬件電路PCB布線,降低了系統成本,提高了系統可靠性。因為I2C芯片除了這兩根線和少量中斷線,與系統再沒有連接的線,用戶常用IC可以很容易形成标準化和模塊化,便于重複利用。

(2)I2C總線是一個真正的多主機總線,如果兩個或多個主機同時初始化數據傳輸,可以通過沖突檢測和仲裁防止數據破壞,每個連接到總線上的器件都有唯一的地址,任何器件既可以作為主機也可以作為從機,但同一時刻隻允許有一個主機。數據傳輸和地址設定由軟件設定,非常靈活。總線上的器件增加和删除不影響其他器件正常工作。

(3)I2C總線可以通過外部連線進行在線檢測,便于系統故障診斷和調試,故障可以立即被尋址,軟件也利于标準化和模塊化,縮短開發時間。

(4)連接到相同總線上的IC數量隻受總線最大電容的限制,串行的8位雙向數據傳輸位速率在标準模式下可達100Kbit/s,快速模式下可達400Kbit/s,高速模式下可達3.4Mbit/s。

(5)總線具有極低的電流消耗,抗高噪聲幹擾,增加總線驅動器可以使總線電容擴大10倍,傳輸距離達到15m;兼容不同電壓等級的器件,工作溫度範圍寬。

數據傳輸

字節格式

發送到SDA線上的每個字節必須為8位,每次傳輸可以發送的字節數量不受限制。每個字節後必須跟一個響應位。首先傳輸的是數據的最高位(MSB),如果從機要完成一些其他功能後(例如一個内部中斷服務程序)才能接收或發送下一個完整的數據字節,可以使時鐘線SCL保持低電平,迫使主機進入等待狀态,當從機準備好接收下一個數據字節并釋放時鐘線SCL後數據傳輸繼續。

應答響應

數據傳輸必須帶響應,相關的響應時鐘脈沖由主機産生。在響應的時鐘脈沖期間發送器釋放SDA線(高)。

在響應的時鐘脈沖期間,接收器必須将SDA線拉低,使它在這個時鐘脈沖的高電平期間保持穩定的低電平。

通常被尋址的接收器在接收到的每個字節後,除了用CBUS地址開頭的數據,必須産生一個響應。當從機不能響應從機地址時(例如它正在執行一些實時函數不能接收或發送),從機必須使數據線保持高電平,主機然後産生一個停止條件終止傳輸或者産生重複起始條件開始新的傳輸。

如果從機接收器響應了從機地址,但是在傳輸了一段時間後不能接收更多數據字節,主機必須再一次終止傳輸。這個情況用從機在第一個字節後沒有産生響應來表示。從機使數據線保持高電平,主機産生一個停止或重複起始條件。

如果傳輸中有主機接收器,它必須通過在從機發出的最後一個字節時産生一個響應,向從機發送器通知數據結束。從機發送器必須釋放數據線,允許主機産生一個停止或重複起始條件。

時鐘同步

所有主機在SCL線上産生它們自己的時鐘來傳輸I2C總線上的報文。數據隻在時鐘的高電平周期有效,因此需要一個确定的時鐘進行逐位仲裁。

時鐘同步通過線與連接I2C接口到SCL線來執行。這就是說SCL線的高到低切換會使器件開始數它們的低電平周期,而且一旦器件的時鐘變低電平,它會使SCL線保持這種狀态直到到達時鐘的高電平。但是如果另一個時鐘仍處于低電平周期,這個時鐘的低到高切換不會改變SCL線的狀态。因此SCL線被有最長低電平周期的器件保持低電平。此時低電平周期短的器件會進入高電平的等待狀态。

當所有有關的器件數完了它們的低電平周期後,時鐘線被釋放并變成高電平。之後,器件時鐘和SCL線的狀态沒有差别,而且所有器件會開始數它們的高電平周期。首先完成高電平周期的器件會再次将SCL線拉低。

這樣産生的同步SCL時鐘的低電平周期由低電平時鐘周期最長的器件決定,而高電平周期由高電平時鐘周期最短的器件決定。

尋址方式

7位尋址

第一個字節的頭7位組成了從機地址,最低位(LSB)是第8位,它決定了傳輸的方向。第一個字節的最低位是“0”,表示主機會寫信息到被選中的從機;“1”表示主機會向從機讀信息,當發送了一個地址後,系統中的每個器件都在起始條件後将頭7位與它自己的地址比較,如果一樣,器件會判定它被主機尋址,至于是從機接收器還是從機發送器,都由R/W位決定的哦。

10位尋址

10位尋址和7位尋址兼容,而且可以結合使用。

10位尋址采用了保留的1111XXX作為起始條件(S),或重複起始條件(Sr)的後第一個字節的頭7位。

10位尋址不會影響已有的7位尋址,有7位和10位地址的器件可以連接到相同的I2C總線。它們都能用于标準模式(F/S)和高速模式(Hs)系統。

保留地址位1111XXX有8個組合,但是隻有4個組合11110XX用于10位尋址,剩下的4個組合11111XX保留給後續增強的I2C總線。

10位從機地址是由在起始條件(S)或重複起始條件(Sr)後的頭兩個字節組成。

第一個字節的頭7位是11110XX的組合,其中最後兩位(XX)是10位地址的兩個最高位(MSB)。

第一個字節的第8位是R/W位,決定了傳輸的方向,第一個字節的最低位是“0”表示主機将寫信息到選中的從機,“1”表示主機将向從機讀信息。

如果R/W位是“0”,則第二個字節是10位從機地址剩下的8位;如果R/W位是“1”則下一個字節是從機發送給主機的數據。

模式

快速模式

快速模式器件可以在400kbit/s下接收和發送。最小要求是:它們可以和400kbit/s傳輸同步,可以延長SCL信号的低電平周期來減慢傳輸。快速模式器件都向下兼容,可以和标準模式器件在0~100kbit/s的I2C總線系統通訊。但是,由于标準模式器件不向上兼容,所以不能在快速模式I2C總線系統中工作。快速模式I2C總線規範與标準模式相比有以下特征:

1、最大位速率增加到400kbit/s;

2、調整了串行數據(SDA)和串行時鐘(SCL)信号的時序;

3、快速模式器件的輸入有抑制毛刺的功能,SDA和SCL輸入有施密特觸發器;

4、快速模式器件的輸出緩沖器對SDA和SCL信号的下降沿有斜率控制功能;

5、如果快速模式器件的電源電壓被關斷,SDA和SCL的I/O管腳必須懸空,不能阻塞總線;

6、連接到總線的外部上拉器件必須調整以适應快速模式I2C總線更短的最大允許上升時間。對于負載最大是200pF的總線,每條總線的上拉器件可以是一個電阻,對于負載在200pF~400pF之間的總線,上拉器件可以是一個電流源(最大值3mA)或者是一個開關電阻電路。

高速模式

高速模式(Hs模式)器件對I2C總線的傳輸速度有巨大的突破。Hs模式器件可以在高達3.4Mbit/s的位速率下傳輸信息,而且保持完全向下兼容快速模式或标準模式(F/S模式)器件,它們可以在一個速度混合的總線系統中雙向通訊。

Hs模式傳輸除了不執行仲裁和時鐘同步外,與F/S模式系統有相同的串行總線協議和數據格式。

高速模式下I2C總線規範如下:

1、Hs模式主機器件有一個SDAH信号的開漏輸出緩沖器和一個在SCLH輸出的開漏極下拉和電流源上拉電路。這個電流源電路縮短了SCLH信号的上升時間,任何時候在Hs模式,隻有一個主機的電流源有效;

2、在多主機系統的Hs模式中,不執行仲裁和時鐘同步,以加速位處理能力。仲裁過程一般在前面用F/S模式傳輸主機碼後結束;

3、Hs模式主機器件以高電平和低電平是1:2的比率産生一個串行時鐘信号。解除了建立和保持時間的時序要求;

4、可以選擇Hs模式器件有内建的電橋。在Hs模式傳輸中,Hs模式器件的高速數據(SDAH)和高速串行時鐘(SCLH)線通過這個電橋與F/S模式器件的SDA和SCL線分隔開來。減輕了SDAH和SCLH線的電容負載,使上升和下降時間更快;

5、Hs模式從機器件與F/S從機器件的唯一差别是它們工作的速度。Hs模式從機在SCLH和SDAH輸出有開漏輸出的緩沖器。SCLH管腳可選的下拉晶體管可以用于拉長SCLH信号的低電平,但隻允許在Hs模式傳輸的響應位後進行;

6、Hs模式器件的輸出可以抑制毛刺,而且SDAH和SCLH輸出有一個施密特觸發器;

7、Hs模式器件的輸出緩沖器對SDAH和SCLH信号的下降沿有斜率控制功能。

相關詞條

相關搜索

其它詞條