基于CCSDS RASDS信息对象建模方法的数据注入工具设计

2023-04-03 10:05卢广佑吕良庆张峻巍
航天器工程 2023年1期
关键词:指令标签工具

卢广佑 吕良庆 张峻巍

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

电子数据单(EDS)是为描述一个系统中某种部件实体(如设备、业务等)的信息载体,用于解决在信息传递过程中的部件信息匹配问题,支持即插即用。不同的部件对象会有不同的EDS描述,需要建立专业领域的EDS标准。例如电气与电子工程师协会(IEEE)为实现将各种标准或非标准的变换器接入不同网络,提出了变换器电子数据单(TEDS),并广泛用于地面物联网[1]。出于卫星平台快速集成和测试的需要,美国空军研究实验室(AFRL)在其空间即插即用架构(SPA)中提出使用XML编辑的EDS(xTEDS)来描述部件(传感器、执行器、处理器、路由器、软件应用等)之间的通信接口,包括元素、属性和要描述的内容[2]。空间数据系统咨询委员会(CCSDS)提出了可扩展标记语言的遥测遥控交换标准(XTCE),在国内外的航天工程中得到广泛应用[3-5]。除此之外还提出了航天器接口业务领域(SOIS)的EDS(SEDS)标准[6],以及用于开放档案信息系统(OAIS)系统中信息对象标签的XML格式化数据单元(XFDU)标准等[7]。

EDS工具链是基于某一种EDS标准,结合实际应用场景设计开发的一组支持EDS设计和使用的工具软件。NASA、ESA以及欧洲的众多航天领域的专家学者提出和主导了EDS在航天领域的应用[8],已用于詹姆斯韦伯太空望远镜(JWST)项目、木星冰月探测器(JUICE)等任务的工程实践中。国内对EDS标准也开展了广泛的研究和应用,内容主要集中在对遥测、遥控数据设计的规范化和一致性方面,开发了各自不同的EDS工具[9-11]。

电子数据单描述的客观对象的多样性决定了会有各种不同的信息对象描述,而同样的信息对象又会因部门不同而设计不同的工具,来达到相同的数据描述目的。因此电子数据单的作用主要是起到描述信息对象和在异构系统及其工具之间交换的目的,工具的差异性设计难以避免,数据描述在统一形式的基础上,内容上也会存在差异。为此CCSDS的空间数据系统参考体系架构(RASDS)[12]中的信息视角提供了从抽象数据结构出发,描述信息对象和数据对象的方法。按照这一方法论,可以包容工具和数据描述的差异性,指导设计出各种不同需要的EDS工具,但同时又可以互联互通。本文参照RASDS信息视角的信息对象建模方法,以XTCE遥控数据注入设计工具为例,设计实现了可以支持数据注入指令从模板设计到实例生成,再到可上注指令等转换过程功能的软件工具,以解决跨任务的的数据注入指令重用和管理的问题。

1 抽象数据架构的定义

信息对象到具体数据对象的转化需要遵循一定的建模过程,RASDS从信息视角描述了从抽象数据架构到具体数据对象的转换过程,即对抽象的信息对象进行实例化和个性化的过程[12-13],如图1所示。

图1 信息对象的建模过程Fig.1 Modeling process of information object

数据对象是信息对象的载体。不同的专业领域会有不同的信息对象,而且信息对象会随着系统的每一次状态变化产生不同的数据。数据对象包含元数据和/或信息数据,元数据描述信息对象的语法和语义规则。基于图1,后续的实例化过程将抽象的信息对象转换成数据对象,即数据模型、模板,包含数据结构、顺序逻辑、执行方式等信息,实现“语法”和“语义”上的配置。在设计和使用过程中,根据具体应用场景和不同数据流转的需要,将数值填写到模板中,生成具体的数据文件,供实际使用。上述过程使同一个信息对象可以设计生成各种不同的数据对象,以允许跨任务使用。

2 遥控数据对象的生成方法

结合遥控应用场景和数据注入生成指令的过程,数据注入工具链可分为数据注入模板设计工具、数据注入指令生成工具、数据格式转换工具,如图2所示。

图2 XTCE标准遥控数据对象的生成过程Fig.2 Generation of XTCE standard remote control data object

数据注入模板设计工具用于定义模板结构,支持设计者在设计阶段依据基于可扩展标记语言的遥测遥控信息交换标准模式定义(XTCE Schema)的语法结构[14],将指令需求作为输入,设计数据注入格式。XTCE Schema解决了EDS文件的描述符合XTCE标准的规范化问题,XML语言的采用有助于人机可识别。指令需求可以来自具体任务的接口控制文件(ICD)中规定的指令数据结构,也可以是设计者的按需灵活设计。

