APP下载

多通道-协议模型的设计和应用

2018-06-13鲍俊雷

火力与指挥控制 2018年5期
关键词:数据格式嵌套遥测

施 斌,王 华,鲍俊雷,李 阳,李 磊

(中国卫星海上测控部,江苏 江阴 214431)

0 引言

航天器遥测[1](简称星遥)数据处理是航天试验任务数据处理领域中复杂程度最高的问题。星遥数据格式复杂多样,不同航天器和卫星平台的数据格式定义均不相同,大致包括主副帧格式、分包格式、混合帧格式、循环计数格式等类别,且随着新平台的出现不断增加,经常出现需要跨帧处理的各种层次嵌套子格式,参数间存在复杂的依赖关系。现有任务软件的星遥数据处理模型是基于“帧-字段”组织的,帧格式通过设计不同的星遥帧处理方法进行描述,其下的每个字段对应描述具体参数格式。这种模型,存在以下问题:

1)单一星遥帧处理方法[2-4]的描述能力有限,无法适应星遥格式中需要跨帧处理的各种层次嵌套子格式;

2)无法有效描述参数间的复杂依赖关系;

3)模型的通用性、扩展性较差,新的数据格式变化(即使很小的变化)也需要重新设计帧处理方法,导致软件代码频繁更动。

因此,现有基于“帧-字段”组织结构的星遥数据处理模型难以适应高密度试验任务下星遥数据格式频繁变化的实际情况,急需设计一种描述能力更强、通用性更好的星遥数据处理模型,解决需跨帧处理的层次嵌套子格式描述和参数依赖问题。

1 模型设计

1.1 参数依赖处理设计

星遥参数间依赖关系错综复杂,大致可以分为两类:关键字依赖和方法依赖。关键字依赖,是指某些参数的有效性需要以某个参数(即关键字参数)的处理结果为前提。方法依赖,是指某个参数的计算处理方法需要某些参数的处理结果。实际的星遥参数依赖关系可能是这样的:某个参数依赖其他参数,而其自身也被其他参数依赖,依赖关系可能是其中一种或两种兼而有之。

显然,被依赖参数应该优先处理出来,其他参数才能处理成功。因此,星遥参数的处理并不是顺序的或随机的,应该根据实际参数间依赖关系调整形成一种优先级顺序。

1.2 数据通道设计

一些复杂星遥格式中存在需跨帧处理的层次嵌套子格式,这些子格式的特点是需要根据某种格式定义解复用还原为完整数据格式字节流。因此,定义了数据通道(Channel)和数据协议(Protocol)的概念。数据通道描述了一段待处理的字节流,数据协议描述了所属数据通道的格式定义,通道依据协议对待处理字节流完成解复用处理,还原出完整格式字节流(源包或子帧)。

1.3 MCP模型设计

多通道-协议(Multi-Channel-Protocol,简称MCP)模型是基于多通道协议的数据模型,其针对星遥数据格式的以下特点:格式中包含若干对象;每个对象可能是星遥参数,也可能是待处理的子格式(即数据通道),这样的划分可以递归嵌套下去。因此,本文基于Composite模式[5-6]定义了XYItem结构描述星遥数据格式的静态结构,符合层次定义、逐层派生的特点。

最顶层的是作为基类的XYItem抽象类,具体类包括 XYParameter和 XYChannel,XYParameter是星遥参数,XYChannel是星遥数据通道。XYChannel既可以包含XYChannel,也可以包含XYParameter,XYParameter是基本单元,不可再分。XYItem类层次结构如图1所示。

图1 XYItem类图

运行时构建的动态结构是树形结构,顶层是一个描述整体字节流的XYChannel,其下包括了多个子XYItem对象。如果子XYItem对象是XYParameter,则不可再分,属于“树叶”节点;如果子XYItem对象是XYChannel,则进一步递归分解,属于“树枝”节点,最终分解到XYParameter为止。

描述一种星遥格式时,只需构建所有的XYChannel对象和XYParameter对象描述需跨帧处理的子格式字节流和星遥参数,每个XYChannel对象“挂载”描述子格式协议逻辑的XYProtocol(即数据协议)对象,每个XYChannel对象下“挂载”需处理的XYParameter对象或者XYChannel对象,由于递归性,自然形成XYItem树。当新的星遥格式出现后,仅需要实现其中新的子格式协议逻辑就可以完成扩展。

