你的位置:首頁(yè) > 互連技術(shù) > 正文

I2C信號(hào)為什么需要上拉電阻

發(fā)布時(shí)間:2024-09-10 責(zé)任編輯:lina

【導(dǎo)讀】I2C信號(hào)需要上拉電阻的原因與其工作原理密切相關(guān)。I2C是一種開(kāi)放漏極(open-drain)或開(kāi)集電極(open-collector)的通信協(xié)議,這意味著驅(qū)動(dòng)器(主設(shè)備或從設(shè)備)只能將線(xiàn)拉低到低電平(邏輯0),但不能主動(dòng)將線(xiàn)拉高到高電平(邏輯1)。


I2C信號(hào)需要上拉電阻的原因與其工作原理密切相關(guān)。I2C是一種開(kāi)放漏極(open-drain)或開(kāi)集電極(open-collector)的通信協(xié)議,這意味著驅(qū)動(dòng)器(主設(shè)備或從設(shè)備)只能將線(xiàn)拉低到低電平(邏輯0),但不能主動(dòng)將線(xiàn)拉高到高電平(邏輯1)。


在I2C通信中,SDA(數(shù)據(jù)線(xiàn))和SCL(時(shí)鐘線(xiàn))在空閑狀態(tài)下都應(yīng)處于高電平。為了實(shí)現(xiàn)這一點(diǎn),需要在總線(xiàn)的SDA和SCL線(xiàn)上添加上拉電阻。當(dāng)總線(xiàn)上的所有驅(qū)動(dòng)器都處于不工作狀態(tài)(高阻態(tài))時(shí),這些上拉電阻會(huì)將信號(hào)線(xiàn)拉升至電源電壓,確保線(xiàn)路保持高電平。


當(dāng)需要發(fā)送低電平信號(hào)時(shí),設(shè)備會(huì)通過(guò)將信號(hào)線(xiàn)連接到地,從而克服上拉電阻,使信號(hào)線(xiàn)達(dá)到低電平。當(dāng)設(shè)備不再驅(qū)動(dòng)線(xiàn)時(shí),信號(hào)線(xiàn)會(huì)再次被上拉電阻拉回到高電平。


具體而言,上拉電阻的作用包括以下幾個(gè)方面:

  1. 確保信號(hào)線(xiàn)在空閑時(shí)保持高電平:I2C總線(xiàn)在空閑時(shí)要求信號(hào)線(xiàn)為高電平狀態(tài),上拉電阻實(shí)現(xiàn)了這一功能。

  2. 防止浮空狀態(tài):沒(méi)有上拉電阻時(shí),SDA和SCL線(xiàn)在設(shè)備不驅(qū)動(dòng)時(shí)可能處于不確定的狀態(tài),上拉電阻可以防止這種浮空狀態(tài),確保信號(hào)線(xiàn)有明確的電平。

  3. 適應(yīng)多設(shè)備通信:I2C總線(xiàn)允許多個(gè)設(shè)備連接在同一條總線(xiàn)上,任何一個(gè)設(shè)備都可以驅(qū)動(dòng)總線(xiàn)。上拉電阻使得每個(gè)設(shè)備都可以在不工作時(shí)保持總線(xiàn)的高電平,確保通信的可靠性。


因此,上拉電阻是I2C總線(xiàn)正常工作和通信穩(wěn)定性的重要組成部分。


一些總線(xiàn)有輸出輸出接口,本質(zhì)就是OC或OD的接口。I2C(Inter Integrated Circuit,內(nèi)部集成電路)總線(xiàn)就是典型的OD輸出結(jié)構(gòu)的應(yīng)用,典型的I2C電路都有上拉電阻,如圖所示。


I2C信號(hào)為什么需要上拉電阻


I2C接口的SCL與SDA都是OD輸出結(jié)構(gòu)輸出,這樣的好處是可以作為雙向數(shù)據(jù)總線(xiàn)。OC、OD電路往往是剛剛說(shuō)的輸入輸出管腳,然而一些總線(xiàn)的I/O就是一些雙向數(shù)據(jù)的信號(hào),其實(shí)就是把輸入和輸出短接在一起,然后把輸出做成OC或OD。這樣處理不單用一根信號(hào)實(shí)現(xiàn)了雙向數(shù)據(jù),既可以輸出又可以輸入,同時(shí)解決了雙向數(shù)據(jù)如果同時(shí)發(fā)送帶來(lái)的數(shù)據(jù)沖突的問(wèn)題。


一般來(lái)說(shuō),芯片的輸出管腳是推挽結(jié)構(gòu)。如果兩個(gè)芯片的推挽結(jié)構(gòu)輸出管腳連接在一起,某一個(gè)時(shí)刻兩個(gè)芯片同為輸出,一個(gè)如果輸出為高、一個(gè)輸出為低,則可能出現(xiàn)短路的現(xiàn)象,工作中稱(chēng)為“總線(xiàn)沖突”,如圖所示。用OC、OD電路可以避免短路,所有絕大多數(shù)總線(xiàn)都是采用這種方式設(shè)計(jì),如I2C、LPC、PCI等總線(xiàn)的輸入輸出管腳都是這樣的管腳類(lèi)型。當(dāng)然也有些總線(xiàn)方式,I/O端口不需要外接,是芯片內(nèi)置了上拉電阻。


I2C信號(hào)為什么需要上拉電阻


