Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1930999
  • 博文数量: 699
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:45
文章分类

全部博文(699)

文章存档

2011年(1)

2008年(698)

我的朋友

分类:

2008-10-15 13:50:20

  1  引言

  现在,人们生活中的每个角落都有设备的存在,比如数码相机、移动电话、TV机顶盒及掌上电脑等等。这些设备多采用32位RISC嵌入式处理器作为核心部件。

        其中基于ARM核的嵌入式处理器独占鳌头,在32位RISC处理器中占据超过75%的市场份额。ARM核嵌入式处理器通常采用C语言编程,目前ARM公司的开发工具ADS、RealView以及Keil与核处理器结合较好,得到了广大嵌入式学习者的一致认可。

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

  1 Proteus简介

  Proteus软件是英国Labcenter electronics公司的EDA工具软件,是一个电子设计的教学平台、实验平台和创新平台,涵盖了电工电子实验室、电子技术实验室、单片机应用实验室等的全部功能。

  其革命性的功能是将电路仿真和微处理器仿真进行协调,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件(如电机、LED、LCD、开关等),配合系统配置的虚拟仪器(如示波器、逻辑分析仪等),可实时看到运行后的输入输出的效果,其主要特点如下:

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

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

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

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

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

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

  2.1 电路原理图的设计

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

图1  Proteus主窗口

图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编译环境窗口

 

[1]  

【责编:Luzi】

--------------------next---------------------

阅读(432) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~