(筆記總結)I2C序列匯流排的組成及工作原理

2021-09-02 05:47:09 字數 2939 閱讀 2778

常用的序列擴充套件匯流排有:i2c匯流排,spi匯流排,單匯流排,microwire/plus。

i2c序列匯流排概述

i2c序列匯流排,是具備多主機系統所需的包括匯流排裁決高低速器件同步功能的高效能序列匯流排。

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

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

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

在多主機系統中,可能同時有幾個主機企圖啟動匯流排傳送資料。為了避免混亂,i2c匯流排要通過匯流排仲裁,以決定由哪台主機控制匯流排。

i2c匯流排的資料傳送

1.資料位的有效性規定

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

2.起始和終止訊號

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

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

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

連線到i2c匯流排上的器件,若具有i2c匯流排的硬體介面,則很容易檢測到起始和終止訊號。

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

3.資料傳送格式

位元組傳送與應答

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

由於某種原因從機不對主機定址訊號應答時(如從機正在進行實時性的處理工作而無法接收匯流排上的資料),它必須將資料線置於高電平,而由主機產生乙個終止訊號以結束匯流排的資料傳送。

如果從機對主機進行了應答,但在資料傳送一段時間後,無法接收更多資料時,從機可以通過對無法接收的第乙個資料位元組的「非應答」通知主機,主機則應發出終止訊號,已結束資料的繼續傳送。

當主機接收資料時,他收到最後乙個資料位元組後,必須向從機發出乙個結束傳送的訊號。這個訊號是由對從機的「非應答」來實現的。然後,從機釋放sda線,以允許主機產生終止訊號。

資料幀格式

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

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

在匯流排的一次資料傳送過程中,可以有以下幾種組合方式:

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

注:有陰影部分表示資料由主機向從機傳送,無陰影部分則表示資料由從機向主機傳送。

s表示起始訊號,a表示應答,a非表示非應答(高電平),p表示終止訊號。

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

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

4.匯流排的定址

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

定址位元組位定義

d7~d1位組成從機的位址,d0位時資料傳送方向位,為「0」時,是主機向從機寫資料。為「1」時,時主機由從機讀資料。

主機傳送位址時,匯流排上的每個從機都將這7位位址碼於自己的位址進行比較,如果相同,則認為自己正在被主機定址,根據r/t位確定自己為傳送器或接收器。

從機的位址由固定部分和可程式設計部分組成。在乙個系統中可能希望接入多個相同的從機。從機位址中可程式設計部分決定了可接入匯流排該類器件的最大數目。如乙個從機的7位定址位有4位是固定位,3位是可程式設計位。這是只能定址8個同樣的器件,即可以有8個同樣的器件接入到該i2c匯流排系統中。

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

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

序列匯流排之I2C

一 i2c簡介 1 i2c匯流排是 philip 公司開發的,雙向二線制同步序列匯流排,它只需要兩根線即可,單主機多從機。2 i2c兩根線分別為 序列時鐘線 scl和序列資料線 sda,scl由主機發出。3 每個連線到匯流排上的器件都有乙個位址,位址由器件內部硬體電路和外部位址引腳共同決定,避免了片...

I2C序列匯流排協議

i2c 序列匯流排協議 一 i2c 序列匯流排概述 i2c匯流排是 philips 公司推出的一種序列資訊匯流排,用於連線微控制器及外圍裝置,是具備多主系統所需的包括匯流排裁決和高低速器件同步功能的高效能序列匯流排。i2c匯流排只有兩根雙向訊號線,一根是資料線 sda,一根是時鐘線 scl。微控制器...