Proteus软件在嵌入式系统教学中的应用研究
2010-10-22 来源:现代电子技术
0 引言
嵌入式系统是一门涉及计算机体系结构、计算机软件以及其他相关电子技术的综合技术。目前,嵌入式系统技术已经成为最热门的技术之一,各类企业对具备嵌入式系统设计开发能力人才的需求量非常旺盛。在目前各高校开设的嵌入式系统课程中,普遍采用的微处理器是8位的单片机8051,32位ARM7TDMI核的飞利浦NXP LPC系列和三星S3C4480芯片。首先以单片机作为嵌入式系统设计学习的入门,掌握了基本的概念和设计方法之后,再把ARM7内核CPU作为一种“功能更强大的单片机”,无缝升级到流行的ARM平台。
传统的嵌入式系统教学,课堂环节多是纯理论教学,实践环节一般也是使用传统的实验箱,实验项目较少,内容固定,创新手段不足,很难为学生的创新实践创造良好的实验平台。鉴于传统教学模式中面临的问题,在课堂教学、实验、毕业设计、创新设计中引入Proteus
软件,可达到事半功倍的效果。
1 Proteus软件介绍
Proteus是由英国Labcenter公司开发的嵌入式系统仿真及开发平台,该软件具有以下特点:
(1)能进行智能原理布图;进行单片机软件调试和单片机与外围电路的协同仿真;满足单片机软件仿真系统的标准。
(2)支持常见的单片机类型和飞利浦公司ARM7(LPC系列)处理器及常见的外围器件如8255,ADC0809。
(3)可以与KeilμVersion 3,ADSl两个集成开发环境结合,把用汇编和C语言编写的程序编译后,进行软、硬件结合的系统仿真。
2 Proteus软件在教学中的应用
在教学环节中,教师可以将Proteus和Keil建立的虚拟实验平台搬到课堂上,将实践教学与理论教学融为一体,从而改进教学效果。下面是一个实际的课堂案例。
在讲述外部中断处理过程时,将Proteus和Keil联调,通过仿真步骤,可以将单片机处理中断的软件执行过程和单片机内部资源变化的情况以直观、清晰的画面呈现给学生,从而带来单纯理论分析难以达到的效果。汇编程序如下:
全速运行Protues,可以看到Proteus中电路的按键闭合时,P3.2引脚产生一个下跳沿,PC=0x0003H,指向AJMP INTO转移指令,堆栈指针SP=O.9H,数据存储器的08H和09H单元存放着01H和05H,即存放了下一条指令的地址。由此学生可以知道,当发生外部中断请求时,程序会自动保存断点的地址,同时程序将会转移到中断服务程序的入口地址。由于是外部中断0产生的中断请求,因此程序会转移到外部中断0的入口地址0003H单元。而AJMP INT0是一转移指令,所以程序会转移到标号INT0处,即真正的中断服务程序。随着CPL P1.0指令的执行Pro-teus电路图中的发光二极管会改变当前的状态。当程序执行完RETI后,PC=0x0105H,说明中断程序执行完后,程序又回到断点的位置。RETI指令能把断点地址取出,送回到程序计数器PC中去。至此,一个完整的中断处理过程执行完毕。
通过外部中断执行的例子可以看出,在课堂上使用Protues和Keil联调建立的实验平台,许多抽象概念都可以以直观的方式介绍给学生,使得学生不仅能够观察到软件执行时单片机内部的I/O口和存储器的变化,还能够观察到软件程序和外围电路互动的过程。
3 Proteus软件在实验和课程设计中的应用
现有的单片机实验教学环节通常包括2个部分:课内实验和课程设计。所有这些实验都是在实验箱上完成的。由于硬件实验箱的结构固定,资源有限,学生在做实验时无法将所学的知识融会贯通。所以到课程设计阶段,很多学生无法完成综合性实验。采用Proteus软件仿真可以弥补硬件实验的不足。基于Proteus的实验可以分为以下3个阶段逐步完成。
(1)验证阶段。主要让学生熟悉Proteus与Keil软件环境,使学生对单片机虚拟系统仿真有感性认识。实验指导书给出实验任务与要求、Proteus实验原理图、实验操作步骤、多媒体课件、程序流程图及程序源代码等。学生根据实验步骤或实验操作录像进行实验操作、实验调试,并观察程序运行结果。
(2)设计阶段。主要培养学生用Proteus绘制系统原理图,以及用Keil进行源程序设计的能力。实验指导书给出实验任务与要求、实验原理图。学生根据实验原理图用Proteus绘制硬件电路图,按照实验要求设计程序,在Keil环境编写源代码,调试成功,加载程序到Proteus硬件图仿真。仿真成功后按照实验原理图在实验箱上搭建硬件电路,加载程序,观察实验现象,并与仿真结果相比较。
(3)综合阶段。主要激发学生学习兴趣及主观能动性,提高学生创新能力。学生根据实验任务及要求设计硬件电路(包括CPU选型、元器件选型及参数设置、电路连接等)并绘制Proteus硬件原理图;根据硬件功能模块进行软件设计(包括系统原理框图、程序流程图及源代码编写等)。软硬件设计完成后,进行两者间联调,充分利用Proteus与Keil的联合仿真功能,及时发现并改正硬件电路或程序源码的错误。系统仿真成功后,再制作实物。
在课程设计环节中,要求学生在Proteus中绘制硬件电路图,在Keil中编写程序,同时在设计硬件电路时尽可能考虑实验箱的资源,以便在Keil中编写的程序能够很好移植到实验箱上。这样学生可以随时进行课程设计和课题研究,在联合仿真验证成功后,再进入实验室使用实验箱做进一步验证。
学生可以针对不同的应用,选择最适宜的单片机,而不用局限于课堂上常讲解的51系列单片机。学生可以在联合仿真成功之后,再进行电路焊接、系统调试和程序固化,避免因设计方案不正确所造成的浪费。同时也可以使学生了解与本课程相关的科技发展最新动态和成果,掌握自己不熟悉的单片机,提高实验能力和开发能力。
4 Proteus软件在毕业设计和创新设计中的应用
在毕业设计中,单片机控制类的设计由于时间短,人数多及实验设备缺乏,给毕业设计带来了一定的困难。采用Proteus仿真软件后,只需要一台电脑就可以开展工作。学生前期的仿真工作可以利用Proteus仿真软件在电脑上完成,再进入实验室进行现场调试,一方面可缓解设备不足的问题,也可不影响正常的教学。
在项目研究和创新设计中,利用Proteus软件进行辅助设计,可以做到缩短研发周期,减小硬件成本的投入。动态元器件仿真模型是Pro-teus的特色动态模型,具有动画效果,如LED发光管、按键开关等。这是Proteus的特色。但有些动态模型在库中没有,Proteus在创建动态模型方面给予用户广阔的创作与发挥空间,可以设计自己的动态模型,展现出Proteus在动态仿真方面的无限魅力。它不但使人机交互式仿真得以实现,而且使仿真形象、生动,创造出极为接近现实的课程教学与产品研发的情境。
5 结语
采用Proteus仿真软件作为单片机和ARM的教学平台,可充分利用机房的现有设备,减少实验设备的硬件维护、实验环境,又与实际工程系统非常接近,拉近了学习与就业的距离。
近年来,将Proteus仿真软件应用在教学、课程设计、毕业设计、山东省大学生电子设计大赛中,使用该开发环境对学生进行培训,在不需要硬件投入的情况下,学生普遍反映比以往单纯学习书本知识更易于接受,更易于提高,增加很多实践经验。实践证明,这种教学方法不但可以降低成本,经济优势明显,且具有较高的推广价值。