在數位電子學中,三態邏輯(tristate,或簡稱 TRIS、3-態、三態)是容許輸入或輸出假設為1、0或高阻抗狀態(即開路,下簡稱 Hi-Z)。
一個緩衝器三態圖
三態輸入 可以檢測引腳是否為邏輯1、0或未連接(開路)。
三態輸出 容許多個電路共享相同的輸出線。如果有多個設備與另一個設備電氣連接,則通常會將輸出置於 Hi-Z 狀態以防止短路,例如當一個設備輸出高電平(邏輯1)而另一個設備輸出低電平(邏輯0)時。
當輸出為三態(處於 Hi-Z 狀態)時,它們對電路其餘部分的影響將被消除,如果沒有其他電路元件能夠決定其狀態,則電路節點將為「浮動」狀態。電路設計人員通常會使用上拉或下拉電阻(通常在1-100 kΩ範圍內)來影響當輸出為三態時的電路。
*三態邏輯還可以減少驅動一組 LED 所需的電線數量(tri-state multiplexing,或稱 Charlieplexing)。
共四種不同類型的三態緩衝器,一組是通過「Active-HIGH 高態動作」控制訊號產生反向或非反向輸出來設定輸出是啟用或停用。同樣,亦可以通過「Active-LOW 低態動作」控制訊號產生逆向或非逆向輸出來控制緩衝器輸出,如下所示。
三態(TRIS)在編程中也很常見。 TRIS 暫存器讓使用者選擇引腳是輸入還是輸出,及進行讀寫工作。在使用 I/O 引腳之前,必須先配置該寄存器。上電重置後的典型預設是全部引腳都被定義為輸入(讀取)。
- TRIS位 = 1 → 引腳配置為輸入
- TRIS位 = 0 → 引腳配置為輸出
- 一種簡單的記憶方法是,1 看起來像「I」,而 0 看起來像「O」
三態緩衝器廣泛應用於大量電子和微處理器電路中,因為它們容許多個邏輯設備連接到同一根電線或匯流排上,而不會損壞或丟失數據。例如,假設我們有一條數據線或數據匯流排,連接著一些記憶體、周邊裝置、I/O 或 CPU。這其中的每個設備都能在這個單一的數據匯流排上相互收發數據,同時亦會產生所謂的競爭。
當多個設備連接在一起時,就會發生競爭,因為有些設備希望將輸出驅動到高電平,而有些設備則希望驅動到低電平。如果這些設備同時開始發送或接收數據,當一個設備向匯流排輸出邏輯「1」(即電源電壓),而另一個設備設為邏輯電平「0」或接地時,可能會發生短路,並可能導致設備損壞和數據丟失。
數位訊息通過這些數據匯流排或數據高速通道發送,可以採用序列方式(一次一位元)發送,也可以利用八條(或更多)線以並聯形式一起發送;例如,微處理器數據匯流排容許多個三態緩衝器連接到同一數據高速通道上,而不會損壞或丟失數據,如圖所示。
之後,三態緩衝器可用於將設備和電路與數據匯流排相互隔離。如果將幾個三態緩衝器的輸出連接在一起,則可使用解碼器,這樣一來,在任何時間都只容許一組三態緩衝器處於有效狀態,而其他設備處於高阻抗狀態。下圖展示了連接到 4 線數據匯流排的三態緩衝器示例。
這個基本示例展示如何使用二元解碼器在數據集中單獨或集體控制多個三態緩衝器。解碼器會選擇相對於其二進制輸入的適當輸出,從而只容許一組數據將邏輯「1」或邏輯「0」輸出狀態傳遞到匯流排上。此時,連接到同一匯流排的所有其他三態輸出將處於高阻抗 Hi-Z 狀態,因而達到被停用的目的。
隨後,當高態動作訊號通過「致能」引線 ENA 應用到三態緩衝器時,來自數據集「A」的數據只能傳輸到公共匯流排。在所有其他時間,它表示高阻抗條件,因而可以有效地與數據匯流排隔離。
同樣,數據集「B」僅在通過 ENB 應用致能訊號時,才能將數據傳遞給匯流排。 TTL 74244 八進制緩衝器就是一同連接以控制數據集的典型示例。
你也可以將三態緩衝器「背對背」連接,以產生所謂的雙向緩衝器電路,其中一個「高態動作緩衝器」採用並聯連接,但與一個「低態動作緩衝器」的方向相反。
在這裡,「致能」控制輸入更像是一個方向控制訊號,使數據的讀取源和傳輸目標均為同一個數據總線。在此類應用中,你可以使用具有雙向切換能力的三態緩衝器,如 TTL 74245。
我們已經看到,三態緩衝器是一種非反向物料,只有當致能(EN)引腳的輸入為高電平時,它才會提供輸出(與輸入相同),否則緩衝器的輸出會進入高阻抗(Hi-Z)狀態。三態輸出不僅用於數位三態緩衝器,還用於許多集成電路和數位系統中。
數位緩衝器和三態緩衝器都可用於提供電壓或電流放大,從而驅動比傳統邏輯門高得多的負載,如繼電器、燈或功率晶體管。但緩衝器也可用於在兩個或多個電路之間提供電隔離。
我們了解到,如果幾個三態設備連接在一起,就可以形成一個數據匯流排,只要在任意時間中只選擇其中一個,就不會出現問題。三態匯流排容許多個數位設備通過I/O訊號和地址解碼在同一數據匯流排上輸入和輸出數據。
三態緩衝器具有採用單向和雙向形式的四、十六或八進制緩衝器/驅動器的集成形式。
下面列出了一些常見的三態緩衝器:
MC14503BDR2GOSCT-ND | 296-32920-5-ND
- 請注意,輸出類型列為三態或推挽:
- 根據規格書,推挽式也是一種三態輸出:
更多資料
What is Charlieplexing, and what can I do with it?
Getting Started with the PIC32 and MPLAB X
ElectronicsTutorials - Digital Buffer Tutorial
Wikipedia - Three-state logic