IIC匯流排協議

2021-03-04 00:04:50 字數 4423 閱讀 6041

iic匯流排協議

i2c協議是微控制器與其它晶元常用的通訊協議,由於只需要兩根線,所以很好使用。

1. i2c匯流排的特點

(1)只要求兩條匯流排線路一條序列資料線 sda 一條序列時鐘線 scl

(2)每個連線到匯流排的器件都可以通過唯一的位址和一直存在的簡單的主機/從機關系軟體設定位址;主機可以作為主傳送器或主機接收器

(3)它是乙個真正的多主機匯流排,如果兩個或更多主機同時初始化資料傳輸可以通過衝突檢測和仲裁防止資料被破壞

(4)序列的 8 位雙向資料傳輸位速率在標準模式下可達 100kbit/s 快速模式下可達 400kbit/s 高速模式下可達.4mbit/s

(5)片上的濾波器可以濾去匯流排資料線上的毛刺波保證資料完整

(6)連線到相同匯流排的ic數量只受到匯流排的最大電容400pf 限制

i2c協議匯流排訊號時序分析

1 .資料的有效性:

sda 線上的資料必須在時鐘的高電平週期保持穩定資料線的高或低電平狀態只有在 scl線的時鐘訊號是低電平時才能改變。如圖3.1 i2c匯流排的位傳輸所示。

圖1. i2c匯流排的位傳輸

2 .起始和停止條件

當scl線是高電平時,sda線從高電平向低電平切換,這個情況表示起始條件。

當scl線是高電平時,sda線由低電平向高電平切換表示停止條件。如圖3.2 i2c起始和停止條件所示。

圖3.2 起始和停止條件

3.匯流排空閒狀態

sda和scl兩條訊號線都處於高電平,即匯流排上所有的器件都釋放匯流排,兩條訊號線各自的上拉電阻把電平拉高;

4 .資料傳輸與應答訊號ack

傳送到sda線上的資料必須是8位的。每次傳輸可以傳送的資料不受限制。每個位元組後必須在時鐘的第9個脈衝期間釋放資料匯流排(sda為高),由接收器傳送乙個ack(把資料匯流排的電平拉低)來表示資料成功接收。

如圖3.3 i2c匯流排響應。

圖3.3 i2c匯流排響應

首先傳輸的是資料的最高位(msb)。如果從機要完成一些其他功能後(例如乙個內部中斷服務程式)才能接收或傳送下乙個完整的資料位元組,可以使時鐘scl保持低電平迫使主機進入等待狀態。當從機準備好接收下乙個資料位元組並釋放時鐘線scl後,資料傳輸繼續。

如圖3.4 i2c匯流排資料傳輸所示。

圖3.4 i2c匯流排資料傳輸

4. 位址格式

資料的傳輸遵循如圖4.1 完整的資料傳送所示,在起始條件之後,傳送乙個7位的從機位址,緊接著第8位是資料方向(r/ — w),0-表示傳送資料(寫),1-表示接收資料(讀)。資料傳輸一般由主機產生的停止位(p)終止。

但是如果主機仍希望在匯流排上通訊,它可以產生重複起始條件(sr),和定址另乙個從機,而不是首先產生乙個停止條件。在這種傳輸中,可能有不同的讀/寫格式結合。如圖3.

5 i2c匯流排完整的資料傳輸。

圖3.5 i2c匯流排完整的資料傳輸

c程式#include

#define uint unsigned int

#define uchar unsigned char

sbit sda = p2^4;

sbit scl = p2^5;

uchar nackflag;

void delay() //延時

void startiic() //啟動iic匯流排

void stopiic() //停止iic匯流排

void ack_iic() //主器件為傳送方,主控器傳送完資料後,主控器件等待從器件的應答

}scl = 0;

}void sendiic(uchar num) //主控器件傳送資料到iic匯流排

scl = 0;

}uchar receiveiic(void) //主控器件接收iic匯流排傳來的資料

scl = 0;

return datax;

}void sendackiic(void) //主器件為接收方,從器件傳送完資料後,從器件等待主器件的應答訊號

下一貼》

iic匯流排協議,at24c08儲存器

iic匯流排(inter integrated circuit bus):是philips公司推出的序列匯流排標準(為二線制)。匯流排上擴充套件的外圍器件及外設介面通過匯流排定址,是具備匯流排仲裁和高低速裝置同步等功能的高效能多主機匯流排。

i2c匯流排工作原理

序列資料線sda和序列時鐘線scl構成的,可傳送和接收資料。

所有掛接在i2c匯流排上的器件和介面電路都應具有i2c匯流排介面,且所有的sda/scl同名端相連。匯流排上所有器件要依靠sda傳送的位址訊號定址,不需要片選線。

特點:組成系統結構簡單,占用空間小,晶元管腳的數量少,無需片選訊號,**低。允許若干相容器件共享匯流排,應用比較廣泛。

匯流排的長度可達7.6m,傳送速度可達400kbps,標準速率為100kbps。支援多個元件。

支援多主控器件(某時刻只能有乙個主控器件)。i2c匯流排上所有裝置的sda, scl引腳必須外接上拉電阻。

典型的i2c匯流排系統結構,如圖所示

i2c匯流排器件的定址方式

由於所有器件都通過scl和sda連線在i2c匯流排上,因此,主器件在進行資料傳輸前需要通過定址,選擇需要通訊的從器件。i2c匯流排上所有外圍器件都需要有唯一的7位位址,由器件位址和引腳位址兩部分組成。

器件位址是i2c器件固有的位址編碼,器件出廠時就已經給定,不可更改。

引腳位址是由i2c匯流排外圍器件的位址引腳(a2,a1,a0)決定,根據其在電路中接電源正極、接地或懸空的不同,形成不同的位址**。

