航天系统测控数据包含各航天单位之间的通信数据、测量船和陆上测站测控设备的设备数据和飞行器遥测数据等. 他们采用相同的数据协议封装, 但是其数据域的组成格式却灵活多变, 多达上百种数据组成格式. 不同类型数据格式需要不同的处理方法进行解算, 因此影响了整体的处理效率. 为了实现高效快速处理各类测控数据的目的, 需要指显数据处理系统能够针对不同数据格式采用通用的处理模型进行处理, 从而保证数据处理的正确、可靠[1]和高效.
2 航天系统测控数据描述航天系统测控数据为了方便传输、处理和解析, 采用了固定的PDXP数据协议, 该协议是基于TCP/IP协议模型分层结构定义的应用层数据交换协议, 通信双方以结构化数据包的形式采用数据主动推送方式进行数据交换. 该协议数据由固定字节的包头数据和不定长度的数据域组成, 其中包头数据包含该类数据的版本、数据标识、时标和数据域长度等信息, 而数据域则承担需要传输的各类有效数据.
PDXP协议的数据域由各种类型参数字段组成, 不同参数字段有特定的数据长度和数据类型, 描述了不同的状态含义, PDXP协议对字段内容进行编码组成完整的PDXP包, 传输接收端获取到数据字段的源码之后进行解算得到其代表的状态含义, 实现对航天器的测量监控. 通常情况下, 不同的数据字段采用顺序串联方式合并组成PDXP包, 但是也存在某些数据格式采用比较复杂的组合模式, 增加了解算的复杂度.
3 模块化字节流模型模块化字节流模型适用于PDXP包中的常规格式数据, 即采用顺序串联方式按一定规则对数据字段进行组合, 解算时使用字节流对数据字段进行定义, 然后根据设计好的模块组合进行套用解析.
3.1 模块化字节流模型结构模块化字节流模型的静态结构类似树形结构, 具有层次定义、逐层派生的特点[2]. 最顶层是模型的抽象类, 作为各个子字节流模块的基类, 子字节流模块由此直接或间接派生. 子字节流模块分为两大类: 字段模块和组合模块. 字段模块描述一个基本字节序列, 可直接完成处理. 组合模块描述一个组合字节序列, 无法直接处理, 需进一步分解成多个字段模块进行处理, 然后将处理结果进行组合.
对航天测控数据进行描述时, 首先使用组合模块搭建框架, 继而根据数据特点, 嵌套加入合适的字段模块或组合模块, 如图1, 如果加入的是组合模块则该模块仍由特定的字段模块组成. 这种灵活可扩展的嵌套方式[3]使得模型具有强大的描述处理能力.
3.2 模块化字节流模型动态处理软件系统运行时, 首先根据PDXP协议格式获取数据域, 然后由模块化字节流模型搭建框架对数据域进行分解, 组合模块定义了所属子模块的处理顺序, 根据该顺序可调用其子模块依次完成处理. 各个子模块根据地址属性从数据域中获取对应数据源码, 若子模块仍然是组合模块, 则继续对其进行分解, 调用所属子模块进行解析; 若子模块为字段模块, 则调用其字段方法属性完成解算, 获取字段数据所代表的值、状态等含义. 由此可见, 上述子模块的处理过程均可递归进行.
4 遥测数据处理模型 4.1 遥测数据结构分析航天系统测控数据中的飞行器遥测数据的结构不同于常规PDXP数据, 可针对不同任务需求灵活选择组成. 其整体结构由遥测帧-遥测信道-遥测源包-遥测参数的组织方式构成. 目前常见的遥测数据格式分为以下几类:
(1) 主副帧遥测. 这类遥测数据的特点是采用固定主交换子+分频副交换子方式下传参数, 不同方式定义了不同的传输频率, 同时采用双计数格式, 即同时使用帧计数和格式计数两种计数[4]. 这种遥测数据的参数处理需要使用关键字依赖, 即以帧计数和格式计数作为依赖参数, 其他遥测参数依赖它们的解算结果作为判断条件进行解算.
(2) 分包遥测. 这类遥测数据的特点是以分包的方式对数据进行分层动态管理[5]. 要处理该类遥测数据, 需要定义遥测信道, 并绑定分包协议, 在处理该信道中遥测参数时, 先解复用还原出遥测源包, 遥测参数根据源包号匹配, 再对源包字节流进行寻址即可. 其中遥测信道支持虚拟信道模式, 即信道需设计一个虚拟信道表, 可以支持多个不同分包协议, 并定义虚拟信道号字节比特偏移量. 不同虚拟信道根据虚拟信道号进行识别匹配.
(3) 混合帧遥测. 该类星遥的特点是存在两种帧格式定义, 实时帧定义与数据段帧定义, 每种帧定义又分为几种格式[6]. 这种星遥的格式通过组合依赖一些关键参数来区别不同格式下的具体参数, 同时可能利用被依赖参数的解算结果进行再处理来解算其他遥测参数.
4.2 遥测数据处理模型搭建为了建立适应不同结构的遥测数据处理模型, 我们分别定义了遥测帧框架、遥测信道、遥测处理环境、遥测协议、遥测源包、遥测参数、遥测关键字和遥测参数处理方法等元素对遥测数据格式进行描述. 遥测数据处理模型结构如图2所示. 其中遥测帧对传输的实际遥测数据字节序列进行描述, 为多种平台不同格式遥测数据搭建了解算的整体框架. 框架包含遥测信道、遥测参数、遥测关键字等遥测元素和遥测环境, 其中遥测信道和遥测参数共同构成分包遥测格式, 遥测参数和遥测关键字共同构成主副帧和混合帧遥测格式, 遥测环境则保存了遥测数据处理全过程中的所有动态数据信息.
遥测信道描述了遥测数据帧中一些特殊的字节部分, 这些字节作为一个整体构成信道, 处理时必须把信道中传输的数据收完整了之后才可进行. 信道支持虚拟传输模式, 即把一个信道从逻辑上复用为N个“虚拟信道”, 每次给一个“虚拟信道”使用, 各个虚拟信道是完全相同的, 只是可以用来传输不同分包协议的源包[7]. 信道内遥测参数的寻址是相对于源包的, 参数地址中的PacketTag属性保存了该地址对应所属的分包号, 继而可从该分包中进行寻址获取字节源码. 遥测参数处理方法用于对遥测参数源码进行处理[8], 实现从二进制源码到数字量、模拟量、温度量和电压电平量的转换. 遥测参数可有多个处理方法, 顺序执行, 后面的处理方法可以使用前面方法的处理结果, 每一个处理方法的处理结果都可以作为遥测参数结果返回, 从而可适应灵活复杂的参数特性.
4.3 遥测数据模型动态处理 4.3.1 遥测信道处理根据遥测数据处理模型结构对接收到的实时遥测帧进行分层处理, 每个遥测信道依据对应遥测协议对数据域进行分解复用, 还原出待处理源包或子帧字节流, 保存在对应的遥测处理环境中, 等待下一步遥测参数提取对应源码. 遥测信道动态处理流程如图3所示.
4.3.2 遥测参数处理
对配置的遥测参数列表进行静态编译, 根据参数依赖关系调整列表中的参数顺序[9], 根据顺序顺次调用遥测参数处理方法进行处理, 对于处理成功的参数, 将值加入遥测处理环境中, 对于处理失败的参数加入待扫描列表, 等待下次循环扫描处理. 对于每个参数的处理, 首先进行关键字依赖条件判断, 如满足条件则获取该遥测参数对应的源包或子帧字节流, 接着根据地址完成寻址、方法处理等后续工作. 遥测参数动态处理流程如图4所示.
5 测试验证
在实践应用中, 通常使用帧处理速度和时间延迟来测试数据处理的性能. 测试采用某次重要航天试验任务数据作为测试对象, 在相同硬件环境中分别使用应用了模块化字节流模型和遥测数据处理模型的数据处理软件系统和未使用上述模型的旧版处理软件系统进行处理解算, 测试过程模拟任务场景发送任务数据, 记录数据处理解算的最大帧处理速度和每帧数据平均时延. 试验结果如表1所示.
根据测试结果可知, 采用了模块化字节流模型和遥测数据处理模型以后, 最大帧处理速度有所提升, 而每帧数据平均时间延迟则有所降低, 说明上述模型在任务过程中提高了数据处理的性能和效率. 此外, 上述模型能够适应数据格式灵活多变的特点, 避免了旧版软件系统针对不同任务数据格式变化而花费大量维护准备时间的情况.
6 结束语针对航天测控数据格式灵活多变、层次嵌套的特点, 本文论述了设计的模块化字节流模型和遥测数据处理模型, 经实验表明, 该设计模型表述能力及通用性较好, 具有一定程度的灵活性及扩展性; 能较好地适应各类任务的数据格式处理需求; 可提升指显数据处理软件系统中的复杂数据格式能力和效率.
[1] |
彭四伟, 朱群雄. 形式化描述驱动的数据帧解析与处理. 计算机工程与应用, 2006, 42(5): 179-181, 212. |
[2] |
施斌, 薛倡新, 王华, 等. 字节流对象模型的设计和应用. 火力与指挥控制, 2015, 40(1): 163-166. |
[3] |
夏明忠, 夏以轩, 李兵元. 软件模块化设计和模块化管理. 中国信息界, 2012(11): 56-59. |
[4] |
杨仁宝, 祝转民, 孟宪贵, 等. 组件化遥测处理方法的设计与实现. 测试技术学报, 2010, 24(4): 299-303. |
[5] |
国防科学技术工业委员会. GJB 1198.6-91卫星测控和数据管理分包遥测. 1992.
|
[6] |
王向晖, 王同恒, 李宁宁, 等. 一种AOS遥测源包多路调度算法. 航天器工程, 2011, 20(5): 83-87. |
[7] |
杜国明, 陈逢田. CCSDS遥测包处理分析. 航天器工程, 2007, 16(5): 110-114. |
[8] |
马苗, 朱岩. 基于CCSDS标准的卫星数据处理软件设计. 电子设计工程, 2015, 23(1): 16-20. |
[9] |
杜冬梅. 航天器CCSDS遥测数据包处理方法研究. 电讯技术, 2007, 47(2): 176-180. |