基于单频授时模块的时间测量接收机设计

2019-04-17 08:29李晓通王文利李孝辉张慧君
时间频率学报 2019年1期
关键词:串口数据包接收机

李晓通,王文利,李孝辉,张慧君

(1.中国科学院 国家授时中心,西安 710600;2.中国科学院 时间频率基准重点实验室,西安 710600;3.中国科学院大学,北京 100049;4.中国科学院大学 天文与空间科学学院,北京 101048)

0 引言

高精度的时间服务是国民经济和国防建设的重要支撑,对于深空探测、物理研究、导航定位、航空航天和信息传递等都具有极其重要的意义。其中,高精度远程时间测量技术是高精度时间服务的关键技术之一。高精度远程时间测量是指使用时间比对设备获得两个(或多个)参与比对的时间之间的偏差,目前应用较多的远程时间测量技术包括:卫星单向授时、卫星共视时间测量、卫星双向时间测量和光纤时间测量等[1]。通过卫星导航系统实现远程时间测量的核心部件为卫星接收机,目前,市面上成熟的时间测量型接收机多为双频卫星接收机,例如,波兰的TTS系列接收机、捷克的GTR51/GTR52接收机、比利时的Septentrio系列接收机等,它们凭着精度高、功能强、性能好等优势在时间频率市场占据着主要地位[2]。但是这些接收机大多价格在10万元以上,不便于大规模使用。而单频授时模块目前已经可以达到优于20 ns的授时精度,同时又具有成本低、体积小、功耗低、易于集成等优点。其中应用较多的一款是瑞士u-blox公司生产的LEA-M8T芯片。它的尺寸仅为(17.0×22.4) mm,能同时接收GPS、北斗、GLONASS、Galileo等卫星导航系统信号,并且其接收器配合辅助GNSS功能可采集大于-157 dBm的信号,即使在城市建筑物遮挡的情况下也能够快速捕获。因此,笔者研制了基于LEA-M8T单频授时模块的时间测量接收机系统。

1 单频时间测量接收机总体设计方案

单频时间测量接收机由授时模块、电源模块、接口转换模块、时间间隔计数器以及工控板组成,总体设计框图如图1所示。电源模块实现AC/DC变换及多路DC/DC变换,为接收机内各部分提供稳定的直流电压。LEA-M8T授时模块接收卫星原始观测数据,主要包括星历、伪距、卫星模型参数等。接口转换模块为LEA-M8T授时模块与工控板的通信提供电平转换,保证数据的正常收发。时间间隔计数器测量授时模块1 PPS信号和外部1 PPS信号之间的时差。运行在工控板内的接收机数据处理软件对原始接收机数据进行协议解析和数据预处理。数据处理模块对来自时间间隔计数器的时差数据和来自接收机的导航数据进行处理,计算出本地时间和卫星导航系统的时间偏差。

图1 单频时间测量接收机总体设计图

2 系统实现

系统的硬件部分主要由LEA-M8T单频授时模块、电源模块和接口转换模块、时间间隔计数器和工控板构成。LEA-M8T授时模块是系统的核心,可接收GPS、北斗、GLONASS、Galileo等导航系统的信号进行授时,并且具备自主完好性(RAIM)检测功能。支持串口、USB、SPI以及I2C等通信接口。

本系统根据工控板可用资源及可靠性考虑选择串口作为LEA-M8T授时模块与工控板的通信接口。串口通信是设备间的一种串行通信方式,连线和控制方式均较为方便。但LEA-M8T授时模块输出的为TTL电平,而工控板使用的是RS232标准电平。为将两者适配,采用MAX3232芯片实现电平转换,完成两模块间的通信。

时间测量接收机内各个模块均需直流供电,但供电电压要求各不相同,本文设计由市电作为输入,采用开关电源和三端稳压结合的方式为各个模块供电。开关电源的转换效率较高,但输入纹波较大,三端稳压的转换效率较低,但输出电压稳定,纹波小。将二者结合为接收机提供低纹波、较稳定的供电电压。

考虑到授时模块输出脉冲信号的性能以及样机的测试指标预算,选择测量精度为50 ps的时间间隔计数器测量授时模块与外部信号的时差送至数据处理模块。

工控板需要与授时模块、计数器通信以及处理大量的原始电文数据,同时还要兼顾样机的体积、功耗要求,因此选用低功耗,高集成度的嵌入式单板电脑内部装载数据处理软件。

3 数据处理算法与软件设计实现

本节针对基于单频授时模块时间测量接收机的数据处理方法和软件实现过程进行了介绍,详细描述了相关数据的计算流程及软件设计方法。

3.1 数据处理算法

