詳解IIC原理

2021-09-06 08:20:58 字數 1645 閱讀 9674

iic是同步通訊的一種特殊形式,具有介面少、控制簡單、器件封裝形式小、通訊速率較高等優點;

iic匯流排由資料線sda時鐘線scl兩條線構成通訊線路,既可以傳送資料,也可以接受資料;在cpu與被控制ic之間、ic與ic之間都可進行雙向傳送,最高傳送速率為400kbps;

iic匯流排支援多主主從兩種工作方式,通常為主從工作方式;在主從工作方式中,主器件啟動資料的傳送(傳送啟動訊號),產生時鐘訊號,發出停止訊號;

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

void init()

主機發出啟動訊號,啟動iic匯流排;在scl為高電平期間。sda出現下降沿則為啟動訊號

void start()

主機傳送啟動訊號後,再發出定址訊號。器件位址有7位和10位兩種,這裡介紹7位位址定址;定址訊號由乙個位元組構成,高7位位位址位,最低位為方向位,用以表明主機與器件的資料傳送方向方向位0表明主機對器件進行寫操作;方向位1,表明主機對器件進行讀操作。

定址位元組的位定義 7

6543

210從機位址

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

iic匯流排協議規定,每傳送乙個位元組資料(含位址及命令)後,都要有乙個應答訊號,以確定資料傳送是否被對方收到。應答訊號由接受裝置產生,在scl訊號為高電平期間,接受裝置將sda拉為低電平,表示資料傳送正確,產生應答。

void respons()

當主機為接受裝置時,主機對最後乙個位元組不應答,以向傳送裝置表示資料傳送結束主機傳送定址訊號並得到從器件應答後,便可進行資料傳輸,每次乙個位元組,但每次傳輸都應在得到應答訊號後再進行下乙個位元組傳送。

寫乙個位元組**:

void writebyte(uchar date)

scl = 0;

delay();

sda = 1;

delay();

}

讀乙個位元組**:

uchar readbyte()

delay();

return k;

}

在全部資料傳送完畢後,主機傳送停止訊號,即在scl為高電平期間,sda上產生一上公升沿訊號。

void stop()

IIC匯流排工作原理

2017 04 26 14 56 340人閱讀收藏 舉報 圖11 1給出乙個由mcu作為主機,通過iic匯流排帶3個從機的單主機iic匯流排系統。這是最常用 最典型的iic匯流排連線方式。物理結構上,iic系統由一條序列資料線sda和一條序列時鐘線scl組成。主機按一定的通訊協議向從機定址和進行資訊...

IIC 匯流排協議詳解

目錄 1 i2c匯流排物理拓撲結構 2 i2c匯流排特徵 3 i2c匯流排協議 4 i2c匯流排操作 i2c 匯流排在物理連線上非常簡單,分別由sda 序列資料線 和scl 序列時鐘線 及上拉電阻組成。通訊原理是通過對scl和sda線高低電平時序的控制,來產生i2c匯流排協議所需要的訊號進行資料的傳...

九 IIC驅動原理分析

學習目標 學習iic驅動原理 一 iic匯流排協議 iic序列匯流排包括一條資料線 sda 和一條時鐘線 scl 支援 一主多從 和 多主機 模式 每個從機裝置都有唯一的位址來識別。圖 1 iic 主從結構 二 iic訊號和時序 iic匯流排有3種型別訊號 1 開始訊號s scl為高電平,sda由高...