APP下载

航天器数据定义方法及其工具设计

2024-03-12王彧泽吕良庆何睿

航天器工程 2024年1期
关键词:数据类型数据格式遥测

王彧泽 吕良庆何睿

(1 中国科学院国家空间科学中心 复杂航天系统电子信息技术重点实验室,北京 100190)(2 中国科学院大学,北京 100049)

航天器使用的数据主要有遥测数据、遥控数据和应用数据,按照内容或传输通道又可以进一步划分工程参数、遥测通道数据、数传通道数据、辅助数据、科学数据、上行数据注入等。不同的航天器对这些数据对象的定义不同,通常是通过特定的接口定义和接口控制文件的方式来确定。这样会导致数据在任务过程中不易修改,需要有特定的基础设施进行数据的处理,并在工程过程中进行测试验证。这种做法使得数据的定义难以跨任务复用,即使能够复用,也需要通过校对、测试验证等手段保证其正确性,增大了系统的开发和维护风险[1-2]。

针对这一问题,需要一种通用的方法来描述不同的数据对象。本文采用欧洲空间标准化合作组织(ECSS)的包应用标准(PUS)[3]给出的航天器数据对象从数据类型、数据参数到数据格式的通用定义方法,进行了电子数据单(EDS)实例化设计和工具实现,重点是抽象数据结构的描述[4-5],可以用于定义任意的数据对象。

1 数据定义方法

数据对象的定义需要按照定义抽象数据架构、给出数据对象模板、生成数据对象3个过程进行[6]。信息对象是不同专业领域中的描述对象,表现为所需要素和方法的数据对象构成的抽象数据架构,一般通过描述语言的模式(Schema)定义来实现,例如可扩展标记语言(XML)的Schema。在Schema基础上,对数据对象的实例化描述构成了数据对象模板,然后在实际使用过程中,通过填入数据值,生成最终的数据对象。

描述数据对象的抽象数据架构按照UML类图的画法如图1所示。

在抽象数据架构中,对数据对象的描述分为元数据部分和数据部分。元数据部分包含数据类型,通过包域类型代码(PTC)和包域格式代码(PFC)的组合来定义,说明该数据类型参数的格式和所占空间大小,是后续解析和处理数据对象的主要依据。数据部分包含数据参数和数据格式。数据参数是组成数据格式的最小单元。数据格式由一系列数据参数组成,按照参数是否可重复出现划分为简单数据格式和复杂数据格式。

按照PUS的数据定义方法,采用XML语言设计的通用数据对象Schema如图2所示。

图2 数据对象Schema

图2中定义一个完整的数据对象过程按照定义数据类型、数据参数、简单数据格式、复杂数据格式的顺序进行。在实际使用中,可以通过XML语言的引用机制,按需截取图中的一部分来使用,而不必是完整的。

定义数据类型时采用PUS标准中的PTC和PFC组合来描述。PTC的取值对应表示具体的数据类型。PFC的定义对应PTC的取值,规定了相应数据类型的表示格式和保存空间大小。图2中的标签表示数据类型集合,可以包含多个数据类型,标签中的属性id表示数据类型ID,用于区分通过PTC和PFC定义的不同数据类型,即使PTC是同一个类型值,PFC也可以定义不同的类型格式,如8 bit整型和16 bit整型;属性name描述数据类型的名称,方便使用者阅读理解;属性sizeInBits和属性pfc都是表示类型所占空间大小,但属性sizeInBits更直观地表示了占用的比特数,方便后续使用。

定义数据参数时,需要指明数据参数所引用的数据类型,并且每个参数有且仅有一个数据类型。在之后的数据处理中,需要依据该数据参数的数据类型ID信息(属性PTC和PFC)解析数据参数值。标签表示数据参数集合,可以包含多个数据参数,标签中的属性id表示数据参数ID;属性dataTypeId表示该参数引用的数据类型ID;属性name表示数据参数名称,方便使用者阅读理解。

