在 DigiKey 技術論壇上有一篇熱門文章,探討了開汲極配置的「本質」。這篇文章將開汲極概念解釋為需要外部上拉電阻的數位電路。這是一個很好的解釋,但我們應該進一步探討開汲極電路的「優勢」所在。
在開始之前,我們先列出一些具有開汲極或開集電極連接的邏輯元件:
-
74 系列邏輯元件:7401、7403、7405、(7406 和高電流版本 7416)、(7407 和高電流版本 7417)以及其他十幾個同系列產品
-
4000 系列邏輯元件,例如 40107
-
比較器,例如 LM339D
-
幾乎所有內部整合電路 (I^2C),包括您最近連接到微控制器的感測器,以及新的 Adafruit STEMMA QT 和 Sparkfun Qwiic 介面。
-
ADI(Maxim)1-Wire 裝置,例如 DS18B20+ 溫度感測器
-
微控制器,包括新的 PIC 系列產品,例如 PIC16F18026。它為每個 I/O 引腳都提供了可設定的開汲極連接。
相關的例子不勝枚舉。然而,重點已經闡明:採用開汲極輸出和開集極輸出的數位裝置十分常見。深入了解這項技術及其優勢所在十分重要。本文將探討這種已有 50 多年歷史的配置為何至今仍然適用,以及為何它仍然是 PIC、Stemma QT 和 Qwiic 等現代裝置的設計特性之一。
為清晰簡潔起見,本文餘下部分將使用「開汲極」,或稱「漏極開路」一詞。
技術提示:採用開汲極配置有許多優勢,但速度並非其中之一。低電平到高電平轉換過程中通常存在的延遲問題將在另一篇文章中討論。
利用開汲極裝置進行電平轉換
開汲極連接可用於電平轉換。正如許多人所經歷的,曾經 5VDC 數位邏輯電路非常普遍。 Arduino UNO 就是一個典型的例子,它有 5VDC I/O。然而,近年來,3.3VDC 變得越來越流行。如今,在具有多種電壓的系統中,微控制器、FPGA 和感測器物理連接的情況並不少見。我相信您一定在各種元件上看過「5VDC 容忍」的規格說明。您可能也看過電平轉換電路。
開汲極配置便於在不同電壓之間進行電平轉換。圖 1 所示的 MiltiSim Live 模擬範例便是一個例證。圖中可以看到一對邏輯緩衝器驅動 MOSFET。每個 MOSFET 驅動一個白熾燈,該燈充當必要的上拉電阻。請注意,一個白熾燈連接到 3.3VDC 電源,另一個連接到 5.0VDC 電源。在本例中,MOSFET 用於將驅動數位邏輯與外部電壓隔離。換句話說,所有電源共享一個公共地,但正電壓之間沒有相互干擾。最後一點,當電路中有電流通過時,白熾燈會發光。這是一個很好的視覺指示,但可能會產生誤導,因為此時白熾燈處於邏輯低電平,大多數人通常以邏輯高電平來思考問題。
關於 Multisim Live:點選本文中的照片,即可存取該電路的公開模擬。任何人都可以使用各種控制來運行模擬。但是,除非您擁有 Multisim Live 訂閱,否則無法修改電路。 Multisim Live 是由 Digilent(National Instruments 旗下企業)提供的線上服務。
我們可以將圖 1 與 PIC 微控制器連結起來。在本例中,假設 PIC 由 5.0VDC 電源驅動。 I/O 配置為開汲極輸出。此時 PIC 的配置與圖 1 相同。PIC 的內部邏輯使用 5VDC 電源軌。PIC 的 MOS 驅動器與圖 1 中的 2N7000G MOSFET 一樣,以相同的方式接地。白熾燈可以替換為上拉電阻,從而使 PIC 能夠在混合電壓系統中工作,並能夠驅動和接收來自外部 3.3VDC 和 5.0VDC 設備的輸入。
技術提示:每個微控制器的 I/O 接腳上都包含一對箝位二極體。這些二極體提供一定的過壓和靜電保護。本說明中所述的電平轉換方法適用於使用 5.0VDC 供電的微控制器,並透過開汲極連接驅動 3.3VDC 和 5.0VDC 邏輯電路的情況。但是,反向操作則無效。如果透過開汲極連接施加 5.0VDC 負載,則可能會損壞由 3.3VDC 供電的微控制器。相關的 I/O 引腳到 VDD 的二極體將正向偏置,從而將引腳電壓限制在 3.3VDC 加上一個二極體壓降。如果沒有適當的限流措施,微控制器將會損壞。不過,這並不是什麼大問題,因為可以使用串聯電阻將 PIC 驅動外部 MOSFET(例如 2N7000)。
採用開汲極裝置的接線 NOR
在本文的第一部分,我們展示如何使用開汲極配置進行電平轉換。現在,我們將探討如何連接多個開汲極裝置以形成共用匯流排。該總線是 I^2C 通訊的核心。回顧一下,I^2C 介面允許多個節點在單一雙線匯流排上共用資料。串列資料 (SDA) 和串列時脈 (SCL) 線均包含一個上拉電阻,類似圖 2 所示的結構。
技術提示:當多個裝置需要共享少量資料時,I^2C 通訊匯流排最為有效。而當單一裝置需要共享大量資料時,則更傾向於使用相關的 SPI 協定。SPI 速度更快,因為它使用專用線路來選擇目標設備,從而無需透過串行介面發送位址。SPI 支援全雙工。此外,SPI 使用高精度 MOS 驅動器來驅動資料線。它不會像 I^2C 那樣出現響應遲緩的問題;關於 I^2C 的上拉電阻,我們將在另一篇文章中詳細介紹。
圖 2 顯示了三個開汲極 MOSFET。它們的汲極連接到一個公共上拉電阻。在本例中,我們使用一個燈泡作為上拉電阻,以便觀察電流流動。請注意電路的邏輯或特性。當單一 MOSFET 或多個 MOSFET 啟動時,燈泡會亮起;當所有 MOSFET 都關閉時,燈泡會熄滅。
對於圖 2 而言,獨立性和隔離性是重要的考慮因素。唯一的要求是所有裝置共用一個公共地。每個 MOSFET 都會克服上拉電阻的作用,並被拉向公共地。現在,我們可以將注意力轉移到圖 3 所示的 I^2C 通訊匯流排上。
技術提示:對於數位電子學新手來說,「邏輯高」和「邏輯低」這兩個術語可能會令人困惑。請參考圖 2。從燈泡(邏輯低)的角度來看,該電路是「或」電路:只要任何一個邏輯輸入為真,燈泡就會亮起。然而,從邏輯高的角度來看,該電路更恰當地被稱為「或非」電路。當且僅當所有輸入都為已關閉時,輸出才會為高電位。
採用開汲極裝置的 I2C 通訊匯流排
圖 3 展示了一個微控制器系統、一組感測器和一個致動器,適用於監控和自動化照料室內植物。圖 2 所示的所有開汲極概念均得以保留。唯一的區別在於,MOS 開汲極元件隱藏在每個區塊內部。上拉電阻和公共地也得以保留。我們可以看到,每個區塊可以透過拉低 SDA 線進行通訊。如有必要,每個裝置都可以將時脈線拉低。這個過程稱為時脈伸展(clock stretching),感測器可以利用時脈伸展來降低資料傳輸速率。
圖 3:I^2C 通訊匯流排中所採用的有線「及」邏輯的框圖表示。
結論
綜上所述,我們必須認識到,I^2C 匯流排上的通訊需要一個穩健的協定。每個設備必須在正確的時間拉取正確的電阻。如果發生故障,通訊將出現混亂,因為在任何給定時間只能有一個設備進行通訊。雖然我們當然可以繼續探討 I^2C 協議,但只需重點介紹一下開汲極連接即可。
開汲極和開集極的概念可以追溯到半個世紀前的 74 系列邏輯電路。當時,設計人員會非常欣賞像接線「或」這樣的電路所帶來的成本節約(減少晶片數量)。如今,開汲配置仍然是重要的設計工具,尤其是在板載通訊和一些電平轉換應用中。


