新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 【新手收藏】關(guān)于各種IO輸出的類(lèi)型

【新手收藏】關(guān)于各種IO輸出的類(lèi)型

作者: 時(shí)間:2016-04-05 來(lái)源:網(wǎng)絡(luò) 收藏

  集電極開(kāi)路、漏極開(kāi)路、推挽、上拉電阻、弱上拉、三態(tài)門(mén)、準(zhǔn)雙向口

本文引用地址:http://m.butianyuan.cn/article/201604/289242.htm

  集電極開(kāi)路輸出的結(jié)構(gòu)如圖1所示,右邊的那個(gè)集電極什么都不接,所以叫做集電極開(kāi)路;左邊的為反相之用,使輸入為“0”時(shí),輸出也為“0”。

  對(duì)于圖 1,當(dāng)左端的輸入為“0”時(shí),前面的截止,所以5v電源通過(guò)1k電阻加到右邊的三極管上,右邊的三極管導(dǎo)通;當(dāng)左端的輸入為“1”時(shí),前面的三極管導(dǎo)通,而后面的三極管截止。

    

 

  下載附件 (46.02 KB) 我們將圖1簡(jiǎn)化成圖2的樣子,很明顯可以看出,當(dāng)開(kāi)關(guān)閉合時(shí),輸出直接接地,所以輸出電平為0。而當(dāng)開(kāi)關(guān)斷開(kāi)時(shí),則輸出端懸空了,即高阻態(tài)。這時(shí)電平狀態(tài)未知,如果后面一個(gè)電阻負(fù)載到地,那么輸出端 的電平就被這個(gè)負(fù)載拉到低電平了,所以這個(gè)電路是不能輸出高電平的。

  圖3中那個(gè)1k的電阻即是上拉電阻。如果開(kāi)關(guān)閉合,則有電流從1k電阻及開(kāi)關(guān)上流過(guò),但由于開(kāi)關(guān)閉和時(shí)電阻為0(方便我們的討論,實(shí)際情況中開(kāi)關(guān)電阻不為0,另外對(duì)于三極管還存在飽和壓降),所以在開(kāi)關(guān)上的電壓為0,即輸出電平為0。如果開(kāi)關(guān)斷開(kāi),則由于開(kāi)關(guān)電阻為無(wú)窮大(同上,不考慮實(shí)際中的 漏電流),所以流過(guò)的電流為0,因此在1k 電阻上的壓降也為0,所以輸出端的電壓就是5v了,這樣就能輸出高電平了。

  但是這個(gè)輸出的內(nèi)阻是比較大的——即1k,如果接一個(gè)電阻為r的負(fù)載,通過(guò)分壓計(jì)算,就可以算得最后的輸出電壓為5*r/(r+1000)伏,所以,如果要達(dá)到一定的電壓的話(huà),r就不能太小。如果r 真的太小,而導(dǎo)致輸出電壓不夠的話(huà),那我們只有通過(guò)減小那個(gè)1k的上拉電阻來(lái)增加驅(qū)動(dòng)能力。但是,上拉電阻又不能取得太小,因?yàn)楫?dāng)開(kāi)關(guān)閉合時(shí),將產(chǎn)生電流,由于開(kāi)關(guān)能流過(guò)的電流是有限的,因此限制了上拉電阻的取值。另外還需要考慮到,當(dāng)輸出低電平時(shí),負(fù)載可能還會(huì)給提供一部分電流從開(kāi)關(guān)流過(guò),因此要綜合這些電流考慮來(lái)選擇合適的上拉電阻。

  如果我們將一個(gè)讀數(shù)據(jù)用的輸入端接在輸出端,這樣就是一個(gè)口了,51的口就是這樣的結(jié)構(gòu),其中P0口內(nèi)部不帶上拉,而其它三個(gè)口帶內(nèi)部上拉。當(dāng)我們要使用輸入功能時(shí),只要將輸出口設(shè)置為1即可,這樣就相當(dāng)于那個(gè)開(kāi)關(guān)斷開(kāi),而對(duì)于P0口來(lái)說(shuō),就是高阻態(tài)了。

  對(duì)于漏極開(kāi)路(OD)輸出,跟集電極開(kāi)路輸出是十分類(lèi)似的。將上面的三極管換成場(chǎng)效應(yīng)管即可。這樣集電極就變成了漏極,OC就變成了OD,原理分析是一樣的。

  OC門(mén)主要用于3個(gè)方面:實(shí)現(xiàn)與或非邏輯,用做電平轉(zhuǎn)換,用做驅(qū)動(dòng)器。

  開(kāi)漏形式的電路有以下幾個(gè)特點(diǎn):

  1.利用外部電路的驅(qū)動(dòng)能力,減少I(mǎi)C內(nèi)部的驅(qū)動(dòng),或驅(qū)動(dòng)比芯片電源電壓高的負(fù)載。

  2.可以將多個(gè)開(kāi)漏輸出的Pin,連接到一條線(xiàn)上。通過(guò)一只上拉電阻,在不增加任何器件的情況下,形成“與邏輯”關(guān)系。這也是I2C,SMBus等總線(xiàn)判斷總線(xiàn)占用狀態(tài)的原理。

  3.由于漏級(jí)開(kāi)路,所以后級(jí)電路必須接一上拉電阻,上拉電阻的電源電壓就可以決定輸出電平。這樣就可以進(jìn)行任意電平的轉(zhuǎn)換了。

  4.源極開(kāi)路提供了靈活的輸出方式,但是也有其弱點(diǎn),就是帶來(lái)上升沿的延時(shí)。因?yàn)樯仙厥峭ㄟ^(guò)外接上拉無(wú)源電阻對(duì)負(fù)載充電,所以當(dāng)電阻選擇小時(shí)延時(shí)就小,但功耗大;反之延時(shí)大功耗小。所以如果對(duì)延時(shí)有要求,則建議用下降沿輸出。

  另一種輸出結(jié)構(gòu)是推挽輸出。推挽輸出的結(jié)構(gòu)就是把上面的上拉電阻也換成一個(gè)開(kāi)關(guān),當(dāng)要輸出高電平時(shí),上面的開(kāi)關(guān)通,下面的開(kāi)關(guān)斷;而要輸出低電平時(shí),則剛好相反。比起OC或者OD來(lái)說(shuō),這樣的推挽結(jié)構(gòu)高、低電平驅(qū)動(dòng)能力都很強(qiáng)。如果兩個(gè)輸出不同電平的輸出口接在一起的話(huà),就會(huì)產(chǎn)生很大的電流,有可能將輸出口燒壞。而上面說(shuō)的OC或OD輸出則不會(huì)有這樣的情況,因?yàn)樯侠娮杼峁┑碾娏鞅容^小。如果是推挽輸出的要設(shè)置為高阻態(tài)時(shí),則兩個(gè)開(kāi)關(guān)必須同時(shí)斷開(kāi)(或者在輸出口上使用一個(gè)傳輸門(mén)),這樣可作為輸入狀態(tài),AVR單片機(jī)的一些 口就是這種結(jié)構(gòu)。

  *******

  單片機(jī)內(nèi)部的邏輯經(jīng)過(guò)內(nèi)部的邏輯運(yùn)算后需要輸出到外面,外面的器件可能需要較大的電流才能推動(dòng),因此在單片機(jī)的輸出端口必須有一個(gè)驅(qū)動(dòng)電路。這種驅(qū)動(dòng)電路有兩種形式:

  其中的一種是采用一只N型三極管——NPN或N溝道,以NPN三極管為例,就是e接地,b接內(nèi)部的邏輯運(yùn)算,c引出。b受內(nèi)部驅(qū)動(dòng)可以控制三極管是否導(dǎo)通,但如果三極管的c極一直懸空,盡管b極上發(fā)生高低變化,c極上也不會(huì)有高低變化,因此在這種條件下必須在外部提供一個(gè)電阻,電阻的一端接c(引出腳)另一端接電源,這樣當(dāng)三極管的b有高電壓是三極管導(dǎo)通,c電壓為低,當(dāng)b為低電壓時(shí)三極管不通,c極在電阻的拉動(dòng)下為高電壓。這種驅(qū)動(dòng)電路有個(gè)特點(diǎn):低電壓是三極管驅(qū)動(dòng)的,高電壓是電阻驅(qū)動(dòng)的——上下不對(duì)稱(chēng),三極管導(dǎo)通時(shí)的ec內(nèi)阻很小,因此可以提供很大的電流,可以直接驅(qū)動(dòng)led甚至繼電器,但電阻的驅(qū)動(dòng)是有限的,最大高電平輸出電流=(VCC-Vh)/r;

  另一種是互補(bǔ)推挽輸出,采用2只晶體管,一只在上一只在下,上面的一只是n型,下面為p型(以三極管為例),兩只管子的連接為:NPN(上)的c連 VCC,PNP(下)的c接地,兩只管子的ee,bb相連,其中ee作為輸出(引出腳),bb接內(nèi)部邏輯。這個(gè)電路通常用于功率放大點(diǎn)路的末級(jí)(音響),當(dāng)bb接高電壓時(shí)NPN管導(dǎo)通輸出高電壓,由于三極管的ec電阻很小,因此輸出的高電壓有很強(qiáng)的驅(qū)動(dòng)能力,當(dāng)bb接低電壓時(shí)NPN截至,PNP導(dǎo)通,由于三極管的ec電阻很小因此輸出的低電壓有很強(qiáng)的驅(qū)動(dòng)能力。簡(jiǎn)單的例子,9013導(dǎo)通時(shí)ec電阻不到10歐,以Vh=2.5v,VCC=5v計(jì)算,高電平輸出電流最大=250MA,短路電流500ma,這個(gè)計(jì)算同時(shí)告訴我們采用推挽輸出時(shí)一定要小心千萬(wàn)不要出現(xiàn)外部電路短路的可能,否則肯定燒毀芯片,特別是外部驅(qū)動(dòng)三極管時(shí)別忘了在三極管的基極加限流電阻。推挽輸出電路的形式很多,有些單片機(jī)上下都采用n型管,但內(nèi)部邏輯提供互補(bǔ)輸出,以上的說(shuō)明僅僅為了說(shuō) 明推挽的原理,為了更深的理解可以參考功率放大電路。

  *******

  上拉電阻很大,提供的驅(qū)動(dòng)電流很小,叫弱上拉;反之叫強(qiáng)上拉。

  為什么要使用拉電阻:

  上拉就是將不確定的信號(hào)通過(guò)一個(gè)電阻嵌位在高電平,電阻同時(shí)起限流作用,下拉同理。上拉是對(duì)器件注入電流,下拉是輸出電流,弱強(qiáng)只是上拉電阻的阻值不同,沒(méi)有什么嚴(yán)格區(qū)分。

  對(duì)于非OC、OD輸出型電路提升電流和電壓的能力是有限的,上拉電阻的功能主要是為集電極開(kāi)路輸出型電路輸出電流通道。

  上拉電阻的主要應(yīng)用:

  1、當(dāng)TTL電路驅(qū)動(dòng)COMS電路時(shí),如果TTL電路輸出的高電平低于COMS電路的最低高電平(一般為3.5V),這時(shí)就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。

  2、OC門(mén)電路要輸出“1”時(shí)需要加上拉電阻,不加根本就沒(méi)有高電平。

  3、為加大輸出引腳的驅(qū)動(dòng)能力,有的單片機(jī)管腳上也常使用上拉電阻,但在用OC門(mén)作驅(qū)動(dòng)(例如:控制一個(gè) LED)灌電流工作時(shí)就可以不加上拉電阻。

  4、在COMS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產(chǎn)生降低輸入阻抗,提供泄荷通路。

  5、提高總線(xiàn)的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾。

  6、長(zhǎng)線(xiàn)傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。

  上拉電阻阻值的選擇原則包括:

  1、從節(jié)約功耗及芯片的灌電流能力考慮應(yīng)當(dāng)足夠大;電阻大,電流小。

  2、從確保足夠的驅(qū)動(dòng)電流考慮應(yīng)當(dāng)足夠小;電阻小,電流大。

  3、對(duì)于高速電路,過(guò)大的上拉電阻可能邊沿變平緩。

  綜合考慮以上三點(diǎn),通常在1k到10k之間選取。對(duì)下拉電阻也有類(lèi)似道理。

  *******

  高阻態(tài)時(shí)引腳對(duì)地電阻無(wú)窮,此時(shí)讀引腳電平時(shí)可以讀到真實(shí)的電平值。高阻態(tài)的重要作用就是I/O(輸入/輸出)口在輸入時(shí)讀入外部電平用。

  一般門(mén)與其它電路的連接,無(wú)非是兩種狀態(tài),1或者0,在比較復(fù)雜的系統(tǒng)中,為了能在一條傳輸線(xiàn)上傳送不同部件的信號(hào),研制了相應(yīng)的邏輯器件稱(chēng)為三態(tài)門(mén)。三態(tài)門(mén),除了有這兩種狀態(tài)以外還有一個(gè)高阻態(tài),就是高阻抗(電阻很大,相當(dāng)于開(kāi)路)。相當(dāng)于該門(mén)與和它連接的電路處于斷開(kāi)的狀態(tài)。三態(tài)門(mén)是一種擴(kuò)展邏輯功能的輸出級(jí),也是一種控制開(kāi)關(guān)。主要是用于總線(xiàn)的連接,因?yàn)榭偩€(xiàn)只允許同時(shí)只有一個(gè)使用者。通常在數(shù)據(jù)總線(xiàn)上接有多個(gè)器件,每個(gè)器件通過(guò)OE/CE之類(lèi)的信號(hào)選通。如器件沒(méi)有選通的話(huà)它就處于高阻態(tài),相當(dāng)于沒(méi)有接在總線(xiàn)上,不影響其它器件的工作。

  *******

  準(zhǔn)雙向口只能有效的讀取0,而對(duì)1則是采用讀取非零的方式,就是讀入的時(shí)候要先向IO上寫(xiě)1,再讀。

  真正的雙向口正如其名,就是真正的雙向IO不需要任何預(yù)操作可直接讀入讀出。



關(guān)鍵詞: IO 三極管

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