数据格式又分为简单数据格式和复杂数据格式。简单数据格式由若干不重复的参数组成。标签表示简单数据格式集合,标签中的属性id表示简单数据格式ID;属性name表示简单数据格式名称,方便使用者阅读理解;属性parameterIds中是引用的数据参数ID序列,其排列顺序表示了格式组成,个数由属性parameterCnt定义。

复杂数据格式由若干个可重复的简单数据格式组成。标签表示复杂数据格式集合,标签中的属性id表示复杂数据格式ID;属性name表示复杂数据格式名称,方便使用者阅读理解;属性simpleDataFormatIds中是引用的简单数据格式ID序列,其排列顺序表示了格式组成,个数由属性simpleDataFormatCnt定义,重复出现的简单数据格式的个数按出现的次数计数。

图2复杂数据格式中不直接包含数据参数。如果一个参数要单独出现在复杂数据格式中,也需要先将其定义为简单数据格式,再引用到复杂数据格式中。这样做是为了规范和简化复杂数据格式的定义规则,清晰数据定义的层次关系。

2 数据定义工具设计

数据定义工具依据数据定义方法进行设计,提供给使用者,用于按需设计生成不同的数据对象模板。数据定义工具原理如图3所示。

图3 数据定义工具原理图

图3中每定义一个数据类型、数据参数或数据格式,需要在数据定义库中的相应表中添加一条记录,并生成相应的数据对象模板文件。数据格式的定义会使用到库中已定义的参数,参数的定义会使用到已有的数据类型,以此类推,这一过程允许用户自由定义所需的格式。生成后的模板文件也可以根据需要,按照不同领域的标准进行数据格式转换,从而便于异构系统之间进行数据交换,同时适用于不同领域的数据应用。例如图3中,可以按照CCSDS提出的基于XML的遥测遥控信息交换(XTCE)标准[7-10],转换生成相应的遥测或遥控数据的XTCE文件,按照CCSDS的航天器接口业务(SOIS)[11]电子数据单(SEDS)标准[12],转换生成用于描述设备、业务和应用的EDS文件。

数据定义工具的软件架构采用分层的思想,从上到下分别是视图层、应用层、业务逻辑层和数据定义库,如图4所示。

图4 数据定义工具软件架构图

图4下层向上层提供调用方法,而下层方法的具体实现对上层来说是透明的,使得各个层之间解耦,便于后续软件的扩展与维护。

视图层提供了用户可直接操作的前端界面,用户可以通过界面查看已定义的数据对象信息,定义新的数据对象。

应用层包括数据类型管理、数据参数管理、简单数据格式管理、复杂数据格式管理、模板文件下载等功能,通过界面展示给用户,供用户操作。

业务逻辑层提供了具体的数据处理流程,包括数据对象处理、模板文件解析和模板文件生成等功能。数据对象处理提供对某一具体数据对象的增、删、改、查方法。例如,用户通过前端界面定义了一个数据类型信息,即PTC和PFC的值。数据对象处理功能接收到后,首先实例化一个数据类型对象,为该对象的属性ptc和pfc赋PTC和PFC的值,自动生成数据类型名和数据类型ID,然后将这一条新记录写入数据库的数据类型表中。模板文件解析是解析数据对象Schema的结构。模板文件生成是将已定义的内容填入Schema中,生成模板文件。

最下面一层是数据定义库,存储了数据类型、数据参数、数据格式的信息。

3 数据定义工具验证

以某卫星遥测大纲中的遥测包数据域结构为例,使用数据定义工具进行定义,表1中展示了遥测包数据域的部分内容。表1中的数据组织可视为一个简单数据格式,包含5个参数。这5个参数需要使用两种数据类型描述,分别是8 bit的无符号整型和4 bit的无符号整型。数据定义工具生成的数据对象模板文件如图5所示。图5标签中定义了两种数据类型,供后续部分直接使用。标签中定义了表1中的5个参数,在标签中描述了5个参数的顺序关系,即结构。

表1 遥测包数据域部分内容

根据图2的数据对象Schema生成了图5的数据对象模板后,如果要在某一应用领域中使用的话,可以将已定义好的数据对象模板嵌入该领域的标准Schema中。例如,将其转换为XTCE形式,如图6所示。

