IIC匯流排詳細介紹

2021-10-04 19:24:32 字數 1829 閱讀 3526

iic匯流排是由飛利浦公司推出的一種序列通訊匯流排,主要由資料線sda和時鐘線scl兩根線構成。iic匯流排支援多主和多從模式,接在iic匯流排上的裝置都乙個唯一的位址,通過該唯一的位址,主裝置可以指定與某個從裝置進行通訊,通訊內容主要包括開始條件、從機位址、資料、應答、停止條件等資料。

iic匯流排在空閒狀態下,sda和scl都為高電平。開始條件只能由主裝置傳送,用於通知其它裝置,要開始傳輸資料了,準備好對從機位址的比較和對資料的接收應答等。開始條件為:

scl為高電平時,sda由高電平跳轉為低電平。

在開始條件之後的資料,資料的有效性如下:

1.scl為高電平時,sda的資料需保持穩定,此時接收資料的裝置進行資料的取樣讀取;

2.scl為低電平時,sda的資料才允許變化,此時傳送的資料可以進行改變。

在主裝置傳送完開始條件後,主裝置需通過傳送從機位址+讀寫位來指定與某個從裝置進行讀還是寫的操作,從機位址有7位和10位的,此處只對7位的從機位址進行介紹。若是7位的從機位址,則在傳送完開始條件後,主裝置需傳送8位的資料,高7位代表從機的位址,第1位代表讀寫位,讀寫位如果為0的話則代表主裝置寫資料給從裝置,若為1的話則代表主裝置讀取從裝置的資料。各個從裝置根據主裝置傳送的第乙個位元組的資料,對比自身的位址,如果位址匹配,則需在第9個時鐘的高電平之前,拉低sda線,作為應答。

傳送資料的裝置(主或者從裝置)在傳送8位資料(包括從機位址)後,會釋放匯流排的控制權,此時接收資料的裝置需進行應答,通過將sda拉低,從而通知傳送資料的裝置,資料已經接收完成。以下情況除外:

1.主裝置讀取資料時,在收到從裝置傳送的最後乙個位元組的資料時,通過不進行應答,通知從裝置停止傳送資料,然後主裝置重新獲取匯流排控制權,執行其它操作,例如傳送停止條件,釋放匯流排。

停止條件也只能由主裝置傳送,用於通知其它裝置,資料傳輸完成,釋放匯流排為空閒狀態。停止條件為:

scl為高電平時,sda由低電平跳轉為高電平。

1.當從裝置在忙碌處理不過來時,可以通過拉低scl,通知主裝置進行等待;

2.鎖死現象:當從裝置正在應答或者正在傳輸低電平資料位時,即sda為低電平,而這時候主裝置異常復位而從裝置正常工作,此時scl會被釋放而變成高電平,根據資料有效性,此時sda的資料需保持穩定,所以sda一直處於低電平;主裝置在復位之後,判斷sda正在低電平,所以認為匯流排正處於忙碌狀態,所以不會對匯流排進行操作,一直等待sda變成高電平,匯流排變為空閒狀態;而從裝置又一直等待scl變成低電平,從而改變sda的狀態。因此,匯流排會一直處於scl為高電平,sda為低電平的鎖死狀態。

3.一般情況下,主裝置寫資料流程:

主裝置傳送開始條件;

主裝置傳送從機位址 + 寫資料位;

主裝置傳送資料(包括從機某個暫存器的位址資料);

主裝置傳送停止條件。

4.一般情況下,主裝置讀資料流程:

主裝置傳送開始條件;

主裝置傳送從機位址 + 寫資料位;

主裝置傳送資料(從機某個暫存器的位址資料,根據該暫存器讀取相應資料);

主裝置傳送開始條件;

主裝置傳送從機位址 + 讀資料位;

從裝置傳送資料;

主裝置傳送停止條件。

iic匯流排介紹

在i2c 匯流排中唯一出現的是被定義為起始s 和停止p 條件見圖5 的情況 其中一種情況是在scl 線是高電平時sda 線從高電平向低電平切換這個情況表示起始條件 當scl 是高電平時sda 線由低電平向高電平切換表示停止條件 起始和停止條件一般由主機產生匯流排在起始條件後被認為處於忙的狀態在停止條...

IIC匯流排介紹

由於最近在學習iic的裝置驅動,所以在此寫一篇關於i2c的匯流排介紹來分享我對iic的理解。希望大家能學習到一些知識和指出我的錯誤。iic 又稱i2c,即inter integrated circuit 積體電路匯流排 由飛利浦公司開發的序列匯流排,用於控制微控制器及其他裝置。iic特點 1.只有兩...

IIC匯流排協議介紹

1 iic介紹 i2c匯流排用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。它是同步通訊的一種特殊形式,具有介面線少,控制方式簡單,器件封裝形式小,通訊速率較高,系統的更改和擴充極為容易。i2c匯流排只有2根雙向訊號線,1根sda 資料線 1根sla 時鐘線 2 iic結...