GPS NMEA协议,0183 定位数据格式 双模定位:GNXXX GPS+BD 完整版

news/2024/12/2 10:35:12/

作者:haomingHu
email:hhm_master@163.com

背景:最近需要在imx6ull 的Linux板子上面接收定位模块的0183格式的数据并进行解析,并且用QT实现,绘制定位信息各种数据的动态曲线图

GPS NMEA协议,0183 定位数据格式 双模定位:GNXXX GPS+BD

如果是GN开头的数据则不做区分,如果是GP或者BD开头的数据则要进行区分。

数据帧格式:
$aaccc,ddd,ddd,…,ddd*hh

1、“$”——帧命令起始位
2、aaccc——地址域,前两位为识别符,后三位为语句名
3、ddd…ddd——数据
4、“*”——校验和前缀
5、hh——校验和(check sum),$与 * 之间所有字符 ASCII 码的校验和(各字节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符。)
6、<CR><LF>——CR(Carriage Return) + LF(Line Feed)帧结束,回车和换行

数据种类:

  • GNZDA:UTC 时间和日期

  • GNGGA:UTC时间信息

  • GPGLL:地理定位信息

  • GPGSA:当前GPS卫星信息

  • BDGSA:当前北斗卫星信息

  • GPGSV:GPS可见卫星信息

  • BDGSV:北斗可见卫星信息

  • GNRMC:推荐定位信息

  • GNVTG:地面速度信息

    1. GNZDA:时间信息

    ​ UTC 时间和日期 :这里的UTC时间是指协调世界时,相当于本初子午线(0经度上的时间),和北京时间差8个小时

    ​ 数据示例: $GNZDA,092320.000,25,04,2021,00,00*40

    ​ 帧格式:$GPZDA, <1>,<2>,<3>,<4>,<5>*hh

    ​ 数据说明:

    • <1> :UTC时间,dd:dd:dd.ddd —> 时分秒
    • <2>:日
    • <3>:月
    • <4>:年
    • <5>:地方时与世界时之差
    • <6>: 检校位 *hh

    2. GNGGA:卫星定位信息

    数据示例:$GNGGA,092320.000,2519.0490,N,11024.8391,E,1,23,0.7,175.7,M,0.0,M,*7D

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

    • <1> UTC 时间,hhmmss(时分秒)格式 和GNZDA的UTC一样,属于协调世界时
    • <2> 纬度 ddmm.mmmm(度分)格式(前面的 0 也将被传输)
    • <3> 纬度半球 N(北半球)或 S(南半球)
    • <4> 经度 dddmm.mmmm(度分)格式(前面的 0 也将被传输)
    • <5> 经度半球 E(东经)或 W(西经)
    • <6> GPS 状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
    • <7> 正在使用解算位置的卫星数量(00~12)(前面的 0 也将被传输)
    • <8> HDOP 水平精度因子(0.5~99.9)
    • <9> 海拔高度(‐9999.9~99999.9)
    • <10> 地球椭球面相对大地水准面的高度
    • <11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
    • <12> 差分站 ID 号 0000~1023(前面的 0 也将被传输,如果不是差分定位将为空)

重点:

经纬度转化方法:比如给出的数据中,可以得到纬度是 2519.0490 N,那么实际的纬度=25+19.0490÷60,得到的经度是11024.8391,那么实际的经度是:110+24.8391÷60 因为报文里面用的是标准的度分格式,由于经纬的范围分别是090、0180,所以切割位置也不一样

3. GPGLL:地理定位信息

示例数据:$GNGLL,2519.0490,N,11024.8391,E,092320.000,A,A*4A

$GNGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7> * hh

  • <1>纬度 ddmm.mmmmm (度分)
  • <2> 纬度半球N (北半球)或S (南半球)
  • <3>经度 dddmm.mmmmm (度分)
  • <4> 经度半球E (东经)或W (西经)
  • <5> UTC 时间: hhmmss (时分秒)
  • <6>定位状态, A=有效定位,V=无效定位
  • <7> 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

4. GPGSA:当前GPS卫星信息

