GPS模块编程之NMEA0183协议
来源:互联网 发布:c语言输入数字排序 编辑:程序博客网 时间:2024/06/05 07:19
NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式。现在已经成为GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议。
下图是我调试用的GPS芯片,是深圳一家公司生产的。基本上接上天线,供电引脚电压正常的话,就可以通过串口读取GPS数据了。所以GPS编程最主要的是解析数据,要解析数据就得了解协议格式。
下面一组数据,是我在室内且芯片没接天线的情况下读一次串口所获取的数据(GPS芯片会源源不断的输出数据)。这组数据里面没有读到经纬度等信息(全部为0),但可以看到NMEA0183的六种输出协议:$GPGGA、$GPGLL、$GPGSA、$GPGSV、$GPRMC、$GPVTG。
$GPGGA,235949.042,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*45$GPGLL,0000.0000,N,00000.0000,E,235949.042,V,N*47$GPGSA,A,1,,,,,,,,,,,,,,,*1E$GPGSV,1,1,00*79$GPRMC,235949.042,V,0000.0000,N,00000.0000,E,,,140209,,,N*7E$GPVTG,,T,,M,,N,,K,N*2C
下面详细学习这六种不同的输出协议的数据格式。
(1) $GPGGA (GPS定位信息)
协议格式:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*hh<CR><LF>
样例数据:
$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M, , ,,0000*18
协议格式详细分析:
(2) $GPGLL (地理定位信息)
协议格式:
$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>*hh<CR><LF>
样例数据:
$GPGLL,3723.2475,N,12158.3416,W,161229.487,A*2C
协议格式详细分析:
(3) $GPGSA (当前卫星信息)
协议格式:
$GPGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*hh<CR><LF>
样例数据:
$GPGSA,A,3,07,02,26,27,09,04,15, , , , , ,1.8,1.0,1.5*33
协议格式详细分析:
(4) $GPGSV(可见卫星信息)
协议格式:
$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*hh<CR><LF>
样例数据:
$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
需要注意的是这里的样例数据有2条,这是因为当前可见卫星一共有7个,但是每条语句最多包括四颗卫星的信息,所以分成了2条语句。每颗卫星的信息有四个数据项,即:<4>(卫星编号)、<5>(卫星仰角)、<6>(卫星方位角)、<7>(信噪比)。
协议格式详细分析(只分析第1条样例数据语句):
(5) $GPRMC(最简定位信息)
协议格式:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh<CR><LF>
样例数据:
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10
协议格式详细分析:
(6) $GPVTG(地面速度信息)
协议格式:
$GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>*hh<CR><LF>
样例数据:
$GPVTG,309.62,T, ,M,0.13,N,0.2,K*6E
协议格式详细分析:
有了上面对NMEA0183协议的详细学习,剩下的就是串口编程了。无论是通过单片机,还是Windows/WinCE/Linux系统,编写串口程序把这些数据读取到都是比较容易的,剩下就是通过c++那些查找算法函数,或者MFC CString字符串的相关函数进行解析就OK了。
GPS模块编程之NMEA0183协议 by斜风细雨QQ:253786989 2012-02-15
- GPS模块编程之NMEA0183协议
- GPS模块编程之NMEA0183协议
- GPS NMEA0183协议解析
- GPS NMEA0183协议解析
- GPS NMEA0183协议解析
- GPS的NMEA0183协议
- GPS通讯协议(NMEA0183)协议解析
- GPS通讯协议(NMEA0183)协议解析
- GPS通信协议——最常用的NMEA0183协议
- GPS-NMEA0183格式(wletv整理)
- NMEA0183
- GPS模块URAT输出数据协议NMEA
- 安信可A7模块GPS-编程获取GPS定位信息
- 嵌入式系统GPS模块设备编程
- GPS之MTK平台代码小结以及gps协议注释
- GPS之MTK平台代码小结以及gps协议注释
- GPS模块更改输出信息 NEMA-0183协议
- GPS协议
- 静态dll和动态dll(创建、区别、调用方式)
- 什么是P问题、NP问题和NPC问题【Matrix67】
- C++运算符重载转换运算符
- 分组 连接的查询把我给弄昏了
- Windows7操作记录_操作时间记录_启动时间记录_日志查看
- GPS模块编程之NMEA0183协议
- 哈弗曼 树 实现 文件压缩 代码
- XDR的相关介绍
- 自定义visual studio 安装类
- 一个IconDemo
- Makefile‘混和的隐含和普通规则’错误的解决
- ubuntu下一些常用软件的安装
- 在UDDI注册中心查找和发布wsdl
- 20 个数据库设计最佳实践