嵌入式系统是以应用为中心,计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。使用嵌入式系统不仅对稳定性有很大的改善,而且使应用模块化,极大提高程序的可读性、可扩展性和可移植性[1]。
全球定位系统(Global PosiTIon System,GPS)是可在海、陆、空进行全方位实时三维导航与定位的新一代卫星导航定位系统,具有全天候、高精度和高效益等特点,现GPS已在各领域得到广泛应用[2]。
本文采用嵌入式 *** 作系统μC/OS-II,控制OEM板接收导航信息,并对GPS数据采集系统的硬件和软件提出了详细的设计方案,给出了提取GPS特征数据的算法,这些对研究嵌入式系统应用、GPS定位及其在组合导航中的应用以及对OEM板的二次开发等都是实用的。
2 系统总体设计
嵌入式GPS数据采集系统由接收部分(OEM板)、电平转换部分(MAX232)、控制部分、显示部分组成,硬件结构如图1所示。
OEM板通过天线接收来自GPS的导航数据并经过电平转换后发送给EP7312, EP7312接收OEM板发来
的数据并存储、显示。EP7312与OEM板之间采用异步串行方式通信,帧格式1位起始位,8位数据位,1位停止位,无校验位,波特率为9600 bit.s-1。通过软件控制EP7312对GPS信号进行实时处理,以获得当前的经度、纬度坐标等所需信息,并通过液晶显示。
3 系统硬件配置
3.1 接收模块
GPS-OEM板主要是由变频器、标频器、信号通道、微处理器和存储单元等构成。在上电完成初始自检后,它将自动地接收来自天线的GPS射频信号,经过变频、放大、相关、混频等一系列处理后,完成并行通道对其视界内几何位置最佳的数颗卫星的连续跟踪,并且测出信号从卫星到接收天线的传播时间,解译出GPS卫星所发送的导航电文,最后经由I/0口输出串行数据,这些数据主要是向用户提供定位信息,包括纬度、经度、速度、时间等。
系统接收部分选用的Jupiter TU30-D410 -031,是美国Rockwell公司生产的并行12通道OEM板。该OEM板具有体积小、定时时间短、无静态漂移等特点,能够提供位置、速度、时间、定位与导航信息,以载波相位输出、1PPS时标和10kHz方波输出,适合各种导航定位的应用。
3.2 控制模块
采用EP7312构成的GPS应用系统,具有功耗低、体积小、使用灵活的特点,系统的结构和功能可以根据需求的不同进行个性化配置,而且可以很方便地进行系统外设的扩展。
3.3 显示模块
本系统采用液晶显示器是SHARP公司的彩色LCD,有效显示点阵为320×240,其功耗较低,抗干扰能力强,体积小。由于EP7312内部带有LCD控制器,当系统接收OEM板输出的导航数据信息时,只要设置其内部控制器的寄存器就可以对LCD实现控制,然后再通过向Frame Buffer输出接收到的并经过处理的导航信息,这时显示屏上就可以显示定位点精确的经度、纬度及本地时间了。
4 系统软件设计及实现
4.1 μC/OS-II简介
μC/OS-II是开源实时嵌入式 *** 作系统,绝大部分代码是用C编写的,其可移植性较强,可广泛地应用于各种不同的硬件平台上[3]。μC/OS-II是一个占先式实时系统,当有优先级高的任务就绪时,原任务将被打断而转为优先级较高的任务,这也是实时性的重要保证。μC/OS-II具体移植可参照其它资料。
4.2 应用程序设计
根据设计要求,系统将应用程序划分为采集存储和显示两个任务,其优先级分别为10和11。采集存储任务的主要功能是对导航数据采集,并且每30秒作为历史记录存储一次,以便与当前的导航信息比较。首先必须掌握系统的通信协议。GPS-OEM板采用NMEA-0183通信标准格式,可以输出多种句型,均以“$”开头。输出的语句按串口通信协议,波特率9600bit.s-1,1位开始位,8位数据位,1位停止位,无奇偶校验。输出数据采用的是ASCⅡ码字符,内容包含了纬度、经度、速度、日期、航向及卫星状况等信息。语句达十余种,本系统所使用的语句仅限于$GPRMC定位数据语句。其结构为:
$GPRMC,《1》,《2》,《3》,《4》,《5》,
《6》,《7》,《8》,《9》,《10》,《11》*hh
其中“GP”为交谈识别符;“RMC”为语句识别符;“*”为校验和识别符;“hh”为校验和,其代表了“$”与“*”之间所有字符的按位异或值(不包括这两个字符)。
$GPRMC语句数据区的内容为:
《1》定位点的协调世界时间(UTC),hhmmss(时分秒)格式;
《2》定位状态,A=有效定位,V=无效定位;
《3》定位点纬度,ddmm.mmmm(度分)格式;
《4》纬度半球,N(北半球)或S(南半球);
《5》定位点经度,dddmm.mmmmm(度分)格式;
《6》经度半球,E(东经)或W(西经);
《7》地面速率,000.0节~999.9节;
《8》地面航向,000.0度~359.9度;
《9》UTC日期,ddmmyy(日月年)格式;
《
10》磁偏角,000.0度~180度;
《11》磁偏角方向,E(东)或W(西)。
由于TU30-D410-031的波特率设置为9600bit.s-1,因此任务运行时,首先应将串行口的波特率设为此值,EP7312就会接收到OEM板的定位数据。在串口收到信息后,先判别是否为语句引导头“$GPRMC”,否,则放弃此次接收;是,则接收数据内容。由于接收到$GPRMC帧头后,再接收11个数据包即完成整帧数据的接收,存储后系统将调用等待延时函数。
显示任务的功能是负责所采集的数据在LCD上显示出来,每隔一秒刷新一次。$GPRMC语句输出了基本的定位信息,可以满足一般用户的使用要求。接收来的数据存放在内存中,提取时先从数据中读取定位状态判断是否有效,若有效再提取相应的时间及经纬度等信息。应注意的是在处理北京时间时应在UTC时间上加上8h才是准确的北京时,在超出24h时应作减24h处理。系统运行时GPS定位信息在LCD上显示界面如图2。
5 结束语
本文论述了嵌入式系统对GPS数据的读取、处理及显示的方法,分析了GPS模块的信息格式并编制通信软件,成功地实现了GPS定位信息的接收与显示。该系统程序简单,可靠,可运用于车辆的导航系统中,另外,其方法思路对嵌入式系统、OEM板开发也具有很好的参考价值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)