新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM和WINCE的便携式差分GPS导航定位系统设计及

基于ARM和WINCE的便携式差分GPS导航定位系统设计及

作者:时间:2016-10-08来源:网络收藏

2.2 设置HC12参数

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

通过串口建立模块与或PC机的连接,借助NMEA0183指令,通过任意一串口均可以设置HC12。可用开发软件串口通信区“发送”命令按钮或串口助手软件(或WINXP均可)进行通信,首先设置接收机应用模式为SBAS,再设置串口通信波特率、串口输出的NMEA语句及输出速率,最后设置最大差分龄期和卫星仰角。

模块串行通讯参数为:波特率=19200,数据位=8位,停止位=1位,无奇偶校验。通过串口建立和GPS的连接,GPS加电后便自动搜索卫星,并通过串口以每秒1次的频率向发送GPRMC格式的定位信息,在定位信息有效后ARM便可以提取所需要的定位信息。

2.3 读取串口

获取GPS导航数据实际上就是通过串口读取HC12输出的NMEA格式数据的过程,下面介绍下读取串口程序的开发过程。

2.3.1 打开串口

点击“打开”按钮,进入此按钮的消息响应函数,函数中执行打开串口和串口参数配置等操作。首先调用CreateFile()函数打开指定的端口,接着对串口进行参数配置,包括波特率、数据位、停止位、奇偶校验等。参数设置过程为:先调用GetCommState()获取串口的当前配置,得到结构体DCB(Device Control Block,设备控制块)的指针,通过它给DCB结构体赋值,然后传给SetCommState()函数对串口进行配置。

最后设置串口的超时参数,设置方法与上述参数设置类似,先通过GetCommTimeouts()得到一个结构体指针,赋值后传给Set Comm Time outs()进行设置。

2.3.2 接收数据

串口打开后,自动开始接收,函数中调用了CreateThread()开辟了一个线程,用于接收串口数据。由于接受过程需要调用WaitCommEven()函数来不停地等待数据到来事件,会致使程序无法响应其他操作,因此采用开辟线程的办法来防止信息拥堵。

基于ARM和WINCE的便携式差分GPS导航定位系统设计及实现

图4所示为接收串口数据的线程中执行的操作流程。程序实现了串口数据的接收,并把接收到的数据传递给Dig类,用于后期进行定位信息提取及显示等操作。

2.4 提取定位数据

NMEA-0183通信标准的输出数据采用的是ASCⅡ码,主要有GGA、GLL、GSA、GSV、RMC、VCT等不同的结构,每种类型的帧均是以“$”开头,然后是两个字母的“识别符”和3个字母的“语句名”组成ID信息头,接着就是以逗号分割的数据体,末尾为校验和,以回车换行符结束。本设计只关心日期、时间、经纬度、地面速度等,选用GPRMC语句,表1中对该语句结构作了详细说明,按图5所示的流程即可完成GPS数据的提取。注意在编写程序中不要出现m_strRecv[i+k](k>0)这样的表达式,例如以(m_strDataReceived[i]==‘$’m_strDataReceived[i+3]==‘R’)为判断条件来提取ID头,容易造成超出数组元素个数的错误。

基于ARM和WINCE的便携式差分GPS导航定位系统设计及实现
基于ARM和WINCE的便携式差分GPS导航定位系统设计及实现

3 系统实验及精度分析

实验地点选在运动场场开阔处,先采用静态内符合法进行精度测试。连接天线,给系统上电,运行开发软件,设置好串口参数,打开串口COM2,待差分GPS模块进入稳定差分定位后开始保存数据,采集数据约3 000组,用MATLAB处理采集数据,结果如图6所示。

基于ARM和WINCE的便携式差分GPS导航定位系统设计及实现

导航定位等功能测试:手持该系统进行直线和圆形运动,观察海图区域航迹向轨迹形状;设定1个目标点,画半径为200米的圆并设置航线,分别按直线和曲线前进,观察距离、偏离、方位等参数变化;对海图进行放大、缩小和平移,分别点选本舰居中和目标居中,观察海图显示变化。

测试表明,终端软件能平稳地运行在嵌入式5.0系统上,操作界面简洁、直观、实用、功能全面,具有良好的实时性和准确性,系统定位精度(2DRMS)优于1 m。

4 结束语

文中基于ARM硬件平台,以WINCE为嵌入式操作系统,在Visual Studio2008下开发了串口通信导航数据软件,通过串行接口实现差分GPS模块与ARM之间的通信,构建了一个体积小、功耗低、功能全面的便携式差分GPS导航定位系统,并给出了详细的硬件和软件设计实现。实验表明:该系统能实时显示精度较高、持久有效的GPS定位数据,具有重要的实用价值和一定的参考意义。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