iic通過兩個線進行主機與多個從機之間的資訊傳輸,故其傳輸協議便相對而言麻煩一些。
在iic匯流排中,其擁有著兩個比較特殊的情況:
(1)起始位(s):當scl是高電平時,sda由高電平向低電平切換;
(2)停止位(p):當scl是高電平時,sda由低電平向高電平切換。
對應的訊號路下圖所示;
一般而言,iic上的起始和終止訊號都是由總機產生的,而iic匯流排在起始條件後便被認為處於busy的狀態,而在停止條件的一段時間後,匯流排才會被認為再次處於空閒狀態,因此,在主機在發出stop訊號後不能馬上發出start訊號。
如果連線匯流排的裝置上沒有檢測star和stop條件的介面裝置,那麼該裝置便需在每個時鐘週期內至少取樣sda線兩次來判斷是否發生了電平切換。
因為iic的起始和終止是以當scl為高電平時sda進行變化而實現,所以iic傳輸資料便只能在scl線的時鐘訊號為低電平時才能改變(如上圖所示)。
由上圖可知,iic每次傳輸的位元組的數量是沒有限制的,但它傳送到sda資料線上的每個位元組必須為8位,而且每個位元組後必須跟著乙個響應位,即在響應的時鐘脈衝期間,接收器件sda線拉低,使之在該時鐘脈衝的高電平期間保持穩定的低電平,如下圖所示,因為iic的兩根線具有線與特性,故當其中乙個裝置(主機或從機)輸出低阻態時別的裝置都能立即接收到。如果從機要完成一些其他功能(如內部中斷服務程式)後才能接受或傳送下乙個完整的資料位元組,可以使時鐘線scl保持低電平迫使主機進入等待狀態。當從機準備好接收下一資料位元組並釋放時鐘線scl後,資料傳輸繼續。
iic資料傳輸必須帶響應。響應的時鐘脈衝由主機產生。在響應的時鐘脈衝期間,傳送器釋放sda線(即輸出高阻態)。與之對應的,在響應的時鐘脈衝期間,接收器須將sda線拉低,使得其在該時鐘脈衝的高電平期間保持穩定的低電平(即輸出低阻態)。
上圖所示分別為iic寫和讀的兩種報文格式,將其表述如下:
首先是傳送起始訊號(即在scl高電平時將sda的電平由高變為低);
然後傳送從機位址,這裡的從機位址為7位,之後的第8為表示資料的傳輸方向(r/w)-『0』表示傳送(寫),『1』表示請求資料(讀);
之後會從從機處獲得響應訊號,然後資料根據所請求的傳輸方向進行傳輸,並由接收方傳送響應訊號;
最後由主機產生停止位的訊號來終止資料的傳輸。
五、iic的定址
iic上從機的選擇是由起始條件後的第乙個位元組決定,該位元組的頭7位是從機位址,最低位(lsb)是第8位(如上圖所示),它決定了報文的方向,若為『0』則表示資料由主機傳輸到被選中的從機,若為『1』則表示資料由從機傳輸到主機。
其中1111 0***保留給10位定址,這裡對之進行簡要介紹。由上圖可知只有4個組合1111 0xx用於10位定址。
首先在傳送完起始訊號後主機會發第乙個位元組,其頭7位為1111 0xx的組合,它最後兩位(xx)是10位位址的兩個最高位(msb);而第乙個位元組的第8位為r/w一般設為『0』;
然後第二個位元組是10位位址從機剩下的8位位址,此時,算是完成了從機的選定。
之後如果是從從機讀取資料,則第3個位元組為1111 0xx(也就是第乙個位元組),但第8位改為『1』,緊接著便是從機往主機傳送資料,詳細過程見下圖:
iic的傳輸可分為以下具體流程:
一、在連好裝置後,先由主機傳送乙個開始訊號(即在scl為高電平時將sda由高電平轉為低電平);
二、然後主機傳送第1個位元組,其中前7位為從機位址,第8位為讀寫標誌位,『0』表示寫,『1』表示讀;
四、如果主機發出的是寫位址(即第8位為『0』),則主機發出乙個位元組資料,再收到從機響應後再繼續發,如此重複。
與之類似的,如果主機發出的是讀位址(即第8位為『1』),則從機發出乙個位元組資料,再收到主機響應後再繼續發。
五、在資料傳輸完成後,主機發出乙個終止訊號,即在scl為高電平時將sda由低電平轉為高電平。
ps:由於iic的資料只能在scl為低電平時進行資料變化,故其時序限制便比較麻煩,畢竟iic本身的速度不快,如果scl低電平的時間長了,會影響資料的傳輸速度,如果scl低電平的時間短了,會影響資料的變化,可能導致資料變化的不及時,一般而言,用軟體模擬iic需要考慮到這類情況,如果mcu已整合了iic控制器的功能,那麼這類情況不用考慮。
IIC匯流排協議介紹
1 iic介紹 i2c匯流排用於連線微控制器及其外圍裝置。是微電子通訊控制領域廣泛採用的一種匯流排標準。它是同步通訊的一種特殊形式,具有介面線少,控制方式簡單,器件封裝形式小,通訊速率較高,系統的更改和擴充極為容易。i2c匯流排只有2根雙向訊號線,1根sda 資料線 1根sla 時鐘線 2 iic結...
網路層協議介紹
目錄 一 網路層的功能 二 icmp協議 三 ping命令 四 arp命令 1.定義了基於ip協議的邏輯位址 2.路由 連線不同的網段,傳輸資料 3.選路 選擇資料通過網路的最佳路徑 1.icmp是乙個 錯誤偵測與回饋機制 2.通過ip資料報封裝的 3.用來傳送錯誤和控制訊息 1.ping t 引數...
傳輸層協議介紹
urg 緊急指標,告訴接收tcp模組緊要指標域指著緊要資料。ack 置1時表示確認號 為合法,為0的時候表示資料段不包含確認資訊,確認號被忽略。psh 置1時請求的資料段在接收方得到後就可直接送到應用程式,而不必等到緩衝區滿時才傳送。rst 置1時重建連線。如果接收到rst位時候,通常發生了某些錯誤...