微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > GPS定位信息提取及应用

GPS定位信息提取及应用

时间:07-31 来源:3721RD 点击:

描述了GPS与手持终端串口通信的方法,并在WinCE6.0操作系统下提取GPS的定位信息,采用NMEA-0183通信协议中的RMC数据格式进行解析。简述了GIS概念,并介绍了GPS在GIS方面的应用。


GPS(Global Position Svstem)即全球定位系统,是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统,其主要目的是用来为陆、海、空3大领域提供实时、全天候及全球性导航服务,具有高精度和自动测量的特点。利用该系统,用户还能够进行高精度的时间传递和精密定位。随着GPS的发展和完善其应用层面日益增大,嵌入式GPS的手持终端应运而生。而今,人们对生活智能化提出了更高的要求,使其在GIS领域上的应用得到了广泛关注。例如智慧城市、旅游导航等。用户可以手持带有GPS的MID实时获取位置、时间信息,实现定位导航功能。基于GPS的特性,文中介绍了GPS定位信息的提取方法,包括与MID串口通信的实现过程,并对获取的数据信号通过相关的协议进行解析。最后探讨了嵌入式GPS在导游中的应用。GPS还将在更多领域上得到应用,为人们的生活提供更大的方便。服务人性化、生活智能化将逐步实现。

1 GPS信号解析协议
GPS信号通过串口以NMEA-0183标准格式输出,NMEA-0183通信协议,提供6种数据格式,分别是GGA,GLL,GSA,GSV,RMC,VTG。在此主要介绍RMC格式数据。
$GPRMC是GPS推荐的最短数据,其帧结构为:
$GPRMC,<1>.<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>
字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息。GP为信息来源,RMC为句型识别符
字段1:UTC时间,hhmmss.sss格式
字段2:状态,A=定位,V=未定位
字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
字段4:纬度N(北纬)或S(南纬)
字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)
字段6:经度E(东经)或W(西经)
字段7:速度,节,Knots
字段8:方位角,度
字段9:UTC日期,DDMMYY格式
字段10:磁偏角,(000-180)度(前导位数不足则补0)
字段11:校验值
<CR><LF>:该帧数据的结束标识符
对接收到的数据进行解析后即可获得经纬度、速度、时间等信息,从而实现GPS定位信息的提取。

2 GPS软件流程图

目前MID主要使用Android操作系统,然而相比Android系统,WinCE操作系统的稳定性相对更高,技术更加成熟。本文将介绍在WinCE 6.0操作系统下GPS信号的提取与解析。GPS软件流程图如图1所示。


首先打开串口进行串口的初始化,配置串口的参数,根据硬件配置,默认设置串口为COM4口,比特率为9 600 bit/s,完成所有初始化工作后,启动监听线程,监听串口上所有的输入数据,当接收到数据后,对数据进行保存,若无数据,则继续监听。系统1 s定时触发事件,若数据存在,则对接收到的数据按照NMEA0183协议解析,从而显示在用户界面上。

3 GPS定位信息提取与解析

3.1 GPS读取MID串口数据流程图

首先创建串口的读线程,然后进行串口的监听,等待指定渎事件的发生。如果有可读数据则读串口,对接收到的事件进行数据处理。数据读取流程图如图2所示。


3.2 串行端口数据通信

1)打开串行端口

通过调用CreateFile函数打开串行端口
m_hComm=CreateFile (Port,GENERIC_READ1GENERIC_WRITE,0,0,OPEN_EXISTING,0,0)。这个函数的返回值是已打开串行端口的句柄值。

2)串行端口通信配置

串口打开后.需对串口进行配置。用GetCommState函数获得当前打开的串口参数,然后根据需要修改DCB的成员变量,用SetCommState函数来设置新的串口参数。

3)设置状态参数

SetCommMask(m_hComm,EV_RXCHAR);

4)设置超时参数

为防止程序陷入循环状态,需要设置超时值。



5)读写串口通信
fReadState=ReadFiie(m_hComm,data,length,&dwLength,NULL)://从串口读取数据
fWriteState=WriteFile(m_hComm,buf,dwCharToWrite*sizeof(char),&dwBytesWritten,NULL);//向串口写入数据

6)通信结束关闭串口

函数CloseHandle(m_hComm)用来关闭串口。当串口获取GPS接收机数据信号后,需要根据NMEA-0183通信协议解析GPS数据,获取移动目标当前的格林尼治时间和位置,而我国的标准时间需在格林尼治时间上加上8小时。

GPS使用的坐标系为WGS_84坐标系,而我国通常使用的是国家坐标系,如北京54国家坐标系,因此需要进行坐标转换。GPS在与MID通信过程中可通过串口每秒发送10条数据。实际应用中可根据需要解析所需定位数据。

4 软件测试

首先,在开发平台上对程序进行编译成功后,然后同步到硬件平台上,并运行该软件,实现串口打开,使接收机处于工作状态,同时获取GPS数据,最终显示在数据信息框中。
GPS数据信息采集程序运行如图3所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top