​ 示例数据:$GPGSA,A,3,09,17,33,02,34,06,14,36,19,35,04,28,1.2,0.7,1.0*3B

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • <15> PDOP 综合位置精度因子(0.5 ‐ 99.9)

  • <16> HDOP 水平精度因子(0.5 ‐ 99.9)

  • <17> VDOP 垂直精度因子(0.5 ‐ 99.9)

  • 注解:(Pseudo Random Noise,伪随机噪声码),01 至 32(前导位数不足则补 0,最多可接收 12 颗卫星信息)一定会有十二个占位数据,如果没有,则会是空,但是也算为一个占位数据,精度因子越小,则准确度越高

​ **5. BDGSA:当前北斗卫星信息 **( 帧格式和GPGSA一致)
示例数据:$BDGSA,A,3,01,02,03,19,04,05,07,08,10,06,13,1.2,0.7,1.0*25

6. GPGSV:GPS可见卫星信息
​ 示例数据:
​ $GPGSV,4,1,15,02,34,276,40,03,15,039,04,07,080,38,06,57,317,4577
​ $GPGSV,4,2,15,09,15,112,43,12,08,323,14,42,164,45,17,53,053,47
7E
​ $GPGSV,4,3,15,19,55,009,44,24,05,279,28,56,168,45,33,41,115,4374
​ $GPGSV,4,4,15,34,32,164,43,35,57,065,46,36,55,145,40
4B

​ $GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,…,<4>,<5>,<6>,<7>*<8>
​ (1) GSV 语句总数。
​ (2)本句 GSV的编号。
​ (3) 可见卫星的总数(00-12, 前面的0也将被传输)。
​ (4)卫星编号(01~32, 前面的0也将被传输)。
​ (5) 卫星仰角(00-90度,前面的0也将被传输)。
​ (6)卫星方位角 (000~359 度,前面的0也将被传输)
​ (7)载噪比(00~99dB, 没有跟踪到卫星时为空)。
​ 注:每条GSV语句最多包括四颗卫星的信息,其他卫星的信息将在下一条 $GPGSV语句中输出

7. BDGSV:北斗可见卫星信息
​ 示例数据:
​ $BDGSV,3,1,12,01,42,122,46,02,48,229,39,03,62,180,45,04,29,109,406C
​ $BDGSV,3,2,12,05,26,251,35,06,05,164,35,07,59,159,45,08,65,340,43
61
​ $BDGSV,3,3,12,10,80,228,44,13,61,283,44,19,41,074,48,20,05,038,*68

​ 帧格式和GPGSV一致

