這個迷你系列文章描述了如何用繼電器構建計算機的 CPU(中央處理單元)。
英語中的“Y”聽起來像西班牙語(我的母語)中的“guay”,一個口語表達或俚語,意思是“酷”。從雙關語開始似乎是個好主意,但事實是我確實相信 Y 開關真的很酷。
雖然這個術語不是很常用(如果以前用過的話),但我認為它對這個開關的工作方式非常具有描述性或說明性。圖 1 顯示了 Y 開關的示意圖。它由一個可控開關組成,該開關可以改變其位置并將一個端子連接到其他兩個端子之一。

圖 1. Y 開關示意圖(來源:Javier Piay)
這種變化可能是由于各種性質的動作或刺激引起的:手動、機械、電氣、電子等。在沒有這種刺激的情況下,開關保持在其靜止/斷電位置,連接所謂的公共端子(COM)到所謂的常閉端子(NC)。如果施加刺激,開關將切換到其激活/通電位置,將 COM 端子連接到所謂的常開端子 (NO)。
Y 開關也稱為3 路開關或轉換開關,但是——正如 EEWeb 精通技術的成員已經知道的那樣——這種類型的開關通常被稱為單刀雙擲 (SPDT) 開關(另見“開關反彈和去抖動(第 1 部分):開關類型”)。
圖 2 顯示了 Y 開關的不同實現方式。從左到右,所示設備由手動、機械、電氣和電子方式控制或操作。不言而喻,有類似的設備可以實現其他類型的開關,例如單刀單擲 (SPST)、雙刀單擲 (DPST)、雙刀雙擲 (DPDT) 等。

圖 2. 從左到右,Y 型開關用于手動、機械、電動和電子操作。(來源:哈維爾皮耶)
任何電動開關通常稱為繼電器(圖 2 中右起第二列)。與其他形式的開關一樣,機電繼電器有多種類型,包括 SPST、SPDT、DPST、DPDT 等。
圖 3 顯示了 Y 或 SPDT 繼電器的示意圖。使開關的 COM 端子在 NC 和 NO 端子之間翻轉的電刺激(輸入信號)連接到標記為 S(意為“選擇”)的第四個端子。

圖 3. SPDT 繼電器原理圖(來源:Javier Piay)
SPDT 繼電器是我們將在繼電器計算設計和仿真項目中使用的主要組件(如果不是唯一的話)。至于實施/構建階段,我目前更傾向于使用該設備的電子版本(圖 2 右側的第一列),原因有很多,例如其緊湊的尺寸(每個 IC 三個或四個開關) 、非常低的價格(每個開關 3 美分)、快速原型制作(與面包板兼容)、非常廣泛的數字和模擬信號電平,并且易于耦合到其他電子設備(如果需要)。
在 SPDT 繼電器(或電子開關)中可用的四個端子/引腳中,只有 S 始終充當輸入。在某些使用場景中,COM 端子充當輸入,在這種情況下,NC 和 NO 端子都充當輸出。在其他使用場景中,NC 和 NO 端子充當輸入,在這種情況下,COM 端子充當輸出。與任何開關一樣,一旦繼電器成為更大電路的一部分,就會自動采用這些配置。
圖 4 說明了上述配置。出于演示目的,左側 SPDT 繼電器的 COM 端子配置為輸出。在這種情況下,NC 和 NO 端子都可以攜帶邏輯 0(深綠色)或邏輯 1(淺綠色)值,繼電器在這些端子之間進行選擇并將所選信號傳遞到 COM 輸出。由于該繼電器顯示為未激活或斷電 (S = 0),因此 COM 輸出反映了 NC 輸入上的邏輯 0 值。

圖 4. SPDT 繼電器允許的輸入/輸出 (I/O) 配置。(來源:哈維爾皮耶)
相比之下,右側 SPDT 繼電器的 COM 端子配置為輸入。由于此繼電器顯示為激活或通電 (S = 1),NO 輸出反映 COM 輸入上的邏輯 1 值;同時,NC 輸出處于高阻抗 (Z) 狀態,這意味著其他繼電器可以安全地將邏輯 0 或 1 值驅動到連接到此端子的信號(即導線)上。
在基于繼電器的二進制或數字計算中,大多數繼電器(如果不是全部)在計算模塊/系統內執行邏輯功能并實現邏輯門,這與執行電源和負載切換的獨立繼電器的通用應用形成對比.
SPDT 繼電器如此酷的原因在于它本身就是一個通用邏輯門。即可以用來實現任意的二輸入邏輯功能。只需意識到圖 4 左側的 SPDT 繼電器充當多路復用器 (MUX) 即可輕松證明這一點,眾所周知,該組件是通用邏輯門。
MUX: 如果 S 等于 0,則將 COM 設置為 NC,否則將 COM 設置為 NO。
相比之下,圖 4 右側的 SPDT 繼電器充當解復用器 (DEMUX)。
DEMUX:如果 S 等于 0,則將 NC 設置為 COM,否則將 NO 設置為 COM。
圖 5 顯示了如何使用 SPDT 繼電器實現任何原始邏輯門以及全加器。

圖 5. SPDT 繼電器作為通用邏輯門實現任何原始邏輯門和全加器。(來源:哈維爾皮耶)
NOT:如果 A 等于 0,則將輸出設置為 1,否則將輸出設置為 0。
AND: 如果 A 等于 0,則將輸出設置為 A (0),否則將輸出設置為 B。
或:如果 A 等于 0,則將輸出設置為 B,否則將輸出設置為 A (1)。
XOR:如果 A 等于 0,則將輸出設置為 B,否則將輸出設置為 NOT B。
NAND: 如果 A 等于 0,則將輸出設置為 NOT A (1),否則將輸出設置為 NOT B。
NOR:如果 A 等于 0,則將輸出設置為 NOT B,否則將輸出設置為 NOT A (0)。
XNOR: 如果 A 等于 0,則將輸出設置為 NOT B,否則將輸出設置為 B。
全加器(S = A + B + Cin):S = A XOR B XOR Cin。如果 A XOR B 等于 0,則將 Cout 設置為 A,否則將 Cout 設置為 Cin。
作為“構建繼電器計算機”迷你系列第 1 部分的最后一個示例,圖 6 顯示了使用 SPDT 繼電器實現 4:16 解碼器。

圖 6. 使用 SPDT 繼電器的 4:16 解碼器實現。(來源:哈維爾皮耶)
我希望你覺得這篇文章足夠有趣,可以繼續閱讀這個迷你系列的未來專欄,我們將在其中討論如何構建基于繼電器的寄存器、計數器、算術邏輯單元 (ALU) 和其他最終將允許我們構建了一臺中繼計算機,所有這些都基于不起眼的“Y”開關的概念。
一如既往,我歡迎您提出意見、問題和建議。
審核編輯:湯梓紅
-
繼電器
+關注
關注
133文章
5561瀏覽量
154776 -
cpu
+關注
關注
68文章
11277瀏覽量
224956 -
計算機
+關注
關注
19文章
7806瀏覽量
93190
發布評論請先 登錄
基于8085的低成本單板計算機
什么是單板計算機?
如何構建計算機
如何使用FPGA總結設計CPU和計算機
計算機最核心的CPU 12大知識點
易于構建的68008 CPU SBC(單板計算機)68k-MBC
如何用繼電器構建計算機的CPU
評論