i2c匯流排概述

i2c匯流排採用兩線制,由資料線sda和時鐘線scl構成。i2c匯流排對資料通訊時序進行了嚴格的定義。

i2c匯流排資料操作

在i2c匯流排上,資料是伴隨著時鐘脈衝,一位一位地傳送的,資料位由高到低傳送,每位資料佔乙個時鐘脈衝。i2c匯流排上的在時鐘線scl高電平期間,資料線sda的狀態就表示要傳送的資料,高電平為資料1,低電平為資料0。在資料傳送時,sda上資料的改變在時鐘線為低電平時完成,而scl為高電平時,sda必須保持穩定,否則sda上的變化會被當作起始或終止訊號而致使資料傳輸停止。

i2c匯流排在傳送資料過程中共有三種型別訊號:開始訊號、停止訊號和應答訊號。

開始訊號:scl保持高電平的狀態下,sda出現下降沿。出現開始訊號以後,匯流排被認為「忙」。

停止訊號:scl保持高電平的狀態下,sda出現上公升沿。停止訊號過後,匯流排被認為「空閒」。

應答訊號:接收資料的器件在接收到8位資料後,向傳送資料的器件發出特定的低電平脈衝,表示已收到資料。

匯流排空閒:scl和sda都保持高電平。

匯流排忙:在資料傳送開始以後,scl為高電平的時候,sda的資料必須保持穩定,只有當scl為低電平的時候才允許sda上的資料改變。

i2c協議起始訊號時序

起始訊號用於開始i2c匯流排通訊。其中,起始訊號是在時鐘線scl為高電平

期間,資料sda上高電平向低電平變化的下降沿訊號。起始訊號出現以後,

才可以進行後續的i2c匯流排定址或資料傳輸等

i2c協議終止訊號時序

終止訊號用於終止i2c匯流排通訊。其中,終止訊號是在時鐘線scl為高電平期間,資料線sda上低電平到高電平變化的上公升沿訊號。終止訊號一出現,所有i2c匯流排操作都結束,並釋放匯流排控制權。

終止訊號的時序如下:

i2c協議應答訊號時序

應答訊號用於表明i2c匯流排資料傳輸的結束。 i2c匯流排資料傳送時,乙個位元組資料傳送完畢後都必須由主器件產生應答訊號。主器件在第9個時鐘位上釋放資料匯流排sda,使其處於高電平狀態,此時從器件輸出低電平拉低資料匯流排sda為應答訊號。

應答訊號的時序,如圖所示。

i2c匯流排的傳送格式

i2c匯流排的傳送格式為主從式,對系統中的某一器件來說有四種工作方式:主傳送方式、從傳送方式、主接收方式、從接收方式。只講主傳送從接收(微控制器傳送 24c08接收)主器件產生開始訊號以後,傳送的第乙個位元組為控制位元組。

前七位為從器件的位址片選訊號。最低位為資料傳送方向位(高電平表示讀從器件,低電平表示寫從器件),然後傳送乙個選擇從器件片內位址的位元組,來決定開始讀寫資料的起始位址。接著再傳送資料位元組,可以是單位元組資料,也可以是一組資料,由主器件來決定。

從器件每接收到乙個位元組以後,都要返回乙個應答訊號(ask=0)。主器件在應答時鐘週期高電平期間釋放sda線,轉由從器件控制,從器件在這個時鐘週期的高電平期間必須拉低sda線,並使之為穩定的低電平,作為有效的應答訊號。

控制位元組

在起始條件之後,必須是器件的控制位元組,其中,高四位為器件型別識別符(不同的晶元型別有不同的定義,e2prom為1010),接著三位為片選,最低位為讀寫控制位,為「1」時為讀操作,為「0」時為寫操作。如下圖所示。

寫操作寫操作分為位元組寫和頁面寫兩種操作,對於頁面寫,根據晶元的一次裝載的位元組不同有所不同。頁面寫的位址、應答和資料傳送的時序如下圖所示。

讀操作讀操作有三種基本操作:當前位址讀、隨機讀和順序讀。下圖給出的是順序讀的時序圖。

應當注意的是,為了結束讀操作,主機必須在第9個周期間發出停止條件或者在第9個時鐘週期內保持sda為高電平,然後發出停止條件。

c語言的相關程式

開啟**取消

窗體底端

IIC協議使用

2.2 i2c工作原理 sda和scl都是雙向線路,各通過乙個電流源或上拉電阻連線到正的電源電壓。當匯流排空閒時這兩條線路都是高電平,連線到匯流排的器件輸出必須是漏極開路或集電極開路才能執行線與的功能。i2c匯流排上資料的傳輸速率在標準模式下可達100kb s,在快速模式下可達400kb s,在高速...

PT2313L 中文 IIC匯流排介面功能描述

i2c匯流排介面功能描述 匯流排介面 資料通過data與clk在微處理器與pt2313l之間傳輸。data和clk構成匯流排介面。需要注意的是,上拉電壓電阻必須連線到正電源。資料有效性 資料線上的資料只有在時鐘訊號為高電平狀態時才被認為穩定有效。資料線上的高低狀態只有在時鐘訊號為低電平時才允許變化。...

PCI匯流排協議基礎

pci基本匯流排協議傳輸機制是猝發成組資料傳輸。乙個分組由乙個位址相位和乙個或多個資料相位組成。1 pci匯流排的傳輸控制 pci匯流排上所有的資料傳輸基本上都是由以下三條訊號線控制的 frame 由主裝置驅動,說明一次資料傳輸週期的開始和結束。irdy 由主裝置驅動,表示主裝置已經作好傳送資料的準...