APP下载

基于STM32开发板的BDS/GPS数据实时采集与解码研究

2017-09-11刘扬余学祥徐炜

全球定位系统 2017年3期
关键词:开发板电文伪距

刘扬,余学祥,徐炜

(安徽理工大学 测绘学院,安徽 淮南 232001)

基于STM32开发板的BDS/GPS数据实时采集与解码研究

刘扬,余学祥,徐炜

(安徽理工大学 测绘学院,安徽 淮南 232001)

针对实时接收BDS/GPS数据丢失、存储不合理、解码精度低等问题,提出以基于STM32F103RET6微控制器为核心的开发板为载体,通过编写数据实时采集与解码算法,实现对数据的存储与计算,得到高精度的伪距、载波等观测值,并实时输出BDS/GPS组合系统伪距单点定位结果。测试结果表明,单点定位的标准差为9 m左右,均方根误差为14 m左右,该开发板运行稳定、使用方便,可为实现多系统数据实时采集、解码和差分计算提供基础。

导航定位模块;数据格式;数据实时采集;解码;伪距单点定位

0 引 言

随着全球卫星导航定位系统(GNSS)的不断完善,特别是我国北斗卫星导航系统于2014年获得国际海事组织认可,北斗系统的三步走战略稳步推进[1],其应用推广和产业化正蓬勃发展,多GNSS融合导航定位已经成为未来发展的趋势。定位分为静态和动态定位,导航主要是动态的,数据的实时传输与计算是导航定位的关键所在[2-3]。

为了提高多系统实时定位的精度和可靠性,目前广泛采用实时差分技术[4],差分全球导航定位系统中数据处理阶段包括数据采集、传输和计算。本文使用以STM32F103RET6微控制器为核心的开发板实时采集BDS/GPS原始数据,并以此为研究对象,主要对数据的采集、传输格式及解码进行研究并输出单点定位结果及精度分析。该开发板体积较小,天线与主体分离,可置于车内,方便实验。可为GNSS数据的采集、传输和差分计算提供基础支持。

1 数据采集平台的搭建

根据实验所需,开发板主要集成D303导航定位模块和Telit UL865 GPRS模块,满足数据实时采集和解码实验的硬件要求。通过实时采集BDS/GPS原始数据,研究导航定位模块数据传输格式,并通过解码将十六进制数据转换为RINEX格式的观测值[5],实现组合系统的定位。

1.1 STM32系列微控制器

STM32F103RET6微控制器采用32位基于ARM的Cortex-M3 CPU;其中F代表通用类型,R代表64引脚,E代表512 k字节的闪存存储器,T代表LQFP封装,6代表温度范围为-40℃~85℃.微控制器的功能与配置,如表1所示。

表1 STM32F103RET6的器件功能和配置

1.2 D303导航定位模块

D303是一款支持BDS B1/GPS L1频点的差分双模导航定位模块。模块内部集成了BDS B1/GPS L1双模SOC基带芯片,和一款可配置的BDS B1/GPS L1双模射频芯片,其主要性能指标如表2所示。模块的三种工作模式,可以通过命令来切换,如“$CCSIR,1.0*49”为单BD2 B1工作模式,“$CCSIR,3.0*4B”命令可以选择双模工作模式。两种输出模式,同样可通过命令来切换,如“$CCSUA,3.0*44”切换原始数据输出模式。通过NMEA串口给模块发送波特率设置指令,如“CCCAS,1,6*56”设置波特率为115200 bps.

表2 D303定位模块主要性能指标

2 数据解码与单点定位

2.1 电文帧结构

原始数据的电文帧结构分为五部分,文件头、保留、电文长度、数据电文、CRC24校验码,其结构如表3所示。

表3 电文帧结构

文件头为电文起始第一个字节(二进制110 100 11),作为判断有效数据接收的标志。保留字段在本版中为0x00,后续版本可以增加标识。电文长度表示数据电文中的字节数,根据字节数设置数据缓存的空间大小。数据电文的电文类型如表4所示,本文将以3001(观测值)为例解码,其电文数据格式如表5和表6所示。CRC(循环冗余检验码)校验用来判断接收数据的正确性。

表4 电文类型

在切换到原始观测量输出时,模块内部需要复位,会重新捕获跟踪卫星,因此需等待一段无输出时间。待接收数据稳定后,3001和3002交替出现,输出间隔为1 s.3003每隔120 s输出一次,输出的个数与接收卫星个数相同。

