北斗/GPS双模定位系统协议解析算法研究

2016-02-23 02:54龙哲华汪金辉彭晓宏吕贵涛
现代电子技术 2016年1期

龙哲华,汪金辉,彭晓宏,吕贵涛

(1.北京工业大学集成电路与系统研究室,北京 100124;2.无锡星融恒通科技有限公司,江苏无锡 214101)



北斗/GPS双模定位系统协议解析算法研究

龙哲华1,汪金辉1,彭晓宏1,吕贵涛2

(1.北京工业大学集成电路与系统研究室,北京100124;2.无锡星融恒通科技有限公司,江苏无锡214101)

摘要:北斗和GPS双系统定位具有较强的可靠性和适应性,已广泛应用于我国各种位置服务领域。但是双模定位系统的输出协议和标准的NMEA0183协议相比更加复杂,而且随着当前卫星信号强度的变化,输出的协议帧时多时少,单条协议帧中的数据量时大时小,因此,双模定位系统输出协议帧的有效解析显得极为重要。提出一种新型算法解析这种双模系统中的输出协议帧,此方法成功应用于UM220双模定位模块,实测表明该系统稳定可靠。

关键词:北斗定位系统;GPS;NMEA0183协议;双模定位

0 引言

我国正在大力发展自主知识产权的卫星定位系统。近年来,随着第二代北斗系统不断发展和完善,已经在国内的位置服务领域受到极大的关注。北斗/GPS双系统定位[1],因其具有较强的可靠性和适应性,在各种位置服务中有着极好的应用前景[2]。但是双系统的输出数据协议和标准的NMEA0183协议[3]相比有着更加复杂的数据结构,而且随着当前卫星信号强度的变化,输出的协议帧时多时少,单条协议帧中的数据量时大时小,因此,双模定位系统输出协议帧的有效解析显得极为重要。目前相关的NMEA0183协议的数据结构解析文献很多,有的是针对数据结构协议中特定协议帧的说明与分析[4];有的是对数据结构协议的串口数据分析[5];但是这些文献,对于随着卫星定位系统信号强度变化,协议帧帧数和单帧协议帧数据量都会变化,这一类数据结构协议帧处理方法的文献很少,仅有的文献也只是针对GPS系统[6],关于北斗与GPS双模系统的相关文献几乎没有。随着我国具有自主知识产权的北斗卫星定位系统的发展,双模系统的输出协议相比于标准NMEA0183协议有新的内容。本文主要介绍了一种关于双系统的输出数据结构协议的解析算法,同时也结合实际的项目,并且本算法在基于UM220双系统定位模块[7]的实际工程中成功应用,具备良好的稳定性。本文将详细介绍双模定位系统输出协议帧的解析。

1 双模系统输出协议简介

双模系统输出协议帧整体框架与标准NMEA0183协议一致,但双模系统有特殊的协议帧,例如:$GNGSA 和$BDGSV。因此,双模系统的输出协议帧有自身的特点:有两条地址符相同的$GNGSA协议帧;数据量会随着北斗定位卫星信号强度变化而发生变化的$BDGSV协议帧。双模系统输出协议帧框架如图1所示。

图1 双模系统输出协议帧框架

2 解析介绍

双模系统输出的数据有其自身的特点,每个数据包包含以下协议帧:2条$GNGSA、多条$GPGSV、多条$BDGSV、$GNGGA、$GNGLL和$GNRMC。

针对上一节讲到的双模系统的输出协议帧特点,本文将双模系统输出协议分为4类:$GNGGA和$GNGLL、结束协议帧$GNRMC、2条连续$GNGSA协议帧、可视卫星状态输出协议帧($GPGSV和$BDGSV)。

解析过程中,不同特点的协议帧的解析过程都包含下面两个关键基本步骤:起始符和地址符的解析、数据块存储。本文4个类协议帧的解析都是由这两个基本步骤加上一系列的标志位判断完成解析。

(1)起始符和地址符的解析过程

本文提到的解析算法,针对所有协议帧的起始符和地址符的解析都是同样一个过程,通过串口串行接收NMEA0183协议框架中的起始符和地址符字段,以$GNGGA协议帧为例,程序如下:

da=softuart_getchar();

if(da==0x24)//⁃⁃⁃$⁃⁃⁃

