I2C總線介紹
發布時間:2011/10/10 10:41:39 訪問次數:1850
I2C (Inter Intergrated Circuit)總線是一種用于lC器件之間連接的二線制總線。它通過兩根線(SDA,串行數據線;SCL,串行時鐘線)在連到總線上的器件之間傳送信息,根據地址識別每個器件(不管微控制器、LCD驅動器、存儲器還是鍵盤接口),根據器件的功能可以工作于發送或接收方式。 L6561
對于發送器和接收器而言,在進行數據傳送時可以是主器件,也可以是從器件。主器件用于啟動總線上傳送數據并產生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件。總線上主和從、發送和接收的關系不是永久的,而僅取決于此時數據傳送的方向。
SDA和SCL都是雙向I/O線,通過上拉電阻接正電源。當總線空閑時,2根線都是高電平。連接總線器件的輸出級必須是開漏或集電極開路,以具有“線與”功能。I2C總線上數據傳送的最高速率為lOOKbps,連到總線上器件數量僅受總線電容400pF的限制。
送到SDA線上的每個字節必須為8位,每次傳送的字節數不限,每個字節后面必須跟1個響應位。數據傳送時,先傳最高位。如果接收器件不能接收下一個字節(例如正在赴理一個內部中斷,在這個中斷處理完前就不能接收I2C總線上的數據字節),則可以使時鐘保持低電平,迫使主器件處于等待狀態。當從機準備好接收下一個數據字節釋放SCL線后繼續傳送。
數據傳送過程中,確認數據是必需的。認可位對應于主器件的一個時鐘,在此時鐘內發
送器件釋放SDA線,而接收器件必須將SDA線拉成低電平,使SDA在該時鐘的高電平期
間為穩定的低電平。
通常被尋址的接收器件必須在收到每個字節后做出響應,若從器件正在處理一個實時事件不能接收而不對地址認可時,從器件必需使SDA保持高電平,此時主器件產生一個結束信號使傳送異常結束。
發生在SDA線上的總線競爭是這樣進行的:如果一個主器件發送高電平,而另一個主器件發送一個低電平,此時發送電平與SDA總線上電平不對應的器件自動關掉其輸出級。當然,也可以有多個主器件參與競爭,這取決于I2C總線上主器件的數目。總線競爭可以在許多位上進行。第一級競爭是地址位的比較,如果主器件尋址同1個從器件,則下一步競爭進入數據位的比較,因為是利用I2C總線上信息進行仲裁,所以信息不會丟失。
在I2C總線上傳送信息時的時鐘同步是由連在SCL線上的器件的邏輯“與”完成的。SCL絨上由高到低的跳變將影響有關的器件,使它們開始低電平期。一旦一個器件時鐘跳為低電平,將使SCL線保持低電平直至該時鐘到達高電平。
當所有器件結束它們的低電平期時,時鐘線被釋放返回高電平。這樣使器件時鐘之間沒有差別,而所有的器件都同時開始它們的高電平期。之后,第一個結束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產生1個同步時鐘,時鐘低電平時間由時鐘低電平期最長的器件確定,而時鐘高電平時間由時鐘高電平期最短的器件確定。
I2C總線還設有廣播呼叫地址,用于尋址總線上的所有器件。若一個器件不需要廣播呼叫尋址中所提供的任何數據,該器件可以忽略該地址,不做響應。如果器件需要廣播呼叫尋址中提供的數據,則該器件應對地址做出響應。其表現為一個接收器。第二個和接著的數據字節為每個從器件所響應并接收處理。從器件對不能處理的字節應忽略,并不做出響應。
I2C總線可十分方便地用于構成由一個單片機和一些外圍器件組成的單片機系統。這樣的系統價格低,器件間總線簡單,結構緊湊。這種總線結構雖然沒有并行總線那么大的吞吐能力,但連接線和連接引腳少。在總線上加器件不影響其他器件,不影響系統正常的工作,系統修改和可擴展性好,同時,如果不同時鐘速度的器件連接到總線上,仍能確定總線時鐘。
I2C (Inter Intergrated Circuit)總線是一種用于lC器件之間連接的二線制總線。它通過兩根線(SDA,串行數據線;SCL,串行時鐘線)在連到總線上的器件之間傳送信息,根據地址識別每個器件(不管微控制器、LCD驅動器、存儲器還是鍵盤接口),根據器件的功能可以工作于發送或接收方式。 L6561
對于發送器和接收器而言,在進行數據傳送時可以是主器件,也可以是從器件。主器件用于啟動總線上傳送數據并產生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件。總線上主和從、發送和接收的關系不是永久的,而僅取決于此時數據傳送的方向。
SDA和SCL都是雙向I/O線,通過上拉電阻接正電源。當總線空閑時,2根線都是高電平。連接總線器件的輸出級必須是開漏或集電極開路,以具有“線與”功能。I2C總線上數據傳送的最高速率為lOOKbps,連到總線上器件數量僅受總線電容400pF的限制。
送到SDA線上的每個字節必須為8位,每次傳送的字節數不限,每個字節后面必須跟1個響應位。數據傳送時,先傳最高位。如果接收器件不能接收下一個字節(例如正在赴理一個內部中斷,在這個中斷處理完前就不能接收I2C總線上的數據字節),則可以使時鐘保持低電平,迫使主器件處于等待狀態。當從機準備好接收下一個數據字節釋放SCL線后繼續傳送。
數據傳送過程中,確認數據是必需的。認可位對應于主器件的一個時鐘,在此時鐘內發
送器件釋放SDA線,而接收器件必須將SDA線拉成低電平,使SDA在該時鐘的高電平期
間為穩定的低電平。
通常被尋址的接收器件必須在收到每個字節后做出響應,若從器件正在處理一個實時事件不能接收而不對地址認可時,從器件必需使SDA保持高電平,此時主器件產生一個結束信號使傳送異常結束。
發生在SDA線上的總線競爭是這樣進行的:如果一個主器件發送高電平,而另一個主器件發送一個低電平,此時發送電平與SDA總線上電平不對應的器件自動關掉其輸出級。當然,也可以有多個主器件參與競爭,這取決于I2C總線上主器件的數目。總線競爭可以在許多位上進行。第一級競爭是地址位的比較,如果主器件尋址同1個從器件,則下一步競爭進入數據位的比較,因為是利用I2C總線上信息進行仲裁,所以信息不會丟失。
在I2C總線上傳送信息時的時鐘同步是由連在SCL線上的器件的邏輯“與”完成的。SCL絨上由高到低的跳變將影響有關的器件,使它們開始低電平期。一旦一個器件時鐘跳為低電平,將使SCL線保持低電平直至該時鐘到達高電平。
當所有器件結束它們的低電平期時,時鐘線被釋放返回高電平。這樣使器件時鐘之間沒有差別,而所有的器件都同時開始它們的高電平期。之后,第一個結束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產生1個同步時鐘,時鐘低電平時間由時鐘低電平期最長的器件確定,而時鐘高電平時間由時鐘高電平期最短的器件確定。
I2C總線還設有廣播呼叫地址,用于尋址總線上的所有器件。若一個器件不需要廣播呼叫尋址中所提供的任何數據,該器件可以忽略該地址,不做響應。如果器件需要廣播呼叫尋址中提供的數據,則該器件應對地址做出響應。其表現為一個接收器。第二個和接著的數據字節為每個從器件所響應并接收處理。從器件對不能處理的字節應忽略,并不做出響應。
I2C總線可十分方便地用于構成由一個單片機和一些外圍器件組成的單片機系統。這樣的系統價格低,器件間總線簡單,結構緊湊。這種總線結構雖然沒有并行總線那么大的吞吐能力,但連接線和連接引腳少。在總線上加器件不影響其他器件,不影響系統正常的工作,系統修改和可擴展性好,同時,如果不同時鐘速度的器件連接到總線上,仍能確定總線時鐘。
上一篇:DS18820教字溫度傳感器
上一篇:PCF8574是CMOS電路
熱門點擊
- 電子基板技術
- 三極管截止、放大和飽和三種工作狀態
- 在橋式整流電路中若有一只二極管短路或開路將會
- 微電子、半導體
- 電阻器的常見種類
- MAX491芯片為RS-422/485擴展芯
- 耳塞式耳機的組裝及原理
- 基極偏置電路分析方法和三極管靜態電流的作用及
- 如何用萬用表對電感量進行測試?
- 電容器的串聯與并聯
推薦技術資料
- 單片機版光立方的制作
- N視頻: http://v.youku.comN_sh... [詳細]