對(duì)于I2C總線(xiàn),總線(xiàn)上有兩個(gè)芯片或多個(gè)芯片,所有芯片的引腳輸出什么狀態(tài),都不會(huì)出現(xiàn)短路的情況引起數(shù)據(jù)沖突,配合各自芯片內(nèi)部的數(shù)據(jù)識(shí)別電路及仲裁系統(tǒng),雙方都可以主動(dòng)給另一方發(fā)送信息。也就是說(shuō),任何一方都可以將拉低,不拉低時(shí)就是釋放總線(xiàn),總線(xiàn)上為高電平,而不會(huì)影響起數(shù)據(jù)沖突。


I2C信號(hào)為什么需要上拉電阻



I2C被設(shè)計(jì)成開(kāi)放漏極(Open-Drain, OD)或開(kāi)集電極(Open-Collector, OC)結(jié)構(gòu)的原因主要與總線(xiàn)的多主機(jī)、多從機(jī)通信架構(gòu)和信號(hào)線(xiàn)的共用特點(diǎn)有關(guān)。具體原因包括:


1. 支持多設(shè)備共用總線(xiàn)

I2C總線(xiàn)可以連接多個(gè)主設(shè)備和從設(shè)備,這就要求多個(gè)設(shè)備可以共享同一條SDA(數(shù)據(jù)線(xiàn))和SCL(時(shí)鐘線(xiàn))。如果信號(hào)線(xiàn)是由設(shè)備主動(dòng)驅(qū)動(dòng)到高電平或低電平(推挽結(jié)構(gòu)),則當(dāng)一個(gè)設(shè)備試圖驅(qū)動(dòng)信號(hào)線(xiàn)為高電平而另一個(gè)設(shè)備試圖驅(qū)動(dòng)信號(hào)線(xiàn)為低電平時(shí),會(huì)發(fā)生電平?jīng)_突,可能會(huì)導(dǎo)致短路或其他問(wèn)題。


開(kāi)放漏極或開(kāi)集電極結(jié)構(gòu)允許多個(gè)設(shè)備將線(xiàn)拉低,而不會(huì)引起沖突。當(dāng)所有設(shè)備都不工作時(shí)(即處于高阻態(tài)),上拉電阻會(huì)將信號(hào)線(xiàn)拉回到高電平。這樣,多個(gè)設(shè)備可以安全地共用同一條I2C總線(xiàn),而不會(huì)發(fā)生沖突。


2. 簡(jiǎn)化多主機(jī)仲裁

I2C協(xié)議允許多個(gè)主設(shè)備共用同一總線(xiàn)。在多主設(shè)備嘗試同時(shí)傳輸數(shù)據(jù)的情況下,需要進(jìn)行仲裁。開(kāi)放漏極/開(kāi)集電極結(jié)構(gòu)使得這種仲裁變得簡(jiǎn)單可行。


  • 仲裁過(guò)程是通過(guò)監(jiān)視SDA線(xiàn)來(lái)完成的:每個(gè)主設(shè)備在發(fā)送數(shù)據(jù)時(shí)都監(jiān)視SDA線(xiàn)。如果一個(gè)主設(shè)備試圖發(fā)送高電平,但監(jiān)視到的是低電平(因?yàn)榱硪粋€(gè)設(shè)備在拉低SDA線(xiàn)),它就知道有另一個(gè)設(shè)備在傳輸數(shù)據(jù),因此它將停止傳輸。這個(gè)過(guò)程使得仲裁成為可能,而不會(huì)導(dǎo)致信號(hào)沖突。


3. 簡(jiǎn)化電路設(shè)計(jì)

使用開(kāi)放漏極或開(kāi)集電極的驅(qū)動(dòng)方式可以簡(jiǎn)化電路設(shè)計(jì)。因?yàn)樵O(shè)備只需要一個(gè)下拉開(kāi)關(guān)來(lái)控制信號(hào)線(xiàn)的電平(拉低到地),而不需要額外的電路來(lái)推動(dòng)信號(hào)線(xiàn)到高電平。這樣,電路更加簡(jiǎn)單,也減少了功耗。


4. 適應(yīng)不同電壓的設(shè)備

I2C總線(xiàn)的開(kāi)放漏極/開(kāi)集電極結(jié)構(gòu)允許不同電壓的設(shè)備共用一條總線(xiàn)。例如,一個(gè)3.3V的設(shè)備和一個(gè)5V的設(shè)備可以通過(guò)上拉電阻連接到同一個(gè)I2C總線(xiàn),并且上拉電阻可以選擇一個(gè)中間電壓(如3.3V或5V)來(lái)適應(yīng)不同電壓的設(shè)備。


總的來(lái)說(shuō),I2C采用開(kāi)放漏極或開(kāi)集電極結(jié)構(gòu)是為了實(shí)現(xiàn)多設(shè)備安全共用總線(xiàn)、支持多主設(shè)備仲裁、簡(jiǎn)化電路設(shè)計(jì)以及兼容不同電壓的設(shè)備。這些特性使得I2C在簡(jiǎn)單的雙線(xiàn)通信協(xié)議中具有很大的優(yōu)勢(shì)。


免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系小編進(jìn)行處理。


推薦閱讀:

無(wú)需磁性元件的光伏調(diào)節(jié)器

貿(mào)澤電子對(duì)FIRST創(chuàng)始人兼發(fā)明家Dean Kamen進(jìn)行視頻專(zhuān)訪(fǎng)

在工業(yè)電機(jī)驅(qū)動(dòng)器中采用碳化硅設(shè)計(jì)的實(shí)用工具

授權(quán)代理商貿(mào)澤電子為工程師提供AMD的全新AI和邊緣技術(shù)

高精度UWB技術(shù)滿(mǎn)足物聯(lián)網(wǎng)設(shè)備需求


特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