2 MCP模型在航天任务数据处理软件中的应用

在航天任务数据处理软件的实现过程中,关键难点即星遥数据处理。实际上,星遥数据处理并不是简单的顺序处理,而是复杂的状态机,为确保星遥处理的准确和高效,采用以下机制:首先,星遥数据格式由通用的XYItem树进行描述;然后,静态处理,根据星遥参数间的依赖关系优先级;最后动态处理,完成通道处理和参数循环扫描处理。通过以上机制可以适应各种类型的星遥数据格式处理,彻底解决需跨帧处理的各种层次嵌套子格式描述和星遥参数依赖问题,模型的通用性、扩展性很强。

本节以具有广泛研究和应用[7-8]的基于AOS体制[9-10]的分包遥测格式[11]为例,说明 MCP 模型在航天任务数据处理软件中是如何具体应用的。

2.1 数据格式定义

某型号航天器的星遥数据格式属于典型的分包遥测格式,存在复杂的多路数据复用,其数据域的格式定义如表1所示。

表1 分包遥测格式定义

表1中,VID标识多路复用的虚拟信道(VC1、VC2…),0x01表示 VC1,0x02表示 VC2…,插入域中均是固定状态参数,数据域的定义根据虚拟信道不同分为两种:VC1情况下,长度为m字节的固定数据和n字节的变化数据,变化数据根据多路复用协议(各种PK源包字节流首尾拼接连续置入,未传完可在同一虚拟信道跨帧传送)解复用,源包种类为PK10、PK11和PK12;非VC1情况下,长度为m+n字节的变化数据,同样根据多路复用协议解复用,源包种类为除PK10、PK11和PK12以外的其他源包。

表2中,定义了需挑点处理的星遥参数,其中P3、P4、P5、P6和P7是需要解复用后处理的源包参数,参数 P2、P3、P4、P5、P6 和 P7 均依赖 VID 判断所属虚拟信道(关键字依赖),P2、P3、P6和P7的处理方法均依赖P4和P5的值(方法依赖)。

2.2 数据的XYItem树结构

根据2.1节的定义,可以构建出XYItem树结构,如图2所示:

表2 遥测挑点参数表

图2 数据的XYItem树结构图

顶层的XYChannel表示整个星遥数据,第2层的 3 个 XYParameter分别对应参数 VID、P1、P2,2个XYChannel分别对应VC1和VC2的多路复用数据域,第3层分别对应VC1中的参数P3以及VC2中参数P4、P5、P6和P7。为方便起见,以下直接用参数代号指代对应的XYParameter对象。其中,VID配置关键字标识,P2、P3、P4、P5、P6 和 P7 均配置关键字依赖VID,P2、P3、P6和P7均在处理方法中配置P4和P5。顶层的XYChannel配置为空协议,VC1和VC2的复用数据域的XYChannel分别配置多路复用协议。

2.3 数据的静态处理

在预处理时,需要根据星遥参数间的依赖关系优先级进行静态处理调序,遵循被依赖参数在前、依赖其他参数的参数在后的原则,形成一个优化的参数处理顺序,以提升后续动态处理的效率。

遍历整个XYItem树,提取所有的XYParameter形成列表,对XYParameter列表先按关键字依赖排序,然后再按方法外部依赖排序,最后输出排序后的XYParameter列表,具体过程如图3所示。

构建XYItem树的同时,根据XYChannel在XYItem树中的层次关系可构建出XYChannel树,方便后续动态处理。

图3 静态处理流程图

2.4 数据的动态处理

虽然理论上通过静态处理完成了参数的全局排序,一般情况下参数的依赖关系已经调整好,但运行时处理过程中可能存在部分参数因未满足约束条件而暂未处理出来的情况,实际的参数处理顺序还需根据参数状态进行动态修正,因此,采用通道处理和参数循环扫描处理相结合的思路进行动态处理。在运行时,分两步完成处理。

第1步,通道处理。根据XYChannel树对一帧星遥数据进行分层处理,每个通道均依据协议解复用处理并还原出完整格式字节流,保存在对应的XYChannel对象中,处理过程如下页图4所示。

图4 通道处理过程图

实时星遥数据的不同导致的通道处理结果也不同,大致可以分为以下4类:

