概述:本文设计了一套基于arm处理器的车载GPS系统,采用AT91RM9200处理器为硬件平台,在该处理器上移植Linux操作系统,利用操作系统的资源编写程序实现GPS和GPRS的功能在车载GPS系统中的应用.本文提供了一套切实可行的具有实时监控能力的车载GPS卫星定位系统设计方案. 1 引言 车载GPS定位终端在过去十年内已经成为汽车工业发展的焦点.在欧美国家和日本,车载GPS定位终端在最近几年内得以广泛的应用.车载GPS定位终端是融全球卫星定位技术(GPS)和现代无线通信技术于一体的高科技系统.该终端的主要功能是通过GPS模块从卫星获取GPS数据,将移动车辆的动态位置(经度、纬度、时间、速度)等信息实时地通过无线通信链路上传至监控中心,同时接收监控中心发送的控制命令.目前的车辆监控系统中大多采用GSM通信网以短信息的方式进行通信,不能充分满足实际应用的需要.而GPRS(General Packet Radio Service)通用分组无线业务是一种以分组交换技术为基础,采用IP数据网络协议的高效数据传输网络,可以弥补GSM网络的不足.车载GPS定位终端不仅在智能交通系统中担负主要作用,同时还可以提供防盗防抢劫报警,公交车报站,物流车辆调度等多种服务. 2 车载GPS定位系统的硬件设计 本部分介绍车载GPS定位系统硬件系统的设计方案,着重阐述嵌入式处理器AT91RM9200硬件系统的设计,GPS卫星数据采集模块的接口设计和GPRS通信模块接口的设计.如图1所示,车载GPS定位系统的硬件结构主要由GPRS接收模块、GPS接收模块、SDRAM,FLASH存储器模块、串口通信模块,以及外围模块组成. 图1 车载GPS定位系统的硬件结构组成 2.1 GPRS接收模块电路设计 GPRS模块负责主电路板与监控中心的通信任务,它将处理好了的GPS数据通过网络发送给监控中心,并接收监控中心发送给主电路板的控制命令,该模块直接影响到这个车载终端的实际使用效果. 本系统选用的GPRS模块是由索尼爱立信公司推出的GR47模块,该模块的主要特点是内置TCP/TP协议栈.它允许一个TCP/UDP传输机制以最小的前期配置和操作来被使用.其内嵌控制器方便集成客户的应用,减少外部控制器的需求.GR47支持双频GSM宽带900MHz/1800MHz,可通过SMS短消息服务、CSD、HSCSD或GPRS来发送或接收资料,并可处理语音及传真.其TCP/IP协议栈也可通过AT命令或嵌入式应用进行访问.由于GR47模块内嵌了TCP/IP协议栈,所以可以直接用AT命令对其进行控制,使用起来非常方便.图2描述了GPRS通信模块的串口电路设计. 图2 GPRS模块的串口电路设计图 2.2 GPRS模块的SIM卡电路设计 GR47模块带有一个SIM卡的接口,遵从IS07816 IC卡标准.通过电线与外部扩展的SIM卡盒相连.图3描述了GPRS模块的SIM卡电路设计.
图3 GPRS模块SIM卡电路设计图
2.3 GPS接收模块电路设计 GPS模块负责接收GPS定位卫星发送的导航电文,他通过串行接口与主电路板相连接,是实现接收GPS数据的关键. 对于GPS模块的选择而言,通常从技术参数,支持的通信协议,控制接口和成本几个方面考虑.目前商用的GPS模块,大都支持12通道,采用C/A编码,NMEA0183协议,通过RS232接口控制.本系统选用的GPS卫星数据采集模块为上海丽浪公司出品的GPS-R25型GPS模块,具有以下特性:12通道C/A码接收控制,可同时监控12路卫星信号;内部集成16位arm7TDMI处理内核;电池会在正常的使用过程中充电;GPS卫星采集模块的误差范围为1~5米;2种接口连接且用户可自选波特率;达到工业级的标准并且防水.并且该模块即可以通过RS-232的串口与主电路板相连接,也可以通过PS2接口与主电路板相连接,使用起来非常方便.
2.4 FLASH存储器电路设计 Flash存储器是一种可在系统电擦写,掉电后信息不丢失的存储器.作为一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等.系统采用了一片K9F5608U0A的NAND型Flash,K9F5608U0A是三星公司生产的K9XXXXXU0A系列闪存中的一种,32MB容量,读写速度快,数据保存时间长以及高达10万次的擦除写入寿命等优点.该芯片具有一个八位的I/O端口.在CE为低电平时,把WE置低,地址、命令和数据都可通过该端口写入.数据在WE的上升沿被锁存,CLE和ALE分别用来控制对命令和地址的锁存.同时K9F5608U0A具有较强的纠错功能,能够最大限度地保护用户数据. 2.5 SDRAM存储器电路设计 SDRAM存取速度大大高于Flash存储器,具有读/写的属性,因此SDRAM在系统中主要用作程序的运行空间,数据及堆栈区.系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,系统及用户堆栈、运行数据也都放在SDRAM中.在主电路板中用HY57V281620型SDRAM..系统采用两片HY57V281620并联构建32位的SDRAM存储器系统,其中一片为高16位,另一片为低16位,可将两片HY57V281620作为一个整体配置到任意一个外部存储器的区域.SDRAM存储器电路设计如图4所示.
图4 HY57V281620的连接框图 3 车载GPS定位系统的软件设计 车载GPS系统的应用程序在功能上可以分为7个功能模块,即初始化模块,控制模块,GPS数据获取模块,上行数据转换模块,用户界面模块,通信模块和下行数据处理模块. 初始化模块主要实现对串口的初始化及把所有的标志位置零;控制模块主要是根据上位机的命令来执行相应的操作,比如采集GPS数据,发送当前行车状态等;用户界面模块主要功能就是把GPS数据,状态数据等在触摸屏上显示出来,同时还要可以响应触摸屏上的中断,以便实现通过触摸屏操作车载终端的功能. GPS数据获取模块的主要功能就是通过与串口相连接的GPS模块获取当前的GPS信息;在本程序中用的是GPRMC定位语句,将忽略其它信息.提取GPRMC语句的思路是设置一个数据缓冲区,把接收到的GPS数据都放入这个缓冲区,当缓冲区满了的时候就在缓冲区中查找是否接受到GPRMC定位语句,如果没有接收到则重新接收GPS数据.如果找到了GPRMC定位语句则还要判断该语句在缓冲区中的位置离缓冲区的最大字节数是否大于62个字节.(因为本程序中需要的GPRMC定位语句所包含的字节数为62) 上行数据转换模块的主要功能是把接收到的GPS数据或是相关的状态信息转换成约定好的数据格式以便同监控中心的通信.该模块会判断需要转换的数据是GPS数据信息还是相关状态信息或是两者都有,然后选择相应的转换程序.由上面的介绍可以知道接受到的GPS数据都是顺序存放在数据缓冲区当中的,需要什么数据就到缓冲区中相应的位置提取就可以了.数据都是以字符形式存放的,所以实际要用的时候必须先转换成整形数据.下行数据转换模块的功能与上行数据转化模块的功能相反,它将监控中心发送的命令进行识别后发送给车载终端,并送用户界面模块显示. 通信模块的主要任务是完成车载终端与监控中心的通信,它既可以通过GPRS网络实现与监控中心的无线通信,也可以通过网口与笔记本电脑连接进行通信.如果车载终端与上位机的距离隔的很远可以直接通过GPRS网络与监控中心进行连接,而且通过GR47模块连接GPRS网络与监控中心连接也非常方便,只用往GPRS模块发送几条AT命令就可以了,但是监控中心必须有能上因特网的固定IP.启动车载终端的同时GR47模块也会被启动,这是模块会自动连接上GPRS网络进入命令模式.拨号成功以后就连接上了GPRS网络了,然后对于GR47模块连接的串口进行读写操作就可以实现与监控中心的无线通信了.通过网口进行通信则比较简单,直接采用Linux下的socket编程就可以实现. 根据以上各个模块的功能的定义,软件部分主流程图如图5所示: 图5 主程序流程图 4 总结 本文的创新点是采用GPRS通信网络进行无线通信代替了传统的GSM短信息通信模式,不仅节约了整个系统的运行成本,而且提高了数据的传输速度和可靠性;同时选用了工业级的带有内存管理功能的ARM9芯片AT91RM9200作为处理器,并围绕它进行电路设计,使得该终端有很高的可靠性,并且能够适应比较恶劣的环境,因为选用了带内存管理功能的ARM9芯片,所以可以移植Linux操作系统,该操作系统自带的资源十分丰富,使得应用程序的功能更加强大,同时也增加了软件的扩展性;最后本车载定位终端融合了GPS全球定位技术,GPRS无线通信技术,arm嵌入式技术以及嵌入式Linux系统的移植与编程,属于一个交叉学科的工程项目.自该系统投入市场半年以来,创造了50余万元的经济效益.
|