kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 设计应用> RTCM数据采集及解码器设计与实现
RTCM数据采集及解码器设计与实现
胡 辉,叶鑫华
华东交通大学 信息工程学院,江西 南昌 330013
摘要:基于华测X60 RTK接收机,针对Windows开发环境广泛使用,采用VC++的MSCOMM控件开发了RTCM数据采集及解码器。本软件能够动态显示RTCM导航电文1、2、3、9等各相关参数,动态存储RTCM二进制原始语句及其解码结果文件,为下一步研制差分基准站、DGPS接收机提供了数据源和基础。
Abstract:
Key words :

摘 要:基于华测X60 RTK接收机,针对Windows开发环境广泛使用,采用VC++的MSCOMM控件开发了RTCM数据采集解码器。本软件能够动态显示RTCM导航电文1、2、3、9等各相关参数,动态存储RTCM二进制原始语句及其解码结果文件,为下一步研制差分基准站、DGPS接收机提供了数据源和基础。
关键词:GPS;RTCM;数据采集;解码

  GPS是美国国防部的第2代卫星导航系统。该系统由GPS卫星星座、地面监控系统和GPS信号接收机3部分组成,能提供全球覆盖、全天候、全天时连续定位、导航和授时服务。我国虽有多个科研院所从事GPS相关产品的开发,但其研究对象主要集中在动态较低的民用领域,而且精度一般不高,在17 m左右[1]。
美国政府于2000年5月1日取消了SA干扰,此后电离层误差成为GPS最主要的定位误差源[2],对GPS数据进行差分处理是提高GPS处理精度的有效途径,差分GPS接收机是消除电离层误差的有效手段,这是本文的研究背景。
  本文基于X60 RTK接收机,采用VC开发环境,开发了RTCM解码软件,为下一步进行高精度差分定位解算算法研究和DGPS接收机研制工作提供基础。
1 RTCM SC-104导航电文简介
  RTCM SC-104是商用DGPS接收机的通用数据格式,该格式与ICD-GPS-200规定的GPS导航电文的字格式、奇偶校验规则相同,不同在于GPS电文中各子帧长度是固定的,而RTCM SC-104电文长度是可变的。RTCM电文结构包括2个字头,后接n个数据字,每字长为30 bit,具体格式参见文献[3]。RTCM SC-104共包括21类63种电文。伪距差分电文主要有1、2、3,有时也用到电文9。
1.1电文1
  电文1是RTCM电文中最基本的电文,向用户提供伪距改正数及其变化率,其内容格式如表1所示。

  其中,S为比例因子,是标识伪距改正数PRC和伪距改正数变化率RRC的比例尺度;U表示用户测距误差,有4种编码,每种编码代表不同的用户测距误差;卫星ID 号指卫星的编号;PRC指伪距改正数;RRC指伪距改正数变化率,都是用来修正误差的,具体含义参见文献[4-5]。
  IOD是改正数的数据龄期,与GPS中IOD意义相同。如RTCM电文IOD与GPS星历中IOD不相匹配,则不能直接使用该组改正数,因此IOD是保证差分定位的关键,以确保用户使用的导航电文与基准站使用的导航电文相同。
1.2 电文2
  电文2的格式和电文1完全相同, 包含了卫星导航参数的变化所导致的伪距变率及伪距变率的改变量。如果用户站未能解译出新的星历,而此时基准站已采用了新的星历,则两站所用的星历不一样,此时基准站必须同时播发电文1和电文 2,防止定位结果产生较大误差。
1.3 电文3
  电文3是GPS参考站参数,用于发送基准站在 WGS-84 坐标系中的坐标信息 ( ECEFX, ECEFY, ECEFZ),各占32 bit,给定的坐标精度至少到cm级。该项电文由 32×3/ 24 = 4 个字组成, 按顺序发送基准站坐标的3个参数,每个字最后6位是奇偶校验位。
  电文9用于GPS部分卫星组差分改正,其格式与电文1完全相同。
2 RTCM电文解码方案设计
2.1 VC++平台简介
  本软件主要基于VC++平台实现,电文的接收用到了VC++中的MSCOMM控件。MSCOMM控件提供了2种处理通信的方式:事件驱动方式和查询方式。事件驱动方式相当于一般程序设计中的中断方式。当串口发生事件或错误时,MSCOMM控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。本文的例子均采用该方式。