{ da=softuart_getchar();

if(da==0x47)//⁃⁃⁃G⁃⁃⁃

{ da=softuart_getchar();

if(da==0x4E)//⁃⁃⁃N⁃⁃⁃

{ da=softuart_getchar();

if(da==0x47)//⁃⁃⁃G⁃⁃⁃

{ da=softuart_getchar();

if(da==0x47)//⁃⁃⁃G⁃⁃⁃

{ da=softuart_getchar();

if(da==0x41)//⁃⁃⁃A⁃⁃⁃

{……

}

(2)数据块存储过程

同样,数据块存储过程的基本结构是一样的,在完成起始符和地址符解析后,需要对数据块进行存储,以$GNGGA协议帧为例,程序如下:

j=0;

do

{ BD_GNGGA[j]=softuart_getchar();

j++;

}

while(da!=0x0A);

2.1常规协议帧$GNGGA和$GNGLL

由于常规协议帧$GNGGA和$GNGLL不随信号强弱变化而变化,故将此三条归类为常规协议帧处理。其中$GNGGA和$GNGLL处理过程框图如图2所示。

图2 $GNGGA和$GNGLL处理过程框图

2.2数据包结束协议帧$GNRMC

数据包结束协议帧$GNRMC作为一次完整数据包的结束判断帧。由于双模系统UM220连续不断地往外发送数据包,因此接收解析时,只需要接收一个数据包,处理过程需要设定一个数据包接收完毕的协议帧,用$GNRMC协议帧作为数据包结束协议帧,$GNRMC处理过程框图如图3所示。

图3 $GNRMC处理过程框图

2.3$GNGSA协议帧

在UM220模块的输出协议帧中,有2条连续的$GNGSA协议帧,但是代表不同的意义,连续的2条协议帧中,第一条$GNGSA协议帧代表GPS系统的卫星PRN数据;第二条$GNGSA协议帧代表北斗系统的卫星PRN数据。由于2条连续的$GNGSA协议帧的数据不同而且代表两个不同系统的当前状态,因此用了一个独立的结构算法处理,同时每个系统的数据都用2个数组GPS_GNGSA[]和BD_GNGSA[]分别存储,如图4所示。

2.4可视卫星状态协议帧

可视卫星状态输出协议帧($GPGSV和$BDGSV协议帧)处理在双模系统输出协议帧中最特殊,因为可视

卫星状态输出协议帧的有无完全取决于系统所处环境的卫星信号强度:信号强的时候可视卫星状态输出协议帧都会出现多条;信号弱的时候,有可能2个系统都不输出可视卫星状态输出协议帧,或者其中1个系统输出可视卫星状态输出协议帧,而另一个不输出,总之这一类的协议帧数据量实时变化比较大。同时一个数据包中可视卫星状态输出协议帧$GPGSV虽然可能存在多条,但是这若干条都是顺序输出,只有$GPGSV协议帧全部输出完毕才会输出$BDGSV,根据这种特点,本文对可视卫星状态输出协议帧($GPGSV和$BDGSV协议帧)的处理如图5所示。

图4 $GNGSA协议帧处理过程框图

图5 可视卫星状态输出协议帧($GPGSV和$BDGSV协议帧)的处理框图

3 实测与分析

应用UM220模块设计了北斗和GPS双模定位系统。基于该系统对本文提出的算法方案进行了测试,双模系统连续工作12 h,每隔1 h接收处理1次数据,没有出现解析错误,解析丢包的现象。

图6是在信号极好,数据量比较大时串口助手接收到的解析结果。

图6 信号较强时解析的结果

从图6中可以看出:将提出的算法应用于双模定位系统卫星数据的输出协议中,不同的协议帧,用不同的结构程序处理,有效地解决了处理多条GPS和北斗系统的可视卫星状态输出协议帧的问题,也就是多条$GPGSV 和$BDGSV协议帧,经过连续12 h的工作,并没有出现解析错误,解析丢包的现象时。由于本算法用不同的结构处理,所以当出现解析错误或丢包的现象时,可以根据出错或丢包的协议帧确定处理程序出错的模块,这也是本文将双模定位系统的输出协议分三类不同特点的协议帧处理的优势。

4 结语

本文针对北斗和GPS双模定位系统的输出协议,提出将双模系统的输出协议中不同的协议帧分为三类,每一种分别用不同的程序结构处理,经过测试表明此算法稳定可靠,随着当前卫星信号强度的变化,都能保证有效地解析当前双模定位系统输出的所有协议帧。本文提出的对字符协议分类处理的框架,对于其他字符数据协议的解析也有一定的参考意义。

参考文献

[1]王建瑜.GPS/北斗双模应用系统中的准确性与完善性技术研究[D].长沙:国防科技大学,2007.

[2]李霖,王伟,谭永滨,等.导航与LBS关键技术标准化研究进展[J].测绘通报,2014(5):95⁃98.

[3]肖远亮.NMEA⁃0183数据标准在GPS技术中的应用[J].物探装备,2003,13(2):127⁃133.

[4]钱德俊,张哲,胡晨.NMEA0183协议解析[J].电子器件,2007,30(2):698⁃701.

[5]曹婷婷,高玉.GPS中NMEA⁃0183协议的应用[J].电子工程师,2006,32(10):8⁃12.

[6]方书山,章传根,秘金钟.NMEA⁃0183格式数据流解析的一种实用方法[J].测绘通报,2013(11):114⁃116.

[7]怀洋,邵琼玲,路振民.北斗/GPS混合定位模块UM220应用研究[J].应用天地,2014,33(3):76⁃79.

Research on protocol analysis algorithm of Beidou/GPS hybrid positioning system

LONG Zhehua1,WANG Jinhui1,PENG Xiaohong1,LÜ Guitao2
(1. VLSI & System Laboratory,Beijing University of Technology,Beijing 100124,China;2. Wuxi Xingrong Hengtong Technology Co.,Ltd.,Wuxi 214101,China)

Abstract:The Beidou/GPS hybrid positioning system has great reliability and adaptability,and is widely used in the fields of various location based service. Compared with the standard NMEA0183 protocol,the output protocol of the Beidou/GPS hy⁃brid positioning system is more complicated. With the intensity changing of satellite signal,the data size in single protocol frame and the output protocol frame are varied,therefore,the effective analysis of the output protocol frame in hybrid positioning sys⁃tem is extremely important. A new algorithm which is used to analysis the output protocol frame in hybrid positioning system is proposed. This method was successfully applied in UM220 Beidou/GPS hybrid positioning module. The actual measured results show that the system is stable and reliable.

Keywords:Beidou positioning system;GPS;NMEA0183 protocol;dual mode positioning

作者简介:龙哲华(1991—),男,湖南茶陵人,硕士研究生。主要研究方向为北斗/GPS定位。

基金项目:国家自然科学基金(61204040,60976028);教育部博士点基金(20121103120018);北京市教育委员会科技计划面上项目(JC002999201301);北京市自然科学基金(4152004)资助

收稿日期:2015⁃07⁃19

doi:10.16652/j.issn.1004⁃373x.2016.01.002

中图分类号:TN967.1⁃34

文献标识码:A

文章编号:1004⁃373X(2016)01⁃0006⁃03