MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

【网优软件】

网优软件的发布、下载和使用
软件决定效率

【GPRS/EDGE优化】

数据业务专题优化资料和经验
知识共享平台

【DT路测与分析】

DT、CQT路测和分析
资料与经验

【室内覆盖】

室内覆盖、直放站、天线等
覆盖无间隙



  • 阅读:4637
  • 回复:6
GPS通讯协议(NMEA0183)解析
讨厌装逼的人
金牌会员



 发短消息    关注Ta 

积分 6826
帖子 388
威望 21193 个
礼品券 55 个
专家指数 5
注册 2008-7-18
专业方向  无线规划
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2009-04-10 20:54:39  只看楼主 

GPS通讯协议(NMEA0183)解析

说起NMEA协议,只要接触过GPS设备的人,或者说是要用到GPS设备研发的人都知道,这是一个很常用的GPS通讯协议,而且也有很多人遇到关于NEMA协议的一些问题,我忽然有一个想法,就是按照自己对这个协议的一些理解,写一点这方面的东西,看是不是能帮刚刚入门的人解答一些疑问,由于笔者水平有限,这个东西也只能算是一个简单介绍,就算是知识普及吧,希望能引高手出来大家一起讨论。好了,言归正传,我们开始吧!

GPS(全球定位系统)接收机与手持机之间的数据交换格式一般都由生产厂商缺省定制,其定义内容普通用户很难知晓,且不同品牌、不同型号的GPS接收机所配置的控制应用程序也因生产厂家的不同而不同。所以,对于通用GPS应用软件,需要一个统一格式的数据标准,以解决与任意一台GPS的接口问题。NMEA-0183数据标准就是解决这类问题的方案之一。NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA—The NationalMarine Electronics Association)制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种

NMEA通讯协议硬件接口
符合NMEAO183标准的GPS接收机的硬件接口能够兼容计算机的RS-232C协议串口,然而,严格来说NMEA标准不是RS-232C,规范推荐依照EIA422(也称为RS-422)。是一个与RS-232C不同的系统。标准RS-232C采用负逻辑,即逻辑“1”表示-5V~ -15v,逻辑“0”表示+5V~+15V,利用传输信号线和信号地之间的电压差进行传输。而EIA-422是利用导线之间的信号电压差来传输信号的,其每个通道要用两条信号线,一条是逻辑“1”,~条是逻辑“0”,通过传输线驱动器和传输线接收器实现逻辑电平和电位差之间的转换,一般允许驱动器输出为±2V~ ±6V 。

虽然存在区别,但在实际使用中,如果只是接收GPS的输出.则只需两根信号线 GPS数据输出线和信号地线,可以直接将EIA-422输出通道两条信号线的中一条同计算机的Rs232C输入线相连(这个方法我并没有试验过,是从别的地方听来的,有兴趣有条件的兄弟可以动手实验一下,不过后果自负哦!呵呵)。

NMEA通讯协议所定义的标准通讯接口参数为:
波特率:4800bit/s;
数据位:8位;
停止位:1位;
奇偶校验:无;

NMEA-OI83语句解析
NMEA通讯协议所规定的通讯语句都已是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“ *”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以来结束,也就是ASCII 字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。
典型的NMEA0183语句如下面的GPGGA语句。

当GPS正常工作时,语句如:
$GPGGA,053152,3957.7484,N,11626.7626,E,1,06,1.5,88.1,M,-8.0,M,,*64
当GPS收不到卫星信号时,GPGGA语句输出变为:
$GPGGA,053247,3957.7484,N,11626.7626,E,0,00,,,M,,M,,*46
除标准语句外,NMEAO183规范还允许个别厂商定义私有的语句格式,这些语句以“$P”开始,然后是三个字符长度的厂商识别号,跟着是厂商定义的数据,接下来的数据格式与标准格式相同。
如Garmin的PGRME私有格式如下:
$PGRME,8.9,M,6.1,M,10.8,M*11
其中,“P”代表私有格式,“GRM”是Garmin的代码,“E”表示语句类型。

NMEA数据处理中的注意事项
如果开发基于GPS的应用系统,就需要将GPS作为信息源,正确接收和解析GPS发送的NMEA一0183数据。此时,在编程实现时需要注意几个问题。
1、通讯端口的设置
虽然NMEA规范推荐的串行通讯参数为“波特率:4800;奇偶校验:无;数据位:8;停止位:1”,但也有厂商的产品允许用户将波特率设置的更高,此时需要注意设置计算机的接口参数与GPS设备一致。
2、 所需信息的正确提取
NMEA—O183是以语句形式发送数据的,接收机可能发送很多类型的语句,而我们需要的可能只是某些语句中的几个字段。因此就需要对接收到的数据进行解析,取得所需的信息。另外,可能会由于小数点位数不同等原因,语句的长度是可变的,因而分离感兴趣的信息时,不能按照该信息在语句中所处的字符位置来查找,只能依据逗号分隔符,这一点在数据提取的过程中非常重要。笔者就经常遇到一些应用软件工程师,在提取NMEA语句中的信息的时候按照字符的长度提取,这样编出来的程序,通用性差,而且经常会出现信息提取错误的问题。

