NMEA-0183协议详解

来源:互联网 发布:mac bird进程 编辑:程序博客网 时间:2024/03/29 05:27

NMEA-0183协议详解

NMEA-0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式。目前业已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services )标准协议。

一.消息内容识别码

----+--------------+---+------------------------------------------+-----------------------

1.  $GPGGA   :  时间、位置、全球定位数据    最大帧长72

2.  $GPGSA   :  接收机模式和卫星PRN数据    最大帧长65

3.  $GPGSV   :  卫星状态信息                最大帧长210

4.  $GPRMC   :  速度、运输定位数据         最大帧长70

5.  $GPVTG   :   方位角与对地速度信息       最大帧长34

6.  $GPGLL    :  大地坐标信息

7.  $GPZDA    :   UTC时间和日期 

-----+--------------+----+----------------------------------------+-----------------------

 

△注释:发送次序$GPZDA ; $GPGGA ; $GPGLL ; $GPVTG ; $GPGSA ; $GPGSV*3 ; $GPRMC 

协议帧总说明:

该协议采用ASCII码,其串行通信默认参数为:波特率=48000bps,数据位=8bit,开始位=1bit,停止位=1bit,无奇偶校验。

帧格式形如:$aaccc ,ddd ,ddd ,...... ,ddd*hh<CR><LF>

1、“$”——帧命令起始位

2、aaccc——地址域,前两位为识别符,后三位为语句名

3、ddd...ddd——数据

4、“*”——校验和前缀

5、hhh——校验和(check sum),$与*之间所有字符ASCII码的校验和(各字节做异或运算,得到校验和后,在转换16进制格式的ASCII字符。)

6、<CR><LF>——CR(Carriage  Return)+ LF (Line Feed)帧结束,回车换行。

 

⑴ GPGGA

GPS固定数据输出语句,是一帧GPS定位的主要数据,也是使用最广的数据。

样例:

$GPGGA, 1661229.478 , 3723.2475 , N, 12158.3416 , W, 1 , 07 , 1.0 , 9.0 , M, 7.3 , M,  , 0000*18

格式:    

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

解析:

$--GGA   消息ID, $GPGGA,GGA协议头。

<1>  UTC时间,1661229.478, 格式为hhmmss.sss。

<2>  纬度, 3723.2475,格式:ddmm.mmmm(前导位数不足则补0)。

<3>  N/S指示,纬度半球,N,格式:N或S(北纬或南纬)。

<4>  经度,12158.3416,格式:ddmm.mmmm(前导位数不足则补0)。

<5>  E/W指示,经度半球,W,格式:E或W(东经或西经)。

<6>  定位质量指示,1,  0=定位无效, 1=定位有效。

<7>  可用卫星数目,07,范围:0~24(GPS+BDS)。

<8>  HDOP(水平精确度),1.0,范围:0.5~99.9。

<9>  天线离海平面的高度,9.0,范围:-9999.9到9999.9米

<10> 高度单位,M,单位制 米。

<11> 大地椭球相对于海平面的高度,7.3,高程(海拔高度),范围:-999.9到9999.9米

<12> 高度单位,M,单位制 米。

<13> 差分GPS数据期限(RTCM SC-104),空格,最后设立RTCM传送的秒数量。

<14> 差分参考基站标号ID,0000,从0000到1023(前导位数不足则补0)。

<15> 校验和 ,*18

<CR><LF>   回车换行将消息结束。

 

⑵ GPGSA

接收机模式和卫星工作数据,包括位置和水平/竖直稀度精度等。

样例:

$GPGSA, A , 3 , 07 , 02 , 26 , 27 , 09 , 04 , 15 ,  ,  ,  ,  ,  , 1.8 , 1.0 , 1.5*33

格式:

$GPGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*<18><CR><LF>

解析:

$--GSA   消息ID, $GPGSA,GSA协议头。

<1>  模式1:A,M = 手动, A = 自动。

<2>  模式2:3,定位型式1 = 未定位,2 = 二维定位, 3 = 三维定位。

<3>  第1信道正在使用的卫星PRN码编07,(Pseudo Random Noise,伪随机噪声码),01至32(前导位数不足则补0,最多可接收12颗卫星信息)。

<4>   第2信道正在使用的卫星PRN码编号02

<5>   第3信道正在使用的卫星PRN码编号26

<6>   第4信道正在使用的卫星PRN码编号27

<7>   第5信道正在使用的卫星PRN码编号 09

<8>   第6信道正在使用的卫星PRN码编号 04

<9>   第7信道正在使用的卫星PRN码编号 15

<10>  第8信道正在使用的卫星PRN码编号  .

<11>  第9信道正在使用的卫星PRN码编号  .

<12>  第10信道正在使用的卫星PRN码编号 .

<13>  第11信道正在使用的卫星PRN码编号 .

<14>  第12信道正在使用的卫星PRN码编号 .

<15>  PDOP综合位置精度因子 1.8,(0.5 -- 99.9)

<16>  HDOP水平精度因子  1.0, (0.5 -- 99.9)

<17>  VDOP 垂直精度因子  1.5 ,(0.5 -- 99.9)

<18> 校验和  

<CR><LF>   回车换行将消息结束。

 

⑶ GPGSV

可视卫星状态输出语句(接收机能接收到的卫星信息,包括卫星ID,仰角,方位角,信噪比(SNR)等)

样例:

