AT91SAM9261 是Atmel公司新推出的ARM9 32位处理器。将它与常用的32位处理器S3C2410作一个简单比较,以说明它的优越性能。AT91SAM926l采用了ARM926EJ-S内核并外扩了DSP指令设备和JAzELLEJava加速器。在工作频率为180 MHz的情况下,其运算速度为200 MIPS。$3C2410采用的是ARM920T内核,虽然它的主频最高可达200 MHz,但在处理诸如乘加指令时没有AT91SAM9261快,尤其在处理流媒体数据时更为明显。
AT91SAM9261具有32 KB的R()M和160 KB的SRAM,还有新增的2个16 KB的数据缓存和指令缓存,32个I/O口,支持LCD和USB设备以及I2C总线接口和多媒体通信接口,所以开始的引导程序可以选择放在内部ROM,从而提高运行速度。160 KB的内部SRAM在播放流媒体数据时起到了很好的帧缓冲作用。S3C2410采用的是NAND Flash启动引导,内部无SRAM。另外,AT91SAM9261 发挥了ARM926EJ-S紧密式耦合内存架构的优势,让传统(非高速缓存)SRAM直接连接到ARM处理器上而不会出现滞后情况。这样强大的处理能力使其应用于GPS系统中游刃有余。
AT91SAM9261结构框图如图1所示,内部支持LCD控制器、串行通信口(包括USB从机模块、UART、SPI以及I2C)和多媒体通信口;另外,还提供一个用于调试的JTAG接口。功耗方面,AT 91SAM9261待机电流仅为2.5μA;S3C2410为8~50 μA,工作频率为500 Hz时,电流消耗为400弘A。在工业级温度范围内,AT91SAM9261处理器性能达200 MIPS时,即使所有外设开启,其工作电流也仅仅是65 mA,而此时$3C2410的电流约为200 mA。
现在,虽然市面上ARM处理器品种众多,如主流的PXA2XX系列,它们的处理速度比AT91SAM9261高;但是AT91SAM9261价格便宜,功耗低,又能满足本身设计需要,所以选择AT91SAM9261比较合适。
2 GPS接收机硬件设计
2.1 接收机系统原理和结构
如图2所示,用户设备部分由以下几个模块组成:核心硬件电路、GPS模块、液晶 屏和触摸屏、PC主机和音频设备等。
图3所示核心硬件电路以AT91SAM926l应用处理器为核心,使用2片16位的SDRAM配置成32位宽度的高性能存储器,这样在读取数据时就可以以4字节为1个单位,从而加快数据的读取速度。选用16M×16位闪存存储器,用于存储WinCE操作系统和电子地图信息。引导程序的启动可以选择从内部ROM或者外部ROM,采用外部引导程序启动时,可以外扩DataFlash通过串121或以太网下载引导程序启动。实际上,DataFIash是一个EEPR()M结构的存储器,将NPCS0片选信号连接f1]DataFlash的CS中,使系统一开始时寻址到的Ox00地址正好是DataFlash的0x00地址,从而启动Bootloader。
用户设备的显示部分是一个带有3.5寸触摸屏的 LCD.LCD电路包括LCD时序电路、LCD电源、背光电源电路。电源输出(这里以满足SHARJPLQ035QI7DH01为例),需要+15∨、+5∨和-10∨的直流电源电压以及由PWM控制的+21∨∽+25∨背光电源。在调试这几个电源电路时要注意以下几点:由于输出电压比较
高,应避免输出引脚和其他元件短接以免发生短路。②充电泵整流器的带负载能力有限,用于滤波的电容容抗不能太大。建议用陶瓷电容。③LCD部分的电流输出不是很大(4 mA),PCB的布局可以尽量紧凑;但LED电源PCB要考虑散热性能(因为输出的电流大约为20 mA),并且尽量远离控制信号线.
2.2 GPS模块介绍
GPS模块是Atmel公司提供的。GPS模块采用的是串行输出,只要2个串行信号线就可以完成较精确的差分卫星定位。GPS模块的支持电压为2.7~3.3 v,功率小于100 mW/H。GPS模块由变频器模块(ATR0600)、信号相关模块(ATR0610)、微处理器模块(ATR0620)组成。
图4为GPS模块结构框图。
2.3 GPS模块的POB设计
GPS接收机前端为RF模块。由于含有射频信号,因此其PCB设计相对中低频信号的PCB 板来说要困难得多。总结笔者设计时遇到的困难及需要注意的事项,可以得到以下几点启示:
①射频滤波器只有在位于天线与射频滤波器之间的微波传送带的特征阻抗为50 Q的情况 下才能正常工作。该传送带特征阻抗是PCB介质层间厚度为h、介电常数为εr、导线厚度为t,以及导线宽度为W的函数,所以在PCB板上放置该段导线时应根据相应的函数精确计算出微波传送带的宽度。该函数关系式为:
②布线时应将导线的电阻和电容效应都考虑在内,走线尽量短而直,不能走直角;元件布局时要防止产生寄生振荡现象。特别是对于LC滤波电路,PCB板布线与电容和电感摆放所产生的分布参数都会直接影响这个滤波器,因而在布线过程中应注意:滤波器的元器件和引线与 射频信号线之间要保持良好的间隔,以防止互相之间的串扰;双平衡信号的路径由保持平行,并且长度相仿,这样可以加强二者之间的耦合而减弱与其他线之间的耦合;第一级滤波器和射频信号输入电路之间留有足够的空间,以实现相互隔离,保证系统的稳定性。
③模拟电源与数字电源隔离;数字地与模拟地分开在两者搭接处加入磁珠,防止互相干扰;连接电源和地的导线应尽量粗一些。
④应使用一个金属罩将射频部分电路屏蔽起来,防止与后面的数字电路发生互相干扰。
3 软件模块设计与开发
如图5所示,软件以电子地图分析模块及数据库为中心,包括GPS模块、通信模块以及显示和声音输出模块。数据库中记录了各种地理数据。使用者在行动过程中,由GPS模块接收,分析卫星信号,计算出当前的经纬度、速度和方向等数值,就可以得到使用者在电子地图上的确切位置。定时记录位置移动情况就可以在LCD上显示直观的路线图。可以在此基础上开发车辆导航系统。
开发过程中用到的工具主要有Platform Builder和EVC。P1atform Builder生成一个面向目标板的特定的WinCE操作系统。在生成Platform时,要选用正确的BSP。可以通过修改AT91SAM9261DK开发板自带的BSP包来满足设计要求,使得BSP包的开发变得简单而快速。BSP主要包括Bootloader、OAL和驱动程序。
由于篇幅有限,在这里只作简单介绍:
①Bootloader是在操作系统内核运行之前运行的一程序,用于初始化硬件设备,建立系统内存空间映射;而最重要的就是将操作系统内核映像加载到RAM中,并且把系统控制权交给它。在接收机手持设备系统中,这里可以不改。
②OAL(即OEM适配层)是逻辑上驻留在winCE内核与目标设备之间的代码,用于实现winCE内核与目标设备之间的通信。这里,除了基本的初始化功能外,还另外添加了电源管理方面的函数()EMIdle和()EMPowerOff,使其基本满足手持设备在功耗方面的要求。
③驱动程序是BSp开发的重要部分,是用户模式的动态链接库(DII),是一个抽象物理设备或虚拟设备的功能软件。一般可分为内建驱动程序(如键盘驱动程序)和流驱动程序(如串口驱动、DataFlash驱动、以太网驱动等)。它们都是由设备管理器来加载的。
EVC开发GPS系统的软件部分类似于vC中的项目开发。程序编好以后可以通过USB口下载到目标板上进行调试,并开发新的功能。
结 语
GPS是当前应用最广泛的导航定位系统。在欧美等发达地区,利用GPS车载导航系统来改进交通有广阔的应用前景。AT91SAM9261嵌入式处理器有较高的性能,在类似方面的应用中大有可为。