以上都是我们在程序中需要注意的问题。为解决信息的正确提取问题,并提高程序的复用性,可以编写适当的函数,如一个函数用来分离语句(即通过$字符判断语句头,一直到换行回车结束一条语句);一个函数用来判断语句中的字段数(通过“,”分隔符来提取语句字段),还有一个函数用来返回语句中指定字段的内容。有了这三个函数,就可以方便的提取所需的信息,此时的工作只是简单字符串比较和显示格式的变换
检验和的计算与比较

最后,为了确保所采集的GPS数据的可靠性,必须进行检验和的计算与比较。检验和hh为“$”与“*”之间的所有字符按位异或的结果,并将其高4位和低4位各用一个十六进制数(字母大写)表示出来。为此,需编写函数,从语句头识别符“*”开始,计算检验和,直至“*”到达为止,这时“*”号后面的两个字符就是检验码,将自己的计算结果同这两个检验码字符比较,若不同,按出错处理,并继续运行;若相同,则说明通讯成功,数据接收正确,可以处理该语句,提取所需数据。

这里简单介绍了NMEA一0183规范的接口定义和数据格式,但是篇幅限制没有对NMEA语句进行详细的解析,语句的详细说明可参照NMEA规范或各GPS接收机的说明书。我现在手中有一份中文版本的NMEA协议语句的详细解析,当然并不是全部的语句,是根据GARMIN技术手册翻译过来的,如果有兴趣了解的兄弟可以留下邮箱。

以上这些文字,是AKA按照自己对NMEA协议的的理解,再加上一点东找西看来的东西写出来的,如对其中的问题有疑问,欢迎探讨!

扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 6、回复“iot6”免费领取《【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 对本帖内容的看法? 我要点评


    作者的更多帖子
     
    [充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
    充值拥有大量的威望和最高的下载权限,下载站内资料无忧
    development51
    论坛元老
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    专家·初级勋章   纪念勋章·十周年  
    积分 18254
    帖子 1259
    威望 1334 个
    礼品券 0 个
    专家指数 103
    注册 2009-3-22
    专业方向  WCDMA网络优化
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-04-10 21:33:51  QQ
    技术问题,回答得专家指数,快速升级
    学习了谢谢分享你的资料

    对本帖内容的看法? 我要点评

     
    [立即成为VIP会员,百万通信专业资料立即下载,支付宝、微信付款,简单、快速!]
    xunjia
    金牌会员



     发短消息    关注Ta 

    公益·慈善勋章   财富勋章·万元户  
    积分 7329
    帖子 503
    威望 7180 个
    礼品券 20 个
    专家指数 -94
    注册 2009-3-11
    专业方向  EPON
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-04-14 10:22:02 
    感谢分享,我想知道GPS应用中都收到哪些数据,能给出具体的数据格式中字段说明吗,请指导!

    xyzhou8051@163.com

    对本帖内容的看法? 我要点评

     
    最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网
    ass2312
    高级会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 2349
    帖子 78
    威望 8466 个
    礼品券 8 个
    专家指数 4
    注册 2008-12-26
    专业方向  网优
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-04-14 21:32:56 

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
    zhaogis
    初级会员



     发短消息    关注Ta 

    积分 62
    帖子 12
    威望 -18 个
    礼品券 0 个
    专家指数 0
    注册 2009-5-9
    专业方向  gis
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-05-09 02:50:19 
    学习了谢谢分享你的资料

    对本帖内容的看法? 我要点评

     
    最新通信职位:广东通信人才网 | 北京通信人才网 | 上海通信人才网 | 南京通信人才网 | 西安通信人才网 | 重庆通信人才网 | 中国通信人才网
    不正确
    金牌会员
    鎵嬫満鍙风爜宸查獙璇


     发短消息    关注Ta 

    积分 7712
    帖子 934
    威望 9667 个
    礼品券 8 个
    专家指数 -50
    注册 2009-6-6
    专业方向  网优
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-07-19 20:44:52 
    连上GPS,用超级终端直接连GPS所在串口,设置速率4800KBPS,数据位8,停止位1,无奇偶校验,可以看GPS消息。。。。。

    对本帖内容的看法? 我要点评

     
    [2分钟拥有VIP权限和充足威望,可下载站内任何资料] [快速找到一份高薪的通信行业职位]
    tangxw2006
    初级会员



     发短消息    关注Ta 

    积分 270
    帖子 13
    威望 3105 个
    礼品券 5 个
    专家指数 0
    注册 2009-7-20
    专业方向  RF
    回答问题数 0
    回答被采纳数 0
    回答采纳率 0%
     
    发表于 2009-07-20 17:25:38 
    感谢同仁分享,谢谢。

    对本帖内容的看法? 我要点评

     
    热点: 通信招聘职位 | 网络优化全集 | WCDMA精品 | TD-SCDMA学习资料 | EVDO | MGW媒体网关资料

    快速回复主题    
    标题
    内容
     上传资料请点左侧【添加附件】

    当前时区 GMT+8, 现在时间是 2024-04-29 07:01:14
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.451275 second(s), 28 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver