IIC(Inter-Integrated Circuit,即集成電路總線)信號(hào)線需要增加上拉電阻,這主要是因?yàn)镮IC的IO(輸入輸出)設(shè)計(jì)采用了開(kāi)漏(Open-Drain)輸出方式。開(kāi)漏輸出方式在IIC通信中扮演著至關(guān)重要的角色,而上拉電阻的加入則是實(shí)現(xiàn)這種通信方式有效性和可靠性的關(guān)鍵。以下是對(duì)此現(xiàn)象的介紹:
一、IIC通信與開(kāi)漏輸出
IIC通信協(xié)議是一種廣泛應(yīng)用的串行通信協(xié)議,由飛利浦公司(現(xiàn)被恩智浦電子收購(gòu))于1982年推出。它主要用于集成電路之間的通信,具有簡(jiǎn)單、高效的特點(diǎn)。IIC通信通過(guò)兩條總線線路進(jìn)行:串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL)。這兩條線路的電平變化用于傳輸數(shù)據(jù)和時(shí)鐘信號(hào)。
在IIC通信中,設(shè)備的IO端口采用開(kāi)漏輸出方式。開(kāi)漏輸出與推挽輸出不同,它只能輸出低電平(即將線路拉低),而不能直接輸出高電平。這意味著,當(dāng)沒(méi)有設(shè)備主動(dòng)拉低SDA或SCL線時(shí),這兩條線路需要依賴(lài)外部電路來(lái)維持高電平狀態(tài)。這正是上拉電阻發(fā)揮作用的地方。
二、上拉電阻的作用
- 確保線路默認(rèn)為高電平 :
- 如前所述,開(kāi)漏輸出無(wú)法直接輸出高電平。因此,在沒(méi)有設(shè)備主動(dòng)拉低SDA或SCL線時(shí),需要上拉電阻將這些線路拉高到電源電壓(通常是Vcc或VDD),從而確保線路默認(rèn)為高電平狀態(tài)。
- 支持?jǐn)?shù)據(jù)傳輸和時(shí)鐘同步 :
- 在IIC通信中,SDA線上的數(shù)據(jù)位是在SCL為低電平時(shí)改變,在SCL為高電平時(shí)被采樣。上拉電阻確保了SDA線在SCL為高電平時(shí)能夠保持穩(wěn)定的狀態(tài),這樣接收設(shè)備才能正確地讀取數(shù)據(jù)。
- 同時(shí),SCL線作為時(shí)鐘信號(hào)線,其高電平狀態(tài)也由上拉電阻維持,確保了時(shí)鐘信號(hào)的穩(wěn)定性和同步性。
- 支持ACK信號(hào) :
- 接收設(shè)備在接收到數(shù)據(jù)后,需要發(fā)送ACK(Acknowledge)信號(hào)來(lái)確認(rèn)數(shù)據(jù)已被正確接收。ACK信號(hào)是通過(guò)將SDA線拉低來(lái)實(shí)現(xiàn)的。上拉電阻的存在使得接收設(shè)備能夠?qū)DA線從高電平拉低到低電平,從而發(fā)送ACK信號(hào)。
- 解決總線競(jìng)爭(zhēng) :
- 在多主機(jī)IIC總線系統(tǒng)中,如果有多個(gè)設(shè)備試圖同時(shí)控制總線,可能會(huì)導(dǎo)致總線競(jìng)爭(zhēng)。上拉電阻有助于解決這種情況下的競(jìng)爭(zhēng),因?yàn)楫?dāng)一個(gè)設(shè)備釋放總線時(shí),其他設(shè)備可以接管并驅(qū)動(dòng)總線。
- 限制電流和保護(hù)設(shè)備 :
- 當(dāng)設(shè)備將SDA或SCL線拉低時(shí),電流會(huì)通過(guò)上拉電阻流向地。選擇適當(dāng)?shù)纳侠娮柚悼梢源_保電流不會(huì)過(guò)大,從而保護(hù)設(shè)備免受損壞。
- 提高信號(hào)完整性和噪聲抑制能力 :
- 上拉電阻與線路的電容(主要是寄生電容)形成RC充電回路,有助于濾除高頻噪聲,提高信號(hào)完整性。同時(shí),它還能減少信號(hào)反射和其他信號(hào)完整性問(wèn)題。
三、上拉電阻的選擇
選擇合適的上拉電阻值對(duì)于IIC通信的可靠性至關(guān)重要。以下是選擇時(shí)需要考慮的幾個(gè)因素:
- 上升時(shí)間 :
- 電阻越大,上拉至高電平的速度就越慢。這會(huì)導(dǎo)致數(shù)據(jù)傳輸速率受限。因此,需要根據(jù)IIC總線的最大頻率來(lái)確定合適的上升時(shí)間,并據(jù)此選擇阻值。
- 最大灌電流能力 :
- IIC總線規(guī)范定義了每個(gè)總線上的設(shè)備在拉低線路時(shí)能夠承受的最大電流(灌電流)。上拉電阻的阻值應(yīng)確保即使所有掛載的設(shè)備同時(shí)嘗試將線路拉低,也不會(huì)超過(guò)任何單個(gè)設(shè)備的最大灌電流規(guī)格。
- 功耗考量 :
- 電阻上會(huì)持續(xù)消耗一定的功率(P = I2R),盡管這部分功耗通常很小,但在低功耗設(shè)計(jì)中仍需考慮。較大的上拉電阻可以減小靜態(tài)功耗,但也要平衡數(shù)據(jù)傳輸速度的需求。
- 設(shè)備數(shù)量 :
- IIC總線上的設(shè)備增加也會(huì)適當(dāng)?shù)臏p小電阻阻值以保證信號(hào)完整性。
常見(jiàn)的上拉電阻阻值范圍從1kΩ到10kΩ。對(duì)于標(biāo)準(zhǔn)速率為100kHz的IIC通信,通常選擇4.7kΩ或10kΩ是比較合適的。對(duì)于快速模式(400kHz)或更快的高速模式(3.4MHz),可能需要降低阻值到幾千歐姆,以保證信號(hào)的快速上升沿。
四、結(jié)論
綜上所述,IIC信號(hào)線需要增加上拉電阻,主要是因?yàn)镮IC的IO采用了開(kāi)漏輸出方式。上拉電阻在IIC通信中發(fā)揮著至關(guān)重要的作用,它確保了線路默認(rèn)為高電平、支持?jǐn)?shù)據(jù)傳輸和時(shí)鐘同步、支持ACK信號(hào)、解決總線競(jìng)爭(zhēng)、限制電流和保護(hù)設(shè)備、提高信號(hào)完整性和噪聲抑制能力。因此,在設(shè)計(jì)和使用IIC總線時(shí),必須合理選擇和配置上拉電阻。
-
IO
+關(guān)注
關(guān)注
0文章
487瀏覽量
40293 -
上拉電阻
+關(guān)注
關(guān)注
5文章
366瀏覽量
31084 -
IIC
+關(guān)注
關(guān)注
11文章
306瀏覽量
39277 -
信號(hào)線
+關(guān)注
關(guān)注
2文章
181瀏覽量
21880 -
串行時(shí)鐘
+關(guān)注
關(guān)注
1文章
5瀏覽量
10520
發(fā)布評(píng)論請(qǐng)先 登錄
為什么要在IIC信號(hào)線上加上拉電阻

請(qǐng)問(wèn)STM32F429硬件IIC需要外圍上拉電阻嗎?
如果信號(hào)線是3.3V,給1.8V的上拉電壓,最后輸出的是多少伏?
SD卡的時(shí)鐘線為什么可以不加上拉電阻呢?是因?yàn)?/b>時(shí)鐘永遠(yuǎn)是輸出信號(hào)嗎?為什么輸出信號(hào)就可以不加上拉電阻
如何使用STM32F103的IIC信號(hào)線進(jìn)行OLED顯示
IIC總線的相關(guān)資料推薦
IIC設(shè)備需要的線挺長(zhǎng)如何操作?
使用IO PORT進(jìn)行IIC通訊
IIC是什么?51單片機(jī)IIC的詳細(xì)資料說(shuō)明

信號(hào)線有哪些
iic通信協(xié)議是什么

【51單片機(jī)】IIC總線

IIC上拉筆記

評(píng)論