摘 要:為了解決嵌入式系統(tǒng)的課程難教難學(xué),教學(xué)成本高的問(wèn)題,提出在嵌入式系統(tǒng)課程的各教學(xué)環(huán)節(jié)引入Proteus軟件,可在課堂教學(xué)中進(jìn)行演示,也可在實(shí)驗(yàn)教學(xué)和課程設(shè)計(jì)中從驗(yàn)證、設(shè)計(jì)及綜合不同階段逐步掌握硬件系統(tǒng)設(shè)計(jì),提高學(xué)生的動(dòng)手能力。通過(guò)動(dòng)態(tài)仿真模型設(shè)計(jì),可以用于畢業(yè)設(shè)計(jì)和創(chuàng)新設(shè)計(jì)中。該方法能減少教學(xué)成本,提高教學(xué)效果,具有較高的推廣價(jià)值。關(guān)鍵詞:動(dòng)態(tài)仿真模型; 嵌入式系統(tǒng); Proteus; Keil
中圖分類(lèi)號(hào):TN911-33; TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)16-0074-03
Application of Proteus Software in Theoretical and Practical Teaching about Embedded Syetems
WANG Zhong, QIN Ying-lin
(Department of Computer Science and Technology, Shandong Jianzhu University, Jin’an 250101, China)
Abstract: The introduction of Proteus software into all the teaching steps in the course of the embedded systems is proposed to solve the problems of the teaching difficulties and high cost of teaching for the course of the embedded systems. The method proposed in this article is performed in the classroom teaching. The prupose is to let the students master the design of hardware systems gradually and improve the students' abilities. The model design of dynamic simulation can be applied to the graduation projects and innovative design. The application of Proteus software in embedded system teaching can reduce the teaching cost and improve the teaching effect.
Keywords: computer application; embedded system; Proteus; keil
0 引 言
嵌入式系統(tǒng)是一門(mén)涉及計(jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)軟件以及其他相關(guān)電子技術(shù)的綜合技術(shù)。目前,嵌入式系統(tǒng)技術(shù)已經(jīng)成為最熱門(mén)的技術(shù)之一,各類(lèi)企業(yè)對(duì)具備嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)能力人才的需求量非常旺盛。在目前各高校開(kāi)設(shè)的嵌入式系統(tǒng)課程中,普遍采用的微處理器是8位的單片機(jī)8051,32位ARM7TDMI核的飛利浦NXP LPC系列和三星S3C44B0芯片。首先以單片機(jī)作為嵌入式系統(tǒng)設(shè)計(jì)學(xué)習(xí)的入門(mén),掌握了基本的概念和設(shè)計(jì)方法之后,再把ARM7內(nèi)核CPU作為一種“功能更強(qiáng)大的單片機(jī)”,無(wú)縫升級(jí)到流行的ARM平臺(tái)。
傳統(tǒng)的嵌入式系統(tǒng)教學(xué),課堂環(huán)節(jié)多是純理論教學(xué),實(shí)踐環(huán)節(jié)一般也是使用傳統(tǒng)的實(shí)驗(yàn)箱,實(shí)驗(yàn)項(xiàng)目較少,內(nèi)容固定,創(chuàng)新手段不足,很難為學(xué)生的創(chuàng)新實(shí)踐創(chuàng)造良好的實(shí)驗(yàn)平臺(tái)。鑒于傳統(tǒng)教學(xué)模式中面臨的問(wèn)題,在課堂教學(xué)、實(shí)驗(yàn)、畢業(yè)設(shè)計(jì)、創(chuàng)新設(shè)計(jì)中引入Proteus軟件,可達(dá)到事半功倍的效果。
1 Proteus軟件介紹
Proteus是由英國(guó)Labcenter公司開(kāi)發(fā)的嵌入式系統(tǒng)仿真及開(kāi)發(fā)平臺(tái),該軟件具有以下特點(diǎn)[1-3]:
(1) 能進(jìn)行智能原理布圖;進(jìn)行單片機(jī)軟件調(diào)試和單片機(jī)與外圍電路的協(xié)同仿真;滿(mǎn)足單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn)。
(2) 支持常見(jiàn)的單片機(jī)類(lèi)型和飛利浦公司ARM7(LPC系列)處理器及常見(jiàn)的外圍器件如8255,ADC0809。
(3) 可以與Keil μVersion 3,ADS1兩個(gè)集成開(kāi)發(fā)環(huán)境結(jié)合,把用匯編和C語(yǔ)言編寫(xiě)的程序編譯后,進(jìn)行軟、硬件結(jié)合的系統(tǒng)仿真。
2 Proteus軟件在教學(xué)中的應(yīng)用
在教學(xué)環(huán)節(jié)中,教師可以將Proteus和Keil 建立的虛擬實(shí)驗(yàn)平臺(tái)搬到課堂上,將實(shí)踐教學(xué)與理論教學(xué)融為一體,從而改進(jìn)教學(xué)效果[4]。下面是一個(gè)實(shí)際的課堂案例。
在講述外部中斷處理過(guò)程時(shí),將Proteus 和Keil 聯(lián)調(diào),通過(guò)仿真步驟,可以將單片機(jī)處理中斷的軟件執(zhí)行過(guò)程和單片機(jī)內(nèi)部資源變化的情況以直觀、清晰的畫(huà)面呈現(xiàn)給學(xué)生,從而帶來(lái)單純理論分析難以達(dá)到的效果。
匯編程序如下:
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT0
ORG 0100H
MAIN: MOV IE,#0FFH ;開(kāi)中斷
SETB IT0 ;INT0 為邊沿觸發(fā)方式
SJMP $INT0: CPL P1.0
RETI
END
全速運(yùn)行Protues,可以看到Proteus 中電路的按鍵閉合時(shí),P3.2 引腳產(chǎn)生一個(gè)下跳沿,PC=0x0003H,指向AJMP INT0 轉(zhuǎn)移指令,堆棧指針SP=0.9H,數(shù)據(jù)存儲(chǔ)器的08H 和09H 單元存放著01H 和05H,即存放了下一條指令的地址。由此學(xué)生可以知道,當(dāng)發(fā)生外部中斷請(qǐng)求時(shí),程序會(huì)自動(dòng)保存斷點(diǎn)的地址,同時(shí)程序?qū)?huì)轉(zhuǎn)移到中斷服務(wù)程序的入口地址。由于是外部中斷0產(chǎn)生的中斷請(qǐng)求,因此程序會(huì)轉(zhuǎn)移到外部中斷0 的入口地址0003H 單元。而AJMP INT0 是一轉(zhuǎn)移指令,所以程序會(huì)轉(zhuǎn)移到標(biāo)號(hào)INT0 處,即真正的中斷服務(wù)程序。隨著CPL P1.0 指令的執(zhí)行,Proteus 電路圖中的發(fā)光二極管會(huì)改變當(dāng)前的狀態(tài)。當(dāng)程序執(zhí)行完RETI后,PC=0x0105H,說(shuō)明中斷程序執(zhí)行完后,程序又回到斷點(diǎn)的位置。RETI 指令能把斷點(diǎn)地址取出,送回到程序計(jì)數(shù)器PC 中去。至此,一個(gè)完整的中斷處理過(guò)程執(zhí)行完畢。
通過(guò)外部中斷執(zhí)行的例子可以看出,在課堂上使用Protues 和Keil 聯(lián)調(diào)建立的實(shí)驗(yàn)平臺(tái)[5],許多抽象概念都可以以直觀的方式介紹給學(xué)生,使得學(xué)生不僅能夠觀察到軟件執(zhí)行時(shí)單片機(jī)內(nèi)部的I/O 口和存儲(chǔ)器的變化,還能夠觀察到軟件程序和外圍電路互動(dòng)的過(guò)程。
3 Proteus軟件在實(shí)驗(yàn)和課程設(shè)計(jì)中的應(yīng)用
現(xiàn)有的單片機(jī)實(shí)驗(yàn)教學(xué)環(huán)節(jié)通常包括2個(gè)部分:課內(nèi)實(shí)驗(yàn)和課程設(shè)計(jì)。所有這些實(shí)驗(yàn)都是在實(shí)驗(yàn)箱上完成的。由于硬件實(shí)驗(yàn)箱的結(jié)構(gòu)固定,資源有限,學(xué)生在做實(shí)驗(yàn)時(shí)無(wú)法將所學(xué)的知識(shí)融會(huì)貫通。所以到課程設(shè)計(jì)階段,很多學(xué)生無(wú)法完成綜合性實(shí)驗(yàn)。采用Proteus 軟件仿真可以彌補(bǔ)硬件實(shí)驗(yàn)的不足?;赑roteus的實(shí)驗(yàn)可以分為以下3個(gè)階段逐步完成[6]。
(1) 驗(yàn)證階段。主要讓學(xué)生熟悉Proteus與Keil軟件環(huán)境,使學(xué)生對(duì)單片機(jī)虛擬系統(tǒng)仿真有感性認(rèn)識(shí)。實(shí)驗(yàn)指導(dǎo)書(shū)給出實(shí)驗(yàn)任務(wù)與要求、Proteus實(shí)驗(yàn)原理圖、實(shí)驗(yàn)操作步驟、多媒體課件、程序流程圖及程序源代碼等。學(xué)生根據(jù)實(shí)驗(yàn)步驟或?qū)嶒?yàn)操作錄像進(jìn)行實(shí)驗(yàn)操作、實(shí)驗(yàn)調(diào)試,并觀察程序運(yùn)行結(jié)果。
(2) 設(shè)計(jì)階段。主要培養(yǎng)學(xué)生用Proteus繪制系統(tǒng)原理圖,以及用Keil進(jìn)行源程序設(shè)計(jì)的能力。實(shí)驗(yàn)指導(dǎo)書(shū)給出實(shí)驗(yàn)任務(wù)與要求、實(shí)驗(yàn)原理圖。學(xué)生根據(jù)實(shí)驗(yàn)原理圖用Proteus繪制硬件電路圖,按照實(shí)驗(yàn)要求設(shè)計(jì)程序,在Keil環(huán)境編寫(xiě)源代碼,調(diào)試成功,加載程序到Proteus硬件圖仿真。仿真成功后按照實(shí)驗(yàn)原理圖在實(shí)驗(yàn)箱上搭建硬件電路,加載程序,觀察實(shí)驗(yàn)現(xiàn)象,并與仿真結(jié)果相比較。
(3) 綜合階段。主要激發(fā)學(xué)生學(xué)習(xí)興趣及主觀能動(dòng)性,提高學(xué)生創(chuàng)新能力。學(xué)生根據(jù)實(shí)驗(yàn)任務(wù)及要求設(shè)計(jì)硬件電路(包括CPU選型、元器件選型及參數(shù)設(shè)置、電路連接等)并繪制Proteus硬件原理圖;根據(jù)硬件功能模塊進(jìn)行軟件設(shè)計(jì)(包括系統(tǒng)原理框圖、程序流程圖及源代碼編寫(xiě)等)。軟硬件設(shè)計(jì)完成后,進(jìn)行兩者間聯(lián)調(diào),充分利用Proteus與Keil的聯(lián)合仿真功能,及時(shí)發(fā)現(xiàn)并改正硬件電路或程序源碼的錯(cuò)誤。系統(tǒng)仿真成功后,再制作實(shí)物。
在課程設(shè)計(jì)環(huán)節(jié)中,要求學(xué)生在Proteus 中繪制硬件電路圖,在Keil 中編寫(xiě)程序,同時(shí)在設(shè)計(jì)硬件電路時(shí)盡可能考慮實(shí)驗(yàn)箱的資源,以便在Keil 中編寫(xiě)的程序能夠很好移植到實(shí)驗(yàn)箱上。這樣學(xué)生可以隨時(shí)進(jìn)行課程設(shè)計(jì)和課題研究,在聯(lián)合仿真驗(yàn)證成功后,再進(jìn)入實(shí)驗(yàn)室使用實(shí)驗(yàn)箱做進(jìn)一步驗(yàn)證。
學(xué)生可以針對(duì)不同的應(yīng)用,選擇最適宜的單片機(jī),而不用局限于課堂上常講解的51系列單片機(jī)。學(xué)生可以在聯(lián)合仿真成功之后,再進(jìn)行電路焊接、系統(tǒng)調(diào)試和程序固化,避免因設(shè)計(jì)方案不正確所造成的浪費(fèi)。同時(shí)也可以使學(xué)生了解與本課程相關(guān)的科技發(fā)展最新動(dòng)態(tài)和成果,掌握自己不熟悉的單片機(jī),提高實(shí)驗(yàn)?zāi)芰烷_(kāi)發(fā)能力[7-8]。
4 Proteus軟件在畢業(yè)設(shè)計(jì)和創(chuàng)新設(shè)計(jì)中的應(yīng)用
在畢業(yè)設(shè)計(jì)中,單片機(jī)控制類(lèi)的設(shè)計(jì)由于時(shí)間短,人數(shù)多及實(shí)驗(yàn)設(shè)備缺乏,給畢業(yè)設(shè)計(jì)帶來(lái)了一定的困難。采用Proteus仿真軟件后,只需要一臺(tái)電腦就可以開(kāi)展工作。學(xué)生前期的仿真工作可以利用Proteus仿真軟件在電腦上完成,再進(jìn)入實(shí)驗(yàn)室進(jìn)行現(xiàn)場(chǎng)調(diào)試,一方面可緩解設(shè)備不足的問(wèn)題,也可不影響正常的教學(xué)。
在項(xiàng)目研究和創(chuàng)新設(shè)計(jì)中,利用Proteus軟件進(jìn)行輔助設(shè)計(jì),可以做到縮短研發(fā)周期,減小硬件成本的投入。動(dòng)態(tài)元器件仿真模型是Proteus 的特色動(dòng)態(tài)模型,具有動(dòng)畫(huà)效果[9],如LED發(fā)光管、按鍵開(kāi)關(guān)等。這是Proteus 的特色。但有些動(dòng)態(tài)模型在庫(kù)中沒(méi)有,Proteus在創(chuàng)建動(dòng)態(tài)模型方面給予用戶(hù)廣闊的創(chuàng)作與發(fā)揮空間,可以設(shè)計(jì)自己的動(dòng)態(tài)模型,展現(xiàn)出Proteus 在動(dòng)態(tài)仿真方面的無(wú)限魅力。它不但使人機(jī)交互式仿真得以實(shí)現(xiàn),而且使仿真形象、生動(dòng),創(chuàng)造出極為接近現(xiàn)實(shí)的課程教學(xué)與產(chǎn)品研發(fā)的情境。
5 結(jié) 語(yǔ)
采用Proteus仿真軟件作為單片機(jī)和ARM的教學(xué)平臺(tái)[10],可充分利用機(jī)房的現(xiàn)有設(shè)備,減少實(shí)驗(yàn)設(shè)備的硬件維護(hù)、實(shí)驗(yàn)環(huán)境,又與實(shí)際工程系統(tǒng)非常接近,拉近了學(xué)習(xí)與就業(yè)的距離。
近年來(lái),將Proteus 仿真軟件應(yīng)用在教學(xué)、課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)、山東省大學(xué)生電子設(shè)計(jì)大賽中,使用該開(kāi)發(fā)環(huán)境對(duì)學(xué)生進(jìn)行培訓(xùn),在不需要硬件投入的情況下,學(xué)生普遍反映比以往單純學(xué)習(xí)書(shū)本知識(shí)更易于接受,更易于提高,增加很多實(shí)踐經(jīng)驗(yàn)。實(shí)踐證明,這種教學(xué)方法不但可以降低成本,經(jīng)濟(jì)優(yōu)勢(shì)明顯,且具有較高的推廣價(jià)值。
參考文獻(xiàn)
[1]萬(wàn)軍,馬正華.嵌入式系統(tǒng)及應(yīng)用課程實(shí)踐教學(xué)的研究[J].中國(guó)現(xiàn)代教育裝備,2009(15):77-79.
[2]李芳,李家慶.基于Proteus+Keil的單片機(jī)實(shí)驗(yàn)仿真平臺(tái) [J].中國(guó)教育技術(shù)裝備,2009(4):78-79.
[3]喬建華,李臨生,田啟川.Proteus在單片機(jī)教學(xué)中的應(yīng)用分析[J].電氣電子教學(xué)學(xué)報(bào),2008(3):70-73.
[4]陳燕,李娜娜.Proteus 和Keil 在單片機(jī)教學(xué)中的應(yīng)用[J].中國(guó)科技信息,2009(20):194-195.
[5]孫凌燕,黃允千.Proteus與Keil軟件的整合在單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2008,27(4):33-34.
[6]伍馮潔,謝斌.基于Proteus與Keil的單片機(jī)實(shí)驗(yàn)教學(xué)改革[J].實(shí)驗(yàn)室研究與探索,2009,28(7):35-37.
[7]王瑋,曹會(huì)寧.Proteus仿真軟件在單片機(jī)一體化教學(xué)中的應(yīng)用[J].機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2009,22(5):12-15.
[8]馮友誼.Proteus軟件仿真技術(shù)在單片機(jī)教學(xué)中的應(yīng)用[J].武漢職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,7(2):5-7.
[9]周靈彬,張靖武.創(chuàng)建Proteus動(dòng)態(tài)器件仿真模型的技術(shù)[J].現(xiàn)代電子技術(shù),2009,32(12):153-155.
[10]馬壯,張國(guó)旭.基于Proteus的PC機(jī)與單片機(jī)串行通信仿真系統(tǒng)的設(shè)計(jì)[J].機(jī)床與液壓,2009,37(7):45-46.