①.$GPGSV, 2, 1, 07, 07, 79, 048, 42, 02, 51, 062, 43, 26, 36, 256, 42, 27, 27, 138, 42*71  

②.$GPGSV, 2, 2, 07, 09, 23, 313, 42, 04, 19, 159, 41, 15, 12, 041, 42*41 

格式:

$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*<8> <CR><LF> 

△注释:需要注意的是这里的样例数据有2条,这是因为当前可见卫星一共有7个,但是每条语句最多包括四颗卫星的信息,所以分成了2条语句。每颗卫星的信息有四个数据项,即:<4>(卫星编号)、<5>(卫星仰角)、<6>(卫星方位角)、<7>(信噪比)

解析:

$--GSV   消息ID, $GPGSV,GSV协议头。

<1> 本次GSV语句的总数目,2, 范围:1 -- 3  

<2>  当前GSV语句序号,1 ,   范围:1 -- 3 

<3>  当前可见卫星总数,07,   范围:00 -- 12

<4>  卫星PRN码编号,07,     范围:01 -- 32

<5>  卫星仰角, 79,          范围:00 -- 90   

<6>  卫星方位角,048,        范围:000 -- 359

<7>  信噪比,42,dbHz,       范围:00 --99

--------------------------------------------+-----------------------------

<4>  卫星PRN码编号,02,     范围:01 -- 32

<5>  卫星仰角, 51,          范围:00 -- 90   

<6>  卫星方位角,062,        范围:000 -- 359

<7>  信噪比,43,dbHz,       范围:00 --99

--------------------------------------------+-----------------------------

<4>  卫星PRN码编号,26,     范围:01 -- 32

<5>  卫星仰角, 36,          范围:00 -- 90   

<6>  卫星方位角,256,        范围:000 -- 359

<7>  信噪比,42,dbHz,       范围:00 --99

--------------------------------------------+-----------------------------

<4>  卫星PRN码编号,27,     范围:01 -- 32

<5>  卫星仰角, 27,          范围:00 -- 90   

<6>  卫星方位角,138,        范围:000 -- 359

<7>  信噪比,42,dbHz,       范围:00 --99

<8> 校验和 ,71

<CR><LF>   回车换行将消息结束。

 

⑷ GPRMC

推荐最小数据量的GPS信息(Recommended Minimum Specific GPS/TRANSIT Data)

样例:

$GPRMC, 161229.487 , A , 3723.2475 , N , 12158.3416 , W , 0.13 , 309.62 , 120598 , , ,A*10  

格式:

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

解析:

$--RMC   消息ID, $GPRMC,RMC协议头。

<1> 定位点的UTC时间,161229.487,格式:hhmmss.sss   

<2> 定位状态 ,A,   A = 定位,V = 导航 

<3>  纬度,  3723.2475,格式:ddmm.mmmm

<4>  纬度方向, N, N = 北纬;S = 南纬

<5>  经度,  12158.3416,格式:dddmm.mmmm

<6>  经度方向,W, W = 西经;E = 东经

<7>  对地航速,0.13,Knots,范围:000.0 -- 999.9 ,1Knot(节)=1852米/时

<8>  对地航向,309.62,度,范围:000.0 -- 359.9,以真北为参考基准。

<9>  定位点的UTC日期,120598,格式:ddmmyy(日月年)

<10>  磁偏角,  (000.0 -- 180.0度,前面的0也将被传输)

<11>  磁偏角方向, E(东)或W(西)

<12>  模式指示,A(仅NMEA-0183 3.0版本以上输出,A=自主定位,D=差分,E=估算,N=无效数据)

<13> 校验和 ,*10

<CR><LF>   回车换行将消息结束。

 

⑸ GPVTG

地面速度信息(Track Made Good and Ground Speed

样例:

$GPVTG, 309.62 , T ,  , M , 0.13 , N , 0.2 , K, A*6E

格式:

$GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>*<10><CR><LF>

解析:

$--VTG  消息ID, $GPVTG,VTG协议头。

<1>  对地航向 ,309.62,度,以真北为参考基准,二维方向指向,相当于二维罗盘

<2>  参考方向,T, 真北参考系

<3>  磁偏角,  度,

<4>  参考方向,M,磁北参考系

<5>  对地航速,0.13,Knots,范围:000.0 -- 999.9

<6>  单位,  N, 表示:节,Knots

<7>  水平运动速度, 0.2

<8>  单位,  K, 表示:公里/时,km/h

<9>  模式指示, A, A=自主定位,D=差分,E=估计,N=数据无效

<10> 校验和 ,*6E

<CR><LF>   回车换行将消息结束。

 

⑹ GPGLL

地理定位信息(Geographic Position

样例:

$GPGLL, 3723.2475 , N , 12158.3416 , W , 161229.487 , A*2C

格式:

$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>*<7><CR><LF>

解析:

$--GLL  消息ID, $GPGLL,GLL协议头。

<1>  纬度,  3723.2475,格式:ddmm.mmmm

<2>  纬度方向, N, N = 北纬;S = 南纬

<3>  经度,  12158.3416,格式:dddmm.mmmm

<4>  经度方向,W, W = 西经;E = 东经

<5>  定位点的UTC时间,161229.487,格式:hhmmss.sss 

<6>  数据状态,A, A=定位数据有效,V=定位数据无效 

<7>  校验和 ,*2C

<CR><LF>   回车换行将消息结束。