江 维,吴雨川,李红军
基于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