图6 转换后XTCE模板文件

图6由上到下,第1个方框内为数据类型信息,第2个方框内为数据参数信息,第3个方框内为数据格式信息。

在XTCE Schema中,以为根元素,根元素中又提供了用于描述遥测数据和遥控指令的子标签;对于遥测包中数据类型、数据参数、数据格式的描述,使用的是标签和它的子标签;标签下有10种描述数据类型的子标签,例如,标签描述整型等;标签用于描述遥测包中的所有参数,并且每一个参数都需要指明其引用的数据类型;标签用于描述遥测包的结构,是一系列容器的集合,可用来描述CCSDS数据包、子帧或其他数据块结构,也可以通过继承已有的容器来描述新的容器。

数据模板的转换需要分析确定数据对象模板中的标签与XTCE Schema标签的对应关系。在数据对象模板文件中,标签与XTCE中标签对应;属性PTC为3表示无符号整型,与XTCE中对应;属性PFC的取值(或者属性sizeInBits)与标签的属性sizeInBits对应;标签与XTCE中标签对应;对应,区别在于引用某一参数时使用的是标签并指明其中的属性parameterRef,引用某一数据格式时使用的是标签的属性containerRef。

4 方法应用范围

PUS标准给出的数据定义方法和相应的数据定义工具可以用于地面研制过程中的设计和测试工作。在设计工作中,使用数据定义工具允许更加灵活地设计新的数据类型、参数和数据格式,方便对数据对象的增、删、改、查,相比于传统的接口控制文件方式可以提高工作效率。在测试工作中,可以将数据定义工具及其数据定义结果加入测试系统中,方便数据的测试对比分析,以及更改的追踪。在跨任务使用时,相同的数据类型、格式不需要重复定义,在建立可靠的追踪关系下,可以直接复用,从而节省了部分校对和测试验证工作。相应的测试系统设施只需要按照某种标准进行数据转换,就可以实现系统设施的复用。

数据定义工具可以单独使用,生成符合图2数据对象Schema描述的数据对象模板文件。在将其应用到某一特定领域时,还需要结合该领域的标准Schema进行转换,完成领域的数据对象定义,例如前面提到的CCSDS的XTCE标准和SEDS标准描述的遥测、遥控和设备的数据信息。按照同样的道理,只要某一应用领域也有相应的应用数据模型的定义标准,数据定义工具也可以用于应用数据的定义,从而扩大了数据定义工具的应用领域范围。

PUS标准已经定义了12种数据类型。在此基础上,数据定义工具可以在这12种数据类型中定义所需要的各种细化数据类型,也可以将成熟的数据格式组合定义为新的数据类型,实现越来越复杂的数据类型和格式的增量式定义和开发,以应对越来越复杂、多样、灵活的数据描述需求。

5 结束语

本文在PUS标准提出的数据定义方法基础上,分析了数据对象的构成,包括数据对象的元数据部分(数据类型)和数据部分(数据参数和数据格式),提出了通用的数据对象Schema,设计实现了相应的生成数据对象模板的数据定义工具,支持对数据类型、数据参数和数据格式的灵活定义、查找、删除和修改。数据定义方法及其工具可以更快速、高效地定义不同的数据对象,支持数据对象的重用。数据对象模板通过明确与所属的领域数据标准Schema标签对应关系,即可以继承使用数据格式,而不用再另外开发相应的软件。

猜你喜欢

数据类型数据格式遥测
详谈Java中的基本数据类型与引用数据类型
如何理解数据结构中的抽象数据类型
自适应模糊PID控制的遥测方舱温度调节方法
某小型无人机遥测软件设计
在智能交通系统中PLC数据格式转换方法的研究
基于SeisBase模型的地震勘探成果数据管理系统设计
浅谈如何提高遥测状态估计合格率
论子函数在C语言数据格式输出中的应用
DWG与SHP数据格式互转换方法研究——以龙岩规划测绘数据为例
利用VBA处理邻近气象站的相关遥测数据