GPS设备只是简单去读串口,得到的数据是:GPS NEMA 0183协议格式的。
以下介绍一下,GPS NEMA 0183协议:
GPS NEMA 0183协议
GPS通讯的NMEA协议
GPS即全球定位系统,它主要有三大组成部分,即空间星座部分、地面监控部分和用户设备部分。其中GPS空间星座部分、地面监控部分均为美国所控制;GPS的用户设备主要由接收机硬件和处理软件组成。用户通过用户设备接收GPS卫星信号,经信号处理而获得用户位置、速度等信息,最终实现利用GPS进行导航和定位的目的。目前许多GPS厂商遵循NMEA0183协议针对PDA掌上电脑开发许多导航型GPS。这些GPS提供串行通讯接口,串行通讯参数为:
波特律=4800 数据位=8位 停止位=1位 无奇偶校验
GPS与掌上电脑通讯时,通过串口每秒钟发送10条数据。实际导航应用读取GPS的空间定位数据时,我们可以根据需要每隔几秒钟更新一次经纬度和时间数据。而更频繁的数据更新就没有必要了,而且会白白浪费Palm掌上设备有限的电池。我们不需要了解NMEA 0183通讯协议的全部信息,仅需要从中挑选出我们需要的那部分定位数据。其余的信息我们忽略掉。
如果此时和卫星的通讯正常的话,可以接收到的数据格式样如下:
$GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
数据说明如下:
$GPRMC 代表GPS推荐的最短数据
204700 UTC_TIME 24小时制的标准时间,按照小时/分钟/秒的格式
A A 或者 V A表示数据"OK",V表示一个警告
3403.868 LAT 纬度值,精确到小数点前4位,后3位
N LAT_DIR N表示北纬,S表示南纬
11709.432 LON 经度值,精确到小数点前5位,后3位
W LON_DIR W表示西经,E表示东经
如果当前没有和卫星取得联系,那么字符串的格式为:
$GPRMC,UTC_TIME,V,...
下面是一个例子(采集自:Windows Mobile 5.0 GPS模块, 采集地点:北京理工大学15号公寓4层窗口):
$PSRFTXTVersion: 3.1.00.07.02-MitacGSC3R02-GSW3.1.1-C23B1.03A
$PSRFTXTTOW: 150279
$PSRFTXTWK: 1416
$PSRFTXTPOS: -2169640 4388667 4074553
$PSRFTXTCLK: 95340
$PSRFTXTCHNL: 12
$PSRFTXTBaud rate: 4800 System clock: 68.092MHz
$GPGGA,174435.988,3957.6501,N,11618.3340,E,1,04,5.5,166.7,M,-6.6,M,,0000*4B
$GPGSA,A,3,23,25,07,06,,,,,,,,,5.6,5.5,1.0*37
$GPRMC,174435.988,A,3957.6501,N,11618.3340,E,1.67,338.87,260207,,*0D
你能看出其经纬度吗? ; - )