基于Proteus的ARM虚拟开发技术

发布者:PeacefulSoul最新更新时间:2012-12-04 来源: 维库开发网关键字:Proteus  ARM  虚拟开发技术 手机看文章 扫描二维码
随时随地手机看文章
  引言

  现在,人们生活中的每个角落都有嵌入式设备的存在,比如数码相机、移动电话、TV机顶盒及掌上电脑等等。这些嵌入式设备多采用32位RISC嵌入式处理器作为核心部件。其中基于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后出现如图1所示的主窗口界面,点击“File”—“New Design”新建一个设计项目。接下来就是在其中所需的添加元器件了,点击元器件添加按钮会弹出“Pick Devices”对话框,在其中选择需要添加的元器件,添加到器件列表区中。然后再依次点击列表区里的元器件,把它们放到绘图区并编辑其属性,接着进行合理的布局之后,就可以进行连线了。与PROTEL类似,Proteus也具有自动捕捉节点和自动布线功能,连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针就会出现一个“×”提示符号,点击鼠标左键即可画线,在终点再点击确认一下就完成一段导线,所有导线画完后,点击电源按钮,添加必要的电源和接地符号,并编辑其属性后,原理图的绘制就完成了,如图2所示。[page]

图2 电路原理图

  2.2 程序代码的编写

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

  (1) LPC2124的初始化代码;

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

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

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

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

  这里主要说明“main.c”的编写,要实现的功能是用LPC2124控制器、LP297、L298组成的步进电机控制 器,控制步进电机的运转,原理图中可以看到各元器件引脚的连接,图中还设置了七个电压探针,用数字图表显示各电压节点的电平随时间变化的曲线。KEY键控制电机的正反转(KEY键按下则电机反转)。程序流程图如图3所示。根据程序流程图编写好执行代码文件“main.c”。

图3 程序流程图

图4 ADS编译环境窗口[page]

  2.3 仿真

  文中采用ADS集成开发环境进行程序的编译连接设置,ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2支持ARM10以前的所有ARM系列微控制器,支持软件调试,支持汇编、C和C++源程序,具有编译效率高、系统库功能强等特点。

  打开ADS1.2集成开发环境CodeWarrior IDE,点击Project→New Project建立一个新的工程lcd.mcp,把以上编好的代码文件全部添加进工程,如图4所示。进行相关设置后,选择Project→Make命令,编译并连接工程,生成stepper.hex文件。

  在原理图中右击微控制器LPC2124,再单击,出现一属性设置窗口Edit Component,如图5。在其中的Program File中添加上面生成的stepper.hex文件的路径,单击OK完成设置。

  点击原理图左下角

  中的运行按钮

  ,即开始仿真运行。仿真结果如图6所示。数字图表显示各电压节点的电平值随时间变化的曲线,步进电机按要求运行,按下KEY键电机反转。仿真结果完全符合设计要求。

图5 器件编辑窗口

图6 仿真结果图

  3 结语

  通过以上简单的步进电机控制系统设计过程可以看出,用Proteus软件进行ARM虚拟开发的优势所在。使用Proteus进行ARM的虚拟开发,不仅可以减少实验硬件资本的投入,还突破了实际开发板中实验内容的局限性,使开发者能够充分发挥自身的主动性。使用Proteus仿真,大大降低了开发成本,提高了开发效率。笔者相信随着电子技术的不断发展、完善,基于软件的硬件虚拟开发的应用将会发挥越来越重要的作用。

参考文献:

[1]. RISC datasheet http://www.dzsc.com/datasheet/RISC_1189725.html.
[2]. PCB datasheet http://www.dzsc.com/datasheet/PCB_1201640.html.
[3]. LPC2124 datasheet http://www.dzsc.com/datasheet/LPC2124_844644.html.
[4]. L297 datasheet http://www.dzsc.com/datasheet/L297_442958.html.
[5]. L298 datasheet http://www.dzsc.com/datasheet/L298_442929.html.

关键字:Proteus  ARM  虚拟开发技术 引用地址:基于Proteus的ARM虚拟开发技术

上一篇:基于嵌入式系统VGA接口设计
下一篇:ARM7单片机+RTL8019嵌入式TCP_IP协议栈使用分析

推荐阅读最新更新时间:2024-03-16 13:14

IAR发布V5.41版IAR Embedded Workbench
    IAR Systems发布IAR Embedded Workbench for ARM嵌入式开发平台最新版本V5.41。相比于之前的版本,新版本软件在支持Cortex-M0上,将代码大小和执行速度这两个重要性能都提高了13%。     NXP半导体微处理器产品线的总经理Geoff Lees说到:“看到IAR Systems在LPC1100 Cortex-M0 MCU家族不断取得代码优化性能的提高,我们非常高兴。这次新版本发布,使得代码更为紧凑,同时执行速度更快。IAR Systems在ARM Cortex市场无疑是一个持续的开发工具领导者。”     IAR Embedded Workbench for ARM V
