前不久,ITT技術學院邀請我去做演講,我打算趁此機會讓學生們真正「動手」體驗——看一看、摸一摸繼電器和真空管這些器件。 我的辦公室裡現在就有幾個繼電器(哪個工程師沒有呢?),但這些小小的繼電器有點兒太摩登了,例如是裝在透明的塑料包裝裡,我擔心不能完全像我想的那樣展示給學生,傳達我的想法。Lntednc
為此我專門去了一家商店,這家店常有一些讓我愛不釋手的「老古董」。我問他們有沒有一些老式的繼電器,別說還真有,當他們拿出來下面這個可愛的小東西時,我一點兒也不驚訝。Lntednc
Lntednc
它有一個線圈纏繞在一個軟鐵芯上,可以使用兩個觸點「 C1」和「 C2」通電(我一回到辦公室,我的好友伊萬立刻就將這個小可愛裝到了他的電源上。我們發現它的開關電壓約為4V,僅消耗20mA電流。因此,我們猜測它實際上是為5V操作而設計的。它還有一個軛鐵,為磁通量提供低磁阻路徑。Lntednc
然後是銜鐵,圍繞軛鐵的左側轉動。在沒有電壓施加到線圈上時,彈簧拉動銜鐵,使其緊靠觸點「 A」。這意味著無論施加到「輸入」觸點「 A」的電壓值如何,都會通過銜鐵傳導至「輸出」觸點 「Y」。Lntednc
線圈通電後將吸住圖像上方的銜鐵末端,把它向右拉。由於銜鐵繞著軛鐵轉動,使圖像下方的銜鐵末端向左移動,從而脫離觸點「 A」並壓到觸點「 B」上。現在無論「輸入」觸點「 B」上的電壓值如何,都會通過銜鐵傳導到「輸出」觸點「Y」。Lntednc
令人稱奇的是,圖中的Mock繼電器是簡單(功能)與複雜(實現)的完美結合。我們來看如何快速輕鬆地調節繼電器,例如觸點的位置和彈簧的張力。Lntednc
根據接線方式,它可以充當一個簡單的隔離緩衝器:如果線圈未通電,則輸出「Y」=0V(邏輯0),如果線圈通電了,則輸出「Y」 =5V(邏輯1);也可以充當反相器:如果線圈未通電,則輸出「Y」=5V(邏輯1),如果線圈通電了,則輸出「Y」=0V(邏輯0)。 由此,我們可以構建AND、OR、NAND和NOR門;或XOR和NXOR門; 或寄存器等。Lntednc
哦,當然,你很了解我……現在我夢想著可以得到數千個這樣的小可愛,用它們來做一些有趣的東西,例如簡單的4位處理器,不過這件事我們留待以後再說。Lntednc
現在還是回到只使用上圖所示的這類繼電器來實現邏輯門和寄存器的問題。如果你從來沒用過繼電器,我敢打賭,你下意識地就會想到使用繼電器跟使用電晶體開關的情況差不多,但這通常並不是那麼簡單。很快你就會發現,用繼電器來構建邏輯函數是簡單性和複雜性的奇怪又奇妙的結合。我們得跳出思維定勢。Lntednc
好了,我就不在這裡喋喋不休痛苦地解釋了,我們來做點兒有意思的事兒。首先,你能不能給出一個電路符號和真值表來清楚、簡潔地表示該繼電器的操作? 能否為每個緩衝器畫一個電路圖,然後畫出這三個緩衝器串聯的電路圖?接下來,能否為每個反相器畫一個電路圖,然後畫出這三個反相器串聯的電路圖?Lntednc
為2輸入AND、NAND、OR和NOR門畫一個電路圖如何:(a)隔離,(b)驅動一個緩衝器門,以及(c)驅動一個反相器門?Lntednc
暫時先到這裡吧。如果你接受這個挑戰,我們再繼續考慮如何著手實現寄存器和存儲器。Lntednc
看美國工程師網友如何應對挑戰:Lntednc
@ betajet Lntednc
可以通過2:1總線開關(例如Fairchild NC7SB3257)得到繼電器的功能。像上述繼電器一樣,在公共端子Y與NC(常閉)/NO(常開)端子A和B之間會產生雙向流動。Lntednc
我還記得上高中時玩繼電器箱的事。噪音很多,樂趣也很多。在我學習VLSI設計時,又看了繼電器邏輯,因為傳輸電晶體可以做很多事,例如用任意數量的DPDT(雙刀雙擲)開關而不是很多TTL門來控制一個燈。Claude Shannon 1937年完成的碩士論文《繼電器和開關電路的符號分析》中就包含繼電器邏輯背後的理論。Lntednc
僅使用兩個Mock繼電器就可以得到非常好的XOR。首先是梯形圖:Lntednc
如果A&!B或!A&B,就會導通。接下來,考慮到繼電器可通過NO和NC連接往任一方向導通,我們將一組單刀雙擲觸點用於A和!A(將COM連接到左側端子),將另一組單刀雙擲觸點用於B和!B(將COM連接到右側的繼電器線圈)。 然後,只需將兩個繼電器的NO/NC觸點相互連線,就可以交換常開/常閉線來得到XNOR。這樣可以得到奇校驗或偶校驗功能,具體取決於怎麼連接。Lntednc
這跟從兩個位置控制電燈所使用的開關方式相同。若是想從兩個以上的位置進行控制,就需要DPDT開關作為中間開關,這需要成對的Mock繼電器。Lntednc
@ rjs20Lntednc
Lntednc
串聯觸點實現AND函數。Lntednc
並聯觸點實現OR函數。Lntednc
繼電器通電時,它們會閉合常開觸點(並斷開常閉觸點)。Lntednc
@ Weatherbee Lntednc
好吧,你對NC7SB3257的觀察很仔細,但不完全正確。實際上,繼電器的描述是這樣的:如果線圈在邏輯電壓下工作,則它相當於2:1多路復用器(就像你提到的)加上2:1多路復用器控制引腳前面的XOR門。 這是因為繼電器線圈對極性不敏感,因此只要每條腿的輸入相反,磁場就會將Y觸點從A移到B。因此,使用一個繼電器就可以實現XOR門。Lntednc
C1=輸入1,C2=輸入2,Y=輸出,A=GND,B=+5V。Lntednc
這表明使用一個繼電器甚至可以得到不止一個XOR,因為此時A和B是靜態連接的。Lntednc
與非三態門邏輯相比(假設所有觸點始終必須具有有效的邏輯電平),Lntednc
繼電器接頭C1、C2、A和B是輸入,而Y是輸出。因此,可以實現很多4輸入、1輸出函數。如果允許A、B和Y無源,那麼還可以另外得到一些2輸出函數。Lntednc
下面的C代碼可以快速為Mock繼電器產生真值表:Lntednc
Lntednc
真值表如下:Lntednc
Lntednc
(原文刊登於ASPENCORE旗下EETimes網站,參考連結:The Magic of Mock Relays,由Jenny Liao編譯。)Lntednc