陳凱
大家或許看到過圖1中這兩張電路圖,它們常用來描述邏輯門運(yùn)算的輸入和輸出的對應(yīng)狀態(tài)。

圖1中左圖是與門,當(dāng)兩個開關(guān)都合攏時,燈亮,只要有一個開關(guān)斷開,燈即不亮,這就對應(yīng)與門輸入全1,結(jié)果得1,否則得0的功能;右圖是或門,任意一個開關(guān)合攏或兩個開關(guān)均合攏時,燈就會亮,若全部開關(guān)都斷開,燈就不亮,對應(yīng)或門輸入全0,結(jié)果得0,否則得1的功能。若有基本的物理常識,就可以知道為什么會有這樣的結(jié)果。
那么,怎樣實(shí)現(xiàn)一個輸入狀態(tài)和輸出狀態(tài)相反的非門,也就是合攏開關(guān)則燈暗,斷開開關(guān)則燈亮呢?搭建電路的技巧是,當(dāng)開關(guān)合攏時,使得燈兩端短路,而把電流導(dǎo)向某個電阻(如下頁圖2)。

乍看上去,上面幾張圖就把二進(jìn)制和二進(jìn)制邏輯運(yùn)算的物理實(shí)現(xiàn)給講明白了,那么是不是依靠上面電路圖中的基本結(jié)構(gòu),就可以搭建出更復(fù)雜的邏輯運(yùn)算電路呢?實(shí)際上,并沒有人真的這樣做,歷史上可實(shí)際使用的計算裝置,也都不是僅靠開關(guān)和電阻就能做出來的。其中的原因,就是本文要重點(diǎn)討論的問題。
假設(shè)有這樣的需求,當(dāng)兩個開關(guān)都合攏時燈暗,其他開關(guān)狀態(tài)下燈都亮,也就是功能為輸入全1得0,否則得1的與非門,那么電路該怎樣裝配呢?弄清與門和非門電路的原理,要把這兩個電路拆開再融合到一起就可以得到如下頁圖3所示的電路了。

可是,既然是與非門,那么其實(shí)只要把與門電路再串上一個非門電路,就應(yīng)該能實(shí)現(xiàn)與非門的功能了,為何要把兩個電路拆開再重新裝配呢?若把與門電路和非門電路并列放到一起,就可以發(fā)現(xiàn)其中存在的瓶頸:與門裝置的運(yùn)算結(jié)果無法自動傳遞給非門電路。如果一個運(yùn)算裝置的結(jié)果無法傳遞給另一個運(yùn)算裝置,那就意味著,一個復(fù)雜的運(yùn)算裝置無法利用現(xiàn)成的簡單運(yùn)算裝置組裝搭配而成,并且若復(fù)雜運(yùn)算裝置的運(yùn)算需求有任何小的調(diào)整,整個電路就需要進(jìn)行大的調(diào)整(如下頁圖4)。

假設(shè)存在一個小精靈,一旦發(fā)現(xiàn)與門電路中燈亮起時,就推動非門電路的開關(guān)從斷開狀態(tài)變?yōu)楹蠑n狀態(tài),那就用不著把整個電路全部拆開重新裝配了,可以像積木一樣,把不同的電路拼裝起來,而計算裝置獲得的計算結(jié)果,也就可以傳遞給其他計算裝置。這個小精靈還真的存在,它的名字叫電流磁效應(yīng)。
所謂電流磁效應(yīng),是指當(dāng)導(dǎo)線通過電流時,在導(dǎo)線周圍產(chǎn)生磁場。若把導(dǎo)線纏繞成線圈,所產(chǎn)生的磁場強(qiáng)大到可以改變金屬開關(guān)的位置,繼電器就是根據(jù)這樣的原理制造出來的。在EWB軟件中可以很方便地繪制并模擬繼電器的非門和與門,當(dāng)然也可以用實(shí)際的繼電器把電路搭建出來(如圖5)。

