卫星导航系统监测站软件主备机切换设计和实现

2021-05-20 06:55李路程
现代导航 2021年2期
关键词:监测站部件卫星

李 洋,李路程

(中国电子科技集团公司第二十研究所,西安 710068)

0 引言

卫星导航系统通常由空间段、地面控制段和用户段三大部分组成。地面控制段是卫星导航系统的中心纽带和重要组成部分,主要任务是对在轨卫星进行信号收发与观测。地面控制段由管控中心、地面天线、监测站和通信系统组成。其中监测站是卫星导航系统地面控制段的重要组成部分[1-2]。监测站的主要任务是跟踪监测导航信号,接收导航卫星电文,测量监测站相对导航卫星的伪距、载波相位和多普勒等观测数据、导航电文数据和采集监测站周围的气象数据等[3]。监测站将采集到的数据按一定的文件格式进行记录并发送至管控中心,为系统精密定轨、卫星导航信号完好性判断、电离层和对流层修正等导航相关产品的研发提供基础数据。

本文从卫星导航系统监测站的需求出发,提出了监测站软件主备机切换的设计方案,从软件可靠性和实时性的角度论述了主备机切换采用的策略,并详细讨论了其具体实现。

1 软件系统的组成和功能

1.1 软件系统的组成

卫星导航系统监测站软件与各设备连接关系如图1所示。监测站软件采用相应网络通信协议与站内监测接收机、气象设备、铷原子钟和UPS 等设备进行数据通信,后通过卫星通信和互联网络两种方式进行数据传输。

图1 监测站软件与各设备连接关系示意图

1.2 软件系统的功能

监测站软件的设计采用多部件组合方式,单元部件依序实现各自的功能,便于前期的软件开发和后期的维护升级,各部件功能详细如下:

(1)控制指令处理部件对控制指令进行处理,对相应的设备进行控制,并将指令执行结果数据传送至其它部件。

(2)数据预处理部件对各设备发送过来的原始数据进行预处理,包括原始观测数据格式转换、观测数据合理性检验、信号质量监测、数据质量监测、定位精度监视及评估等。

(3)站间数据发送部件将各设备解析后数据、预处理数据和指令执行结果等数据按照站间数据传输格式进行打包发送至管控站。

(4)站间数据接收部件实时接收管控站发送的控制指令和参数,并将这些数据进行解析处理,将解析后数据送往控制指令处理部件进行指令的执行。

(5)站内数据发送部件将各设备原始工况数据、解析后数据和预处理数据等数据按照站内数据传输格式进行打包发送至存储服务器[4];将本机主备机状态数据和本机工作参数数据发送至另一台业务处理机;将设备控制指令发送至相应设备。

(6)站内数据接收部件主要完成接收各设备数据。并将这些原始数据进行解析处理,供其它部件使用。

(7)主备机管理部件对软件的主机备机状态进行管理,包括主备机的判断和切换。

(8)状态显示与参数配置部件对软件的参数进行显示并通过配置文件进行管理。

2 主备机切换设计和实现

卫星导航系统监测站需每天24 小时不间断向管控站发送原始测量数据、导航电文数据以及气象数据等,因此监测站软件运行的可靠性和实时性是系统设计时需要解决的关键技术问题,也是监测站数据稳定传输的保障。

监测站软件采用主备机冗余方式[5],运行在2台服务器上,软件通过串口和网络与另一个软件互发主备机状态信息,通过主备判定策略,动态确定一个软件为主机,另一个为备机。主备机切换图如图2所示。

图2 主备机切换图

2.1 可靠性和实时性

(1)可靠性方面:软件设计采用面向对象的设计方法。首先根据主备机切换需求完成模型的建立,然后根据模型建立三种类型的对象:基于底层应用的类对象、基于用户接口的类对象和基于控制的类对象。类对象之间的数据接口采用统一的数据元素管理,对于公用的如网络通信功能则建立公用类对象,向所有调用者提供统一的接口形式。针对监测站对外接口比较复杂和易变的具体特点,专门抽象出接口类对象,该对象主要处理同外部数据格式的交换。另外,采用对象继承的方式,使所有对象都具备了对自身状态的监视以及工作状态日志的记录功能。通过上述设计,极大地降低了软件功能类对象之间的耦合度,提高了类对象自身的诊断能力,提高了系统的可靠性。

(2)实时性方面:根据主备机切换所需时延指标优化软件多线程之间的优先级顺序以及消息通知机制。首先根据软件各模块的复杂度和处理时间的要求,将监测站的系统时延指标进行分解,确定各处理功能模块的时延指标。根据该时延指标以及数据流的方向,确定各线程的优先级顺序,在数据准备好后采用消息通知机制立即唤醒相关处理线程,从而减少线程的等待时延。

2.2 主备机竞争算法

