三態邏輯

數字電路中,三態邏輯(英語:tri-state logicThree-state logic)允許輸出端在0和1兩種邏輯電平之外呈現高阻態,等效於將輸出的影響從後級電路中移除。這允許多個電路共同使用同一個輸出線(例如總線)。

一個三態邏輯緩衝器可以類比一個開關的工作情況。若B處於導通,則開關閉合;反之,若B斷開,則開關斷開。
輸入 輸出
A B C
0 1 0
1 1
X 0 Z

三態輸出在寄存器總線以及7400系列4000系列等各型號的邏輯IC發揮着重要的作用,並常常內置在其他各種集成電路。除此之外,三態邏輯的典型應用還包括微處理器存儲設備、外設的內部和外部總線。許多設備提供一個OEOutput Enable)用於在低電平時才令輸出使能,而在不使能時保持高阻態。

不過,三態邏輯(tri-state[1]這個術語不應該同三值邏輯混淆。

應用

三態邏輯緩衝器還可以被用在數據選擇器中,尤其是那些具有大量輸入的情況。[2]另外,三態邏輯對於總線的工作十分關鍵。 三態邏輯能夠減少用於驅動一系列發光二極管所用的導線數量。

輸出選擇和芯片選擇

許多設計為連接總線的存儲設備(例如 RAMROM)同時具有CS(芯片選擇,chip select)和OE(輸出使能,output enable)引腳,它們起到的作用即產生三態邏輯。如果CS未與一個低電平連接,那麼將輸出高阻態。

不同之處在於輸出信號所需的時間。當芯片選擇未被使能(CS連接高電平[3])時,芯片內部根本不工作,並且在提供地址和接收數據之間有顯著的時間延遲。當然,這樣的優點是在此情況中,芯片所消耗的功率最少。

當芯片選擇連接到一個低電平,那麼芯片內部將會進行預設的工作流程,只是因為輸出使能引腳未連接低電平,最後並未輸出對應的信號。當總線正在進行其他工作的時候,這種特性將會起到作用,而當最後輸出使能連接到低電平之後,數據才會以最小延遲的狀態輸出。具有這樣的輸出使能引腳的 ROM 或者 SRAM 通常具有兩個存取時序:一個是芯片被選擇以及地址有效,另一個是輸出被使能。

上拉電阻和下拉電阻

當一節點所有相連的輸出都處於第三狀態(高阻態),它們對於電路其餘部門的影響就被消除了。如果沒有別的電路元素來決定其具體的狀態(高或者低),那麼其對應的電路節點會處於一種類似「浮動」的狀態。電路設計人員經常使用上拉電阻以及下拉電阻(通常為1至100 kΩ)讓這個處於三態的節點能有確定的預設邏輯狀態,防止狀態不定或感染雜訊。例如,I²C總線協議(一種常用的設備間雙向通信的協議)在兩條通信線上使用了上拉電阻。當設備處於非激活狀態,它們「釋放」掉通信線並使它們的輸出端呈現高阻態,這樣使它們的高低電平不影響其他電路。當總線上所有的設備都「釋放」掉通信線時,對輸出目標電路的唯一影響就是上拉電阻將輸出端的電平拉高。當一個設備需要通信時,這個輸出端脫離高阻態,並使得通信線的輸出端電平降低。這時,通信的設備利用此協議將通信的內容呈現在輸出端上——這樣將避免總線上一個設備驅動高電平而另一個設備驅動低電平的衝突。

PCI總線也提供了上拉電阻,但是它們要求在數個時鐘周期內將輸出信號拉高,為了使得高速工作成為可能,其對應的工作協議要求每一個連接到總線上的設備在至少一個時鐘周期的時間裡輸出控制信號,然後才進入高阻態。這樣,上拉電阻的作用只是在面對串擾的情況下,維持總線的信號。[4]

參考文獻

  1. ^ Tri-state美國國家半導體的註冊商標,不過也經常用來描述任意製造商生產的這類產品。
  2. ^ Winfield Hill and Paul Horowitz. The Art of Electronics. Cambridge University Press. 1989: 495–497 [2011-12-01]. ISBN 0-521-37095-7. (原始內容存檔於2011-08-05). 
  3. ^ 但如果不是CS而是CS,則連接高電平才是使能
  4. ^ "On-Chip Buses/Networks for SoC"頁面存檔備份,存於網際網路檔案館) "On-Chip Buses [have] No use of tri-state signals [because] Tri-state bus is difficult for static timing analysis"