说明
NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。
消息格式
$ | address | message | checksum | CRLF | |
---|---|---|---|---|---|
起始字符'$' | talkID + topic | 每个字段以逗号','隔开 | '*'号开始,两个字符表示16进制的校验 | \r\n换行符 | |
XXXXX,一般为五个字符,前两个表示talkerID,后三个表示消息的类型 | 校验的部分是address+message | ||||
例如:
$GNGGA,014727.000,4012.4898,N,11822.0078,E,1,5,4.51,-24.9,M,-6.3,M,,*52
Configured GNSS | TalkerID |
---|---|
GPS,SBAS,QZSS | GP |
GLONASS | GL |
Galieo | GA |
BeiDou | GB (BD on some products) |
Any combination of GNSS | GN |
多星联合定位时为GN开头,表示使用了两个或以上的定位系统的卫星的信息
单定位系统定位时,例如GP表示GPS单定位系统定位;北斗定位系统在一些产品上是GB,另一些产品上则是BD。
常用的各字段解释
下列各字段的小数位数并不准确,例如:有些字段资料上是一位小数,但在产品上是2位小数。
XXGGA
Global Positioning System Fix Data:全球定位系统定位数据
字段名 | Example Data | Description |
---|---|---|
消息标题 | GNGGA | 联合定位的GGA消息 |
时间Time | 014727.000 | hhmmss.ss UTC时分秒 |
纬度Latitude | 4124.8963 | ddmm.mmmm 度分 |
南北 | N | N(北纬)或S(南纬) |
经度Longitude | 11622.0078 | ddmm.mmmm |
东西 | E | E(东经)或W(西经) |
状态 | 1 | 0:未定位,1:非差分定位,2:差分定位,3:无效PPS,6:正在估算 |
卫星数量 | 5 | 正在使用的卫星数量(0-12) |
水平精度因子HDOP | 4.51 | (0.5 - 99.9)数值越小精度越好 |
海拔高度Altitude | 280.2 | (-9999.9 - 9999.9) |
单位 | M | 280.2米 |
大地水准面在WGS84椭球面上的高度 | -34.0 | |
单位 | M | |
差分时间 | 空 | |
差分站ID号0000 - 1023 | 空 | |
校验 | *48 | 校验和(此处是随便的示例) |
RMC
Recommended minimum specific GPS/Transit data
字段名 | Example Data | Description |
---|---|---|
GNRMC | ||
时间 | 014727.000 | hhmmss.sss |
定位状态 | A | A(有效定位)或V(无效定位) |
维度 | ||
南北 | ||
经度 | ||
东西 | ||
地面速率 | 节 | |
地面航向 | 0.0 - 359.9 度,以真北为参考 | |
日期 | ddmmyy (日月年) | |
磁偏角 | ||
磁偏角方向 | E或W | |
定位模式 | A:自主定位,D:差分,E:估算,N:数据无效。(仅3.00版本输出此字段) | |
校验和 |
GSA
GPS DOP and active satellites
GPGSA | 这条语句是按定位系统分行的。 | |
模式 | A | A:自动,M:手动 |
定位类型 | 3 | 1:未定位,2:2D定位,3:3D定位 |
PRN码(伪随机噪声码) | 02 | 第1信道正在使用的卫星PRN码编号 |
。。。 | 总共12个PRN码,对应12个信道 | |
PRN码 | 没有使用的信道值为空 | |
PDOP综合位置精度因子 | 0.5 - 99.9 | |
HDOP平面坐标精度因子 | 0.5 - 99.9 | |
VDOP垂直座标精度因子 | 0.5 - 99.9 | |
校验值 | ||
$GPGSA,A,3,17,01,14,21,19,,,,,,,,5.70,4.51,3.48*06
GSV
Satellites in view
按定位系统分开,即GPS和北斗的卫星不会在同一语句里出现
一条语句最多包含4颗卫星的信息数据
GPGSV | ||
GSV语句的数目 | 仅代表本定位系统的GSV语句数目,在本示例中代表GPS的GSV语句数目 | |
本条是第几句 | ||
可见卫星总数 | 本定位系统的可见卫星数目 | |
PRN码 | ||
卫星仰角 | 00 - 90度 | |
卫星方位角 | 00 - 359度 | |
信噪比 | 00 - 99 dbHz,值越大信号质量越高 | |
。。。上方四个字段参数重复 | 另一颗卫星的信息 | |
。。。上方四个字段参数重复 | ||
。。。上方四个字段参数重复 | ||
校验值 | ||
GLL
Geographic Position, Latitude / Longitude and time.
GNGLL | ||
维度 | ||
南北 | ||
经度 | ||
东西 | ||
时间 | UTC时间,hhmmss.sss | |
定位状态 | A:有效定位,B:无效定位 | |
模式指示 | A:自主定位,D:差分,E:估算,N:数据无效。(仅3.00版本输出此字段) | |
参考
https://github.com/adrianmo/go-nmea
说明
在一些产品中,可能有些消息不会出现,即使消息在标准协议里。