新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于EP7211构建通用嵌入式处理平台

基于EP7211构建通用嵌入式处理平台

作者:■ 解放军信息工程大学 卜佑军\河南工业大学 李清丽\河北临城县第二中学 李文风 时间:2005-03-04来源:电子设计应用2004年第12期收藏

摘    要:本文介绍了的通用处理平台的设计,该平台适用于开发便携式电子产品。文中具体阐述了系统的硬件构成、软件平台选取和系统的初始化过程。这些设计原则具有普遍性,适合于一般的嵌入式系统开发。
关键词:

本文引用地址:http://www.eepw.com.cn/article/4539.htm

引言
目前,已经普遍应用于工控领域,构建一个可以方便更换的通用嵌入式处理器模块,既便于设计又便于维修、使用,可以提高工作效率,同时节省资金投入。

软硬件选用
本通用嵌入式处理平台主要是用于开发便携式电子产品,此类产品不仅要求功能完备、用户界面友好、操作方便简洁,而且要求寿命长、功耗低。这就要求在设计初期从硬件和软件两个方面来考虑,具体来说就是要从嵌入式处理器、实时操作系统和电路形式等几个方面来综合选取。
嵌入式处理器的选用
在便携式通信、便携式计算机、多媒体数字消费和需要嵌入式解决方案的市场中,ARM的微处理器核心正在迅速成为RISC计算设计的标准,越来越多的厂家选择心处理器开发自己的下一代产品。在本通用开发平台中选用Cirrus Logic公司的嵌入式微处理器作为CPU,该器件是专为低成本、超低功耗的应用设计的。
电路形式的选用
一种方案是在通用模块中设置尽可能全的功能,但在工控应用领域中,将所有功能全部用上的场合并不多,因此,功能太全只能是浪费,并会加长开发周期。本平台的板卡电路由CPU、程序存储器Flash、RAM、CPU辅助电路(如晶振、复位)和电源电路构成,特殊功能可由特殊模块自行设计。
将嵌入式处理器EP7211、Flash、Dram、串口和电源电路作为一个通用模块,数据、地址总线、空闲的I/O和其他的外围接口信号做成标准的接口插座。如果要实现以太网接口或液晶显示等功能,只需要做以太网相关模块的电路,并将其与EP7211相关的信号做成和通用模块匹配的接口即可。这样既减少了调试CPU、内存等部分电路的重复劳动,也有利于电路故障的排除。
实时操作系统的选用
以嵌入式处理器为中心,当搭建好硬件电路时仅提供了裸机运行平台,要使整个系统中有限的硬件资源充分利用起来,还需要嵌入式实时操作系统的软件支持。针对本项目,的选择有两个方案:一是使用已经购买的用在油田测井系统SL3000型产品的商用Nucleus;二是使用自主开发的、专门面向嵌入式应用系统的XGW软件开发平台。
在本通用开发平台中采用了XGW平台,这是因为XGW开发平台是自主研发的,软件产品升级和故障排除等都比较容易,产品成本费用相对较低。另外,EP7211嵌入式处理器和XGW的组合,在“GPS汽车导航系统”和“铁路交通信息系统PDA”项目中已经获得了成功应用,具有较成熟的开发经验。
XGW嵌入式操作系统针对以ARM7为内核的硬件平台来进行系统开发,用C语言实现完成,并借鉴了Windows的消息驱动机制。XGW功能强大、模块化设计、扩展性强、产品升级容易,其总体框架如图1所示。XGW软件开发平台包括事件消息驱动机制(XGW软件开发平台中的消息分为鼠标消息、键盘消息和定时器消息等三类)、内存管理、字符和图形显示输出、图形组件库等。图形组件库中的编辑框、列表框、按钮、进度条等图形控件为用户应用程序开发提供了应用编程接口API。不过,XGW平台对于系统硬件的中断响应没有提供统一的入口和出口,需要开发人员单独处理。

通用模块的设计
本系统的通用模块主要包括嵌入式处理器、DRAM和非易失性存储器如ROM或FLASH、电源电路、CF卡接口、彩色LCD显示器接口、以太网接口和串行接口等。系统的结构框图如图2所示。
图中各部分的主要功能为:红外(IrD)接口用来完成便携式系统之间的无线数据交换;串行接口用于程序和数据的下载及进行软件升级;传呼译码芯片用来接收个人传呼及公共信息;LCD和触摸屏提供显示和输入的人机界面;Flash RAM与SRAM用于存储程序和数据,为程序运行提供缓存;电源电路可将电池或外加电源变换为嵌入式处理器和外围电路所需要的3.3V、2.5V和5V;CF卡用作大容量存储器;以太网接口用于跟计算机或其他模块进行通信;MP3播放器用于播放MP3音乐。

通用模块的初始化
由于嵌入式系统的资源有限,程序通常都是固化在ROM中运行。ROM中的程序在执行前需要由启动程序建立软件运行环境,主要包括:对系统硬件进行初始化,将出错中止程序或重启动的程序段由ROM拷贝到RAM中;在RAM中创建主程序运行时使用的堆栈和数据区;建立C程序运行的环境,如对段寄存器和堆栈指针初始化、对静态变量和RAM区清零、建立堆(heap);设置必要的中断向量,并将每个未使用的中断指向一个只含RET指令的哑函数,以防止错误中断引起系统的混乱。另外,虽然字符串等常数与程序一起固化在ROM中,系统运行时主程序可以访问它们,但RAM的存取速度比ROM快,因此串数据也应在程序执行前被拷贝到RAM中,以提高读出速度。为了提高执行速度、方便地存取各寄存器,启动程序由汇编语言来编写。
启动程序是嵌入式程序的开头部分,应该与应用程序一起固化在EPROM中,并在系统加电后首先执行。具体步骤如下:
1. 设置入口指针
应用程序首先必须定义入口指针,而且整个应用程序只有一个入口指针。
2.设置中断向量
ARM7要求中断向量表必须设置在从0地址开始,连续8



评论


相关推荐

技术专区

关闭