1 / 5
文档名称:

Gps协议解析.pdf

格式:pdf   大小:214KB   页数:5页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Gps协议解析.pdf

上传人:百里登峰 2023/5/29 文件大小:214 KB

下载得到文件列表

Gps协议解析.pdf

相关文档

文档介绍

文档介绍:该【Gps协议解析 】是由【百里登峰】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【Gps协议解析 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。GPS 卫星定位接收器的 NMEA 协议解析


GPS 接收机只要处于工作状态就会源源不断地把接收并计算出的 GPS 导航定位信息通过串
口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处
理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,
必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供
高层决策使用的定位信息数据。同其他通讯协议类似,对 GPS 进行信息提取必须首先明确
其帧结构,然后才能据其结构根 完成对各定位信息的提取。对于本文所使用的 GARMIN GPS
天线板,其发送到计算机的数据主要由帧头、帧尾和帧内数据组成,据数据帧的不同,帧根
头也不相同,主要有 "$GPGGA"、"$GPGSA"、"$ GPGSV"以及"$GPRMC"等。这些帧头标识了
后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的
情况,我们所关心的定位数据如经纬度、速度、时间等均可以从"$GPRMC"帧中获取得到,
该帧的结构及各字段释义如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh
<1> 当前位置的格林尼治时间,格式为 hhmmss
<2> 状态, A 为有效位置, V 为非有效接收警告,即当前天线视野上方的卫星个数少于 3
颗。
<3> 纬度, 格式为
<4> 标明南北半球, N 为北半球、S 为南半球
<5> 径度,格式为
<6> 标明东西半球,E 为东半球、W 为西半球
<7> 地面上的速度,范围为到
<8> 方位角,范围为到 度
<9> 日期, 格式为 ddmmyy
<10> 地磁变化,从到 度
<11> 地磁变化方向,为 E 或 W
至于其他几种帧格式,除了特殊用途外,平时并不常用,虽然接收机也在源源不断地向
主机发送各种数据帧,但在处理时一般先通过对帧头的判断而只对"$GPRMC"帧进行数据的
提取处理。如果情况特殊,需要从其他帧获取数据,处理方法与之也是完全类似的。由于帧
内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻 ASCII 码"$"来判断是否是帧
头,在对帧头的类别进行识别后再通过对所经历逗号个数的计数来判断出当前正在处理的是
哪一种定位导航参数,并作出相应的处理。

附:NMEA0183 常用协议格式
说明:NMEA0183 格式以“$”开始,主要语句有 GPGGA,GPVTG,GPRMC 等
1、 GPS DOP and Active Satellites(GSA)当前卫星信息
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>

<1>模式 :M = 手动, A = 自动。
<2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。
<3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收 12 颗卫星信息。
<4> PDOP 位置精度因子(~)
<5> HDOP 水平精度因子(~)
<6> VDOP 垂直精度因子(~)
<7> Checksum.(检查位).


2、 GPS Satellites in View(GSV)可见卫星信息
$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,<4>,<5>,<6>,<7>,<8><CR><LF>
<1> GSV 语句的总数
<2> 本句 GSV 的编号
<3> 可见卫星的总数,00 至 12。
<4> 卫星编号, 01 至 32。
<5>卫星仰角, 00 至 90 度。
<6>卫星方位角, 000 至 359 度。实际值。
<7>讯号噪声比(C/No), 00 至 99 dB;无表未接收到讯号。
<8>Checksum.(检查位).

第<4>,<5>,<6>,<7>项个别卫星会重复出现,每行最多有四颗卫星。其余卫星信息会于次一行
出现,若未使用,这些字段会空白。



3、Global Positioning System Fix Data(GGA)GPS 定位信息

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>

<1> UTC 时间,hhmmss(时分秒)格式
<2> 纬度(度分)格式(前面的 0 也将被传输)
<3> 纬度半球 N(北半球)或 S(南半球)
<4> 经度(度分)格式(前面的 0 也将被传输)
<5> 经度半球 E(东经)或 W(西经)
<6> GPS 状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量(00~12)(前面的 0 也将被传输)
<8> HDOP 水平精度因子(~)
<9> 海拔高度(~)
<10> 地球球面椭 相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站 ID 号 0000~1023(前面的 0 也将被传输,如果不是差分定位将为空)
4、Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>

<1> UTC 时间,hhmmss(时分秒)格式
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度(度分)格式(前面的 0 也将被传输)
<4> 纬度半球 N(北半球)或 S(南半球)
<5> 经度(度分)格式(前面的 0 也将被传输)
<6> 经度半球 E(东经)或 W(西经)
<7> 地面速率(~节,前面的 0 也将被传输)
<8> 地面航向(~度,以真北为参考基准,前面的 0 也将被传输)
<9> UTC 日期,ddmmyy(日月年)格式
<10> 磁偏角(~度,前面的 0 也将被传输)
<11> 磁偏角方向,E(东)或 W(西)
<12> 模式指示(仅 NMEA0183 版本输出,A=自主定位,D=差分,E=估算,N=数据无效)


5、 Track Made Good and Ground Speed(VTG)地面速度信息
$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh<CR><LF>

<1> 以真北为参考基准的地面航向(000~359 度,前面的 0 也将被传输)
<2> 以磁北为参考基准的地面航向(000~359 度,前面的 0 也将被传输)
<3> 地面速率(~节,前面的 0 也将被传输)
<4> 地面速率(~公里/小时,前面的 0 也将被传输)
<5> 模式指示(仅 NMEA0183 版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
报文
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,23,89,179,,13,58,305,,16,56,075,,01,51,113,*7E
$GPGSV,3,2,12,20,25,193,,07,24,259,,06,16,118,,03,13,136,*76
$GPGSV,3,3,12,10,13,322,,31,06,071,,02,03,317,,04,02,281,*71
$GPRMC,,V,,,,,,,240810,,,N*49
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*5B
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4F
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*5B
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4F
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*58
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4C
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*56
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*42
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*56
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,23,89,179,,13,58,305,,16,56,075,,01,51,113,*7E
$GPGSV,3,2,12,20,25,193,,07,24,259,,06,16,118,,03,13,136,*76
$GPGSV,3,3,12,10,13,322,,31,06,071,,02,03,317,,04,02,281,*71
$GPRMC,,V,,,,,,,240810,,,N*42
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*58
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4C
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*5F
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4B
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*5E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4A
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*50
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*44
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*52
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,23,89,179,,13,58,305,,16,56,075,,01,51,113,*7E
$GPGSV,3,2,12,20,25,193,,07,24,259,,06,16,118,,03,13,136,*76
$GPGSV,3,3,12,10,13,322,,31,06,071,,02,03,317,,04,02,281,*71
$GPRMC,,V,,,,,,,240810,,,N*46
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*59
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4D
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*59
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4D
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*58
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4C
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*5B
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*4F
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*5A
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,12,23,89,179,,13,58,305,,16,56,075,,01,51,113,*7E
$GPGSV,3,2,12,20,25,193,,07,24,259,,06,16,118,,03,13,136,*76
$GPGSV,3,3,12,10,13,322,,31,06,071,,02,03,317,,04,02,281,*71
$GPRMC,,V,,,,,,,240810,,,N*4E
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,,,,,,0,00,,,M,,M,,0000*51
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,,V,,,,,,,240810,,,N*45
$GPVTG,,T,,M,,N,,K,N*2C