2.2 RTCM电文解码方案[6]
  根据RTCM的编码规则设计解码方案,解码过程可利用电文字头中的先导字01100110进行同步,主要有如下5个步骤。
  (1)字节扫描。传输数据时,通常采用“6/8”格式的方式。每8 bit数据中仅低6 bit是有效位,第7位为标志位“1”,第8位为空格“0”。接收到的数据必须先取低6位,然后判断这低6位是不是在64和127之间,如果不是则丢弃这个数据。
  (2)字节滚动。由于GPS设备多数采用美国国家标准化研究所制定的ANSI X3.16和X3.15型标准接口,故连接到计算机标准串口RS-232上的时候需要进行“字节滚动”。
  (3)取补码。当前一个码字最后一个比特D30*为1时,必须对当前这个字码的前4个字节取补码;如果D30*为0,则保持不变。奇偶校验位则不必取补码。
  (4)找引导字。寻找RTCM通用电文引导字(01100110或10011001),进行奇偶校验,通过同步完成,否则继续找引导字。
  (5)电文解码。根据帧长度,按相应电文格式解码,主要包括比例因子、用户测距误差、卫星号、PRC等参数。
  具体解码流程图如图1所示。

3 RTCM数据采集及解码器实现
3.1 RTCM数据采集及解码器介绍
  本系统基于Windows操作系统,利用VC++编程实现RTCM导航电文解码,它既能从差分基准站接收数据,又能从数据文件读取数据,原始数据和解码结果将被显示及存储,解码结果包括各颗卫星所包含的参数。
3.2 RTCM数据采集及解码器实现
  图2为数据解调子界面,主要有接收回显窗和解码显示窗2部分,其中接收回显窗显示各模块原始数据,解码显示窗显示解码结果。

3.3 关键代码介绍
  程序的关键在于对接收到的差分数据解码,根据2.2节的解码方案设计,以电文1为例,程序关键代码如下:
  for( i=0;i   {
    int dxj=b[i]*4+(b[i+1]-bitshift2(b[i+1],4))/16;
     if(dxj==102||pow(2,8)-1-dxj==102) //找到引导字
      { type=getbit(b[i+1],1,4)*4+getbit(b[i+2],5,6); //电文类型
     if(bitshift2(b[i+4],1)==1)
                //如D30*等于1,则对后面4个字节取补码
   {…….}
else {i=i+5;}
                //如果D30*不等于1,则不做任何处理
  zt=(b[i]*pow(2,7)+b[i+1]*2+(b[i+2]-bitshift2(b[i+2],5))/32)*0.6; // z计数
   xuhao=getbit(b[i+2],3,5); //序号
 changdu=getbit(b[i+2],1,2)*8+getbit(b[i+3],4,6); //帧长
  health=getbit(b[i+3],1,3); //健康度
int d1=i+5;
if(type==1||type==62)    //如果是电文1
{ int cc=0;
while(1)
   //计算电文1除头码之外的长度cc
{ … }
while(i+5<10+cc-1) //5个字码(3颗卫星所有参数)循环一次
{
…… //判断是否取补码,解比例因子、用户测距误差、卫星号、PRC
k=k+3; //每解完3颗卫星的信息便循环一次
}
  } //if type=1
  }           //if 找到引导字
  if (d2==1) break;    // 如果到了电文结尾,则结束
  }  //for
4 结果分析
  整个软件测试工作是在华东交通大学信息工程学院的2楼信息技术研究所进行,时间为2008年4月14号10:22:32。实验平台基于X60差分GPS接收机进行,接收天线安装在信息学院楼顶。解码结果如表2~表4所示。

  将以上误差数据对自行研制接收机输出结果进行修正,结果如图3所示。

  由图3中结果可看出,其海拔高度的定位误差在1 m内,经度、纬度定位误差分别在10-6度和10-7度,比单频伪距GPS接收机的定位精度好。通过利用基准站进行差分数据传送进行的定位结果可以达到1 m左右定位精度,结果进一步证明了解码方法及结果的正确性。
  本文基于X60试验平台,开发了RTCM SC-104导航电文数据采集及解码器。本软件再加上其他相关软件可进行差分基站设计,可充分利用PC编程资源进行开发工作。该算法在自行研制的GPS接收机上运行,已获得了较好的定位精度,为下一步进行实时DGPS接收机研制提供了基础。
参考文献
[1] 胡辉.高动态数字化GPS接收机的研制[R]. 哈尔滨:哈尔滨工业大学,2002.
[2] 高山,陈武,胡丛伟,等.高精度GPS定位的精密电离层模型[J].Transactions of Nanjing University of Aeronautics & Astronautics,2005,22(2):107-113.
[3] KAPLAN E D, HEGARTY C J. GPS原理与应用(第2版)[M]. 寇艳红,译.北京:电子工业出版社,2007.
[4] 何怡,李扬继.浅析差分GPS的算法及数据格式[J].电讯技术, 2004,(3):111-115.
[5] 李良,张小超,赵化平.GPS差分RTCM数据实时编码解码算法及实现[J].计算机工程与应用,2006,(11):209-211.
[6] 史峰.基于虚拟参考站技术和PDA平台的GPS移动定位系统[D].上海:同济大学, 2007.

此内容为AET网站原创,未经授权禁止转载。
Baidu
map