江 維,吳雨川,李紅軍
?
基于PROTEUS和MDK的嵌入式虛擬實(shí)驗(yàn)室構(gòu)建
江 維,吳雨川,李紅軍
(武漢紡織大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院,湖北 武漢 430200)
為有效降低電子信息類專業(yè)嵌入式技術(shù)實(shí)驗(yàn)室的建設(shè)成本和周期,本文提出一種基于PROTEUS和MDK軟件結(jié)合的嵌入式技術(shù)虛擬實(shí)驗(yàn)室的構(gòu)建方法,通過(guò)PROTEUS的嵌入式硬件系統(tǒng)設(shè)計(jì)和MDK中嵌入式軟件開(kāi)發(fā),以及二者之間的聯(lián)合調(diào)試得到了嵌入式技術(shù)虛擬實(shí)驗(yàn)室的構(gòu)建過(guò)程和步驟,最后以LPC2124/ARM7系列芯片為例進(jìn)行流水燈實(shí)驗(yàn)的聯(lián)合仿真,獲得了較直觀的實(shí)驗(yàn)效果。通過(guò)虛擬實(shí)驗(yàn)室的構(gòu)建不僅節(jié)省了物理成本,而且對(duì)于電子信息類相關(guān)專業(yè)學(xué)生的開(kāi)放式學(xué)習(xí)及興趣的提升起到有力的推動(dòng)作用。
PROTEUS;MDK;嵌入式系統(tǒng);虛擬實(shí)驗(yàn)室
目前全國(guó)各大高校電氣信息類專業(yè)相繼開(kāi)設(shè)了嵌入式相關(guān)課程,并逐步開(kāi)始建立嵌入式實(shí)驗(yàn)室。這些實(shí)驗(yàn)室基本都是采用相應(yīng)的硬件仿真設(shè)備來(lái)構(gòu)建的,但由于嵌入式微處理器的種類繁多 再加上資金的限制,不可能在一個(gè)實(shí)驗(yàn)室包括所有種類的仿真設(shè)備。虛擬實(shí)驗(yàn)作為傳統(tǒng)實(shí)驗(yàn)的重要補(bǔ)充,克服了諸多條件的限制,豐富了實(shí)踐性教學(xué)的手段,有利于現(xiàn)代實(shí)驗(yàn)教學(xué)觀念的更新。
當(dāng)前,嵌入式課程教學(xué)中存在如下問(wèn)題[1-2]:
(1)嵌入式課堂教學(xué)多以理論教學(xué)為主,教學(xué)中需要很多硬件設(shè)備,一般理論課堂難以輔助硬件進(jìn)行教學(xué),即便演示,效果也不好。
(2)嵌入式實(shí)驗(yàn)作為實(shí)驗(yàn)中心的基礎(chǔ)實(shí)驗(yàn),學(xué)生除了上課外,平時(shí)難得有機(jī)會(huì)實(shí)踐;而采用的嵌入式實(shí)驗(yàn)設(shè)備大多是成品,學(xué)生很難參與其中的細(xì)節(jié)設(shè)計(jì),因此學(xué)生動(dòng)手能力也很難得到提高。
(3)配套的實(shí)驗(yàn)設(shè)備多采用硬件仿真器配目標(biāo)實(shí)驗(yàn)板。這種配置方式直接導(dǎo)致該課程的實(shí)驗(yàn)項(xiàng)目有限,實(shí)驗(yàn)時(shí)間過(guò)長(zhǎng),設(shè)備維護(hù)工作量大等現(xiàn)實(shí)問(wèn)題。
針對(duì)上述問(wèn)題,本文提出利用PROTEUS和MDK整合構(gòu)建嵌入式虛擬實(shí)驗(yàn)室的方案。所謂“虛擬實(shí)驗(yàn)室”,就是將計(jì)算機(jī)上的各種虛擬儀器,按實(shí)驗(yàn)要求和設(shè)計(jì)原理,虛擬出一個(gè)與現(xiàn)實(shí)相同的實(shí)驗(yàn)系統(tǒng),進(jìn)而在這個(gè)系統(tǒng)上完成整個(gè)實(shí)驗(yàn)。與傳統(tǒng)實(shí)驗(yàn)?zāi)J较啾?,虛擬實(shí)驗(yàn)具有比較明顯的優(yōu)勢(shì)。例如,涉及的實(shí)驗(yàn)內(nèi)容全面,硬件投入少,學(xué)生可自行實(shí)驗(yàn),實(shí)驗(yàn)過(guò)程中損耗小,與工程實(shí)踐最為接近等。
本文主要是以PROTEUS軟件和MDK軟件來(lái)構(gòu)建嵌入式虛擬實(shí)驗(yàn)室。
PROTEUS ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的特點(diǎn)是[3-4]:
(1)實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)仿真,RS232動(dòng)態(tài)仿真,I2C調(diào)試器,SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。
(2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
(3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。
(4)具有強(qiáng)大的原理圖繪制功能。
總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。
MDK開(kāi)發(fā)工具源自德國(guó) Keil 公司,被全球超過(guò) 10 萬(wàn)的嵌入式開(kāi)發(fā)工程師驗(yàn)證和使用,是ARM公司目前最新推出的針對(duì)各種嵌入式處理器的軟件開(kāi)發(fā)工具。KEIL MDK 集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括μVision4集成開(kāi)發(fā)環(huán)境與RealView 編譯器。支持ARM7、ARM9和最新的Cortex-M3/M1/M0 內(nèi)核處理器,自動(dòng)配置啟動(dòng)代碼,集成Flash 燒寫(xiě)模塊,強(qiáng)大的 Simulation設(shè)備模擬,性能分析等功能,與ARM之前的工具包ADS等相比,RealView編譯器的最新版本可將性能改善超過(guò)20%。KEIL MDK出眾的價(jià)格優(yōu)勢(shì)和功能優(yōu)勢(shì),已經(jīng)成為ARM軟件開(kāi)發(fā)工具的標(biāo)準(zhǔn),目前,KEIL MDK在國(guó)內(nèi)ARM開(kāi)發(fā)工具市場(chǎng)已經(jīng)達(dá)到90%的占有率。
結(jié)合PROTEUS和MDK構(gòu)建的虛擬實(shí)驗(yàn)室能夠進(jìn)行ARM7涉及的所有實(shí)驗(yàn)內(nèi)容,其中包括中斷、GPIO流水燈、UART串口通信、SPI通信、PWM脈寬調(diào)制器、WDT看門狗、A/D轉(zhuǎn)換器、定時(shí)計(jì)數(shù)器,以及基于μC/OSII的實(shí)驗(yàn)。
基于PROTEUS和MDK虛擬實(shí)驗(yàn)室的教學(xué)采用局域網(wǎng)多媒體教學(xué),教師可以通過(guò)多媒體演示電路圖并講解其原理,學(xué)生根據(jù)相關(guān)實(shí)驗(yàn)原理在PROTEUS和MDK中完成整個(gè)實(shí)驗(yàn)。過(guò)程如下[5-8]:
(1)在MDK中編寫(xiě)匯編/C語(yǔ)言源程序;
(2)編譯、調(diào)試源程序,最終生成后綴為.hex的可執(zhí)行文件;
(3)在PROTEUS中設(shè)計(jì)完整的原理圖;
(4)將生成的.hex文件導(dǎo)入相應(yīng)的嵌入式微處理器芯片。
完成以上步驟后,在PROTEUS中運(yùn)行即可;觀察仿真結(jié)果,并檢驗(yàn)是否與設(shè)計(jì)要求一致。
基于PROTEUS和MDK構(gòu)建的ARM虛擬實(shí)驗(yàn)平臺(tái)提供了大量的虛擬元件供學(xué)生使用,這樣就可以在虛擬實(shí)驗(yàn)教學(xué)過(guò)程中培養(yǎng)學(xué)生的興趣,激發(fā)學(xué)生的創(chuàng)造性,增強(qiáng)互動(dòng)性,提高教學(xué)效果。
下面以用ARM7(LPC2124)設(shè)計(jì)一個(gè)流水燈的實(shí)驗(yàn)為例,介紹如何通過(guò)PROTEUS與MDK的整合實(shí)現(xiàn)對(duì)ARM7外圍電路的仿真。
在MDK中編寫(xiě)C語(yǔ)言程序添加到工程中。程序如下:
#include
#define uint8 unsigned char
#define uint16 unsigend short
#define uint32 unsigned int
const uint32 LED8 = (0xff << 18); //8個(gè)LED分別連接到P1.25-P1.18
/******************
延時(shí)函數(shù)
***************************/
void delayms(uint32 delay)
{
uint32 i;
for(;delay > 0;delay--)
for(i = 0;i < 5000;i++);
}
/********************
流水燈花樣,
************************/
const uint32 LED_TBL[] = {
0x00,0xff, //全部熄滅然后全部點(diǎn)亮
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, //依次逐個(gè)點(diǎn)亮
0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff, //依次逐個(gè)疊加點(diǎn)亮
0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01, //依次逐個(gè)遞減點(diǎn)亮
0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81,//兩個(gè)靠攏后分開(kāi)
0x81,0xc3,0xe7,0xff,0xff,0xe7,0xc3,0x81, //從兩邊疊加后遞減
};
/***************************
主程序
*****************************/
int main(void)
{
uint8 i;
PINSEL2 = PINSEL2 & (~0x80); //設(shè)置P1.25-P1.18為GPIO模式
IO1DIR = LED8; //設(shè)置為輸出口
while(1)
{
for(i = 0;i < 42;i++)
{
IO1SET = ~((LED_TBL[i]) << 18); //低電平點(diǎn)亮LED
delayms(100);
IO1CLR = (LED_TBL[i]) << 18;
delayms(100);
}
}
將該程序進(jìn)行編譯,編譯通過(guò)后,就生成后綴為.hex的文件。
在PROTEUS中設(shè)計(jì)的流水燈原理電路,如圖1所示。其中用LPC2124的P1[25:18]控制LED8~LED1,低電平點(diǎn)亮。將后綴為.hex的文件添加到LPC2124中,運(yùn)行后觀察到的部分仿真結(jié)果如圖1所示。
圖1 在PROTEUS中的花樣流水燈虛擬仿真結(jié)果
圖1中所繪制電路用到元器件有LPC2124一片、電源POWER三個(gè)(兩個(gè)需修改屬性為+3.3V 一個(gè)為1.8V)、接地GND一個(gè)、發(fā)光二極管8個(gè)。
綜上所述,基于PROTEUS和MDK構(gòu)建嵌入式虛擬實(shí)驗(yàn)室的方案是切實(shí)可行的。采用虛擬實(shí)驗(yàn)的方式,不僅能夠解決傳統(tǒng)嵌入式實(shí)驗(yàn)室設(shè)備資金短缺和維護(hù)困難的問(wèn)題,而且使學(xué)生能夠充分利用課余時(shí)間進(jìn)行嵌入式系統(tǒng)的軟硬件設(shè)計(jì),充分鍛煉了學(xué)生的動(dòng)手能力。在實(shí)際運(yùn)行中,取得了良好的教學(xué)效果。使用該方案進(jìn)行系統(tǒng)虛擬開(kāi)發(fā)成功之后再進(jìn)行實(shí)際制作,無(wú)疑可以提高開(kāi)發(fā)效率、 降低開(kāi)發(fā)成本、提升開(kāi)發(fā)速度,具有較高的推廣應(yīng)用價(jià)值。
[1] 朱清慧. PROTEUS電子技術(shù)虛擬實(shí)驗(yàn)室[M]. 北京:中國(guó)水利水電出版社,2010. 8.
[2] 周立功. ARM嵌入式系統(tǒng)基礎(chǔ)教程[M]. 北京:北京航空航天大學(xué)出版社,2009. 12.
[3] 林立. 單片機(jī)原理及應(yīng)用——基于Proteus和Keil C[M]. 北京:電子工業(yè)出版社, 2011. 7.
[4] 從宏壽. 電子設(shè)計(jì)自動(dòng)化——Proteus在電子電路與51單片機(jī)中的應(yīng)用[M]. 西安:西安電子科技大學(xué)出版社,2012. 1.
[5] 孫萬(wàn)麟, 楊蓮紅, 宋莉莉. 單片機(jī)虛擬實(shí)驗(yàn)室的構(gòu)建及其應(yīng)用[J]. 實(shí)驗(yàn)技術(shù)與管理, 2014, 31(7): 229-231.
[6] 焦鉻, 戴小新. 基于Proteus和Keil的單片機(jī)虛擬實(shí)驗(yàn)室的構(gòu)建[J]. 電腦知識(shí)與技術(shù), 2010, 06(28): 8127-8128.
[7] 李超建, 陸釗, 龔榆桐. 高校計(jì)算機(jī)硬件課程群的虛擬實(shí)驗(yàn)室構(gòu)建--以單片機(jī)原理虛擬實(shí)驗(yàn)室為例[J]. 玉林師范學(xué)院學(xué)報(bào), 2014, (2): 125-129.
[8] 魏魯原, 崔霞. 基于PROTEUS的單片機(jī)虛擬實(shí)驗(yàn)室的構(gòu)建[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-),男,講師,博士,研究方向:智能控制與嵌入式系統(tǒng).
2018年湖北省自然科學(xué)基金(2018CFB273).
TP391.9
A
2095-414X(2018)05-0022-04