以上繼電器電路中,符號就是繼電器,從上往下數(shù),第一和第二條導(dǎo)線,是能夠在線圈中產(chǎn)生磁場的信號輸入線,第三和第四條導(dǎo)線之間的開關(guān)默認(rèn)是斷開,第四和第五條導(dǎo)線默認(rèn)連通,當(dāng)線圈產(chǎn)生磁場時,開關(guān)因?yàn)槲ψ儞Q位置,電路模擬器中以表示,則第三和第四條導(dǎo)線連通,而第四和第五條導(dǎo)線斷開。有了繼電器,不同的運(yùn)算裝置就可以相互連接到一起,一個運(yùn)算裝置的結(jié)果能夠傳遞給另一個運(yùn)算裝置,圖6、圖7所演示的,就是來自開關(guān)的信號傳遞給繼電器,經(jīng)繼電器,將信號取反后再傳給下一級繼電器的例子。


如果要實(shí)現(xiàn)與非門運(yùn)算,只要把與門電路中的電燈換成繼電器,就能把與門裝置的結(jié)果傳遞給非門運(yùn)算裝置,從而實(shí)現(xiàn)與非門的功能。大家如有興趣,可以自己試著在模擬器中,或是用實(shí)際的繼電器搭建一個與非門運(yùn)算裝置。
對于一個復(fù)雜的運(yùn)算裝置來說,能借用穩(wěn)定的物理狀態(tài)變化準(zhǔn)確傳遞符號,是極其重要的。在歷史上,克蘭德·楚澤(Konrad Zuse)用了幾千個繼電器,搭建出一系列復(fù)雜的運(yùn)算裝置,其中名為Z-3的裝置是可以運(yùn)行事先編寫好的程序的(Z-3已被證明是圖靈完備的計算機(jī)),如今它被稱為世界上第一臺可編程數(shù)字計算機(jī)(常被稱為世界第一臺電子計算機(jī)的ENIAC是半可編程電子數(shù)字計算機(jī))。筆者認(rèn)為,在信息技術(shù)教學(xué)涉及信息處理部分的教學(xué)中,關(guān)于如何構(gòu)造一個穩(wěn)定有效的物理傳動機(jī)構(gòu)保證信號的傳遞和復(fù)制,是非常重要的內(nèi)容(可惜當(dāng)前基礎(chǔ)教育領(lǐng)域中大部分教材都沒有強(qiáng)調(diào)這一點(diǎn))。
雖然用繼電器可以制作各種運(yùn)算裝置,可是繼電器有許多缺點(diǎn)。首先,繼電器的吸合動作比較費(fèi)力,所以消耗的電能很大;其次,繼電器在斷電瞬間,線圈中儲存的大量多余能量無法及時釋放,會干擾系統(tǒng)工作的穩(wěn)定性;最后,繼電器機(jī)械損耗比較大,穩(wěn)定工作的次數(shù)有限。當(dāng)前人們使用的電子裝置中,繼電器更多用在控制系統(tǒng)中,而很少用來作為運(yùn)算單元的元件。在教學(xué)中,教師可以由此引出二極管、三極管等話題。
若不想親自動手搭建一個繼電器運(yùn)算裝置,那么也可借用一些在線資料用到課程——尤其是拓展型、研究性課程中。
①繼電器邏輯運(yùn)算模擬器:https://tams.informatik.uni-hamburg.de/applets/hades,提供了常見的可用于邏輯運(yùn)算或用于數(shù)據(jù)存儲的繼電器的電路,電路都可以在線運(yùn)行或下載;
②可編程繼電器計算機(jī)模擬器:http://nablaman.com/relay/,提供了一個可編程的繼電器計算機(jī)模擬器,模擬器主要是根據(jù)Z-3的原理構(gòu)建的,模擬器中提供了一些編寫好的程序供運(yùn)行;
③繼電器計算機(jī)原理視頻:http://web.cecs.pdx.edu/harry/Relay/index.html,提供了詳細(xì)的視頻資料,介紹了繼電器實(shí)現(xiàn)各類運(yùn)算的原理。