GPIO中Open-Drain與Push-Pull之間的區(qū)別是什么

本篇內(nèi)容介紹了“GPIO中Open-Drain與Push-Pull之間的區(qū)別是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、嘉定網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、嘉定網(wǎng)絡(luò)營(yíng)銷(xiāo)、嘉定企業(yè)策劃、嘉定品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供嘉定建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:bm7419.com

【Open-Drain與Push-Pull】
GPIO的功能,簡(jiǎn)單說(shuō)就是可以根據(jù)自己的需要去配置為輸入或輸出。(General Purpose Input Output,簡(jiǎn)稱(chēng)為GPIO或總線擴(kuò)展器,利用工業(yè)標(biāo)準(zhǔn)I2C、SMBus?或SPI?接口簡(jiǎn)化了I/O口的擴(kuò)展。當(dāng)微控制器或芯片組沒(méi)有足夠的I/O端口,或當(dāng)系統(tǒng)需要采用遠(yuǎn)端串行通信或控制時(shí),GPIO產(chǎn)品能夠提供額外的控制和監(jiān)視功能。)但是在配置GPIO管腳的時(shí)候,常會(huì)見(jiàn)到兩種模式:開(kāi)漏(open-drain,漏極開(kāi)路)和推挽(push-pull)。對(duì)此兩種模式,有何區(qū)別和聯(lián)系,下面整理了一些資料,來(lái)詳細(xì)解釋一下:

【Push-Pull推挽輸出】

原理:

輸出的器件是指輸出腳內(nèi)部集成有一對(duì)互補(bǔ)的MOSFET,當(dāng)Q1導(dǎo)通、Q2截止時(shí)輸出高電平;而當(dāng)Q1截止導(dǎo)通、Q2導(dǎo)通時(shí)輸出低電平。Push-Pull輸出,實(shí)際上內(nèi)部是用了兩個(gè)晶體管(transistor),此處分別稱(chēng)為T(mén)op-Transistor和Bottom-Transistor。通過(guò)開(kāi)關(guān)對(duì)應(yīng)的晶體管,輸出對(duì)應(yīng)的電平。Top-Transistor打開(kāi)(Bottom-Transistor關(guān)閉),輸出為高電平;Bottom-Transistor打開(kāi)(Top-Transistor關(guān)閉),輸出低電平。Push-pull即能夠漏電流(sink current),又可以集電流(source current)。其也許有,也許沒(méi)有另外一個(gè)狀態(tài):高阻抗(high impedance)狀態(tài)。除非Push-pull需要支持額外的高阻抗?fàn)顟B(tài),否則不需要額外的上拉電阻。

特點(diǎn):在CMOS電路里面應(yīng)該叫CMOS輸出更合適,因?yàn)樵贑MOS里面的push-pull輸出能力不可能做得雙極那么大。輸出能力看IC內(nèi)部輸出極N管P管的面積。push-pull是現(xiàn)在CMOS電路里面用得最多的輸出級(jí)設(shè)計(jì)方式。

優(yōu)點(diǎn):(1)可以吸電流,也可以貫電流;(2)和開(kāi)漏輸出相比,push-pull的高低電平由IC的電源低定,不能簡(jiǎn)單的做邏輯操作等。

缺點(diǎn):一條總線上只能有一個(gè)push-pull輸出的器件;

【Open-Drain開(kāi)漏輸出】

原理:

開(kāi)漏電路就是指以MOSFET的漏極為輸出的電路。指內(nèi)部輸出和地之間有個(gè)N溝道的MOSFET(Q1),這些器件可以用于電平轉(zhuǎn)換的應(yīng)用。輸出電壓由Vcc決定。Vcc可以大于輸入高電平電壓VCC (call UP-Translate)也可以低于輸入高電平電壓VCC(call Down-Translate)
Open-Drain輸出,則是比push-pull少了個(gè)top transistor,只有那個(gè)bottom transistor。(就像push-pull中的那樣)當(dāng)bottom transistor關(guān)閉,則輸出為高電平。此處沒(méi)法輸出高電平,想要輸出高電平,必須外部再接一個(gè)上拉電阻(pull-up resistor)。Open-drain只能夠漏電流(sink current),如果想要集電流(source current),則需要加一個(gè)上拉電阻。

