08-NMEA0183协议
NMEA 0183协议
NMEA-0183 协议采用 ASCII 码来传递定位信息,格式形如:$aaccc,ddd,ddd,.....,ddd,*hh
1、“$”:命令起始位
2、aaccc:地址域,前两位为标识符(aa),后三位为语句名(ccc)
3、ddd…ddd:数据
4、“*”:校验和前缀(也可以作为语句数据结束的标志)
5、hh:校验和(check sum),$与*之间所有字符 ASCII 码的校验和(各字节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符)
语句标识符:
| 标识符 | 含义 |
|---|---|
| BD | BDS,北斗卫星系统 |
| GP | GPS |
| GL | GLONASS |
| GA | Galileo |
| GN | GNSS,全球卫星导航系统 |
语句名:
| 语句名 | 功能含义 |
|---|---|
| GGA | 时间、位置、卫星数量 |
| GLL | 经度、纬度、 UTC 时间 |
| GSA | 接收机操作模式,定位使用的卫星,DOP值,定位状态 |
| GSV | 可见卫星信息、仰角、方位角、信噪比 |
| RMC | 时间、日期、位置、速度 |
| VTG | 地面速度信息 |
1. 语句参数说明
(1) GGA
GGA
| 描述 | 接收机时间、 位置及定位相关的数据 |
|---|---|
| 类型 | 输出 |
| 格式 | $-GGA,UTCtime,lat,uLat,lon,uLon,FS,numSv,HDOP,msl,uMsl,sep,uSep,diffAg e,diffSta*cs |
| 示例 | $GPGGA,235316.000,2959.9925,S,12000.0090,E,1,06,1.21,62.77,M,0.00,M,*7B |
参数说明:
| 字段 | 名称 | 格式 | 参数说明 |
|---|---|---|---|
| 1 | $-GGA | STR | 消息 ID,GGA 语句头,‘–’为系统标识 |
| 2 | UTCtime | STR | 当前定位的 UTC 时间,格式:hhmmss.sss |
| 3 | lat | STR | 纬度,,格式:ddmm.mmmm 前 2 字符表示度, 后面的字符表示分 |
| 4 | uLat | STR | 纬度方向: N-北, S-南 |
| 5 | lon | STR | 经度, 前3字符表示度,后面的字符表示分,格式:dddmm.mmmm |
| 6 | uLon | STR | 经度方向:E-东,W-西 |
| 7 | FS | UINT | 指示当前定位状态标识,该字段不应为空 0-无效;1-单点定位;2-差分定位 |
| 8 | numSv | UINT | 用于定位的卫星数目,00~24 |
| 9 | HDOP | DOUBLE | 水平精度因子(HDOP) |
| 10 | msl | DOUBLE | 海拔高度,即接收机天线相对于大地水准面的高度 |
| 11 | uMsl | STR | 高度单位,米,固定字符 M |
| 12 | sep | DOUBLE | 参考椭球面与大地水准面之间的距离,“-” 表示大地水准面低于参考椭球面 |
| 13 | uSep | STR | 高度单位,米,固定字符 M |
| 14 | diffAge | DOUBLE | 差分修正的数据龄期, 未使用 DGPS 时该域为空 |
| 15 | diffSta | DOUBLE | 差分参考站的ID |
| 16 | cs | STR | 校验和,$和之间(不包括$和) 所有字符的异或结果 |
(2)GLL
GLL
| 描述 | 地理位置经度/纬度 |
|---|---|
| 类型 | 输出 |
| 格式 | $--GLL,Lat,N,Lon,E,Time,Valid,Mode*cs |
| 示例 | $GPGLL,4004.74005,N,11614.19613,E,060845.000,A,A*6F |
参数说明:
| 字段 | 名称 | 格式 | 参数说明 |
|---|---|---|---|
| 1 | $-GLL | STR | 消息 ID,GLL 语句头,‘–’为系统标识 |
| 2 | Lat | STR | 纬度, ,格式:ddmm.mmmm。 前 2 字符表示度, 后面的字符表示分 |
| 3 | N | STR | 纬度方向: N-北, S-南 |
| 4 | Lon | STR | 经度, 格式:dddmm.mmmm。前3字符表示度,后面的字符表示分。 |
| 5 | E | STR | 经度方向:E-东,W-西 |
| 6 | Time | STR | UTC 时间,格式:hhmmss.sss |
| 7 | Valid | STR | 位置有效标志。V-无效;A-有效。 |
| 8 | Mode | STR | 定位系统标识。 N-未定位;A-单点定位;D-差分定位 |
| 9 | cs | STR | 校验和,$和之间(不包括$和) 所有字符的异或结果 |
(3) GSA
GSA
| 描述 | 用于定位的卫星编号与 DOP 信息。 不管是否定位或者是否有可用卫星, 都输出 GSA 语句; 当接收机处于多系统联合工作时, 每个系统的可用卫星对应一条 GSA 语句, 每条 GSA 语句都包含根据组合卫星系统得到的 PDOP、 HDOP 和 VDOP。 |
|---|---|
| 类型 | 输出 |
| 格式 | $–GSA,smode,FS{,SVID},PDOP,HDOP,VDOP*cs |
| 示例 | $GPGSA,A,3,05,21,31,12,18,29,2.56,1.21,2.25*01 |
参数说明:
| 字段 | 名称 | 格式 | 参数说明 |
|---|---|---|---|
| 1 | $-GSA | STR | 消息 ID,GSA 语句头,‘–’为系统标识 |
| 2 | smode | STR | 模式切换方式指示: M:手动切换,强制为2D/3D工作模式 A:自动切换,接收机自动切换为2D/3D工作模式 |
| 3 | FS | UINT | 定位状态标志: 1:定位无效;2:2D定位;3:3D定位 |
| 4 | {,SVID} | UINT | 用于定位的卫星编号, 该字段共显示 12 颗可用卫星编号,多于12 颗时只输出前12颗,不足 12 颗时不足的区域补空 |
| 5 | PDOP | DOUBLE | 位置精度因子(PDOP) |
| 6 | HDOP | DOUBLE | 水平精度因子(HDOP) |
| 7 | VDOP | DOUBLE | 垂直精度因子(VDOP) |
| 8 | systemld | UINT | NMEA 所定义的 GNSS系统 ID号 仅 NMEA 4.1 及以上版本有效。 1:GPS/SBAS系统;2:GLONASS系统; 3:GAL系统; 4:BDS系统; 5:QZSS系统 6-NAVIC系统ID |
| 9 | cs | STR | 校验和, $和之间(不包括$和) 所有字符的异或结果 |
(4) GSV
GSV
| 描述 | 可见卫星的卫星编号及其仰角、 方位角、 载噪比等信息。 每条 GSV 语句中的{卫星编号,仰角,方位角,载噪比}参数组的数量可变,最多为 4 组, 最少为 0 组。 |
|---|---|
| 类型 | 输出 |
| 格式 | $–GSV,numMsg,msgNo,numSv{,SVID,ele,az,cn0} *cs |
| 示例 | $GPGSV,3,1,10,25,68,053,47,21,59,306,49,29,56,161,49,31,36,265,4979 $GPGSV,3,2,10,12,29,048,49,05,22,123,49,18,13,000,49,01,00,000,4972 $GPGSV,3,3,10,14,00,000,03,16,00,000,27*7C |
参数说明:
| 字段 | 名称 | 格式 | 参数说明 |
|---|---|---|---|
| 1 | $-GSV | STR | 消息 ID,GSV 语句头,‘–’为系统标识 |
| 2 | numMsg | UINT | GSV消息总数。最小值为1。 |
| 3 | msgNo | UINT | 当前语句编号 |
| 4 | numSv | UINT | 可见卫星总数 |
| 5 | {,SVID,ele,az,cn0} | UINT | 依次为: 卫星编号; 仰角, 取值范围为 0~90, 单位是度; 方位角,取值范围为 0~359,单位是度; 载噪比, 取值范围为 0~99, 单位是 dB-Hz, 如果没有跟踪到当前卫星,补空 |
| 6 | signalld | UINT | NMEA 所定义的 GNSS 信号 ID(0 代表全部信号) GPS:1=L1 C/A;5=L2C-M;8=L5-Q Galileo:1=E5a;2=E5b;7=E1 BeiDou:1= B11;3=B1C;5=B2a;6=B2b GLONASS:1=G1 C/A;3= G2 C/A NAVIC:1= L5 SPS QZSS:1=L1 ;5=L2C-M8=L5-Q |
| 7 | cs | STR | 校验和, $和之间(不包括$和) 所有字符的异或结果 |
(5) RMC
RMC
| 描述 | 推荐最小定位信息 |
|---|---|
| 类型 | 输出 |
| 格式 | $–RMC,UTCtime,status,lat,uLat,lon,uLon,spd,cog,date,mv,mvE,mode*cs |
| 示例 | $GPRMC,255316.000,A,2959.9925,S,12000.0090,E,0.009,75.020,020711,A*45 |
参数说明:
| 字段 | 名称 | 格式 | 参数说明 |
|---|---|---|---|
| 1 | $-RMC | STR | 消息 ID,RMC 语句头,’–‘为系统标识 |
| 2 | UTCtime | STR | 当前定位的 UTC 时间 |
| 3 | status | STR | 位置有效标志。 V=接收机警告, 数据无效 A=数据有效 |
| 4 | lat | STR | 纬度,格式:ddmm.mmmm。 前2字符表示度,后面的字符表示分 |
| 5 | uLat | STR | 纬度方向: N-北, S-南 |
| 6 | lon | STR | 经度,格式:dddmm.mmmm。 前3字符表示度,后面的字符表示分 |
| 7 | uLon | STR | 经度方向:E-东,W-西 |
| 8 | spd | DOUBLE | 对地速度,单位为节 |
| 9 | cog | DOUBLE | 对地真航向,单位为度 |
| 10 | date | STR | 日期(dd 为日,mm为月,yy 为年) |
| 11 | mv | DOUBLE | 磁偏角,单位为度。固定为空 |
| 12 | mvE | STR | 磁偏角方向:E-东,W-西。固定为空 |
| 13 | mode | STR | 定位模式标志 仅 NMEA 2.3 及以上版本有效。 A:自主模式;E:估算模式(航位推算); N:数据无效;D:差分模式; M:未定位,但存在外部输入或历史保存的位置 |
| 14 | navStatus | STR | 导航状态标示符(V 表示系统不输出导航状态信息) 仅 NMEA 4.1 及以上版本有效 |
| 15 | cs | 16进制数值 | 校验和, $和之间(不包括$和) 所有字符的异或结果 |
(6) VTG
VTG
| 描述 | 对地速度与对地航向信息。 |
|---|---|
| 类型 | 输出 |
| 格式 | $—VTG,cogt,T,cogm,M,sog,N,kph,K,mode*cs |
| 示例 | $GPVTG,75.20,T,M,0.009,N,0.017,K,A*02 |
参数说明:
| 字段 | 名称 | 格式 | 参数说明 |
|---|---|---|---|
| 1 | $-VTG | STR | 消息 ID,VTG 语句头,‘–’为系统标识 |
| 2 | cogt | DOUBLE | 对地真北航向, 单位为度 |
| 3 | T | STR | 真北指示, 固定为 T |
| 4 | cogm | DOUBLE | 对地磁北航向, 单位为度 |
| 5 | M | STR | 磁北指示, 固定为 M |
| 6 | sog | DOUBLE | 对地速度, 单位为节 |
| N | STR | 速度单位节, 固定为 N | |
| 6 | kph | DOUBLE | 对地速度, 单位为千米每小时 |
| 7 | K | STR | 速度单位, 千米每小时, 固定为 K |
| 8 | mode | STR | 定位模式标志 仅 NMEA 2.3 及以上版本有效 A:自主模式;E:估算模式(航位推算); N:数据无效;D:差分模式; M:未定位,但存在外部输入或历史保存的位置 |
| 9 | cs | STR | 校验和, $和之间(不包括$和) 所有字符的异或结果 |
注意:
Air530W/Air510W以磁北为参考基准的地面航向输出为空,不支持该变量的输出.