- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于WinCE的GPS数据采集系统设计
摘要:由于数据采集设备利用Windows桌面系统在户外易受环境影响以及携带不方便等不足,设计采用ARM11处理器和WinCE 6.0操作系统作为硬件开发平台,设计出一种基于ARM-WinCE 6.0的便携式GPS数据采集系统,控制GPS模块接收数据信息,实现对数据进行采集、提取、显示、存储。这对深入理解嵌入式系统应用和GPS在导航组合中应用具有一定的实用价值,有利于提高工作效率并为定位性能的评定提供依据。
关键词:ARM11处理器;WinCE 6.0操作系统;GPS数据采集系统;导航组位
0 引言
GPS(Global Positioning System,全球卫星定位系统)以其高精度、全天候、全天时的特点,在定位、导航、测距、授时遥感等领域广泛应用,并得到了快速的发展。对于在低功耗、高便携性和高性能设备上实现GPS数据采集和分析技术也显得越发重要。传统的Windows桌面系统体积大,占用系统资源较多,也不利于野外作业,而基于嵌入式系统的ARM硬件平台则具有体积小、功耗低、性能高等特点。WinCE系统作为嵌入式系统的一种类型,相对于Linux和Andriod系统,其开发难度要比后两种系统要低,软件调试也比较容易、灵活,并且WinCE系统类似桌面系统在软件开发方面也较为便利。因此,在未来高性能的便携式设备领域,WinCE系统的应用空间将十分巨大。
本文根据GPS信号接收原理及嵌入式技术,并遵循NMEA-0183协议,接收并解析GPS模块的原始数据报文,设计出友好的人机界面环境,将系统所处的经度、纬度、高度、速度、日期时间等信息显示出来,解决了人工记录数据的不足,提高了工作效率,并为车辆运动参数估计提供了依据。
1 系统总体设计
GPS数据采集界面的设计采用面向对象的可编程技术,在Visual Studio 2005(VS 2005)编程环境下,运用C#语言实现。本设计采用飞凌公司研发的OK6410开发板,该开发板以ARM11内核架构为核心,并内嵌WinCE 6.0操作系统,硬件性能上能够满足对数据采集的需求。通过USB同步,完成PC机与ARM开发板之间的硬件平台搭建,这样就可以在PC机上进行应用程序的设计。
在VS 2005环境下,对设计完成的GPS数据采集应用程序进行编译,并将编译后生成的应用程序通过USB同步植入到ARM开发板的NAND FLA SH里。再通过串口扩展电路将ARM开发板与GPS模块进行连接完成通信,然后运行NAND FLASH里GPS数据采集的应用程序,对GPS模块接收来的数据进行采集、解析后送至外接的液晶,显示其需要的信息,从而完成WinCE 6.0环境下GPS数据采集系统的设计。GPS数据采集系统总体框图如图1所示,GPS数据采集开发系统如图2所示。
2 GPS协议分析及GPS数据数据格式
GPS数据遵循NMEA-0183协议,该数据标准是美国国家海洋电子协会(National Marine Electronics Association)所指定的标准规格。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。NMEA-0183协议采用统一标准格式,输出采用ASCII码,数据传输以“语句”方式进行,每个语句均以“$”开头,然后是两个字母的“识别符”和三个字母的“语句名”,接着是以逗号分隔的数据体,语句末尾为校验和,整条语句以回车换行符结束。
NMEA-0183的数据信息种类较多,而一组正常的GPS数据则包括$GPGGA,$GPRMC,$GPVTG,$GPGLL。$GPGGA输出的是GPS的定位信息,$GPR MC则输出GPS推荐的最短数据信息,$GPVTG输出的是地面速度信息,$GPGLL输出的是大地坐标信息。现以最常见的$GPRMC为例分析其数据格式格式如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
<1>为UTC时间,格式:hhmmss(时分秒);<2>为定位状态,A=数据可用,V=数据不可用;<3>为纬度,格式:ddmm.mmmm(度分);<4>为纬度区分,北半球(N)或南半球(S);<5>为经度,格式:ddmm.mmmm(度分);<6>为经度区分,东半球(E)或西半球(W);<7>为地面速率(000.0~999.9节);<8>为地面航向(000.0°~359.9°,以正北为参考基准);<9>为UTC日期,格式:ddmmyy(年月日);<10>为磁偏角(000.0°~180.0°);<11>为磁偏角方向,E(东)或W(西);<12>为模式指示。
3 GPS数据采集系统硬件设计
3.1 串口扩展电路
设计中所使用的ARM开发板,由于内嵌WinCE 6.0系统使得开发板的COM0端口被占用,作为系统调试所用,因此,要使得ARM开发板与GPS模块之间进行数据通信,需对开发板进行串口扩展。扩展电路如图3所示。图3中P1的9针串口可接GPS模块串口,MAX202E模块的TXD1、RTS N1、RXD1可分别接J13模块的RXD1,CTSN1,TXD2端口。J13模块的TXD1,RTSN1,RXD2接到ARM开发板的COM端。从而完成了系统的整体通信和数据传输。
3.2 GPS模块接口介绍
GPS模块采用Trimble公司生产的Condor C2626模块,该模块外围接口电路如图4所示。
模块的RF端接天线,TX,RX为数据发送和接收端口,可与扩展电路P1模块的RXD,TXD连接,进行数据传送。
4 GPS数据采集系统软件设计
4.1 GPS数据采集应用程序开发环境
设计采用Visual Studio 2005软件作为开发环境,并用C#语言完成应用程序设计。首先在PC机上安装VS 2005软件,为了使最后开发出来的GPS数据采集应用程序界面能与WinCE 6.0系统兼容,需在安装VS2005后,接着安装TE6410_2G_256_BSP.msi BSP包和TE6410_CE6_SD K.msi SDK文件,之后便可新建一个Visual C#-Smart Device基于WinCE的Device Application应用程序工程。系统程序流程图如图5所示。
4.2 GPS数据采集软件的串口通信
设计中,GPS数据采集界面采用面对面的人机交互界面,界面简单直观,操作方便。对于每一个控件都有其相对应的类,每个控件在执行不同的任务时,是通过对应类的不同事件完成的,可在事件当中添加对应的任务代码。本设计对串口进行启动的类名为PBStart,启动时需要响应它的Click事件。部分代码如下:
4.3 GPS数据信息提取
设计中,对GPS数据信息提取、解析是通过在上位机中VS2005编程环境下编译生成的GPS数据采集应用程序完成的。通过对面向对象的人机交互界面添加相应的类和代码,实现对数据的采集与解析,从而显示出所需要的经度、纬度、速度、日期等信息。其方法是首先判断一帧数据的开始,通过搜寻每条语句中ASCII码“$”为标准,因为每个语句均以“$”开头的,然后通过接收到的两个字母的“识别符”和三个字母的“语句名”来判断接收到的信息类型,对帧的信息类型识别正确后,最后通过搜寻逗号的个数来确定GPS模块当前所接收到的是哪个定位参数,从中提取出需要的数据信息,并在计算机内部完成将经、纬度坐标与本地的高斯平面坐标转换。
5 实验数据比较与误差分析
在上位机,将GPS数据采集界面应用程序通过USB同步植入到ARM开发板里运行,通过串口扩展板,连接ARM板与GPS模块,通上电源,运行结果如图6所示。
实验所选定的地点在某实验楼里,每隔1 s采集一次,所测得的部分数据如表1所示。
从表中可以看出,经度、纬度、速度在不同的时刻略显不同,其影响观测精度的误差因素有多种,如电离层折射的影响,当GPS卫星信号通过电离层时,将受到这一介质弥散特性的影响,便其信号的传播路径发生变化。为了减弱电离层的影响,在GPS定位中通常利用双频观测和电离层模型以及利用同步观测值求差等方法加以修正。再者是多路径效应影响,多路径效应亦称多路径误差,是指接收机天线除直接收到卫星发射的信号外,还可能收到经天线周围地物一次或多次反射的卫星信号,信号叠加将会引起测量参考点(相位中心点)位置的变化,从而便观测量产生误差,而且这种误差随天线周围反射面的性质而异,难以控制。一般反射环境下,多路径效应对测码伪距的影响可达到米级,对测相伪距的影响可达到厘米级。而在高反射环境下常常导致接收的卫星信号失锁和使载波相位观测量产生周跳。目前减弱多路径效应影响的措施有:安置接收机天线时,应避开较强的反射面,并选用屏蔽性良好的天线;适当延长观测时间,削弱多路径效应的周期性影响;改善GPS接收机的电路设计,减弱多路径效应的影响。其他详细误差因素分析及解决措施可参见文献。
6 结语
本文所设计的GPS数据采集界面简洁、直观、实用,实现了串口接收、多线程编程、计算等多种功能,将数据信息直观地显示到用户界面上;实现了接收数据保存方法,实现了线程枚举和多线程任务的完成,使得线程之间互不冲突,提高了系统的实时性。