文章編號:1672-5913(2008)08-0038-02
摘要:本文通過實例對大學(xué)計算機硬件類課程中缺乏“低端”實驗這一問題進行了深入的探討。
關(guān)鍵詞:計算機硬件類課程;低端實驗;實驗;接口概念
中圖分類號:G642
文獻標(biāo)識碼:B
1計算機硬件類課程的不足
計算機硬件類課程主要包括“電子電路”、“計算機組成原理”、“微機原理與接口技術(shù)”、“單片機”、“計算機控制技術(shù)”等多門課程,這些課程不光是計算機專業(yè)的專業(yè)課,也是電子、機械、自動化及其他相關(guān)工科類專業(yè)的必修課程,這些課程都具有工程實踐性強,應(yīng)用技術(shù)含量高,課程內(nèi)容枯燥難學(xué)的特點。因此,各學(xué)校在開設(shè)此類課程時,都把實驗課作為重要的教學(xué)手段,有些學(xué)校甚至將實驗課時比例提升到全部課時的50~60%以上。
經(jīng)過我們多年對實驗內(nèi)容的研究并結(jié)合自身的教學(xué)體驗發(fā)現(xiàn),這些實驗大都是一些在實驗箱內(nèi)直接使用芯片進行的實驗,都是直接以芯片為研究對象或為主體,內(nèi)容多是驗證現(xiàn)成芯片功能和引腳特性或使用芯片進行硬件設(shè)計開發(fā)的實驗。這種實驗是在基本知識已經(jīng)掌握,芯片內(nèi)部工作原理已經(jīng)精通的前提下進行的更高一層次的實驗,在此我們謂之“高端”實驗。很少有直接輔助基本教學(xué),幫助理解基礎(chǔ)知識的“低端”實驗,這樣的實驗用來輔助說明某些知識點或特定概念,一般設(shè)計起來電路簡單,功能也比較單一,層次較低,甚至用不上實驗箱,所以在許多學(xué)??磥黼y登“大雅之堂”,因而對此忽視不見,眾多實驗教材在這方面也是一片空白。但我認(rèn)為這是一個“誤區(qū)”,因為任何課程都是由“低端”知識逐步過渡至“高端”的。那么,怎樣創(chuàng)制設(shè)計“低端”實驗?它們對于課程教學(xué)有哪些重要意義呢?
我們知道,計算機硬件類課程大都具有濃重的工程背景,具備豐富的可選實例,所以“低端”實驗的創(chuàng)設(shè)并不缺乏素材。另外,還要注意實驗內(nèi)容的設(shè)計如何與課程知識有機銜接,在實際教學(xué)中如何巧妙引入。實際上,“低端”實驗其意義并不“低端”,實驗雖小卻對重點、難點的理解掌握有著不容小視的“四兩撥千斤”之功效。
2“低端”實驗實例
下面介紹一個較典型的實例,權(quán)當(dāng)拋磚引玉,希望對廣大同行具有一定的啟發(fā)意義。就以“微機接口技術(shù)”課程中令眾多教師頗感頭疼的“接口”概念的講解為例。這一概念不僅抽象,而且所涉知識比較繁雜晦澀,學(xué)生學(xué)習(xí)效果很不理想。分析定義可以看出,接口就是位于微機與外設(shè)之間的硬件電路,作用就是讓微機與外設(shè)間能進行信號交換,從而順利完成檢測與控制任務(wù)。但是光這樣說有點蒼白無力,學(xué)生還是不明就里。于是我們通過引入“低端”實驗來輔助教學(xué),具體說明接口到底是什么,為什么要用接口,它的主要功能有哪些,由此體會“低端”實驗的優(yōu)越之處。
我們先來設(shè)計一個電路(如圖1所示),目的是通過計算機來檢測開關(guān)K的狀態(tài)(打開還是閉合)。相對于計算機系統(tǒng),開關(guān)K就是一個外設(shè)。K打開時,A點為高電平1;K閉合時,A點為低電平0。這個0或者1可以通過數(shù)據(jù)總線最低位DB0被讀入到CPU中,從而實現(xiàn)微機對外設(shè)狀態(tài)的檢測。但是如果像圖1那樣,把開關(guān)K和計算機系統(tǒng)中的DB0直接相連行不行呢?
圖1 輸入外設(shè)數(shù)據(jù)線直接接至數(shù)據(jù)總線
我們知道,在計算機系統(tǒng)中,數(shù)據(jù)總線還連接著CPU和存儲器,并且在程序執(zhí)行過程中,CPU與存儲器之間要頻繁地交換數(shù)據(jù),因此數(shù)據(jù)總線上傳輸?shù)臄?shù)據(jù)是在不斷變化的。如果此時又將其與外設(shè)直接相連(這里是將DB0直接連入A點),那么數(shù)據(jù)總線上外設(shè)數(shù)據(jù)和存儲器數(shù)據(jù)就會因走同一線路而相互干擾。比如此時開關(guān)K閉合,A點為0,這個0會通過DB0傳入CPU,若此時恰逢存儲器通過DB0送來一個數(shù)據(jù)1,這樣不但發(fā)生相互干擾,還會由于高低電平直接相連而引起電路損壞。
為解決這一問題,我們可以在A點與數(shù)據(jù)總線DB0間加一個帶低電平選通端的緩沖器,緩沖器的選通端接一個帶3個輸入端的與門,其接線如圖2所示。
圖2 輸入外設(shè)數(shù)據(jù)線經(jīng)緩沖器接至數(shù)據(jù)總線
我們知道,只有當(dāng)與門的3個輸入端同時為0時,與門的輸出端才為0,才會將緩沖器選通,緩沖器輸入端的數(shù)據(jù)才能夠到達緩沖器的輸出端。要實現(xiàn)這一過程,我們可以執(zhí)行如下指令:
MOV DX,開關(guān)地址;傳送外設(shè)地址,地址譯碼端有效
IN AL,DX;執(zhí)行I/O讀操作,M/ 、 有效
這樣,CPU的輸出引腳(即與門的輸入信號)M/ 、 及地址譯碼信號同時為0,使得與門輸出為0,緩沖器被選通,開關(guān)K的狀態(tài)才會被讀入到CPU中。同時,為低電平的M/ 信號還會使CPU與存儲器暫時隔開,從而避免了存儲器數(shù)據(jù)的干擾;若CPU要與存儲器進行數(shù)據(jù)交換,則M/ 變成高電平,使與門輸出為1,緩沖器截止斷開,又避免了外設(shè)數(shù)據(jù)的干擾。由此可以看出,經(jīng)過這些電路添加之后,前面的問題順利解決。實際上,這些后添加的電路就是該系統(tǒng)的接口電路,此處接口電路表現(xiàn)出來的功能是輸入緩沖。
相類地,我們再設(shè)計第二個電路(如圖3所示)。功能是讓計算機控制發(fā)光二極管發(fā)光。此處二極管一端已固定接入5V高電平,另一端通過數(shù)據(jù)總線最低位DB0連至計算機系統(tǒng)。當(dāng)CPU通過DB0輸出為0時,發(fā)光二極管兩端產(chǎn)生電位差,從而導(dǎo)通發(fā)光;如果CPU通過DB0輸出為1,則發(fā)光二極管電路兩端電位相同(都是高電平),發(fā)光二極管截止熄滅。我們以這種方式,實現(xiàn)微機對外設(shè)(此處為發(fā)光二極管)的控制功能。但是像圖3那樣,讓發(fā)光二極管的B點與計算機系統(tǒng)中的DB0直接相連行不行呢?
圖3 數(shù)據(jù)總線直接接至輸出外設(shè)數(shù)據(jù)線
根據(jù)前面所述可知,數(shù)據(jù)總線上傳輸?shù)臄?shù)據(jù)是在不斷變化的,不可能只保持為固定的0或1。雖然這個時刻為使發(fā)光二極管發(fā)光,可以通過執(zhí)行輸出數(shù)據(jù)指令從DB0向B點輸出數(shù)據(jù)0,但在下個時刻存儲器上過來的數(shù)據(jù)又會將其覆蓋,如果后來的這個數(shù)據(jù)是1,就會使發(fā)光二極管熄滅掉。
怎樣讓發(fā)光二極管的狀態(tài)得以保持呢?為解決這一問題,我們?nèi)匀恍枰砑与娐?,可在?shù)據(jù)總線的DB0與發(fā)光二極管的B點間加一個由低電平觸發(fā)的鎖存器,鎖存器觸發(fā)端接一個帶3個輸入端的與門,電路如圖4所示。
圖4 數(shù)據(jù)總線經(jīng)鎖存器接至輸出外設(shè)數(shù)據(jù)線
從該電路中可以看出,只有當(dāng)與門的3個輸入端同時為0時,與門的輸出端才為0,才能給鎖存器的觸發(fā)端CLK加一個觸發(fā)信號,鎖存器的輸出端Q才等于鎖存器輸入端D即DB0上的狀態(tài)。當(dāng)與門的輸入端有一個為1時,與門輸出就為1,由于鎖存器為低電平觸發(fā),所以這個1不能觸發(fā)鎖存器,鎖存器輸出端Q(即B點的電平)就保持原態(tài)不變,從而使發(fā)光二極管的狀態(tài)保持下來。這一過程我們可通過執(zhí)行如下指令來實現(xiàn):
MOV AL,0(或1);0使發(fā)光二極管亮,1使該二極管滅
MOV DX,發(fā)光二極管地址 ;傳送外設(shè)地址,地址譯碼端有效
OUT DX,AL;執(zhí)行I/O寫操作,M/ 、 有效
這樣,與門輸入端M/ 、 及地址譯碼信號同時為0,使得與門輸出為0,鎖存器被打開,此時從寄存器AL中沿著DB0送出的0或1能夠到達鎖存器的輸出端直至B點,致使發(fā)光二極管發(fā)光或熄滅。當(dāng)CPU執(zhí)行其他指令或者與存儲器交換數(shù)據(jù)時,與門的三個輸入端就不會同時為0,這樣與門輸出為1,鎖存器的輸出端Q(即B點的電平)就保持不變,發(fā)光二極管的狀態(tài)便得以保持。
在這個例子中,我們后添加上去的那些電路也是接口電路,在此表現(xiàn)出來的功能是輸出鎖存。
3結(jié)束語
通過對上述實例的分析可以看出,我們在用“低端”實驗解決實際問題的過程中已經(jīng)不自覺地設(shè)計出了相應(yīng)的接口電路,所需器材不多,所起的作用卻不小。這兩個接口電路一個用于完成系統(tǒng)檢測,一個用于完成系統(tǒng)控制,正符合接口定義的外延。這樣一來,學(xué)生既看見了實實在在的接口電路,又體會到了接口實實在在的“輸入緩沖,輸出鎖存”的基本功能。有了這兩個“著陸點”的幫助,“接口”這一概念還有什么不能讓人理解的呢?這樣的難點一個個地被靈巧的實驗化為無形,整個微機接口課程還有什么難度可言呢?鑒于硬件類課程工程實踐性強的普遍共性,“低端”實驗這一利器不正好因勢而生,大有可為嗎?
參考文獻
[1] 李芷. 微機原理與接口技術(shù)[M]. 北京:電子工業(yè)出版社,2007:188-192.
[2] 孫琦. 微機接口技術(shù)[M]. 北京:中央廣播電視大學(xué)出版社,2000:4-8.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”