设计者使用数据注入模板设计工具自定义配置所需信息。工具通过获取指令需求中规定的数据元素,遍历并检索XTCE Schema中适合的描述标签,调用XML读/写操作函数将数据元素与标签绑定,并按XTCE标准的规则和指令执行逻辑将标签进行序列化,实现指令模板文件的生成,即XTCE模式定义(XSD)文件。

模板文件是包含了XTCE遥控元数据的描述,以及基于这些元数据定义的数据结构。数据注入模板库存放已定义好的模板文件,模板设计工具与模板数据库进行关联(如采用动态链接库(DLL)方式),可对保存的模板文件进行增删改查等管理操作。模板文件可以作为后续数据注入指令生成工具实例化指令的输入,支持应用阶段人工或自动的指令生成过程。

在应用阶段,主要是航天器的在轨飞行运控阶段或地面测试阶段,一般不需要再设计模板,只需选择模板和填入参数的操作。数据注入指令生成工具用于支持这一操作,生成所需要的指令,并保存到数据注入指令库中。使用者也可以通过工具使用数据注入指令库中已有的指令文件,进行局部的修改以生成新的指令。数据库中保存的XML数据注入指令文件是指令包、注入包头和注入包等文件,供数据格式转换工具进行后续的组装和格式转换,生成实际可上注执行的二进制数据注入文件。由于遵循了XTCE元素的约束,数据格式转换工具可以根据不同航天器的指令格式进行转换,从而实现相同的数据注入模板和指令可以跨任务使用。同时也可以进一步支持批量、自动或手动配置生成指令的过程。

3 数据注入模板工具设计

指令设计者使用工具设计指令模板时不一定熟悉XTCE标准,为此工具中涉及XTCE元素的标签应该与XTCE Schema对应,反映在用户界面中,引导指令设计者的填写。在ICD规定的指令数据结构基础上,工具自动将模板内容转化为XTCE的XSD文件,转化过程如图3所示。

图3 生成数据注入模板转化过程Fig.3 Processing flow of generating data injection template

Map集合是一种数据的存储结构[15],使用键-值相互唯一对应的方式操作数据,使得元素和值能一一对应,类似字典功能。图3中使用键-值对的方式将设计者使用工具软件设计的数据保存起来,形成Map集合。集合中的键和XTCE Schema中的标签之间有严格的映射关系,集合中的值就是用户填写的内容,或留空表示仅预留数据格式,用于后续的个性化实现。

XTCE Schema中用于描述遥控元数据的是CommandMetaDataType,包含的元数据按照用途划分:形参类型集合ParameterTypeSet用于定义指令参数的实例化过程;描述Description部分用于定义相关元数据的指令名称、参数排列、数据形式、校验集、指令容器等;实参类型集合ArgumentTypeSet用于将实例化后的遥控指令参数与特定的值绑定,包括具体数据类型、值、范围等。

工具可以识别这些XTCE Schema元素标签,通过遍历XTCE Schema中的标签来获取Map集合中的键,找到匹配的标签和属性,使用文档对象模型(Document object model,DOM)的API将集合中的值绑定到对应位置,形成模板文件的一部分。DOM API是XML文档的编程接口,可以实现对XML文档的树形结构化操作,以树节点对象为基础添加、修改、删除、查找XML文件中的元素[16-17]。

在XTCE的规则下,一个信息对象对应一组空间系统标签,作为整个模板文件的根元素,内部包含目标信息实体的基本描述和相关的指令信息。按照标签所属功能进行划分,定义一条指令需要格式、描述和值3种信息,每种都有对应的元素和属性,且它们的排列顺序是不确定的,例如元素与元素间存在相互包含的树形结构。为此需要将已绑定数据的标签按照一定规则(如逻辑先后、执行顺序等)进行序列化处理排列,形成完整的模板文件。

按照图2所述的应用场景,数据注入工具链软件架构的层次划分如图4所示。

图4 数据注入工具链软件架构Fig.4 Software architecture of data injection tool chain

图4中的架构从上到下分为视图层、应用层、业务层和持久层。视图层是用户直接操作的软件界面。应用层包括数据注入模板定义、指令文件配置、过程文件批量生成和管理等功能,设计者可通过视图层直接看到并操作这些功能。业务层是实现某一功能所需的执行、计算、处理数据的中间过程,支持应用层中的4个功能。持久层是对已生成的文件进行保存和管理,可以与数据库相连接,并提供对各种文件进行增、删、改、查等操作。

4 模板生成实例验证

