江 維,吳雨川,李紅軍
?
基于PROTEUS和MDK的嵌入式虛擬實驗室構建
江 維,吳雨川,李紅軍
(武漢紡織大學 機械工程與自動化學院,湖北 武漢 430200)
為有效降低電子信息類專業嵌入式技術實驗室的建設成本和周期,本文提出一種基于PROTEUS和MDK軟件結合的嵌入式技術虛擬實驗室的構建方法,通過PROTEUS的嵌入式硬件系統設計和MDK中嵌入式軟件開發,以及二者之間的聯合調試得到了嵌入式技術虛擬實驗室的構建過程和步驟,最后以LPC2124/ARM7系列芯片為例進行流水燈實驗的聯合仿真,獲得了較直觀的實驗效果。通過虛擬實驗室的構建不僅節省了物理成本,而且對于電子信息類相關專業學生的開放式學習及興趣的提升起到有力的推動作用。
PROTEUS;MDK;嵌入式系統;虛擬實驗室
目前全國各大高校電氣信息類專業相繼開設了嵌入式相關課程,并逐步開始建立嵌入式實驗室。這些實驗室基本都是采用相應的硬件仿真設備來構建的,但由于嵌入式微處理器的種類繁多 再加上資金的限制,不可能在一個實驗室包括所有種類的仿真設備。虛擬實驗作為傳統實驗的重要補充,克服了諸多條件的限制,豐富了實踐性教學的手段,有利于現代實驗教學觀念的更新。
當前,嵌入式課程教學中存在如下問題[1-2]:
(1)嵌入式課堂教學多以理論教學為主,教學中需要很多硬件設備,一般理論課堂難以輔助硬件進行教學,即便演示,效果也不好。
(2)嵌入式實驗作為實驗中心的基礎實驗,學生除了上課外,平時難得有機會實踐;而采用的嵌入式實驗設備大多是成品,學生很難參與其中的細節設計,因此學生動手能力也很難得到提高。
(3)配套的實驗設備多采用硬件仿真器配目標實驗板。這種配置方式直接導致該課程的實驗項目有限,實驗時間過長,設備維護工作量大等現實問題。
針對上述問題,本文提出利用PROTEUS和MDK整合構建嵌入式虛擬實驗室的方案。所謂“虛擬實驗室”,就是將計算機上的各種虛擬儀器,按實驗要求和設計原理,虛擬出一個與現實相同的實驗系統,進而在這個系統上完成整個實驗。與傳統實驗模式相比,虛擬實驗具有比較明顯的優勢。例如,涉及的實驗內容全面,硬件投入少,學生可自行實驗,實驗過程中損耗小,與工程實踐最為接近等。
本文主要是以PROTEUS軟件和MDK軟件來構建嵌入式虛擬實驗室。
PROTEUS ISIS是英國Labcenter公司開發的電路分析與實物仿真軟件。它運行于Windows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的特點是[3-4]:
(1)實現了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統仿真,RS232動態仿真,I2C調試器,SPI調試器、鍵盤和LCD系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。
(2)支持主流單片機系統的仿真。目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
(3)提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態,因此在該軟件仿真系統中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環境,如Keil C51 uVision2等軟件。
(4)具有強大的原理圖繪制功能。
總之,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。
MDK開發工具源自德國 Keil 公司,被全球超過 10 萬的嵌入式開發工程師驗證和使用,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發工具。KEIL MDK 集成了業內最領先的技術,包括μVision4集成開發環境與RealView 編譯器。支持ARM7、ARM9和最新的Cortex-M3/M1/M0 內核處理器,自動配置啟動代碼,集成Flash 燒寫模塊,強大的 Simulation設備模擬,性能分析等功能,與ARM之前的工具包ADS等相比,RealView編譯器的最新版本可將性能改善超過20%。KEIL MDK出眾的價格優勢和功能優勢,已經成為ARM軟件開發工具的標準,目前,KEIL MDK在國內ARM開發工具市場已經達到90%的占有率。
結合PROTEUS和MDK構建的虛擬實驗室能夠進行ARM7涉及的所有實驗內容,其中包括中斷、GPIO流水燈、UART串口通信、SPI通信、PWM脈寬調制器、WDT看門狗、A/D轉換器、定時計數器,以及基于μC/OSII的實驗。
基于PROTEUS和MDK虛擬實驗室的教學采用局域網多媒體教學,教師可以通過多媒體演示電路圖并講解其原理,學生根據相關實驗原理在PROTEUS和MDK中完成整個實驗。過程如下[5-8]:
(1)在MDK中編寫匯編/C語言源程序;
(2)編譯、調試源程序,最終生成后綴為.hex的可執行文件;
(3)在PROTEUS中設計完整的原理圖;
(4)將生成的.hex文件導入相應的嵌入式微處理器芯片。
完成以上步驟后,在PROTEUS中運行即可;觀察仿真結果,并檢驗是否與設計要求一致。
基于PROTEUS和MDK構建的ARM虛擬實驗平臺提供了大量的虛擬元件供學生使用,這樣就可以在虛擬實驗教學過程中培養學生的興趣,激發學生的創造性,增強互動性,提高教學效果。
下面以用ARM7(LPC2124)設計一個流水燈的實驗為例,介紹如何通過PROTEUS與MDK的整合實現對ARM7外圍電路的仿真。
在MDK中編寫C語言程序添加到工程中。程序如下:
#include
#define uint8 unsigned char
#define uint16 unsigend short
#define uint32 unsigned int
const uint32 LED8 = (0xff << 18); //8個LED分別連接到P1.25-P1.18
/******************
延時函數
***************************/
void delayms(uint32 delay)
{
uint32 i;
for(;delay > 0;delay--)
for(i = 0;i < 5000;i++);
}
/********************
流水燈花樣,
************************/
const uint32 LED_TBL[] = {
0x00,0xff, //全部熄滅然后全部點亮
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, //依次逐個點亮
0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff, //依次逐個疊加點亮
0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01, //依次逐個遞減點亮
0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81,//兩個靠攏后分開
0x81,0xc3,0xe7,0xff,0xff,0xe7,0xc3,0x81, //從兩邊疊加后遞減
};
/***************************
主程序
*****************************/
int main(void)
{
uint8 i;
PINSEL2 = PINSEL2 & (~0x80); //設置P1.25-P1.18為GPIO模式
IO1DIR = LED8; //設置為輸出口
while(1)
{
for(i = 0;i < 42;i++)
{
IO1SET = ~((LED_TBL[i]) << 18); //低電平點亮LED
delayms(100);
IO1CLR = (LED_TBL[i]) << 18;
delayms(100);
}
}
將該程序進行編譯,編譯通過后,就生成后綴為.hex的文件。
在PROTEUS中設計的流水燈原理電路,如圖1所示。其中用LPC2124的P1[25:18]控制LED8~LED1,低電平點亮。將后綴為.hex的文件添加到LPC2124中,運行后觀察到的部分仿真結果如圖1所示。

圖1 在PROTEUS中的花樣流水燈虛擬仿真結果
圖1中所繪制電路用到元器件有LPC2124一片、電源POWER三個(兩個需修改屬性為+3.3V 一個為1.8V)、接地GND一個、發光二極管8個。
綜上所述,基于PROTEUS和MDK構建嵌入式虛擬實驗室的方案是切實可行的。采用虛擬實驗的方式,不僅能夠解決傳統嵌入式實驗室設備資金短缺和維護困難的問題,而且使學生能夠充分利用課余時間進行嵌入式系統的軟硬件設計,充分鍛煉了學生的動手能力。在實際運行中,取得了良好的教學效果。使用該方案進行系統虛擬開發成功之后再進行實際制作,無疑可以提高開發效率、 降低開發成本、提升開發速度,具有較高的推廣應用價值。
[1] 朱清慧. PROTEUS電子技術虛擬實驗室[M]. 北京:中國水利水電出版社,2010. 8.
[2] 周立功. ARM嵌入式系統基礎教程[M]. 北京:北京航空航天大學出版社,2009. 12.
[3] 林立. 單片機原理及應用——基于Proteus和Keil C[M]. 北京:電子工業出版社, 2011. 7.
[4] 從宏壽. 電子設計自動化——Proteus在電子電路與51單片機中的應用[M]. 西安:西安電子科技大學出版社,2012. 1.
[5] 孫萬麟, 楊蓮紅, 宋莉莉. 單片機虛擬實驗室的構建及其應用[J]. 實驗技術與管理, 2014, 31(7): 229-231.
[6] 焦鉻, 戴小新. 基于Proteus和Keil的單片機虛擬實驗室的構建[J]. 電腦知識與技術, 2010, 06(28): 8127-8128.
[7] 李超建, 陸釗, 龔榆桐. 高校計算機硬件課程群的虛擬實驗室構建--以單片機原理虛擬實驗室為例[J]. 玉林師范學院學報, 2014, (2): 125-129.
[8] 魏魯原, 崔霞. 基于PROTEUS的單片機虛擬實驗室的構建[J]. 電子世界, 2015, (14): 187-189.
The Construction of Embedded Virtual Laboratory based on PROTEUS and MDK
JIANG Wei, WU Yu-chuan, LI Hong-jun
(School of Mechanical Engineering and Automation, Wuhan Textile University, Wuhan Hubei 430200, China)
In order to effectively reduce the construction cost and cycle of the embedded technology laboratory for electronic information specialties, this paper proposes a method for constructing an embedded virtual laboratory based on the combination of PROTEUS and MDK software. The embedded hardware system design and software system are implemented through PROTEUS and MDK respectively, the construction process and steps of the embedded virtual laboratory can be obtained through union debugging. Finally, the LPC2124/ARM7 series chip is used as an example to perform the co-simulation of the flowing water experiment and it obtains a more intuitive experimental results. Through the construction of a virtual laboratory, not only saves physical costs, but also plays a powerful role in promoting the open learning and interest of electronic information related professional students.
PROTEUS; MDK; embed system; virtual laboratory
江維(1983-),男,講師,博士,研究方向:智能控制與嵌入式系統.
2018年湖北省自然科學基金(2018CFB273).
TP391.9
A
2095-414X(2018)05-0022-04