时间测量接收机以二进制格式输出原始数据,且部分测量所需数据不直接提供。因此需要对原始数据进行解析处理,才能得到时间测量所必需的卫星坐标、星钟钟差修正值、电离层延迟、对流层延迟、测站坐标等观测量[3]。数据处理流程如图2所示,接收机通过串口接收原始二进制数据,寻找数据包同步字,开始解析数据,根据数据包标识判断数据包类型,分别针对不同数据包进行原始数据解析。解析完成后,再进行相应计算,得到所有接收机数据。

图2 数据处理流程图

此处对其中几个关键算法作简要介绍。

①协议解析

LEA-M8T单频授时模块采用UBX协议与工控板进行数据交互,UBX协议是UBlox公司专有的二进制协议格式,一个基本的UBX包如图3所示,每一条数据包都以同步字0xB5,0x62开始,CLASS标识数据包的基本类别,ID定义CLASS类别中具体消息,LENGTH表示数据的长度,Payload是数据包携带的具体内容,CK_A和CK_B为校验和字节。协议解析算法根据消息类名和消息ID区分Payload中携带的内容。从而对所需数据包的Payload进行提取,提取后通过进制转化,得到所需信息。Payload的具体数据格式(除星历数据外)参照ublox接收机手册相关内容。星历数据的Payload格式与信息所属导航系统有关,需参照对应导航系统接口控制文件(ICD)进行数据提取。

图3 UBX数据包格式

②卫星位置计算

分别根据不同导航系统的接口控制文件进行相应卫星位置的计算。需要注意的是北斗GEO卫星轨道解算方法略有不同。由于GEO卫星轨道倾角小,在轨道拟合时可能因为矩阵奇异而不收敛,所以要通过坐标转换使轨道倾角接近于0°的GEO卫星轨道获得较大的轨道倾角。基本坐标转换流程如图4所示。

图4 北斗GEO卫星位置算法流程图

基本坐标转换用式(1)表示如下:

R′=Rz(ωtk)·Rx(-n)·Rz(-ωtk)·R,

(1)

式(1)中,R为按照MEO卫星的计算方法得到地固系下的卫星位置矢量,R′为经过坐标转换后得到的最终地固坐标系下的卫星位置矢量,n表示参考平面旋转的角度,文献[4]、[5]、[6]证明了卫星广播星历拟合精度对旋转角n的取值不敏感,但为避免坐标旋转后轨道根数出现奇点,同时尽可能减少轨道倾角摄动被其他轨道根数摄动吸收,文献[4]建议将坐标旋转角设为一个较大的值,一般为5°,ω为地球自转角速度,tk=t-toe为瞬时历元到参考历元的时间差。Rx(·)、Rz(·)表示初等变换矩阵,即

(2)

(3)

实际应用中,在计算GEO卫星观测瞬间升交点经度时,不考虑ωtk项,因此省去第①步绕Z轴的旋转,经过两步坐标变换得到GEO卫星位置。

③卫星钟差计算

与卫星导航系统时间相比,卫星上的原子钟存在着时间偏差、频率偏差和频率漂移。卫星导航系统地面监控部分通过对卫星信号的监测,将卫星时钟在t时的卫星钟差Δt(s)描述成以下的一个二项式[7]:

Δt(s)=af0+af1(t-toc)+af2(t-toc)2,

(4)

式(4)中,3个二项式系数af0,af1和af2以及参考时间toc均由星历信息解出。除此之外,卫星钟差还应该包括相对论效应校正量Δtr。Δtr用公式(5)计算[7]:

(5)

④时延修正

时间测量系统中需要修正的时延主要包括电离层时延、Sagnac效应、对流层时延和接收机时延。其中电离层时延采用参考文献[8]中给出的Klobuchar模型进行修正。对流层时延采用文献[9]给出的以m为单位的对流层延时模型进行修正。Sagnac效应采用文献[10]给出的修正方法进行修正。接收机时延以标准时间UTC(NTSC)为参考进行测试,结合T公报给出的UTC与GPST的偏差和UTC与UTC(NTSC)的偏差修正获得。

3.2 数据处理软件设计实现

数据处理软件选择C语言使用Visual Studio 2008在Windows 7系统上开发实现。软件完成用户交互、数据处理和网络通信3个功能,分为串口通信、协议解析、数据计算、数据存储和网络通信五大模块。软件架构如图5所示。

用户前端界面使用MFC图形化界面语言搭建。串口通信模块采用MSComm控件实现串口数据的采集和发送。协议解析模块对LEA-M8T发来的原始数据进行协议解析和进制转换。数据计算模块根据相应数据的处理方法对原始接收机数据进行运算。数据存储模块以固定格式将接收机数据存储至本地介质。网络通信模块利用UDP协议通过网络将数据发送至指定IP地址和端口。

