前面我們概述過一些常見的通訊協(xié)議,本文著重講講關(guān)于IIC協(xié)議。
IIC(Inter-Integrated Circuit)的硬件連接
1. 對于IIC主機總線上是可以掛1個或者多個從機設(shè)備。
2. 每個從機是通過其各自的地址來識別。
IIC的數(shù)據(jù)和控制線(SDA和SCL)
1. SCL(Serial clock),時鐘線,用于同步數(shù)據(jù)傳輸時序,是一個方波,由主機來驅(qū)動,其決定了數(shù)據(jù)傳輸?shù)目炻?/p>
2. SDA(Serial data),數(shù)據(jù)線,用于傳輸數(shù)據(jù),
IIC尋址
1. 通常對于一個7bit的地址,包含1個額外的讀寫位。
2. 對于IIC總線上的每一個設(shè)備都有一個獨立的地址。
3. 重復(fù)的地址會導(dǎo)致通訊錯誤。
4. 對于一些設(shè)備會有PIN管腳用來配置不同的IIC地址。
IIC通訊
START,起始位,由主機初始化,SCL高的時候拉低SDA。
STOP,停止位,SCL高的時候,主機釋放SDA PIN腳。
ACK(acknowledge),每一次傳輸一個單字節(jié)或者8bits之后,會跟一個SCL的脈沖,這個acknowledge信號是從機應(yīng)答主機的信號,表示ACK信號之前的那個字節(jié)通訊是成功的。
如下是一個標(biāo)準(zhǔn)的IIC寫時序:
啟動>MSB->...LSB->ACK->停止
對于有效數(shù)據(jù)傳輸:
1. 在時鐘信號SCL為高的整個脈寬內(nèi)SDA必須保持穩(wěn)定。
2. 只有在SCL脈沖為低的時候,SDA才被允許高低切換,如果SDA在SCL為高的時候變化,則會被認(rèn)為是Start/Stop。
IIC的電路設(shè)計
1. 對于3.4Mbps速率以下的IIC,是漏極開路(Open Drain)的結(jié)構(gòu),此時需要外部上拉電阻,上拉電阻的選擇需要考慮上拉之后的rise/fall的時間是否滿足其時序要求同時也需要考慮功耗。 上拉電阻越大,功耗越小,但rise/fall時間越長,會影響通訊; 上拉電阻越小,功耗越大,但rise/fall時間短,會降低通訊的誤碼率。
2. 對于3.4Mbps速率以上的IIC,其是推挽(Push Pull)的結(jié)構(gòu),其rise/fall的時間就完全取決于主機/從機設(shè)備內(nèi)部的push/pull的能力。 需要注意的是,不同設(shè)備之間的通訊需要選擇同樣結(jié)構(gòu)的IIC。
-
電路設(shè)計
+關(guān)注
關(guān)注
6708文章
2543瀏覽量
214867 -
IIC
+關(guān)注
關(guān)注
11文章
306瀏覽量
39520 -
管腳
+關(guān)注
關(guān)注
1文章
230瀏覽量
32776 -
通訊協(xié)議
+關(guān)注
關(guān)注
10文章
289瀏覽量
20861 -
SDA
+關(guān)注
關(guān)注
0文章
125瀏覽量
28841
發(fā)布評論請先 登錄
FPGA實現(xiàn)IIC協(xié)議的設(shè)計

stm32之IIC通信協(xié)議定義
IIC協(xié)議總線特點簡介
IIC與SPI通訊的相關(guān)資料分享
基于DSP和FPGA的HDLC協(xié)議通訊電路設(shè)計
IIC協(xié)議超詳細(xì)解釋(適合小白入門)

IIC與SPI通訊

STM32第九章-IIC通訊應(yīng)用

評論