8. GNRMC:推荐最小的定位信息
​ 示例数据:$GNRMC,092320.000,A,2519.0490,N,11024.8391,E,0.00,0.00,250421,A7D
​ $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>
<13>
​ <1> UTC(Coordinated Universal Time)时间,hhmmss(时分秒)格式
​ <2> 定位状态,A=有效定位,V=无效定位
​ <3> Latitude,纬度 ddmm.mmmm(度分)格式(前导位数不足则补 0)
​ <4> 纬度半球 N(北半球)或 S(南半球)
​ <5> Longitude,经度 dddmm.mmmm(度分)格式(前导位数不足则补 0)
​ <6> 经度半球 E(东经)或 W(西经)
​ <7> 地面速率(000.0~999.9 节,Knot,前导位数不足则补 0)
​ <8> 地面航向(000.0~359.9 度,以真北为参考基准,前导位数不足则补 0)
​ <9> UTC 日期,ddmmyy(日月年)格式
​ <10> Magnetic Variation,磁偏角(000.0~180.0 度,前导位数不足则补 0)
​ <11> Declination,磁偏角方向,E(东)或 W(西)
​ <12> Mode Indicator,模式指示(仅 NMEA0183 3.00 版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
​ <13> 校验和

9. GNVTG:地面速度信息
​ 示例数据:$GNVTG,0.00,T,M,0.00,N,0.00,K,A*23
​ $GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh
​ <1> 以真北为参考基准的地面航向(000~359 度,前面的 0 也将被传输)
​ <2> 以磁北为参考基准的地面航向(000~359 度,前面的 0 也将被传输)
​ <3> 地面速率(000.0~999.9 节,前面的 0 也将被传输)
​ <4> 地面速率(0000.0~1851.8 公里/小时,前面的 0 也将被传输)
​ <5> 模式指示(仅 NMEA0183 3.00 版本输出,A=自主定位,D=差分,E=估算,N=数据无效)

注解:

  • 校验和:通过计算 $ 和 * 两个符号之间所有字符ASCLL码的异或运算得到,将得到的结果以ASCII字符表示
    例如:例如语句: $GNZDA05555.000,08,12,2015,00,00*4C, 校验和(红色部分参与计算)计算方法为:
    0X47 xor 0X4E xor 0X5A xor 0X44 xor 0X41 xor 0X2C xor 0X30 xor 0X39 xor 0X35 xor 0X35 xor 0X35 xor 0X35 xor 0X2E xor 0X30 xor 0X30 xor 0X30 xor 0X2C xor 0X30 xor 0X38 xor 0X2Cxop 0X31 xorl0X32 xor0X20 xor 0X32 xor 0X30 xor 0X31 xor 0X35 xor 0X2C xor 0X30 xor 0X30 xor 0X2C xor 0X30 xor 0X30
    得到的结果就是0X4C,用ASCII表示就是4C.

本文仅供参考,如有不对,请在评论区留言,或者发送邮件


http://www.ppmy.cn/news/521622.html

相关文章

常用的几种GPRS模块介绍 GPRS模块选哪个好

常用的几种GPRS模块介绍 GPRS模块选哪个好 所属分类&#xff1a;公司新闻发布时间&#xff1a;2018-12-05 GPRS模块采用GPRS的嵌入式系统可以实现无线数据传输领域的复杂应用&#xff0c;在远程抄表、工业控制、遥感遥测、智能交通领域都得到了广泛的应用。那么现在市场上常见…

STM32开发GPRS传输的GPS定位器-android studio开发客户端APP显示轨迹

前面文章介绍如何开发定位器硬件&#xff0c;单片机软件&#xff0c;服务器软件&#xff0c;上位机客户端软件&#xff0c;下面介绍如何使用android studio开发客户端APP显示轨迹。 能自己做的事从来不求人&#xff0c;前面用C#实现了PC端显示定位数据轨迹&#xff0c;用androi…

GPRS信号强度(收集)

GPRS信号强度 ATCSQ CSQ: 15,99 其中的&#xff11;&#xff15;为信号强度值&#xff0c;&#xff19;&#xff19;为误码率&#xff0c;信号在&#xff08;&#xff11;&#xff10;&#xff5e;&#xff13;&#xff11;&#xff09;之间均为有效值&#xff0c;如当地信号强…

GSM/GPRS/GPS定位器Tracker设置

一.设置路由器使外面socket程序能访问本机的外网ip 第一步.获取本机的IP地址 第二步.设置路由器 在虚拟服务器中添加一条新条目&#xff0c;服务端口是自定义的&#xff0c;只要不和系统中已用的端口冲突就行 IP地址设置为上面第一步获取的IP地址 第三步.设置GPS定位器 1.begi…

GA6-BGSM/GPRS模块介绍

GA6-BGSM/GPRS模块简介 GA6-B是一个4频的GSM/GPRS模块&#xff0c;工作的频段为&#xff1a;EGSM 900MHz、 GSM850MHz和DCS1800, PCS1900。GA6-B支持GPRS multi-slot class 10/ class 8&#xff08;可选&#xff09;和 GPRS 编码格式CS-1, CS-2, CS-3 and CS-4。 模块的尺寸只有…

GPS数据包格式

版权声明&#xff1a;本文为CSDN博主「jwq2011」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/jwq2011/article/details/53674125 GPS 上电后&#xff0c;每隔一定的时间就会返回一…

定位——GNSS

GNSS GNSS 即全球导航卫星系统&#xff08;Global Navigation Satellite System&#xff09; 是所有导航定位卫星的总称&#xff0c;凡是可以通过捕获跟踪其卫星信号实现定位的系统&#xff0c;均可纳入GNSS系统的范围&#xff0c;包括以下&#xff1a; 中国 BDS&#xff08;北…

GPRS 基站定位 LAC CID 得到经度 纬度及百度地图显示

基站定位免费接口API&#xff1a; http://mpro.sinaapp.com/my/jzdw.php?hex0&lac10328&cid26997&map1 lac 和CID 由GPRS AT指令或获取 hex1表示使用十六进制格式&#xff0c;hex0表示使用十进制&#xff0c;设备返回的一般是十六进制 map1百度地址直接定位显示 …