表5 观测值电文

表5中“unit 12”代表电文序号占有12 bit无符号的二进制数。表6中“int 28”代表字段DF04占有28bit有符号(首位是“0”为正号,“1”为负号)的二进制数[6]。

表6 卫星观测值

表6中字段DF04,DF05为解码的关键,其中伪距观测值的计算方法:完整伪距观测值(单位:m)=DF05 x 299 792.458+DF03 × 0.02.计算载波观测值的方法:完整载波相位观测值(单位:m)=完整伪距观测值+DF04 × 0.000 5,完整载波相位观测值(单位:周)=完整载波相位观测值(单位:m)/(光速度/载波频率),其中光速=299 792 458 m/s,L1载波频率=1 575.42 MHz,B1载波频率=1 561.098 MHz.

2.2 程序设计流程和关键技术

根据前文介绍的电文数据结构和编码方式,以Keil μVision5为开发平台,用C语言编写GPS数据实时采集与解码程序,通过指令对各模块进行操作,电文解码的流程设计如图1所示。

图1 解码流程

解码过程中有以下几点需要注意:

1) 实时接收数据是通过系统中断实现的。当接收到一个字节的数据时,系统会发生中断,根据该电文的长度(可以算出)把整段电文存储下来(根据电文编号存入不同的缓存中)后再解码,主要代码如下,待解码完成后再接收下一段电文。

Unsigned int head=0;

head=(buffer[3]≪4)+(buffer[4]≫4);

switch(head)

{

case 3001:

decode-3001(y, d-len); break;

case 3002:

decode-3002(y, d-len); break;

case 3003:

decode-3003(y, d-len); break;

}

2) CRC24校验过程分为校验码生成和校验码匹配两个阶段[7],第一阶段产生24位的校验码,第二阶段将生成的校验码与电文最后三个字节比较,如果相同,校验通过,否则失败,删去该电文数据。

2.3 BDS/GPS组合系统单点定位

本文主要解决数据实时接收及解码,对于单点定位原理可参照文献[8]~[10],这里仅给出其基本模型。对于BDS和GPS的伪距定位方程为

(1)

(Zi-Zp)2]1/2为卫星i到接收机p之间距离;c为光速,δtp和δti分别为接收机和卫星钟差改正;δiρtrop,δiρion分别为对流层和电离层的延迟改正,δiρothers为其他改正项。由于两个系统的时间和坐标框架不同,组合系统定位时,需要框架的转换,可参照文献[11]。

数据输出界面如图2所示,界面左侧设置参数,为串口,波特率等,右侧第1~3列(单位:m)分别为x、y、z方向的改正值,第4~6列分别为观测的卫星总个数,GPS卫星个数,BDS卫星个数。

图2 实时单点定位结果输出界面

3 实验结果及分析

为了验证程序的可靠性和稳定性,用开发板接收2016-07-15青岛某地数据,对算法进行验证,并实时存储原始电文数据。经过6个小时的实验,程序具有较好的稳定性。图3示出了1 s内接收到的观测值(3001)完整原始数据。

图3 原始电文数据

由图3分析可知,原始电文中包含以下信息,该电文的长度(二进制为100 111 011,对应的十进制为315字节),完整的一段数据(包括数据电文之前有3字节,电文长度315字节,CRC校验码3字节)共321字节,“BB 9”代表电文编号3001(观测值),本文只提取部分BDS数据,GPS解码原理相同。程序解码后输出结果如表7所示。

表7 解码后的BDS数据

单点定位的精度分析如表8所示,这里截取1 h为例,其中x方向的误差值最小,y方向的标准差于与z方向,但均方根误差y方向与z方向相近。如图4所示,x方向偏差值稳定在±5 m内,y和z方向偏差值在[-5,15] m范围内的比例分别为90.9%和89.3%。

表8 单点定位精度分析(单位:m)

图4 1 h伪距单点定位结果

4 结束语

本文利用集成了导航定位模块和通信模块的开发板进行BDS/GPS原始数据的实时采集与解码,着重分析了导航定位模块中原始数据格式和解码原理,并实时伪距单点定位。通过实时接收数据,计算出伪距(C1)、载波(B1/L1)观测值,伪距单点定位结果的标准差在10 m之内,均方根误差在15 m内,其中x方向精度最高,y与z方向的精度相当,后期加入差分数据精度将进一步提高。实验过程中,可观测到的卫星个数大多在10颗以上,开发板运行较稳定,满足设计要求,为多系统数据的实时采集、传输、解码及差分提供基础研究。

