GPS差分协议RTCM电文解码过程分析
2014-07-28徐瑶张继宏
徐瑶 张继宏
摘要:该文介绍了GPS差分定位的主要误差来源,提出了相应的解决方法。通过对RTCM协议的具体内容分析,以举例的方式给出了具体的解码流程;根据RTCM的解码原理,提出了此协议存在的不足之处,同时对RTCM的发展前景进行了探讨。
关键词:GPS;差分定位;RTCM
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)17-4150-03
The Decoding Progress of RTCM Format for Differential GPS
XU Yao, ZHANG Ji-hong
(Chongqing University of Posts and Telecommunications, Chongqing 400065,China)
Abstract: This paper discusses the main error sources and the solutions of GPS. Give the detail decoding process by analysing the RTCM format. According to the decoding principle of RTCM, discussing the shortcomings and the developing direction of RTCM format .
Key words: GPS; Differential positioning; RTCM
GPS(Global Position System)是美国建立的卫星导航定位系统,它由24颗卫星组成,能提供全实时、全天候和全球性的导航定位服务。目前的定位精度可达到25m左右。为了提高GPS的定位精度,差分GPS应运而生。现在在建与建成的差分增强系统有美国的空基增强系统WAAS和地基增强系统NDGPS 、俄罗斯的SDCM、日本的MSAS、欧洲的EGNOS以及印度的GAGAN系统。现在运用最广泛的为伪距差分技术,其定位精度可达米级,而载波相伴的定位精度可达厘米级。
1 差分定位的主要误差来源
差分系统由基准站、流动站和数据链三部分组成。基准站坐标已知并有高精度的接收机,它接收卫星系统并编码成差分数据,通过数据链传送给流动站用户,流动站可通过差分数据调整自己的定位数据。根据所发送的差分数据的类型不同,差分定位可分为位置差分、伪距差分和载波相位差分。
限制差分GPS精度的因素有以下几个:1)星历不确定性。星历误差不能完全由差分校正消除,剩余的误差是由基准站和流动站之间的关系函数。2)对流层延迟。对流层对卫星信号有着明显的影响,这种影响在基准站和流动站也许不相同。3)电离层延迟。基准站和流动站到卫星经过了不同的路径,通过了不同的大气层,因而导致了不同信号延迟。4)遮挡物。由于建筑物或者地形可能遮蔽卫星,使其对流动站可见对基准站不可见。5)地球曲率。卫星对流动站可视而对基准站不可视。6)多路径。由天线周围的反射引起,其误差具有随机性。基准站和流动站两个天线之间的反射状况是不可相同的。7)接收机噪声。噪声是影响定位精度的一个重要问题,当接收机不处于一个固定位置以及位置精度系统不是最佳的时候,噪声误差特别明显。8)其它因素。如潮汐等。
解决上述误差的几个方案:由2)、3)因素引起的误差可通过建立数学模型来消除。6)引起的误差消除可通过选择具有旁波瓣抑制功能的天线,同时在放置天线时应避开反射物,也可采取7)中的方案。7)中的误差可通过载波辅助和窄相关器技术消除。8)中的误差属于自然误差,目前还没得到有效的解决方案。
2 RTCM SC-104协议电文内容分析
RTCM协议是当前应用于卫星导航定位系统的差分技术中运用最广泛的协议,它是由1983年11月国际海运事业无线电技术委员会制定,到目前为止已经有7个版本。RTCM差分协议是由二进制的数据流组成,每一帧内容都是包含(N+2)个字长,N中包含电文中的数据,并随电文类型及内容而改变,“2”代表是每帧电文中的报文头,由两个字码组成,具体的内容如图1如示。
引导字:共8bit,由“0110010”组成,是每帧电文的开始标志,作为用户搜索用。只有当用户搜索到引导字并确认正确以后才开始电文的解码。帧识别:6bit,由二进制转换成十进制后可得出电文类型,范围为1-64。基准站识别:10bit,确定基准站序号,范围是0-1024。修正的Z计数:13bit,Z计数是下一帧的开始及电文参数的参考时间,范围为0-3599.4s,精度为0.6s。流动站可根据Z计数得到准确的GPS时。帧长:确定帧的长度,通过帧长和序号可以确定下一引导字的位置。基台状况:判断基准站的工作状况。奇偶校验:判定该字码是否通过。
本文主要介绍电文类型1的帧内容与解码过程。电文类型1是目前伪距差分领域运用最广泛的电文类型,它提供了伪距改正数(PRC)和伪距改正数变化率(RRC)数据。任一时刻“t”的伪距改正数PRC(t):
比例因子为1bit,编码只能是“0”或者“1”,主要作用是确定伪距改正数和伪距改正变化率的精度。当编码为“0”时,伪距改正数与伪距改正变化率的精度分别为0.02m和0.002m/s。当编码为“1”时,伪距改正数与伪距改正变化率的精度分别为0.032m和0.0032m/s。UDRE是用户差分距离误差,为2bit,有4种不同类型的编码,每种编码代表不同的误差范围。卫星识别是卫星的ID,转换成十进制后可得到卫星的编号,其中编号32以全零“00000”表示。数据发布日期(IOD)是用来判定用户接收的差分数据是否过时,通过比对(IOD)与GPS导航数据发布日期,可以得到用户接收到的差分数据相对于GPS时的延时时间。伪距改正数提供的是对应卫星与基准站之间的伪距改正值,为16bit,有符号位,这里的PRC是一个推测值,是由上一个数值“过时值”推测出来的,转换成十进制后乘以相应的精度可得到具体的伪距改正值,范围是“±655.34或±10485.44”。伪距改正变化率是伪距改正数的变化幅度,为8bit,有符号位,转换成十进制后乘以相应的精度可得到具体的伪距变化率,是个常数,范围是“±0.254或±4.064”。奇偶校验是判定流动站所接收到的该字码的码字是否正确,为6bit,它不仅与该字码的码字编号有关,还与上一字码的最后两位有关。填充字是采用“1”、“0”交替进行编码的,避免了与引导字同步码进行混淆。由于电文1类型中每帧数据最多只能有3颗卫星的改正数信息,而每一颗卫星的改正数要求为40bit,所以不能使要求的字码是严格的整数。若卫星的数值不是3的整数倍,每帧电文的最后一个字码只能进行填充,填充的格式只有两种,8bit 或者是16bit。endprint
3 RTCM电文的解码过程
RTCM电文的解码过程可分为以下几个步骤:
Step1:字节的读取。RTCM电文协议是以6/8进行数据传输,只有低6位是有效位,7、8位是填充位,第7位是“1”,第8位是“0”,所以只有当接到的字节的十进制数在64-127之间时,才是有效的,否则就应当删除。
Step2:字节的滚动。UART是约定的异步通讯,首先发送或接收的是低位数据,所以在接收到的数据后应当进行字节滚动。滚动原则为
Step3:字节取补码。如果前一个字节的最后一位d*30为“1”时,则该字节的前24位应取补码,后6位奇偶校验则保持不变。否则该字节保持不变。需注意,不管前一字节的d*30编码是“0”还是“1”,该字节的后6位始终保持不变。
Step4:电文同步。RTCM每帧都是由引导字“0110010”开始的,电文解码时,首先要搜索引导字。找到引导字后,先假设它是有效的,再进行该字的奇偶校验,若奇偶校验通过,则可对该字进行解码,否则重新搜索引导字。
Step5:奇偶校验。奇偶校验码是由该字节的前24位和前一字节的最后2位确定的,其编码规则如下表,只有当该校验码与接收到的字节的奇偶校验码一致时,才能表示该字节通过。
第七码字:01101000,11111111,11011001,110100
4 总结
本文介绍了差分系统的定位原理以及差分误差,重点介绍了现在常用的RTCM SC-104协议并分析了及解码过程,给出了具体的解算步骤。运用奇偶校验码进行判定解码的正确性存在一定的缺陷,当接收的该字码错误个数为偶数时,会被判定该字码解码正确,所以RTCM SC-104的解码过程有待进一步的完善。再者RTCM SC-104协议只针对于GPS系统,中国的北斗系统已经逐渐步入世界市场,提出适合于北斗系统的差分协议将是未来的发展方向。
参考文献:
[1] 刘智敏,林文介,唐卫明.GPS 差分协议 RTCM 电文分析与应用[J].桂林工学院学报,2004,24(2): 188-191.
[2] 李思超,叶甜春,徐建华. DGPS RTCM 数据格式简介及其解码算法实现[J].电子测量技术,2008,12.
[3] 黄运乾,程鹏飞,蔡艳辉.北斗卫星导航系统 RTCM 电文类型预定义研究[J].测绘通报,2013 (5): 5-7.
[4] 林霁.DGPS 差分信息传输协议研究 [D].大连海事大学,2010.
[5] 杨杰, 张凡.高精度 GPS 差分定位技术比较研究[J]. 移动通信, 2014, 38(2): 54-58.
3 RTCM电文的解码过程
RTCM电文的解码过程可分为以下几个步骤:
Step1:字节的读取。RTCM电文协议是以6/8进行数据传输,只有低6位是有效位,7、8位是填充位,第7位是“1”,第8位是“0”,所以只有当接到的字节的十进制数在64-127之间时,才是有效的,否则就应当删除。
Step2:字节的滚动。UART是约定的异步通讯,首先发送或接收的是低位数据,所以在接收到的数据后应当进行字节滚动。滚动原则为
Step3:字节取补码。如果前一个字节的最后一位d*30为“1”时,则该字节的前24位应取补码,后6位奇偶校验则保持不变。否则该字节保持不变。需注意,不管前一字节的d*30编码是“0”还是“1”,该字节的后6位始终保持不变。
Step4:电文同步。RTCM每帧都是由引导字“0110010”开始的,电文解码时,首先要搜索引导字。找到引导字后,先假设它是有效的,再进行该字的奇偶校验,若奇偶校验通过,则可对该字进行解码,否则重新搜索引导字。
Step5:奇偶校验。奇偶校验码是由该字节的前24位和前一字节的最后2位确定的,其编码规则如下表,只有当该校验码与接收到的字节的奇偶校验码一致时,才能表示该字节通过。
第七码字:01101000,11111111,11011001,110100
4 总结
本文介绍了差分系统的定位原理以及差分误差,重点介绍了现在常用的RTCM SC-104协议并分析了及解码过程,给出了具体的解算步骤。运用奇偶校验码进行判定解码的正确性存在一定的缺陷,当接收的该字码错误个数为偶数时,会被判定该字码解码正确,所以RTCM SC-104的解码过程有待进一步的完善。再者RTCM SC-104协议只针对于GPS系统,中国的北斗系统已经逐渐步入世界市场,提出适合于北斗系统的差分协议将是未来的发展方向。
参考文献:
[1] 刘智敏,林文介,唐卫明.GPS 差分协议 RTCM 电文分析与应用[J].桂林工学院学报,2004,24(2): 188-191.
[2] 李思超,叶甜春,徐建华. DGPS RTCM 数据格式简介及其解码算法实现[J].电子测量技术,2008,12.
[3] 黄运乾,程鹏飞,蔡艳辉.北斗卫星导航系统 RTCM 电文类型预定义研究[J].测绘通报,2013 (5): 5-7.
[4] 林霁.DGPS 差分信息传输协议研究 [D].大连海事大学,2010.
[5] 杨杰, 张凡.高精度 GPS 差分定位技术比较研究[J]. 移动通信, 2014, 38(2): 54-58.
3 RTCM电文的解码过程
RTCM电文的解码过程可分为以下几个步骤:
Step1:字节的读取。RTCM电文协议是以6/8进行数据传输,只有低6位是有效位,7、8位是填充位,第7位是“1”,第8位是“0”,所以只有当接到的字节的十进制数在64-127之间时,才是有效的,否则就应当删除。
Step2:字节的滚动。UART是约定的异步通讯,首先发送或接收的是低位数据,所以在接收到的数据后应当进行字节滚动。滚动原则为
Step3:字节取补码。如果前一个字节的最后一位d*30为“1”时,则该字节的前24位应取补码,后6位奇偶校验则保持不变。否则该字节保持不变。需注意,不管前一字节的d*30编码是“0”还是“1”,该字节的后6位始终保持不变。
Step4:电文同步。RTCM每帧都是由引导字“0110010”开始的,电文解码时,首先要搜索引导字。找到引导字后,先假设它是有效的,再进行该字的奇偶校验,若奇偶校验通过,则可对该字进行解码,否则重新搜索引导字。
Step5:奇偶校验。奇偶校验码是由该字节的前24位和前一字节的最后2位确定的,其编码规则如下表,只有当该校验码与接收到的字节的奇偶校验码一致时,才能表示该字节通过。
第七码字:01101000,11111111,11011001,110100
4 总结
本文介绍了差分系统的定位原理以及差分误差,重点介绍了现在常用的RTCM SC-104协议并分析了及解码过程,给出了具体的解算步骤。运用奇偶校验码进行判定解码的正确性存在一定的缺陷,当接收的该字码错误个数为偶数时,会被判定该字码解码正确,所以RTCM SC-104的解码过程有待进一步的完善。再者RTCM SC-104协议只针对于GPS系统,中国的北斗系统已经逐渐步入世界市场,提出适合于北斗系统的差分协议将是未来的发展方向。
参考文献:
[1] 刘智敏,林文介,唐卫明.GPS 差分协议 RTCM 电文分析与应用[J].桂林工学院学报,2004,24(2): 188-191.
[2] 李思超,叶甜春,徐建华. DGPS RTCM 数据格式简介及其解码算法实现[J].电子测量技术,2008,12.
[3] 黄运乾,程鹏飞,蔡艳辉.北斗卫星导航系统 RTCM 电文类型预定义研究[J].测绘通报,2013 (5): 5-7.
[4] 林霁.DGPS 差分信息传输协议研究 [D].大连海事大学,2010.
[5] 杨杰, 张凡.高精度 GPS 差分定位技术比较研究[J]. 移动通信, 2014, 38(2): 54-58.