I2C序列匯流排協議

2021-09-30 08:13:48 字數 2398 閱讀 7578

i2c

序列匯流排協議

一、i2c

序列匯流排概述

i2c匯流排是

philips

公司推出的一種序列資訊匯流排,用於連線微控制器及外圍裝置,是具備多主系統所需的包括匯流排裁決和高低速器件同步功能的高效能序列匯流排。

i2c匯流排只有兩根雙向訊號線,一根是資料線

sda,一根是時鐘線

scl。微控制器與

i2c器件連線如下圖所示:

每個連線到

i2c器件都有唯一的位址,這個位址是由

i2c器件硬體連線決定的。

二、i2c

序列匯流排工作原理1、

i2c匯流排上資料的有效性

i2c匯流排以序列方式傳輸資料,從資料位元組的高位開始傳輸,每乙個資料位在

scl上都有乙個時鐘脈衝相對應。在乙個時鐘週期內,當時鐘訊號為高電平時資料線上的資料必須保持穩定,當時鐘訊號為低電平時,才允許資料的變化。如下圖所示:

i2c匯流排上的訊號

i2c匯流排在資料傳輸過程中共有

4種型別訊號,分別為開始訊號、停止訊號、重新開始訊號和應答訊號。

開始訊號:當

scl為高電平時,

sda線由高電平向低電平跳變即為開始訊號。

停止訊號:當

scl為高電平時,

sda線由低電平向高電平跳變即為停止訊號。

重新開始訊號:在

i2c匯流排上,由主機傳送乙個開始訊號啟動一次通訊後,在首次傳送停止訊號之前,主機傳送開始訊號即為重新開始訊號。

應答訊號:接受資料的

ic在接收到

8位資料後,向傳送資料的

ic發出特地的低電平脈衝。每乙個資料位元組後面都跟有一位應答訊號,表示已接收到資料。應答訊號在第

9個時鐘週期出現,這時發生器必須在這一時鐘位上釋放資料線,通過接收裝置拉低

sda產生應答,保持

sda高電平產生非應答。3、

i2c匯流排上的資料傳輸格式

一般情況下,乙個標準的

i2c通訊通常由

4部分組成:開始訊號、從機位址傳輸、資料傳輸和結束訊號。

資料傳輸開始時,先是主機傳送乙個開始訊號,啟動

i2c通訊,在主機對從機定址後,再在匯流排上傳輸資料,

i2c匯流排上傳輸的每一位元組均為

8位,高位在前、低位在後,每傳送

1位元組後必須跟隨乙個應答位,每次的資料位元組沒有限制,在全部資料傳送結束後,主機發出停止訊號,結束通訊。4、

i2c匯流排上的定址約定

在i2c

匯流排系統中,定址位元組由從機的

7位位址為(

d7~d1

位)和1

位方向位(

d0)組成。方向位為「

0」時,表示主機將資料寫入從機;為「

1」時,表示主機從從機讀取資料。

5、主機向從機讀/寫

1位元組資料的過程

主機寫位元組時,首先產生開始訊號,然後傳送乙個

7位的從機位址和將方向位清零。這時候主機等待從機的應答訊號,當主機接收到應答訊號時,傳送要訪問的位址,繼續等待,應答後接著傳送

1位元組資料,等待到應答並產生停止訊號,傳輸過程結束。如下圖所示

主機讀資料時,首先產生啟動訊號,然後傳送乙個

7位的從機位址並將方向位清零,等待應答後,傳送要訪問的位址,等待應答後重新傳送開始訊號,然後傳送乙個

7位位址並將方向位置「

1」,這時候主機等待從機的應答,應答後,就可以接收一位元組的資料;當接收完成後,主機傳送非應答訊號,主機產生停止訊號,傳輸過程結束。如下圖所示:

三、8051

與at24c02

相連線四、程式設計

本程式是先向

24c02

寫進資料,接著從

24c02

讀出來,並將傳到

p2,形成流水燈現象:

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit scl=p3^0;

sbit sda=p3^1;

void delay5us()//

延時大於

4.7us

void delayms(uint z)

void iic_start()

void iic_stop()

void iic_ack(bit temp)

void iic_write_byte(uchar temp)

scl=0; }

uchar iic_read_byte()

scl=0;

return temp; }

void main()

p2=0xff; }

}

mipi協議 I2C匯流排協議

本文為系列文件第二篇 暫定 spi匯流排協議 2.i2c匯流排協議 3.mipi協議 狀態 更新ing i2c匯流排簡介 i2c匯流排的硬體設定 i2c匯流排特點 i2c匯流排的協議內容與資料傳輸 i2c匯流排常用場景 電子通訊等硬體相關,基帶與電效能領域 計算機硬體相關,系統介面等。i2c是一種常...

I2C匯流排協議詳解

1.1 i2c匯流排知識 1.1.1 i2c匯流排物理拓撲結構 i2c 匯流排在物理連線上非常簡單,分別由sda 序列資料線 和scl 序列時鐘線 及上拉電阻組成。通訊原理是通過對scl和sda線高低電平時序的控制,來 產生i2c匯流排協議所需要的訊號進行資料的傳遞。在匯流排空閒狀態時,這兩根線一般...

I2C匯流排協議詳解

1.1 i2c匯流排知識 1.1.1 i2c匯流排物理拓撲結構 i2c 匯流排在物理連線上非常簡單,分別由sda 序列資料線 和scl 序列時鐘線 及上拉電阻組成。通訊原理是通過對scl和sda線高低電平時序的控制,來 產生i2c匯流排協議所需要的訊號進行資料的傳遞。在匯流排空閒狀態時,這兩根線一般...