数据注入指令的设计需要依托任务需求而定,而任务需求是多样化的。为此需要进行任务功能的建模,并在功能模型的基础上再进行数据注入指令的设计。在这一方面,ESA的包应用标准(PUS)作出了很好的实践和总结,通过使用CCSDS的空间包协议,对星载功能进行了标准业务化的提炼和总结,经过近30年的实践,形成了20项标准功能业务,明确了每项业务的数据注入指令格式模板[18]。本文的数据注入模板设计工具按照这一思路,在星载业务模型化的基础上,可以先于任务需求进行数据注入模板的设计。以事件表指令为例(格式定义见表1),对XTCE数据注入模板设计方法进行了使用验证。

表1 数据注入事件表指令格式定义Table 1 Execution mode of data injection instruction

表2是ICD文件中规定的某个事件表指令序列的需求信息。

表2 事件表指令序列Table 2 Event table instruction sequence

将表2的事件表序列分解为名称、类型等信息输入到工具中,将数据绑定到指令标签上。工具按照图3的序列化过程,生成图5所示的内部数据结构。

图5中,标签从左到右是包含关系,序列化的过程就是将用户数据转化为符合XTCE规则和指令执行逻辑的模板结构过程。例如,事件表的例子中,空间系统(SpaceSystem)用于描述一条数据注入指令的基本信息,内容由遥控元数据(TelemetryMetadata)统一管理。形参(Parameter)是设计者定义的参数类型、命名等信息,用于后续个性化过程中与实参对应。实参(Argument)是设计者定义的具体数据格式、逻辑顺序、包装等信息,用于设计者填写所需的参数值。需要说明的是,参数集(ParameterSet)中必须参考形参类型集(ParameterTypeSet)定义好的参数类型,同理,指令包(CommandContainer)和元指令集(MetaCommandSet)中必须参考实参类型集(ArgumentTypeSet)定义好的类型。

在生成图5的标签结构后,工具使用DOM API文件读写操作生成XSD文件,保存到数据库中。XSD文件部分结果如图6所示。

图6中的参数赋值元素(ArgumentAssignment)对应用户可填写的值,可将表2中的指令名称和指令编码分别填写到参数名(argumentName)属性和参数值(argumentValue)属性上,以及其他的个性化填写。数据注入指令模板设计工具模板生成界面如图7所示。

图7 数据注入指令模板设计工具界面Fig.7 Interface of data injection instruction template design tool

由图7可以看出,通过数据注入指令模板设计工具,使用者无需了解XTCE标准和指令编码方式,只需按照型号任务需要定义合适的指令模板,填写参数格式信息,工具自动完成图3的数据转化过程,生成所需的XSD模板文件。随后通过指令包生成工具、二进制转化工具、注入包生成工具完成实际指令的生成,同时该工具软件还将已定义的模板、指令、注入包等文件保存到数据库中,供后续用户增、删、改、查。

数据注入模板设计工具通过某预研课题的研究和测试,基于归纳总结的标准业务模型,按课题要求生成了大量不同数据格式的指令模板(超过上百条)和指令(超过2000条),并且可以继续扩展和积累下去。

5 结束语

本文按照RASDS信息视角描述抽象数据结构及其转化过程的方法,分析了工具应用场景及其划分,按照XTCE标准,采用XML语言和DOM设计方法,开发了数据注入指令模板设计工具,实现了基于工具的、丰富多样的数据注入指令模板设计和指令设计,证明从信息对象到数据模型的实例化转化,再到个性化文件的转化方法是可行的。与传统的文档编辑ICD的方式,以及基于模板填写生成指令的方式(手工或工具)相比,基于RASDS信息对象建模方法所设计的模板设计工具可以有效提高数据注入指令设计的灵活程度,提高各层次用户之间文件传递效率,简化现有数据设计和协调的过程,方便任务期间的指令快速修改和生成,有利于跨任务的指令变更和使用。如果星载业务具有相应灵活解析指令模板的能力,则地面数据注入指令模板设计工具还可以有更大的应用自由度,以应对航天器在轨飞行过程中遇到的突发、异常和未知的情况。RASDS信息视角的描述方法可以指导对各种对象(如航天器上的设备、业务、应用等)制定针对性的建模标准(例如描述设备和业务建模的SEDS标准),解决不同对象的数据化描述、工具设计和系统集成等问题。

猜你喜欢
指令标签工具
听我指令:大催眠术
波比的工具
波比的工具
ARINC661显控指令快速验证方法
准备工具:步骤:
LED照明产品欧盟ErP指令要求解读
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
“巧用”工具
标签化伤害了谁