當(dāng)前位置:首頁(yè)->方案設(shè)計(jì) |
|
詳解IIC通信協(xié)議原理 |
|
|
文章來(lái)源:永阜康科技 更新時(shí)間:2025/2/27 10:51:00 |
在線(xiàn)咨詢(xún): |
|
IC(Inter-Integrated Circuit)通信協(xié)議是一種由飛利浦(Philips)公司(現(xiàn)為恩智浦半導(dǎo)體)于1980年代初期開(kāi)發(fā)的串行通信協(xié)議。IC協(xié)議設(shè)計(jì)簡(jiǎn)單,具有低成本和低功耗的特點(diǎn),常用于短距離數(shù)據(jù)傳輸,尤其是在微控制器與多個(gè)外圍設(shè)備之間的通信。IC協(xié)議的主要特點(diǎn)是只需要兩條信號(hào)線(xiàn):數(shù)據(jù)線(xiàn)(SDA)和時(shí)鐘線(xiàn)(SCL)。
1. IC通信協(xié)議的基本結(jié)構(gòu)
IC通信采用的是主從式通信架構(gòu),其中包括一個(gè)主設(shè)備(Master)和一個(gè)或多個(gè)從設(shè)備(Slave)。主設(shè)備負(fù)責(zé)生成時(shí)鐘信號(hào)和發(fā)起數(shù)據(jù)傳輸,而從設(shè)備響應(yīng)主設(shè)備的請(qǐng)求。
1.1 IC總線(xiàn)
IC總線(xiàn)有兩個(gè)基本的信號(hào)線(xiàn):
SDA(Serial Data Line):串行數(shù)據(jù)線(xiàn),用于傳輸數(shù)據(jù)。數(shù)據(jù)在線(xiàn)上是以位為單位進(jìn)行傳輸?shù),SDA線(xiàn)是雙向的,主設(shè)備和從設(shè)備都可以在總線(xiàn)上發(fā)送和接收數(shù)據(jù)。
SCL(Serial Clock Line):串行時(shí)鐘線(xiàn),主設(shè)備通過(guò)SCL線(xiàn)生成時(shí)鐘信號(hào),以同步數(shù)據(jù)的傳輸。
IC總線(xiàn)的電氣特性通常是開(kāi)漏(open-drain)或開(kāi)集(open-collector)方式,這意味著設(shè)備驅(qū)動(dòng)SDA和SCL線(xiàn)時(shí),只能將信號(hào)拉低(0),而拉高(1)時(shí)由上拉電阻提供。
2. IC通信的基本工作原理
IC協(xié)議是基于時(shí)鐘同步的串行通信。所有設(shè)備共享同一對(duì)SDA和SCL線(xiàn),主設(shè)備負(fù)責(zé)控制時(shí)鐘信號(hào)的生成,數(shù)據(jù)按照時(shí)鐘信號(hào)同步傳輸。
2.1 通信過(guò)程
IC通信通常包括以下幾個(gè)步驟:
啟動(dòng)信號(hào)(Start Condition):
啟動(dòng)信號(hào)是由主設(shè)備發(fā)起的。當(dāng)SDA線(xiàn)從高電平跳變到低電平時(shí),SCL線(xiàn)保持高電平,這個(gè)信號(hào)標(biāo)志著通信的開(kāi)始。
啟動(dòng)信號(hào)告訴總線(xiàn)上的所有設(shè)備,后續(xù)的數(shù)據(jù)傳輸即將開(kāi)始。
地址傳輸(Addressing):
在IC總線(xiàn)上,每個(gè)設(shè)備都有一個(gè)的地址(7位或10位地址)。主設(shè)備會(huì)將目標(biāo)從設(shè)備的地址發(fā)送到總線(xiàn)上,從設(shè)備通過(guò)響應(yīng)確定它是否要與主設(shè)備通信。
地址通常為7位(位為0),接下來(lái)的8位表示目標(biāo)設(shè)備的地址。如果使用10位地址模式,則使用兩字節(jié)表示地址。
地址后面跟隨一個(gè)讀/寫(xiě)標(biāo)志位(R/W)。當(dāng)讀/寫(xiě)標(biāo)志為0時(shí)表示寫(xiě)操作,1時(shí)表示讀操作。
數(shù)據(jù)傳輸(Data Transfer):
數(shù)據(jù)在SDA線(xiàn)上按照時(shí)鐘信號(hào)同步傳輸,每次傳輸8位(1字節(jié))數(shù)據(jù)。每個(gè)字節(jié)傳輸后,接收端會(huì)發(fā)送一個(gè)確認(rèn)位(ACK),表示接收到的數(shù)據(jù)是有效的。
如果接收設(shè)備未能成功接收到數(shù)據(jù),它會(huì)發(fā)送一個(gè)非確認(rèn)位(NACK),通知發(fā)送設(shè)備停止傳輸。
停止信號(hào)(Stop Condition):
停止信號(hào)表示通信結(jié)束。當(dāng)SDA線(xiàn)從低電平跳變到高電平時(shí),SCL線(xiàn)保持高電平,表示通信的結(jié)束。
2.2 時(shí)序
IC通信是同步的,數(shù)據(jù)傳輸需要依賴(lài)時(shí)鐘信號(hào)SCL。每個(gè)數(shù)據(jù)位都被時(shí)鐘信號(hào)同步傳輸。在IC通信中,數(shù)據(jù)必須在時(shí)鐘信號(hào)的上升或下降沿進(jìn)行采樣,因此時(shí)序控制是IC協(xié)議的關(guān)鍵。
以下是IC通信的時(shí)序特點(diǎn):
SDA的變化:在SCL為低電平時(shí),SDA線(xiàn)可以自由變化;在SCL為高電平時(shí),SDA線(xiàn)的電平必須保持不變。
時(shí)鐘同步:每次數(shù)據(jù)傳輸都由主設(shè)備通過(guò)SCL線(xiàn)生成時(shí)鐘信號(hào),數(shù)據(jù)位在每個(gè)時(shí)鐘周期的上升或下降沿時(shí)采樣。
3. IC協(xié)議的數(shù)據(jù)傳輸格式
每次數(shù)據(jù)傳輸遵循一定的格式:
啟動(dòng)條件:主設(shè)備通過(guò)SDA從高電平拉低信號(hào),標(biāo)志著傳輸?shù)拈_(kāi)始。
設(shè)備地址:設(shè)備地址是7位的,緊接著是一個(gè)標(biāo)志位(讀/寫(xiě)位)。
數(shù)據(jù)字節(jié):每次傳輸一個(gè)字節(jié)數(shù)據(jù)(8位),接收方需要返回一個(gè)ACK位。
停止條件:傳輸完成后,主設(shè)備通過(guò)SDA從低電平拉高,標(biāo)志著傳輸?shù)慕Y(jié)束。
4. IC協(xié)議的優(yōu)缺點(diǎn)
4.1 優(yōu)點(diǎn)
簡(jiǎn)單性:IC協(xié)議相對(duì)簡(jiǎn)單,只需要兩根信號(hào)線(xiàn)(SDA和SCL)即可實(shí)現(xiàn)設(shè)備之間的通信,易于實(shí)現(xiàn)。
多設(shè)備支持:IC允許多個(gè)從設(shè)備共享總線(xiàn),一個(gè)主設(shè)備可以與多個(gè)從設(shè)備進(jìn)行通信。
低成本:IC使用兩根線(xiàn)進(jìn)行通信,不需要額外的硬件支持,因此成本較低。
短距離通信:IC適用于短距離通信,通常用于單板設(shè)備和嵌入式系統(tǒng)內(nèi)部的通信。
4.2 缺點(diǎn)
通信速度較慢:IC的通信速度通常較低,標(biāo)準(zhǔn)模式下的速度為100kbps,高速模式下為400kbps,而更高速度(如3.4Mbps)也有支持,但仍低于其他協(xié)議(如SPI)。
電氣干擾問(wèn)題:由于IC總線(xiàn)共享數(shù)據(jù)線(xiàn)和時(shí)鐘線(xiàn),因此在高速或長(zhǎng)距離傳輸時(shí)可能受到電氣干擾。
總線(xiàn)負(fù)載限制:IC總線(xiàn)上的設(shè)備數(shù)量受限于總線(xiàn)負(fù)載和電源能力,通常在幾十個(gè)設(shè)備以?xún)?nèi)。
5. IC協(xié)議的應(yīng)用場(chǎng)景
IC協(xié)議廣泛應(yīng)用于嵌入式系統(tǒng)、傳感器、存儲(chǔ)器、顯示模塊、RTC(實(shí)時(shí)時(shí)鐘)模塊、溫濕度傳感器等低速設(shè)備之間的通信。IC也常用于單板計(jì)算機(jī)(如樹(shù)莓派、Arduino)與外部硬件模塊的連接。
6. 總結(jié)
IC通信協(xié)議是一種常見(jiàn)的低速串行通信協(xié)議,它通過(guò)兩根線(xiàn)(SDA和SCL)實(shí)現(xiàn)設(shè)備間的數(shù)據(jù)交換,具有簡(jiǎn)便、低成本的優(yōu)點(diǎn)。盡管其傳輸速度較慢,且受限于總線(xiàn)負(fù)載,但它在短距離和低速通信中非常適用,廣泛應(yīng)用于嵌入式系統(tǒng)、傳感器和其他外圍設(shè)備的連接。 |
|
|
|
|
|
|
|
 |
您可能對(duì)以下產(chǎn)品感興趣 |
 |
|
 |
產(chǎn)品型號(hào) |
功能介紹 |
兼容型號(hào) |
封裝形式 |
工作電壓 |
備注 |
HTD8238 |
單通道H橋電機(jī)驅(qū)動(dòng)器;
寬電壓供電,5.5V-36V;
低RDS(ON)電阻,160mΩ(HS+LS);
7A峰值驅(qū)動(dòng)輸出,5A連續(xù)驅(qū)動(dòng)輸出 |
A4950/DRV8870 |
ESOP-8 |
5.5V-36V |
7A大電流單通道直流有刷電機(jī)驅(qū)動(dòng)芯片 |
|
|
|
|
|
|