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