陳凱
大家或許看到過圖1中這兩張電路圖,它們常用來描述邏輯門運(yùn)算的輸入和輸出的對(duì)應(yīng)狀態(tài)。
圖1中左圖是與門,當(dāng)兩個(gè)開關(guān)都合攏時(shí),燈亮,只要有一個(gè)開關(guān)斷開,燈即不亮,這就對(duì)應(yīng)與門輸入全1,結(jié)果得1,否則得0的功能;右圖是或門,任意一個(gè)開關(guān)合攏或兩個(gè)開關(guān)均合攏時(shí),燈就會(huì)亮,若全部開關(guān)都斷開,燈就不亮,對(duì)應(yīng)或門輸入全0,結(jié)果得0,否則得1的功能。若有基本的物理常識(shí),就可以知道為什么會(huì)有這樣的結(jié)果。
那么,怎樣實(shí)現(xiàn)一個(gè)輸入狀態(tài)和輸出狀態(tài)相反的非門,也就是合攏開關(guān)則燈暗,斷開開關(guān)則燈亮呢?搭建電路的技巧是,當(dāng)開關(guān)合攏時(shí),使得燈兩端短路,而把電流導(dǎo)向某個(gè)電阻(如下頁圖2)。
乍看上去,上面幾張圖就把二進(jìn)制和二進(jìn)制邏輯運(yùn)算的物理實(shí)現(xiàn)給講明白了,那么是不是依靠上面電路圖中的基本結(jié)構(gòu),就可以搭建出更復(fù)雜的邏輯運(yùn)算電路呢?實(shí)際上,并沒有人真的這樣做,歷史上可實(shí)際使用的計(jì)算裝置,也都不是僅靠開關(guān)和電阻就能做出來的。其中的原因,就是本文要重點(diǎn)討論的問題。
假設(shè)有這樣的需求,當(dāng)兩個(gè)開關(guān)都合攏時(shí)燈暗,其他開關(guān)狀態(tài)下燈都亮,也就是功能為輸入全1得0,否則得1的與非門,那么電路該怎樣裝配呢?弄清與門和非門電路的原理,要把這兩個(gè)電路拆開再融合到一起就可以得到如下頁圖3所示的電路了。
可是,既然是與非門,那么其實(shí)只要把與門電路再串上一個(gè)非門電路,就應(yīng)該能實(shí)現(xiàn)與非門的功能了,為何要把兩個(gè)電路拆開再重新裝配呢?若把與門電路和非門電路并列放到一起,就可以發(fā)現(xiàn)其中存在的瓶頸:與門裝置的運(yùn)算結(jié)果無法自動(dòng)傳遞給非門電路。如果一個(gè)運(yùn)算裝置的結(jié)果無法傳遞給另一個(gè)運(yùn)算裝置,那就意味著,一個(gè)復(fù)雜的運(yùn)算裝置無法利用現(xiàn)成的簡單運(yùn)算裝置組裝搭配而成,并且若復(fù)雜運(yùn)算裝置的運(yùn)算需求有任何小的調(diào)整,整個(gè)電路就需要進(jìn)行大的調(diào)整(如下頁圖4)。
假設(shè)存在一個(gè)小精靈,一旦發(fā)現(xiàn)與門電路中燈亮起時(shí),就推動(dòng)非門電路的開關(guān)從斷開狀態(tài)變?yōu)楹蠑n狀態(tài),那就用不著把整個(gè)電路全部拆開重新裝配了,可以像積木一樣,把不同的電路拼裝起來,而計(jì)算裝置獲得的計(jì)算結(jié)果,也就可以傳遞給其他計(jì)算裝置。這個(gè)小精靈還真的存在,它的名字叫電流磁效應(yīng)。
所謂電流磁效應(yīng),是指當(dāng)導(dǎo)線通過電流時(shí),在導(dǎo)線周圍產(chǎn)生磁場。若把導(dǎo)線纏繞成線圈,所產(chǎn)生的磁場強(qiáng)大到可以改變金屬開關(guān)的位置,繼電器就是根據(jù)這樣的原理制造出來的。在EWB軟件中可以很方便地繪制并模擬繼電器的非門和與門,當(dāng)然也可以用實(shí)際的繼電器把電路搭建出來(如圖5)。
以上繼電器電路中,符號(hào)就是繼電器,從上往下數(shù),第一和第二條導(dǎo)線,是能夠在線圈中產(chǎn)生磁場的信號(hào)輸入線,第三和第四條導(dǎo)線之間的開關(guān)默認(rèn)是斷開,第四和第五條導(dǎo)線默認(rèn)連通,當(dāng)線圈產(chǎn)生磁場時(shí),開關(guān)因?yàn)槲ψ儞Q位置,電路模擬器中以表示,則第三和第四條導(dǎo)線連通,而第四和第五條導(dǎo)線斷開。有了繼電器,不同的運(yùn)算裝置就可以相互連接到一起,一個(gè)運(yùn)算裝置的結(jié)果能夠傳遞給另一個(gè)運(yùn)算裝置,圖6、圖7所演示的,就是來自開關(guān)的信號(hào)傳遞給繼電器,經(jīng)繼電器,將信號(hào)取反后再傳給下一級(jí)繼電器的例子。
如果要實(shí)現(xiàn)與非門運(yùn)算,只要把與門電路中的電燈換成繼電器,就能把與門裝置的結(jié)果傳遞給非門運(yùn)算裝置,從而實(shí)現(xiàn)與非門的功能。大家如有興趣,可以自己試著在模擬器中,或是用實(shí)際的繼電器搭建一個(gè)與非門運(yùn)算裝置。
對(duì)于一個(gè)復(fù)雜的運(yùn)算裝置來說,能借用穩(wěn)定的物理狀態(tài)變化準(zhǔn)確傳遞符號(hào),是極其重要的。在歷史上,克蘭德·楚澤(Konrad Zuse)用了幾千個(gè)繼電器,搭建出一系列復(fù)雜的運(yùn)算裝置,其中名為Z-3的裝置是可以運(yùn)行事先編寫好的程序的(Z-3已被證明是圖靈完備的計(jì)算機(jī)),如今它被稱為世界上第一臺(tái)可編程數(shù)字計(jì)算機(jī)(常被稱為世界第一臺(tái)電子計(jì)算機(jī)的ENIAC是半可編程電子數(shù)字計(jì)算機(jī))。筆者認(rèn)為,在信息技術(shù)教學(xué)涉及信息處理部分的教學(xué)中,關(guān)于如何構(gòu)造一個(gè)穩(wěn)定有效的物理傳動(dòng)機(jī)構(gòu)保證信號(hào)的傳遞和復(fù)制,是非常重要的內(nèi)容(可惜當(dāng)前基礎(chǔ)教育領(lǐng)域中大部分教材都沒有強(qiáng)調(diào)這一點(diǎn))。
雖然用繼電器可以制作各種運(yùn)算裝置,可是繼電器有許多缺點(diǎn)。首先,繼電器的吸合動(dòng)作比較費(fèi)力,所以消耗的電能很大;其次,繼電器在斷電瞬間,線圈中儲(chǔ)存的大量多余能量無法及時(shí)釋放,會(huì)干擾系統(tǒng)工作的穩(wěn)定性;最后,繼電器機(jī)械損耗比較大,穩(wěn)定工作的次數(shù)有限。當(dāng)前人們使用的電子裝置中,繼電器更多用在控制系統(tǒng)中,而很少用來作為運(yùn)算單元的元件。在教學(xué)中,教師可以由此引出二極管、三極管等話題。
若不想親自動(dòng)手搭建一個(gè)繼電器運(yùn)算裝置,那么也可借用一些在線資料用到課程——尤其是拓展型、研究性課程中。
①繼電器邏輯運(yùn)算模擬器:https://tams.informatik.uni-hamburg.de/applets/hades,提供了常見的可用于邏輯運(yùn)算或用于數(shù)據(jù)存儲(chǔ)的繼電器的電路,電路都可以在線運(yùn)行或下載;
②可編程繼電器計(jì)算機(jī)模擬器:http://nablaman.com/relay/,提供了一個(gè)可編程的繼電器計(jì)算機(jī)模擬器,模擬器主要是根據(jù)Z-3的原理構(gòu)建的,模擬器中提供了一些編寫好的程序供運(yùn)行;
③繼電器計(jì)算機(jī)原理視頻:http://web.cecs.pdx.edu/harry/Relay/index.html,提供了詳細(xì)的視頻資料,介紹了繼電器實(shí)現(xiàn)各類運(yùn)算的原理。