为了提高软件数据处理效率。对数据计算模块中的算法进行了分解。利用分布式计算的思想,减少算法中的嵌套和循环进而减小算法运算的时间复杂度。软件运行界面截图如图6所示,整个界面共分为3个部分,分别为数据监视区、串口操作区、操作区。数据监视区对经过处理和计算的数据进行实时显示,包括接收机位置信息、时间信息以及卫星的状态信息。方便用户监视接收机状态和记录数据。串口操作区保证用户可以直接通过二进制命令与接收机进行交互。操作区完成系统的开启和退出。

图5 软件架构图

图6 软件运行界面

4 系统测试与分析

本节针对基于单频授时模块的时间测量接收机的两种测试方法进行了详细的理论描述,同时依据这两种测试方法对本文中设计完成的接收机进行了测试,给出了测试结果及分析。

4.1 单向法

基于卫星导航系统的单向法测量是通过一台接收机测量本地参考时间与卫星发播的导航系统时间之间的钟差。单向法精度受伪距观测量包含的各种误差的影响,主要误差Δterror包括星钟误差,星历误差,电离层延迟改正误差,对流层延迟改正误差和设备时延[11-12]。测试系统连接如图7所示,将接收机输出的1 PPS信号与中国科学院国家授时中心保持的UTC(NTSC)的1 PPS信号分别接入时间间隔计数器的通道1和通道2,记录两个输出脉冲之间的时间间隔ΔtReceiver-UTC(NTSC)。结合中国科学院国家授时中心对UTC(NTSC)与GPST偏差的监测值ΔtGPST-UTC(NTSC)和接收机数据处理软件计算的各项误差改正量Δterror,最终将授时偏差结果改正到GPST,即

ΔtReceiver-UTC(NTSC)=ΔtReceiver-UTC(NTSC)-ΔtGPST-UTC(NTSC)-Δterror,

(6)

由于接收机实时输出的时间信号代表GPST,所以理论上ΔtReceiver-GPST应为0,但由于接收机授时性能所限,此项不为0,因此ΔtReceiver-GPST结果的波动即反映了时间测量接收机的单向授时性能。图8为GPS同一颗卫星在24 h可观测时间段内ΔtReceiver-GPST的测试数据。经计算,单向授时偏差最大值为13.83 ns,最小值为-12.88 ns,时差波动约为±15 ns,标准差约为6.19 ns。

图7 单向授时测试系统框图

图8 单向授时性能评估结果

4.2 零基线共视时间比对试验

零基线共视时间比对试验的基本原理是利用卫星共视技术来进行时间的比对,零基线比对试验连接关系如图9所示。由于时间测量接收机A和B分别得到的都是同一个本地参考时间与卫星钟的钟差,理论上两接收机的测量结果相同,将两站同一时刻的时差结果相减,各部分误差也得到抵消,结果应为0。但由于两台接收机内部噪声和信号通道时延变化,零基线比对的结果不为0,该结果反映共视时间测量系统的不确定度[13-14]。

数据处理方法采用参考文献[1]中提出的改进的卫星共视方法。该方法不使用国际权度局建议的共视跟踪表进行共视观测,而采用连续比对,数据采集与数据处理同时进行,当一个观测周期结束时,马上进入下一个观测周期,中间无间隙,去除了传统共视传递方法中每个观测周期内的观测死时间[1]。经过连续56 h的观测,将两站的时差值对应相减,剔除其中的奇异值后得到比对数据,结果如图10所示,经计算两站该时段内时差最大值为9.89 ns,最小为-9.21 ns,波动约为±10 ns,标准差约为3.63 ns。

图9 零基线共视测试原理图

图10 零基线共视时间比对结果

5 结语

本文基于LEA-M8T单频授时模块完成了一款应用于时间测量领域的接收机设计,给出了系统详细的硬件和软件实现方法。试验结果表明,系统单向授时标准偏差为6.19 ns,零基线共视比对标准偏差为3.63 ns,与传统时间测量接收机相比,该设计成本较低,设计方案简单易行,便于嵌入其他系统。已成功应用于中国科学院国家授时中心远程时间复现终端项目中。

猜你喜欢
串口数据包接收机
二维隐蔽时间信道构建的研究*
GNSS接收机FLASHADC中比较器的设计
浅谈AB PLC串口跟RFID传感器的通讯应用
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
一种宽带低功耗四合一接收机设计
C#串口高效可靠的接收方案设计
一种面向ADS-B的RNSS/RDSS双模接收机设计
数字接收机故障维修与维护
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索