優(yōu)點(diǎn):
(1)對(duì)于各種電壓節(jié)點(diǎn)間的電平轉(zhuǎn)換非常有用,可以用于各種電壓節(jié)點(diǎn)的Up-translate和Down-translate轉(zhuǎn)換
(2)可以將多個(gè)開(kāi)漏輸出的Pin腳,連接到一條線上,形成“與邏輯”關(guān)系,即“線與”功能,任意一個(gè)變低后,開(kāi)漏線上的邏輯就為0了。這也是I2C,SMBus等總線判斷總線占用狀態(tài)的原理。
(3)利用 外部電路的驅(qū)動(dòng)能力,減少I(mǎi)C內(nèi)部的驅(qū)動(dòng)。當(dāng)IC內(nèi)部MOSFET導(dǎo)通時(shí),驅(qū)動(dòng)電流是從外部的VCC流經(jīng)R pull-up ,MOSFET到GND。IC內(nèi)部?jī)H需很小的柵極驅(qū)動(dòng)電流。
(4)可以利用改變上拉電源的電壓,改變傳輸電平,如圖, IC的邏輯電平由電源Vcc1決定,而輸出高電平則由Vcc2決定。這樣我們就可以用低電平邏輯控制輸出高電平邏輯了。

GPIO中Open-Drain與Push-Pull之間的區(qū)別是什么

OD輸出電平的原理


缺點(diǎn):開(kāi)漏Pin不連接外部的上拉電阻,則只能輸出低電平。當(dāng)輸出電平為低時(shí),N溝道三極管是導(dǎo)通的,這樣在Vcc'和GND之間有一個(gè)持續(xù)的電流流過(guò)上拉電阻R和三極管Q1。這會(huì)影響整個(gè)系統(tǒng)的功耗。采用較大值的上拉電阻可以減小電流。但是,但是大的阻值會(huì)使輸出信號(hào)的上升時(shí)間變慢。即上拉電阻R pull-up的阻值 決定了邏輯電平轉(zhuǎn)換的沿的速度。阻值越大,速度越低功耗越小。反之亦然。

==================================

常見(jiàn)的GPIO的模式可以配置為open-drain或push-pull,具體實(shí)現(xiàn)上,常為通過(guò)配置對(duì)應(yīng)的寄存器的某些位來(lái)配置為open-drain或是push-pull。當(dāng)我們通過(guò)CPU去設(shè)置那些GPIO的配置寄存器的某位的時(shí)候,其GPIO硬件IC內(nèi)部的實(shí)現(xiàn)是,會(huì)去打開(kāi)或關(guān)閉對(duì)應(yīng)的top transistor。相應(yīng)地,如果設(shè)置為了Open-D模式的話,是需要上拉電阻才能實(shí)現(xiàn),也能夠輸出高電平的。因此,如果硬件內(nèi)部(internal)本身包含了對(duì)應(yīng)的上拉電阻的話,此時(shí)會(huì)去關(guān)閉或打開(kāi)對(duì)應(yīng)的上拉電阻。如果GPIO硬件IC內(nèi)部沒(méi)有對(duì)應(yīng)的上拉電阻的話,那么你的硬件電路中,必須自己提供對(duì)應(yīng)的外部(external)的上拉電阻。而push-pull輸出的優(yōu)勢(shì)是速度快,因?yàn)榫€路是以兩種方式驅(qū)動(dòng)的。而帶了上拉電阻的線路,即使以最快的速度去提升電壓,最快也要一個(gè)常量的R×C的時(shí)間。其中R是電阻,C是寄生電容(parasitic capacitance),包括了pin腳的電容和板子的電容。但是,push-pull相對(duì)的缺點(diǎn)是往往需要消耗更多的電流,即功耗相對(duì)大。而open-drain所消耗的電流相對(duì)較小,由電阻R所限制,而R不能太小,因?yàn)楫?dāng)輸出為低電平的時(shí)候,需要sink更低的transistor,這意味著更高的功耗。而open-drain的好處之一是,允許你short多個(gè)open-drain的電路,共用一個(gè)上拉電阻,此種做法稱(chēng)為wired-OR連接,此時(shí)可以通過(guò)拉低任何一個(gè)IO的pin腳使得輸出為低電平。為了輸出高電平,則所有的都輸出高電平。此種邏輯,就是“線與”的功能,可以不需要額外的門(mén)電路來(lái)實(shí)現(xiàn)此部分邏輯。

“GPIO中Open-Drain與Push-Pull之間的區(qū)別是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

當(dāng)前標(biāo)題:GPIO中Open-Drain與Push-Pull之間的區(qū)別是什么
網(wǎng)頁(yè)URL:http://bm7419.com/article48/goioep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站微信公眾號(hào)、定制網(wǎng)站電子商務(wù)、標(biāo)簽優(yōu)化小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)