推挽輸出(Push-Pull Output)
推挽輸出結構是由兩個MOS或者三極管收到互補控制的信號控制,兩個管子始終一個在導通,一個在截止,如下圖所示:
推挽輸出的最大特點是可以真正能真正的輸出高電平和低電平,在兩種電平下都具有驅動能力。所謂的驅動能力,就是指輸出電流的能力。對於驅動大負載(即負載內阻越小,負載越大)時,例如IO輸出為5V,驅動的負載內阻為10ohm,於是根據歐姆定律可以正常情況下負載上的電流為0.5A(推算出功率為2.5W)。顯然一般的IO不可能有這么大的驅動能力,也就是沒有辦法輸出這么大的電流。於是造成的結果就是輸出電壓會被拉下來,達不到標稱的5V。當然如果只是數字信號的傳遞,下一級的輸入阻抗理論上最好是高阻,也就是只需要傳電壓,基本沒有電流,也就沒有功率,於是就不需要很大的驅動能力。
對於推挽輸出,輸出高、低電平時電流的流向如圖 2所示。所以相比於后面介紹的開漏輸出,輸出高電平時的驅動能力強很多。
但推挽輸出的一個缺點是,如果當兩個推挽輸出結構相連在一起,一個輸出高電平,即上面的MOS導通,下面的MOS閉合時;同時另一個輸出低電平,即上面的MOS閉合,下面的MOS導通時。電流會從第一個引腳的VCC通過上端MOS再經過第二個引腳的下端MOS直接流向GND。整個通路上電阻很小,會發生短路,進而可能造成端口的損害。這也是為什么推挽輸出不能實現" 線與"的原因。
開漏輸出(Open Drain Output)
常說的與推挽輸出相對的就是開漏輸出,對於開漏輸出和推挽輸出的區別最普遍的說法就是開漏輸出無法真正輸出高電平,即高電平時沒有驅動能力,需要借助外部上拉電阻完成對外驅動。下面就從內部結構和原理上說明為什么開漏輸出輸出高電平時沒有驅動能力,以及進一步比較與推挽輸出的區別。
首先需要介紹一下開漏輸出和開集輸出。這兩種輸出的原理和特性基本是類似的,區別在於一個是使用MOS管,其中的"漏"指的就是MOS管的漏極;另一個使用三極管,其中的"集"指的就是MOS三極管的集電極。這兩者其實都是和推挽輸出相對應的輸出模式,由於使用MOS管的情況較多,很多時候就用"開漏輸出"這個詞代替了開漏輸出和開集輸出。
介紹就先從開集輸出開始,其原理電路結如圖 3所示。
圖3左邊的電路是開集(OC)輸出最基本的電路,當輸入為高電平時,NPN三極管導通,Output被拉到GND,輸出為低電平;當輸入為低電平時,NPN三極管閉合,Output相當於開路(輸出高阻)。高電平時輸出高阻(高阻、三態以及floating說的都是一個意思),此時對外沒有任何的驅動能力。這就是開漏和開集輸出最大的特點,如何利用該特點完成各種功能稍后介紹。這個電路雖然完成了開集輸出的功能,但是會出現input為高,輸出為低;input為低,輸出為高的情況。
圖 3右邊的電路中多使用了一個三極管完成了"反相"。當輸入為高電平時,第一個三極管導通,此時第二個三極管的輸入端會被拉到GND,於是第二個三極管閉合,輸出高阻;當輸入為低電平時,第一個三極管閉合,此時第二個三極管的輸入端會被上拉電阻拉到高電平,於是第二個三極管導通,輸出被拉到GND。這樣,這個電路的輸入與輸出是同相的了。
接下來介紹開漏輸出的電路,如圖4所示。原理與開集輸出基本相同,只是將三極管換成了MOS而已。
接着說說開漏、開集輸出的特點以及應用,由於兩者相似,后文中若無特殊說明,則用開漏表示開漏和開集輸出電路。開漏輸出最主要的特性就是高電平沒有驅動能力,需要借助外部上拉電阻才能真正輸出高電平,其電路如圖5所示。
當MOS管閉合時,開漏輸出電路輸出高電平,且連接着負載時,電流流向是從外部電源,流經上來電阻RPU,流進負載,最后進入GND。
1.開漏輸出的這一特性一個明顯的優勢就是可以很方便的調節輸出的電平,因為輸出電平完全由上拉電阻連接的電源電平決定。所以在需要進行電平轉換的地方,非常適合使用開漏輸出。
2.開漏輸出的這一特性另一個好處在於可以實現"線與"功能,所謂的"線與"指的是多個信號線直接連接在一起,只有當所有信號全部為高電平時,合在一起的總線為高電平;只要有任意一個或者多個信號為低電平,則總線為低電平。而推挽輸出就不行,如果高電平和低電平連在一起,會出現電流倒灌,損壞器件。
兩者比較
(轉載自知乎: Kevin Zhang - 知乎 (zhihu.com))