[嵌入式]
CMake设置arm-linux-gcc交叉编译器
主机:Ubuntu10.04 交叉编译器:EABI-4.3.3 CMake在ubuntu系统下默认使用系统的gcc、g++编译器,编译arm下的程序要使用arm-linux-gcc,需要对CMake进行设置(通过在CMakeLists.txt中指定交叉编译器的方法)。 在CMakeLists.txt一开始加入相关设置: #告知当前使用的是交叉编译方式,必须配置 SET(CMAKE_SYSTEM_NAME Linux) #指定C交叉编译器,必须配置 #或交叉编译器使用绝对地址 SET(CMAKE_C_COMPILER arm-linux-gcc ) #指定C++交叉编译器 SET(CMAKE_CXX_COMP
[单片机]
ARM、FPGA和DSP的区别是什么?
DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理
[嵌入式]
基于ARM9的指纹识别门禁系统
指纹门禁系统是基于生物特征识别技术的一项高科技安全设施,近年来在国内外得到了广泛的应用,并已成为现代化建筑智能化的标志之一。对于一些核心机密部门,如重要机关、科研实验室、档案馆、民航机场等场所,指纹门禁系统可以提供高效、智能、便捷的授权控制。由于指纹具有携带方便、人人各异、终生不变的特点,因此利用指纹识别作为身份认证的手段,与传统的钥匙、密码相比,大大提高了安全性与可信性。 该系统基于ARM9芯片Samsung S3C2440AL,以Veridicom公司指纹采集芯片FPS200作为硬件平台,以嵌入式Linux为软件平台。在该研究领域中,基于PC平台的识别系统一直是研究的重点,本文实现的基于ARM平台的系统具有轻便,易安装,成
[单片机]
基于<font color='red'>ARM</font>9的指纹识别门禁系统
ARM Cortex-M3中断跳转过程
在学习CM3的时候,仔细学习了CM3的中断跳转过程,发现嵌入式的MCU在这一块基本上是一样的,当然不同架构的MCU也有自己的特性。 我来介绍下CM3的中断跳转过程,首先假设中断发生,CM3内核开始响应中断,由于不同厂家的CM3可能略有区别,但CM3的内核肯定是一样的,所以我们在这个前提下开始讨论,暂时把中断屏蔽位,标志位之类的东西放在一边。 现在介绍中断响应的过程: 1、压栈。从这一点来讲几乎所有的处理器都是一样的,用压栈保护现场。压入哪些寄存器呢,又是怎样一个顺序?如果就大多数的C语音编程来讲,这个不是很关心的内容。但是CM3的压栈寄存器特点,让我们来见识下ARM设计的特点。其压栈顺序如下图所示,请注意压栈的地址顺序
[单片机]
<font color='red'>ARM</font> Cortex-M3中断跳转过程
为确保万亿物联网安全,Arm正在下着一盘大棋
2017年10月,Arm针对物联网安全推出PSA(Platform Security Architecture)平台安全架构,以保护未来万亿个联网设备的安全为愿景。 Arm 新兴事业部总监Rob Coombs近日在北京举行的Arm PSA安全架构技术研讨会上说道:“目前有全球有80亿的物联网设备,随着物联网产业的蓬勃发展, 3年之后,预计物联网设备会从到80亿达到240亿,在未来6年内,在芯片、软件以及产品设备领域,物联网都有一个非常大的商机。Arm认为随着物联网、5G还有AI技术的快速发展,全球第五波计算时代将迎来很大的机遇,Arm的愿景是在2035年实现1万亿个物联网设备。” Arm 新兴事业部总监Rob Coombs
[物联网]
为确保万亿物联网安全,<font color='red'>Arm</font>正在下着一盘大棋
基于ARM的电子系统设计
    摘要: 本文简单介绍了ARM系列处理的结构和技术特性。针对目前应广泛的ARM7,详细介绍了相应的软件工具和硬件工具以及操作系统,并构建了一个PDA方案来说明其实际应用。     关键词: ARM  SOC  PDA 一、引言 作为SOC(System On Chip)的典型应用,和持电话、机顶盒、数码像机、GPS、个为数字助理以及因特网设备等产品的市场需求越来越大。目前,基于ARM的处理器以其高速度、低功耗等诸多优异的性能而成为上述各类产品中选用较多的处理器。 二、ARM内核 ARM内核分为ARM7、ARM9、ARM10以及StrongARM等几类。其中每一类又根据其各自包含的功能模块而分成多
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved