IIC序列匯流排的組成及其工作原理

2022-02-25 07:12:34 字數 2385 閱讀 9939

------------------最近專案上用到了一款美信的ds1308rtc晶元,由於是掛在了zynq的ps mio上,需要軟體人員協助才能測試;覺得太麻煩了,想通過飛線,然後在vivado中呼叫iic的ip核,在pl端實現iic的讀寫,藉此驗證此晶元的功能是否正常。因此簡單學習一下iic的協議,順便藉此提公升一下對iic的認識---------------

常用的序列擴充套件匯流排有:iic匯流排、spi匯流排與uart匯流排。

iic匯流排只有兩根雙向訊號線。一根是資料線sda,另一根是時鐘線scl。

iic匯流排通過上拉電阻接正電源。當匯流排空閒時,兩根線均為高電平。連到匯流排上的任一器件輸出的低電平,都將使匯流排的訊號變低,即各器件的sda及scl都是線「與」關係。

每個iic匯流排上的器件都有唯一的位址。主機與其它器件間的資料傳送可以是由主機傳送資料到其它器件,這時主機即為傳送器,由匯流排上接收資料的器件則為接收器。

>>>資料位的有效性規定

iic匯流排進行資料傳送時,時鐘訊號為高電平期間,資料線上的資料必須保持穩定,只有在時鐘線上的訊號為低電平器件,資料線上的高電平或低電平狀態才允許變化。

>>>起始和終止訊號

scl線為高電平期間,sda線由高電平向低電平的變化表示起始訊號;scl線為高電平期間,sda線由低電平向高電平的變化表示終止訊號。

起始和終止訊號都是由主機發出的,在起始訊號產生後,匯流排就處於被占用的狀態;在終止訊號產生後,匯流排就處於空閒狀態。

備註:接收器件收到乙個完整的資料位元組後,有可能需要完成一些其它工作,如處理內部中斷服務等,可能無法立即接收下乙個位元組,這時接收期間可以將scl線拉成低電平,從而使主機處於等待狀態。直到接收器件準備好接收下乙個位元組時,再釋放scl線使之為高電平,從而使資料傳送可以繼續進行。

>>>資料傳送格式

1 每乙個位元組必須保證是8位長度。資料傳送時,先傳送最高位msb,每乙個被傳送的位元組後面都必須跟隨一位應答位(即一幀共有9位)。

2 資料幀格式

iic匯流排上傳送的資料訊號是廣義的,既包括位址訊號,又包括真正的資料訊號。

在起始訊號後必須傳送乙個從機的位址(7位),第8位是資料的傳送方向位(r/t),用「0」表示主機傳送資料(t),「1」表示主機接收資料(r)。每次資料傳送總是由主機產生的終止訊號結束。但是,若主機希望繼續占用匯流排進行新的資料傳送,則可以不產生終止訊號,馬上再次發出起始訊號對另一從機進行定址。

傳送資料的組合方式:

a、主機向從機傳送資料,資料傳送方向在整個傳送過程中不變。

b、主機在第乙個位元組後,立即從從機讀資料

c、在傳送過程中,當需要改變傳送方向時,起始訊號和從機位址都被重複產生一次,但兩次讀/寫方向位正好相反

>>>匯流排的定址

iic匯流排協議有明確的規定:採用7位的定址位元組(定址位元組時起始訊號後的第乙個位元組)。

模擬時序:

>>>訪問時序之寫入:

微控制器進行讀寫操作時,首先傳送該器件的7位位址碼和寫方向為「0」(共8位,即乙個位元組),傳送完後釋放sda線並在scl線上產生第9個時鐘訊號。被選中的儲存器器件在確認是自己的位址後,在sda線上產額猴年噶乙個應答訊號作為回應,微控制器收到應答後就可以傳送資料了。

傳送資料時,微控制器首先傳送乙個位元組的被寫入器件的儲存區的首位址,收到儲存器器件的應答後,微控制器就逐個傳送各資料位元組,但每傳送乙個位元組後都要等待應答。

>>>訪問時序之讀出:

微控制器先傳送該器件的7為位址碼和寫方向位「0」(「偽寫」),傳送完後釋放sda線並在scl線上產生第9個時鐘訊號。被選中的儲存器器件在確認是自己的位址後,在sda線上產生乙個應答訊號作為回應。

然後,再發乙個位元組的要讀出器件的儲存區的首位址,收到應答後,微控制器要重複一次其實訊號並發出器件的位址和讀方向位「1」,收到器件應答後就可以讀出資料位元組,每讀出乙個位元組,微控制器就要回覆應答訊號。當最後乙個位元組資料讀完後,微控制器應返回以「非應答」(高電平),並發出終止訊號以結束讀出操作。

IIC序列匯流排的組成及工作原理

1.基本組成 iic匯流排只有兩根雙向訊號線 資料線sda serial data i o 時鐘線scl serial clock 如圖,iic匯流排上可以掛多個器件,資料通訊方式採用主從方式,主機負責主動聯絡從機,而從機則被動回應資料。iic匯流排通過上拉電阻接正電源,匯流排空閒時兩根線均為高電平...

I2c序列匯流排組成及其工作原理

採用序列匯流排技術可以使系統的硬體設計大大簡化,系統的體積減小,可靠性提高,同時系統更容易更改和擴充 常用的序列擴充套件匯流排有 i2c匯流排,單匯流排,spi匯流排,以及microwire plus等等 i2c匯流排只有兩根雙向訊號線,一根是資料線sda,另一根是時鐘線scl i2c匯流排通過上拉...

iic匯流排的機制

iic匯流排相關知識是嵌入式開發軟體 硬體必問的知識點。被卡死了幾回,今天進行總結。特點 二線制,半雙工,具有應答機制。其工作原理是scl sda的開漏輸出,因此必須接上拉電阻。通訊速率略慢,0 3.4mhz範圍。時序圖 2.其驅動程式 include pch.h include define nu...