您所在的位置:e-works首页 > 产品创新数字化(PLM) > EDA

基于Proteus的ARM虚拟开发

发表时间:2008-8-20 殷苏民 邓英杰 赵荣春 刘素霞 来源:万方数据
随着现代计算机技术的迅速发展.使用EDA软件进行的电路设计与仿真已经成为现代电子技术系统设计的必然趋势,文章介绍了Proteus软件的功能和特点,并结合具体的例子说明如何用Proteus实现ARM的虚拟开发。实践证明,用Proteus软件进行ARM开发可以大大缩短开发周期、提高开发效率、降低开发成本。

    引言

    现在,人们生活中的每个角落都有嵌入式设备的存在.比如数码相机、移动电话、Tv机顶盒及掌上电脑等等。这些嵌入式设备多采用32位R1SC嵌入式处理器作为核心部件。其中基于ARM核的嵌入式处理器独占鳌头.在32位RISC处理器中占据超过75%的市场份额。ARM核嵌入式处理器通常采用C语言编程。目前ARM公司的开发工具ADS、RealView以及Keil与ARM核处理器结合较好.得到了广大嵌入式学习者的一致认可。

    在传统的嵌入式系统学习中.嵌入式开发平台是必不可少的。其中资源少的开发平台便宜但功能较少.资源多的开发平台又价格不菲,这对广大的嵌入式爱好者无疑是个障碍。然而,有没有在不增加甚至降低开发成本的同时还能进行同样或更好的开发呢?本文介绍的Proteus软件就是一个可以完全脱离硬件平台来学习嵌入式系统进行虚拟开发的利器.可以说是嵌入式系统学习的一次革命。

    1 Proteus简介

    Proteus软件是英国Labcenter electronics公司的EDA工具软件,是一个电子设计的教学平台、实验平台和创新平台,涵盖了电工电子实验室、电子技术实验室、单片机应用实验室等的全部功能。其革命性的功能是将电路仿真和微处理器仿真进行协调,直接在基于原理图的虚拟原型上进行处理器编程调试。并进行功能验证,通过动态器件(如电机、LED、LCD、开关等),配合系统配置的虚拟仪器(如示波器、逻辑分析仪等),可实时看到运行后的输入输出的效果.其主要特点如下:

    (1)可以仿真、分析各种模拟器件和集成电路,其支持Pillips公司系列的ARM(LPC系列)。Proteus的仿真是基于SPICE3F5的,因此它也镌像其它的EDA软件那样进行电路分析,如模拟分析、数字分析、混合信号分析、频率分析等等:

    (2)提供了虚拟示波器、逻辑分析仪、信号发生器、计数器、电表、Virtual Terminal等虚拟仪器仪表供选择:

    (3)能够进行SCH(原理图)和PCB(印刷板)电路的设计;

    (4)其自身只带汇编编译器.不支持c语言。但可以将它与Keil、ADS集成开发环境连接,将用汇编和C语言编写的程序编译好之后.可以立即进行软、硬件结合的系统仿真。达到很好的仿真效果。

    2 Proteus环境下的系统设计与仿真

    Proteus和PROTEL、EWB等软件相似,绘制原理图都要先从器件库里取出所需的元器件符号并在绘图区布局好.同时编辑好元件的参数,接着进行连线,添加必要的网络标号等步骤。下面通过一个简单的实例说明如何使用Proteus软件实现ARM(以LPC2124为例)系统设计与仿真。实例以LPC2124控制器为核心。与L297、L298组成步进电机控制器,添加必要的外围电路,实现对步进电机的正、反转控制。

    2.1 电路原理图的设计

    运行Proteus VSM的ISIS后出现如图l所示的主窗口界面,点击“File”-“New Design”新建一个设计项目。接下来就是在其中所需的添加元器件了.点击元器件添加按钮会弹出“PickDevices”对话框.在其中选择需要添加的元器件,添加到器件列表区中。然后再依次点击列表区里的元器件。把它们放到绘图区并编辑其属性,接着进行合理的布局之后,就可以进行连线了。与PROTEL类似,Proteus也具有自动捕捉节点和自动布线功能.连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针就会出现一个“X”提示符号,点击鼠标左键即可画线,在终点再点击确认一下就完成一段导线,所有导线画完后,点击电源按钮.添加必要的电源和接地符号,并编辑其属性后,原理图的绘制就完成了,如图2所示。

    图1 Proteus主窗口

    图2电路原理图

    2.2 程序代码的编写

    程序代码的编写主要分四个部分进行:

    (I)LPC2124的初始化代码;

    (2)LPC2124异常向量入口及异常向量与c语言代码的接口,包括初始化堆栈的代码:

    (3)LPC2124目标板特殊的代码,包括异常处理程序和目标板初始化程序;

    (4)根据我们实例要求,结合原理图,编写实现预期功能的代码.即通常的执行代码.代码文件保存为“main.C”。

    通常,为了节省开发者的时间.通常把这些文件保存在一个文件夹里.暂且把文件夹命名为“1pc2124模块”,这样在以后的程序代码编写时就可以直接调用这个模块,再根据不同的要求改写“main.c”就行了.而不必要又重新编写这些程序.节省了大量时间,大大提高了工作效率。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:赵蔓
2
;