监测站软件采用主备机的设计方案,主备机的切换过程由软件实现。系统启动后,由于没有事先策略对主备机的切换进行控制,切换需由运行于主备机的软件自行确定,因此主备机切换采用算法是决定其是否能满足系统要求的关键。

监测站软件工作状态中有三种状态:未知状态、主机状态和备机状态。未知状态是指应用软件没有获知自身身份;主机状态与备机状态的功能区别是主机负责向管控站发送预处理结果数据,备机不发送预处理结果数据。状态转换如图3所示。

图3 准备状态调度图

主备机竞争是指在双机冗余情况下,确定系统的处理主机。考虑到监测站系统使用的主备服务器的型号标准和资源配置上是完全一致的,软件环境也是相同的,因此采用主备心跳身份竞争的方法进行主备机的选择。所谓心跳身份竞争就是通过心跳数据包预定给定自己身份后,由程序按照预定的规则算法确定主机与备机。这样可以节省主备机切换的时间,有利于系统快速恢复正常运行状态。

心跳数据块[6]采用监测站内部格式打包后统一发送,格式如表1所示。数据块内容由本机编号、本机主备机身份标识、本机状态、请求切换标识和站设备状态组成。

表1 监测站内部格式

主备机切换流程如图4所示。系统启动后,软件首先将自身身份暂定为未知,通过向对等监测站软件发送主备机心跳数据通知本机已启动,并等待收取对等软件发送的状态信息。如果收到信息并确信对等软件已经处于主机状态,则设置本机为备机状态;如果在一定时延内没有收到对等软件的主备机心跳数据,则认为对等处理机软件身份未知,设置本机为主机状态;当主备机的状态确定后,主备机之间仍然通过互发信息以维持主备机状态;当主机软件故障后,备机软件在一定时延内没有收到主机软件的心跳包数据,则认为主机软件故障,本机软件设置为主机状态,故障的主机软件故障修复并重新启动后,经历未知状态变为备机状态;当备机软件故障后,主机软件身份不变,故障的备机软件故障修复并重新启动后,经历未知状态变为备机状态。

图4 主备机切换流程图

确定后主备机软件后,再通过主备机工作参数进行数据同步。具体内容见2.3 节。

在软件运行过程中,亦可以通过强行切换主备机命令满足特定需求。备机软件更改心跳数据内容中的请求切换标识,主机软件解析数据包后,立即将自身状态更改为备机,同时将变更后的心跳包数据发送,备机软件收到后可立即更改为主机,如图5所示。

图5 主备机强制切换示意图

主备机竞争算法的过程如下:

(1)主备机相互连续发送心跳数据;

(2)两台服务器软件同时启动,且正常运行后,在身份不明时暂定身份均为未知,基于服务器硬件运行差异性,软件在启动过程中存在随机差异,因此两台服务器心跳数据发送时间延迟,存在竞争关系,先收到心跳包的服务器一方将自身身份设置为主机,另一方服务器为备机;

(3)当备机收到主机的状态异常信息或者是连续多次接收不到主机的心跳数据时,备机切换为主机,接管主机的工作,原主机修复后设置为备机;

(4)当主机收到备机的状态异常信息或者是连续多次接收不到本机的心跳数据时,仍然继续正常工作,备机修复后保持备机不变。

2.3 主备机工作参数同步

为保证两台服务器的软件运行状态一致性,需对主备机的工作参数保持同步。主机按照设定频率向备机发送工作参数,当备机与主机工作参数不一致时,需将工作参数进行更新,使备机工作状态与主机一致。当主机进行参数设置时,主机需向备机追加一次参数同步,使备机的工作参数与主机保持一致,流程图如图6所示。

图6 主备机工作参数同步流程图

2.4 测试结果

监测站软件主备切换测试平台采用华为RH2288 服务器,操作系统采用国产中标麒麟系统,软件开发采用Qt5.8.0 版本。

测试结果按照主备软件同时启动,分别启动,一方故障和故障恢复对主备切换的时延性和正确性进行100 次测试,测试结果如图7所示。

图7 监测站软件主备切换测试结果

3 结论

本文论述了卫星导航系统监测站软件的组成,并针对主备切换技术问题的实现进行了详细的分析和讨论,通过主备机竞争算法完成主备机动态切换,经测试准确可行,切换时延满足要求,可作为监测站卫星导航系统相关领域进一步研究和应用的参考。

猜你喜欢
监测站部件卫星
miniSAR遥感卫星
加工中心若干典型失效部件缺陷的改进
静止卫星派
北京市监测站布局差异分析
对辐射环境空气自动监测站系统开展数据化运维的探讨
基于Siemens NX和Sinumerik的铣头部件再制造
部件拆分与对外汉字部件教学
与酷暑奋战的环保英雄——宜兴市环境监测站现场采样组的一天
Puma" suede shoes with a focus on the Product variables
环境监测站计量认证现场评审的常见问题与对策