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由高...