Proteus軟件在嵌入式系統(tǒng)教學(xué)中的應(yīng)用研究
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系列和三星S3C4480芯片。首先以單片機(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)能進(jìn)行智能原理布圖;進(jìn)行單片機(jī)軟件調(diào)試和單片機(jī)與外圍電路的協(xié)同仿真;滿足單片機(jī)軟件仿真系統(tǒng)的標(biāo)準(zhǔn)。
(2)支持常見(jiàn)的單片機(jī)類(lèi)型和飛利浦公司ARM7(LPC系列)處理器及常見(jiàn)的外圍器件如8255,ADC0809。
(3)可以與KeilμVersion 3,ADSl兩個(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é)效果。下面是一個(gè)實(shí)際的課堂案例。
在講述外部中斷處理過(guò)程時(shí),將Proteus和Keil聯(lián)調(diào),通過(guò)仿真步驟,可以將單片機(jī)處理中斷的軟件執(zhí)行過(guò)程和單片機(jī)內(nèi)部資源變化的情況以直觀、清晰的畫(huà)面呈現(xiàn)給學(xué)生,從而帶來(lái)單純理論分析難以達(dá)到的效果。匯編程序如下:
[!--empirenews.page--]
全速運(yùn)行Protues,可以看到Proteus中電路的按鍵閉合時(shí),P3.2引腳產(chǎn)生一個(gè)下跳沿,PC=0x0003H,指向AJMP INTO轉(zhuǎn)移指令,堆棧指針SP=O.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í)行Pro-teus電路圖中的發(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),許多抽象概念都可以以直觀的方式介紹給學(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)的不足。基于Proteus的實(shí)驗(yàn)可以分為以下3個(gè)階段逐步完成。
(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ā)能力。
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)元器件仿真模型是Pro-teus的特色動(dòng)態(tài)模型,具有動(dòng)畫(huà)效果,如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),可充分利用機(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à)值。