1)如果VID值为0x01,仅VC1通道有效且源包拼装完整,那么通道A输出全帧星遥数据字节流,通道B无输出,通道C输出PK10和PK11源包字节流;

2)如果VID值为0x01,仅VC1通道有效且源包拼装不完整,那么通道A输出全帧星遥数据字节流,通道B和C无输出;

3)如果VID值为0x02,仅VC2通道有效且源包拼装完整,那么通道A输出全帧星遥数据字节流,通道B输出PK1、PK2和PK4源包字节流,通道C无输出;

4)如果VID值为0x02,仅VC2通道有效且源包拼装不完整,那么通道A输出全帧星遥数据字节流,通道B和C无输出。

第2步,参数循环扫描处理。对静态处理后的参数列表进行循环扫描,对于处理成功的参数,将处理结果加入XYContext(全局结构)中记录,对于处理失败的参数等待下次扫描处理,直到参数列表为空或达到循环次数阈值,循环扫描停止。

实时星遥参数的处理结果大致可以分为两种情况:

1)参数是非源包参数。首先判断是否满足关键字依赖条件,如不满足则处理失败,否则继续检查是否满足方法依赖条件,依赖不满足则处理失败,如满足则处理成功。

2)参数是源包参数。首先判断是否满足关键字依赖条件,如不满足则处理失败,否则继续检查所属源包拼装是否完整,如不完整则处理失败,如完整再检查是否满足方法依赖条件,如不满足则处理失败,如满足则处理成功。

整体处理流程如图5所示,图5中的参数处理具体流程如下页图6所示。

图5 循环扫描处理流程图

3 结论

针对任务星遥数据格式存在需跨帧处理的层次嵌套子格式、复杂参数依赖和变化频繁的特点,本文设计了多通道-协议(MCP)模型,具有描述能力强、通用性和扩展性好的优点。该模型在航天任务数据处理软件中得到了应用。通过应用该模型,有效描述了各类任务星遥数据格式,通过静态处理和动态处理相结合的机制充分利用了参数间依赖关系,高效实现了星遥数据处理,解决了需跨帧处理的层次嵌套子格式描述和星遥参数依赖问题。

图6 参数处理流程图

[1]谭维炽,顾莹琦.空间数据系统[M].北京:中国科学技术出版社,2004.

[2]杨仁宝,祝转民,孟宪贵,等.组件化遥测处理方法的设计与实现[J].测试技术学报,2010,24(4):299-303.

[3]杜国明,陈逢田.CCSDS遥测包处理分析[J].航天器工程,2007,16(5):110-114.

[4]杜冬梅.航天器CCSDS遥测数据包处理方法研究[J].电讯技术,2007,47(2):176-180.

[5]GAMMA E,HELM R,JOHNSON R,et al.设计模式:可复用面向对象软件的基础(双语版)[M].北京:机械工业出版社,2007.

[6]阎宏.Java与模式[M].北京:电子工业出版社,2002:409-419.

[7]范颖婷,朱振华,王军旗.CCSDS分包遥测在某卫星型号中的应用[J].飞行器测控学报,2012,31(S1):77-80.

[8]王琦,汪勃,吴斌.CCSDS建议在某新型航天器测控中的应用[J].飞行器测控学报,2011,30(S1):77-80.

[9]CCSDS.Advanced orbiting system,networks and data links:architectural specification,CCSDS 701.0-B-3[S].Reston,VA:CCSDS,Blue Book,2001.

[10]CCSDS.AOS space data link protocol,CCSDS 732.0-B-1[S].Reston,VA:CCSDS,Blue Book,2003.

[11]CCSDS.Packet Telemetry,CCSDS 102.0-B-5[S].Boulder,Colorado:CCSDS,Blue Book.Issue 5,2000.

猜你喜欢

数据格式嵌套遥测
前馈复合控制在提高遥测跟踪性能中的应用
兼具高自由度低互耦的间距约束稀疏阵列设计
远程控制式遥测地面站关键技术研究
基于WPF的遥测CAS信息实时监控系统设计开发
自适应模糊PID控制的遥测方舱温度调节方法
MIT—BIH心率失常数据库的识读
论电影嵌套式结构的内涵与类型
嵌套交易如何实现逆市盈利
基于RFID的户外广告监管系统的设计与实现
一种融合多业务的信息化系统框架研究