||
ARM技术是一门实践性很强的技术,其实验是电子类教学中十分重要的实践教学环节,是培养学生实验技能、创新思维的重要课程。掌握ARM技术已是电子类学生就业的一个基本条件。目前各个高校相继开设了ARM课程,并逐步开始建立ARM实验室。这些实验室基本都是采用相应的硬件仿真设备来构建的,但由于ARM的种类繁多再加上资金的限制,不可能在一个实验室包括所有种类的ARM仿真设备。虚拟实验作为传统实验的重要补充,克服了诸多条件的限制,丰富了实践性教学的手段,有利于现代实验教学观念的更新。
1 ARM实验教学存在的问题
目前,ARM教学中存在如下问题:
①ARM课堂教学多以理论教学为主,教学中需要很多硬件设备,一般理论课堂难以辅助硬件进行教学,即便演示,效果也不好。
②ARM实验作为实验中心的基础实验,学生除了上课外,平时难得有机会实践;而采用的ARM实验设备大多是成品,学生很难参与其中的细节设计,因此学生动手能力也很难得到提高。
③配套的实验设备多采用硬件仿真器配目标实验板。这种配置方式直接导致该课程的实验项目有限,实验时间过长,设备维护工作量大等现实问题。
针对上述问题,提出利用Proteus和ADS整合构建ARM虚拟实验室的方案。所谓“虚拟实验室”,就是将计算机上的各种虚拟仪器,按实验要求和设计原理,虚拟出一个与现实相同的实验系统,进而在这个系统上完成整个实验。与传统实验模式相比,虚拟实验具有比较明显的优势。例如,涉及的实验内容全面,硬件投入少,学生可自行实验,实验过程中损耗小,与工程实践最为接近等。
2 ARM虚拟实验室的构建
2.1 ARM虚拟实验室的软件支持
本方案主要是以Proteus软件和ADS软件来构建该虚拟实验室。
Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真,RS232动态仿真,I2C调试器,SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
ADS(ARM Developer Suite)是ARM公司推出的新一代ARM集成开发工具。CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC的优势,使产品开发人员能够很好地应用尖端的片上系统技术。该工具是专为基于ARM RISC的处理器而设计的。它可加速并简化嵌入式开发过程中的每一个环节,使得开发人员只需通过一个集成软件开发环境就能研制出ARM产品;在整个开发周期中,开发人员无需离开CodeWarrior开发环境,节省了在操作工具上花的时间,而有更多的精力投入到代码编写上来。CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单、多样化的图形用户界面。用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C、C++或ARM汇编语言编写的程序代码,还可以生成程序代码的十六进制文件。
2.2 ARM虚拟实验室的实验内容和实验过程
结合Proteus和ADS构建的虚拟实验室能够进行ARM涉及的所有实验内容,其中包括中断、流水灯、串口通信、SPI通信、脉宽调制器、看门狗、A/D转换器、定时,以及基于μC/OS的实验。
基于ARM虚拟实验室的教学采用局域网多媒体教学,教师可以通过多媒体演示电路图并讲解其原理,学生根据相关实验原理在ADS和Proteus中完成整个实验。过程如下:
①在ADS中编写C语言源程序;
②编译、调试源程序,最终生成后缀为.hex的文件;
③在Proteus中设计完整的原理图;
④将生成的.hex文件导入相应的ARM芯片。
完成以上步骤后,在Proteus中运行即可;观察仿真结果,并检验是否与设计要求一致。
基于Proteus和ADS构建的ARM虚拟实验平台提供了大量的虚拟元件供学生使用,这样就可以在虚拟实验教学过程中培养学生的兴趣,激发学生的创造性,增强互动性,提高教学效果。
3 ARM虚拟实验教学实例分析
下面以用LPC2131设计一个流水灯的实验为例,介绍如何通过Proteus与ADS的整合实现对ARM外围电路的仿真。
3.1 软件的实现
在ADS中编写C语言程序添加到user组中。程序如下:
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}"> |
将该程序进行编译,编译通过后,就生成后缀为.hex的文件。
3.2 硬件电路的实现
在Proteus中设计的流水灯原理电路,如图1所示。其中用LPC2131的P1[25:18]控制LED8~LED1,低电平点亮。将后缀为.hex的文件添加到LPC2131中,运行后观察到的部分仿真结果与图1完全一致。此时为8盏灯全亮。
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}"> |
仿真结果与设计要求完全一致,达到了预期的目的。
结 语
综上所述,基于Proteus和ADS构建ARM虚拟实验室的方案是切实可行的。采用虚拟实验的方式,不仅能够解决传统ARM实验室设备资金短缺和维护困难的问题,而且使学生能够充分利用课余时间进行ARM系统的软硬件设计,充分锻炼了学生的动手能力。在实际运行中,取得了良好的教学效果。使用该方案进行系统虚拟开发成功之后再进行实际制作,无疑可以提高开发效率、降低开发成本、提升开发速度,具有较高的推广应用价值。