摘要:本文提出以計算機監(jiān)控技術(shù)為主線,綜合匯編語言、C 語言、Visual Basic 6.0、計算機接口技術(shù)、計算機網(wǎng)絡(luò)、數(shù)據(jù)庫系統(tǒng)等專業(yè)平臺課的內(nèi)容,將各種理論知識應(yīng)用到實際的項目中,從不同的角度實現(xiàn)相關(guān)技術(shù),從而強化理論與實踐的結(jié)合,熟練掌握計算機監(jiān)控技術(shù),有效提高就業(yè)率和薪資水平。
關(guān)鍵詞:計算機監(jiān)控;仿真軟件;綜合實踐;教學(xué)模式
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
文章編號:1672-5913 (2007) 20-0077-04
1引言
目前,我國計算機專業(yè)的教學(xué)模式主要還是從基礎(chǔ)理論到專業(yè)理論,實踐環(huán)節(jié)較少,這就導(dǎo)致了學(xué)生厭學(xué),眼高手低,本科畢業(yè)連基本的編程技能都不具備,從而,在就業(yè)市場上一敗涂地。這些效果又使在校學(xué)生更加沮喪,進(jìn)一步影響其學(xué)習(xí)的積極性。中國要發(fā)展IT產(chǎn)業(yè),必須改革計算機專業(yè)的教學(xué)模式。
印度是一個貧窮落后的發(fā)展中國家,軟件業(yè)的成就卻舉世矚目。印度的軟件人才主要是通過職業(yè)教育而不是高等教育來培養(yǎng)的,從而大大降低了培養(yǎng)成本和使用成本,縮短了培養(yǎng)周期。其教學(xué)不是按從基礎(chǔ)理論到專業(yè)理論,再到實習(xí)的路徑,而是把順序顛倒過來,先從做開始,在做的過程中,學(xué)生如遇到問題,再以此問題為基點去學(xué)習(xí)專業(yè)理論。學(xué)員一入學(xué),便要做項目,培訓(xùn)中心把所承接的大項目分解成一個個小項目,然后要求每個學(xué)員完成一個小項目,讓學(xué)員在完成項目的過程中學(xué)習(xí)。培訓(xùn)中心的學(xué)員最后一年都在公司實習(xí),積累工作經(jīng)驗,同時也給企業(yè)提供深入了解雇員的機會。
我們借鑒印度發(fā)展軟件業(yè)的成功經(jīng)驗,結(jié)合多年從事計算機監(jiān)控的項目經(jīng)驗和從事教學(xué)的心得體會,提出一種“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓(xùn)練+學(xué)術(shù)論文”的教學(xué)模式[1],引導(dǎo)學(xué)生充滿興趣地鉆研技術(shù),最后逐漸成為計算機監(jiān)控方面的專家,并熟練掌握計算機專業(yè)的基礎(chǔ)理論與編程語言。
2計算機監(jiān)控技術(shù)的特點與主要技術(shù)
計算機監(jiān)控系統(tǒng)是以監(jiān)測控制計算機為主體,加上檢測裝置、執(zhí)行機構(gòu)與被監(jiān)測控制的對象共同構(gòu)成的整體。在這個系統(tǒng)中,計算機直接參與被監(jiān)控對象的檢測、監(jiān)督和控制。檢測主要是通過傳感器和相應(yīng)的輸入模塊來取得被監(jiān)控對象的狀態(tài)數(shù)據(jù),監(jiān)督主要是對狀態(tài)數(shù)據(jù)進(jìn)行分析后給操作員提供手動操作的參考,控制則是手動或按照一定的策略自動地對被監(jiān)控對象執(zhí)行相應(yīng)的操作。
傳統(tǒng)的檢測與控制所使用的模塊一般采用RS-232接口,因為該接口簡單可靠。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,采用網(wǎng)絡(luò)接口RJ-45的模塊逐漸增多。監(jiān)控用的計算機一般稱為主控機(或上位機),各種檢測與控制模塊或嵌入式系統(tǒng)一般稱為受控機(或下位機)。主控機軟件一般采用高級語言(如Visual Basic 6.0,簡稱VB)進(jìn)行開發(fā);受控機軟件沒有軟件界面,僅實現(xiàn)相關(guān)的邏輯功能,一般采用C語言、匯編語言等進(jìn)行開發(fā),通過調(diào)試后,再下載到受控機系統(tǒng)中。主控機通過RS-232/RJ-45接口與受控機通信,進(jìn)行數(shù)據(jù)的查詢與命令的發(fā)送。各種控制策略、設(shè)備的狀態(tài)等的保存,都需要使用數(shù)據(jù)庫技術(shù)。因而,實現(xiàn)一個計算機監(jiān)控系統(tǒng),需要綜合使用諸多計算機的基礎(chǔ)理論與編程語言:計算機接口技術(shù)、計算機網(wǎng)絡(luò)、數(shù)據(jù)庫系統(tǒng)、VB與C語言等,利用計算機監(jiān)控技術(shù)作為計算機專業(yè)實踐訓(xùn)練的主線,具有很高的操作性和極大的意義。
3仿真軟件的設(shè)計
學(xué)習(xí)計算機監(jiān)控技術(shù),需要購買相應(yīng)的硬件模塊,從而在一定程度上制約了該技術(shù)的推廣。本文提出了一個基于RS-232的仿真模塊的可視化模型,在此基礎(chǔ)之上設(shè)計了可視化的仿真數(shù)字I/O模塊,模擬量輸入模塊,并設(shè)計了對應(yīng)的通信協(xié)議。主控軟件與仿真模塊之間的通信通過虛擬串口實現(xiàn),從而,達(dá)到在計算機房零成本搭建計算機監(jiān)控系統(tǒng)平臺的效果。
RS-232/RJ-45協(xié)議轉(zhuǎn)換器可以用于實現(xiàn)計算機監(jiān)控系統(tǒng)的遠(yuǎn)程處理,也可以用于將普通的輸入模塊轉(zhuǎn)換為仿真的網(wǎng)絡(luò)傳感器。
3.1仿真模塊的可視化模型
基于RS-232接口的仿真模塊的可視化模型如圖1所示。模塊表示區(qū)用來模擬實際的模塊,對于數(shù)字量輸入模塊(Digital Input Module,DIM),輸入開關(guān)根據(jù)設(shè)定的時間隨機閉合/打開,并通過圖形表示;對于數(shù)字量輸出模塊(Digital Output Module,DOM),用有源電路回路表示輸出開關(guān)的狀態(tài),例如,開關(guān)閉合,播放鈴聲或燈亮等;對于模擬量輸入模塊(Analog Input Module,AIM),用圖形表示檢測回路,并在檢測點旁邊顯示溫度的原始數(shù)據(jù)。每個模塊都設(shè)置數(shù)據(jù)接收和發(fā)送指示燈,顯示數(shù)據(jù)收發(fā)的狀態(tài)。
功能按鈕區(qū)為系統(tǒng)設(shè)置按鈕和關(guān)閉程序按鈕。系統(tǒng)設(shè)置主要完成串行通信的端口號、波特率、校驗碼、結(jié)尾碼、模塊地址等的設(shè)置,對于DIM模塊,還需要設(shè)置隨機切換輸入開關(guān)所需要的時間段。
協(xié)議描述區(qū)顯示本仿真模塊適用的通信協(xié)議,包括協(xié)議的格式及其具體的含義。
數(shù)據(jù)接收區(qū)顯示接收到的主控程序發(fā)送的原始數(shù)據(jù)包,以字節(jié)形式顯示;數(shù)據(jù)響應(yīng)區(qū)則發(fā)送對應(yīng)的響應(yīng)數(shù)據(jù)包,也是以字節(jié)形式。
利用此可視化模型設(shè)計的軟件界面,使用方便,動態(tài)效果好,仿真模塊的開關(guān)狀態(tài)、溫度數(shù)據(jù)、數(shù)據(jù)收發(fā)狀態(tài)以及傳輸?shù)臄?shù)據(jù)均一目了然。與實物模塊相比,不需要物理連線,也不需要信號發(fā)生器與萬用表來產(chǎn)生信號和測量狀態(tài)與數(shù)據(jù),對于通信協(xié)議,也不需翻閱手冊。
3.2通信協(xié)議的設(shè)計
相同類型(或廠家)的模塊一般采用相同的前導(dǎo)字符,EOT是一個特殊的ASCII字符(0x04),常被用做控制字符,這里的仿真模塊全部采用EOT作為前導(dǎo)字符。
計算機所連接的I/O模塊比較多,CPU為了與連接的設(shè)備相互溝通,必須給設(shè)備設(shè)置一個編號,從而使CPU可以通過每個設(shè)備獨一無二的編號與不同的設(shè)備進(jìn)行溝通,這個設(shè)備編號就是地址,用ADD表示,地址占用一個字節(jié)。
功能碼主要包括讀功能碼(用RD表示)和寫功能碼(用WD表示)。RD用字符“R”(0x52)表示,WD用字符“W”(0x57)表示。
BCC為數(shù)據(jù)塊校驗碼,一般有Xor、Add、CRC、CheckSum幾種。Xor與Add分別是異或與累加和,占一個字節(jié)的長度;CRC與CheckSum分別是循環(huán)冗余校驗碼與TCP/IP協(xié)議簇中所使用的累加求補校驗碼,分別占兩個字節(jié)。這里的仿真模塊提供4種數(shù)據(jù)塊校驗方式,根據(jù)程序設(shè)置進(jìn)行選擇。
不少模塊以回車CR(0x0d)作為結(jié)尾標(biāo)志EM(End Message),而TCP/IP協(xié)議簇(如HTTP,POP3等)較多地采用CRLF(0x0d0a)作為結(jié)尾標(biāo)志,這里的仿真模塊也提供這兩種結(jié)尾標(biāo)志,根據(jù)程序設(shè)置進(jìn)行選擇。
協(xié)議舉例。讀取仿真模塊狀態(tài)的命令協(xié)議如圖2所示,其中,ADD的范圍為1至255,可由程序進(jìn)行設(shè)置,這樣,一臺主控設(shè)備可以連接多達(dá)255個虛擬模塊。BCC和EM的種類也可以根據(jù)需要由程序進(jìn)行設(shè)置。
3.3RS-232/RJ-45協(xié)議轉(zhuǎn)換器
該協(xié)議轉(zhuǎn)換器的主要功能是用軟件轉(zhuǎn)換器來替代硬件轉(zhuǎn)換器,實現(xiàn)串口數(shù)據(jù)與網(wǎng)口數(shù)據(jù)的直接轉(zhuǎn)發(fā),不涉及到協(xié)議的變換。串口只要進(jìn)行常規(guī)的設(shè)置,與所連接設(shè)備的串口參數(shù)一致。由于主控機與嵌入式模塊之間一般采用串口進(jìn)行連接,另外,數(shù)據(jù)采集模塊也大部分采用串口,因而,通過該協(xié)議轉(zhuǎn)換器,可以將此類串口設(shè)備連接到Internet,進(jìn)行遠(yuǎn)程處理。AIM模塊與該協(xié)議轉(zhuǎn)換器配合,可以轉(zhuǎn)換為一個開關(guān)量輸入的網(wǎng)絡(luò)傳感器。
3.4虛擬串口的使用
除了跟內(nèi)置的Modem通信,一般地,進(jìn)行串行通信的調(diào)試都需要RS-232連接線。參考文獻(xiàn)[2]提供了虛擬串口驅(qū)動程序,模擬實際的RS-232接口,可以在沒有物理RS-232接口和電纜的情況下,進(jìn)行串行通信的調(diào)試,并且,還可以模擬硬件引腳信號的變化。
4教學(xué)模式的具體實現(xiàn)
重視教材建設(shè)和教學(xué)方法的研究,在教學(xué)過程中重視由實踐而激發(fā)學(xué)生對相關(guān)理論的興趣,再用提高了的理論水平來指導(dǎo)新的實驗和實踐活動。傳統(tǒng)的教學(xué)模式在實踐環(huán)節(jié)上的缺乏與不足也與今天社會人才市場急功近利的需求遠(yuǎn)遠(yuǎn)不能相適應(yīng)。長期以來,我們培養(yǎng)的學(xué)生存在著“什么都學(xué)過,卻什么都不會”的尷尬局面,專業(yè)教育和教材與市場需求嚴(yán)重脫節(jié)。事實上,學(xué)生就業(yè)難并不是就業(yè)市場不需要人才,其根源還是教學(xué)的現(xiàn)狀所致[3]。
本文采用“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓(xùn)練+學(xué)術(shù)論文”的教學(xué)模式,在講解新的課程的時候,首先演示程序,例如,用主控程序?qū)Ψ抡鏀?shù)字I/O模塊進(jìn)行監(jiān)控,讓學(xué)生觀察輸入開關(guān)量的變化,可以導(dǎo)致輸出開關(guān)量的變化,并可以看到指示燈的亮與滅,聽到電鈴的響與停,通過實物激發(fā)學(xué)生的興趣,為學(xué)生樹立一個目標(biāo):要實現(xiàn)該系統(tǒng),需要掌握哪些技術(shù)?從而引出本課程中涉及的主要相關(guān)技術(shù)。
4.1C語言和匯編語言的應(yīng)用
C語言是許多高校為計算機專業(yè)學(xué)生設(shè)置的第一門計算機程序設(shè)計語言。學(xué)習(xí)一門語言,不是學(xué)習(xí)其語法,而是要學(xué)習(xí)利用該語言去解決問題的方法,從而培養(yǎng)相關(guān)的能力。通信是計算機監(jiān)控系統(tǒng)的關(guān)鍵技術(shù),為了確保數(shù)據(jù)傳輸?shù)目煽啃?,制訂了通信協(xié)議,引入了校驗碼與結(jié)尾碼,如果收到的數(shù)據(jù),其頭字節(jié)、校驗碼或結(jié)尾碼錯誤,一般不進(jìn)一步處理,而是直接丟棄該數(shù)據(jù)。
可以利用C語言設(shè)計異或校驗碼的生成程序,即對給定的一批字節(jié),計算其異或校驗碼;對于含異或校驗碼的一批字節(jié),編寫子程序檢查是否正確。同理,可以編寫其它校驗碼處理程序。在此基礎(chǔ)之上,進(jìn)一步講解在一個C語言項目中集成子程序的方法。如果學(xué)生掌握了這些方法,就基本掌握了用C語言開發(fā)受控機軟件的80%以上的技術(shù)。
匯編語言是符號化了的面向機器的語言,比較枯燥??梢杂脜R編語言來生成校驗碼與檢查數(shù)據(jù)是否正確,通過調(diào)試,讓學(xué)生明確各個寄存器的作用。在字節(jié)處理方面,可以用0表示開關(guān)打開,1表示開關(guān)閉合,在置位和復(fù)位某位時,不能影響其它位的值。
4.2計算機接口技術(shù)的應(yīng)用
在計算機接口中講解“串行通信技術(shù)”時,首先演示一個“支持來電顯示的多賬號撥號器”,可以讓學(xué)生一鍵撥號──201卡與IP卡及所撥打的長途電話,只要一鍵即可完成,還支持來電顯示。通過演示,激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)習(xí)成為其需要;然后,講解知識點,讓學(xué)生模仿軟件的開發(fā)。
可以通過匯編語言設(shè)置串口參數(shù),對串口進(jìn)行初始化,然后,發(fā)送字節(jié)數(shù)據(jù),控制仿真模塊的輸出開關(guān),通過聲光效果觀察程序運行的結(jié)果,這比觀察單純的數(shù)據(jù)變化要形象直觀,對學(xué)生更有吸引力。
4.3計算機網(wǎng)絡(luò)的應(yīng)用
在C語言、匯編語言,以及計算機接口技術(shù)中都涉及到字節(jié)數(shù)據(jù)流,這就是協(xié)議及主控機與受控機之間的約定。通過串行通信協(xié)議,可以自然過渡到TCP/IP協(xié)議,加深學(xué)生對協(xié)議的理解。
在網(wǎng)絡(luò)編程方面,可以演示一個充當(dāng)客戶機的POP3密碼攻擊程序,讓學(xué)生在增強信息安全意識的同時,學(xué)習(xí)基于Socket的客戶機與服務(wù)器程序的設(shè)計。3.3節(jié)中的協(xié)議轉(zhuǎn)換器,就是通過客戶機/服務(wù)器編程,實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)與串行通信數(shù)據(jù)的無縫轉(zhuǎn)換。這個協(xié)議轉(zhuǎn)換器雖然功能簡單,代碼簡單,但是,作用非常大,可以用來對計算機監(jiān)控系統(tǒng)進(jìn)行遠(yuǎn)程調(diào)試與維護(hù)。
4.4VB與數(shù)據(jù)庫的應(yīng)用
有了仿真模塊,就可以采用VB開發(fā)主控程序。VB是一門快速語言,采用VB編程,學(xué)生可以很快入門,有利于增強學(xué)生學(xué)習(xí)編程的自信心。VB可以很方便地設(shè)計各種表單界面,通過MSComm32控件和Winsock控件,實現(xiàn)串行通信和網(wǎng)絡(luò)通信,從而與受控機或模塊建立通信,完成查詢和控制功能。VB也可以很方便地調(diào)用數(shù)據(jù)庫,用數(shù)據(jù)庫來存儲控制策略、通信協(xié)議及設(shè)備的狀態(tài)數(shù)據(jù)、報警記錄等,對數(shù)據(jù)庫進(jìn)行各種操作。通過主控程序的開發(fā),可以提高對計算機接口技術(shù)、計算機網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫的感性認(rèn)識,從而加深理論方面的理解。
5結(jié)束語
計算機監(jiān)控系統(tǒng)廣泛應(yīng)用于眾多領(lǐng)域。本文提出了“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓(xùn)練+學(xué)術(shù)論文”的教學(xué)模式,通過程序演示,提高學(xué)生的學(xué)習(xí)興趣,為學(xué)生樹立一個學(xué)習(xí)目標(biāo),然后,講解知識點,讓學(xué)生模仿相應(yīng)的程序,再進(jìn)行綜合訓(xùn)練。同樣是學(xué)習(xí)相同的課程,但是我們在其中融入了計算機監(jiān)控技術(shù),設(shè)計了仿真模塊,可以在計算機房零成本搭建計算機監(jiān)控系統(tǒng)平臺,通過我們的教學(xué),學(xué)生畢業(yè)后,可以直接作為項目負(fù)責(zé)人或技術(shù)骨干參加計算機監(jiān)控系統(tǒng)項目的開發(fā)。進(jìn)行深入學(xué)習(xí)后,學(xué)生也可以發(fā)表計算機監(jiān)控方面的學(xué)術(shù)論文。
目前,我校已經(jīng)開設(shè)了“計算機監(jiān)控技術(shù)與系統(tǒng)開發(fā)”課程,實踐表明,該課程的開設(shè),將計算機專業(yè)的若干專業(yè)平臺課有機地融合到一起,對提高學(xué)生的學(xué)習(xí)興趣,加強技能的培養(yǎng),加深對理論的理解,提高就業(yè)率具有重要意義。
參考文獻(xiàn)
[1] 馬玉春. 計算機監(jiān)控技術(shù)與系統(tǒng)開發(fā)[M]. 北京:清華大學(xué)出版社,2007.
[2] Virtual Serial Port[EB/OL]. http://www.eltima.com/products /vspdxp/,2007-7.
[3] 周蘇,王文. 軟件工程實驗教學(xué)的設(shè)計與創(chuàng)新[J]. 計算機教育,2006,(10).
作者簡介
馬玉春(1969-),男(漢族),江蘇南京人,博士,東北大學(xué)秦皇島分校計算機工程系教學(xué)主任。
E-mail: onspring@sina.comwalkerma@mail.neuq.edu.cn
聯(lián)系方式:東北大學(xué)秦皇島分校計算機工程系,郵編066004
辦公:0335-8047939
手機:13933587097
中國高等教育學(xué)會教育科學(xué)“十一五”規(guī)劃研究課題(06AIJ0240070)