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

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

IIC與SPI通訊

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

評(píng)論