[1] 杨元喜,李金龙,王爱兵,等. 北斗区域卫星导航系统基本导航定位性能初步评估[J]. 中国科学:地球科学,2014,44(1):1-10.

[2] 杨元喜. 导航与定位若干注记[J]. 导航定位学报,2015,3(3):1-4.

[3] 吴海玲,高丽峰,汪陶胜,等. 北斗卫星导航系统发展与应用[J]. 导航定位学报,2015,3(2):1-6.

[4] 王成,崔健慧,施闯,等. 中国沿海RBN-GNSS系统北斗差分定位性能测试及分析[J]. 大地测量与地球动力学,2015,35(3):412-415.

[5] 李思超,叶甜春,徐建华. DGPS RTCM数据格式简介及其解码算法实现[J]. 电子测量技术,2008,31(12):11-14.

[6] 孙良育,刘春,吴杭彬. GPS虚拟参考站RTCM传输电文的分析与解码[J]. 全球定位系统, 2008,33(5):52-57.

[7] 汤延松,吴凤娟,李红娜,等. RTCM数据格式实时处理方法应用[J]. 全球定位系统,2011,36(5):75-79.

[8] 廖华. GPS伪距单点定位算法的综合比较[J]. 测绘科学,2011,36(1): 20-21.

[9] 卢伟俊,万庆涛,范江涛,等.北斗/GPS双频静态伪距单点定位结果对比分析[J]. 天文研究与技术,2016,13(4): 433-440.

[10]汪平,郝金明,沈国康,等.GPS单点定位观测值的精度分析及改正[J]. 大地测量与地球动力学,2009,29(3):141-144.

[11]陈浩,许长回,高井祥,等.BDS/GPS及其组合系统伪距单点定位精度分析[J]. 山东科技大学学报(自然科学版),2015,34(2): 72-78.

BDS/GPS Data Real-time Acquisition and Research on Decoding Arithmetic Based on Development Board of STM32

LIU Yang,YU Xuexiang,XU Wei

(SchoolofGeodesyandGeomatics,AnhuiUniversityofScienceandTechnology,Huainan232001,China)

According to the fact that it occurred data loss, unreasonable storage, low accuracy of decoding when receiving the real-time BDS/GPS data. This paper presented a program of the real-time data acquisition and decoding, taking the development board based on STM32F103RET6 microcontroller as carrier. It achieved data storage and calculation, and got high precision pseudorange, carrier observations. Meanwhile, it calculated the pseudorange single point positioning by combined BDS/GPS.The results show that the standard deviation is about 9 meters and RMSE is about 14 meters, the development board is proved stable and easy to use. This is the basis of data real-time acquisition, decoding and differential computation of multi-GNSS.

Navigation module; data format; real-time data acquisition; decoding; pseudorange single point positioning

10.13442/j.gnss.1008-9268.2017.03.012

2016-11-25

国家自然科学基金(批准号41474026); 安徽国土资源厅科技项目(编号:2011-K-22,2011-K-18);安徽理工大学研究生创新基金(编号:2017CX2056);淮南矿业(集团)有限责任公司项目(编号:HNKY-JTJS(2013)-28)

P228.4

A

1008-9268(2017)03-0061-05

刘扬 (1991-),男,硕士研究生,主要从事GNSS数据处理。

余学祥 (1965-),男,博士,教授,博士生导师,主要从事GPS变形监测自动化、矿山空间信息技术、灾害监测与预报等方面研究。

徐炜 (1992-),男,硕士研究生,主要从事GNSS导航与数据处理。

联系人: 刘扬 E-mail: liuyhh09@163.com

猜你喜欢

开发板电文伪距
BDS-3载波相位平滑伪距单点定位性能分析
BDS 三频数据周跳探测与修复方法研究
BDS-2三频伪距单点定位精度分析
星间频间伪距定位模型的精度分析及程序实现*
MT799更正电文能否被视为信用证修改
基于STM32H7的FDCAN通信系统设计与实现∗
开发板在单片机原理及接口技术课程教学中的应用
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
MiniGUI在基于OMAP5912开发板上的移植