周勇吉 吕良庆 白云飞
(1 中国科学院国家空间科学中心,北京 101499)
(2 中国科学院大学,北京 101408)
随着空间组网技术的发展,在星载系统中需实现部件的即插即用技术,因此需要在异构系统间进行信息的传递,实现互联互通。电子数据单(Electronic Data Sheet,EDS)是某个系统中一个部件的自描述信息载体,是异构系统间传递信息的一种标准化数据格式,可以解决在信息传递过程中存在的数据标准、格式不统一的问题[1]。EDS一般采用可扩展标记语言(EXtensible Markup Language,XML)来描述,在互联网通信及传感器方面已经得到了广泛的应用。国际空间数据系统咨询委员会(Consultative Committee for Space Data Systems,CCSDS)提出了两个与EDS 相关的标准,分别是XML描述的遥测遥控数据交换(XML Telemetric and Command Exchange,XTCE)[2-4]和航天器星载接口(SOIS)业务电子数据单(SOIS Electronic Data Sheet,SEDS)[5],XTCE用于描述在地面测试、设计系统间及星地之间传递的遥测遥控数据,SEDS用于描述星载设备及其接口关系。
EDS工具链[1]指的是基于一个标准的数据对象和应用场景而设计开发的一组EDS工具,可以实现该数据对象EDS 数据文件的自动编辑和转换。因此,对于不同的标准和数据对象,应结合应用场景设计开发不同的EDS工具链。EDS工具链可以设计编辑模板格式,自动生成实例文件及二进制文件,用于异构系统间数据的无缝传递[6],本文中异构系统指的是不同的机构组织按照自身的需要设计的数据系统。国内外对XTCE 遥测遥控数据的模板文件格式进行了分析与设计[7-11],其可作为对应EDS工具链的起始数据文件。设计了基于XTCE 的遥测数据处理软件架构[12-13]和遥控指令生成系统[14],可实现对应数据对象的EDS工具链基本功能。此外,还设计了基于SEDS的设备数据解析工具[6],实现实例文件到二进制文件的自动转换。由于目前的EDS工具是基于一个数据对象独立开发的,没有考虑不同数据对象的EDS工具之间的关系,导致EDS工具不易扩展和重用。另外,EDS工具可能只实现了数据文件转换的一部分过程,导致某些EDS数据文件不能自动生成,需要手动填写,给用户使用带来困难。
为了解决上述问题,本文提出了一种EDS工具链的设计思路和架构模型,可以结合应用场景实现对应数据对象的EDS数据文件自动转换的功能,并具有一定的通用性,不同标准、不同数据对象的EDS工具链都可基于此架构进行设计开发。以SEDS标准的1533B 数据总线为实例,对工具链架构设计进行验证。本文为了解决业务和应用之间接口信息及其关系的描述问题,在SEDS基础上提出了航天器业务电子数据单(Service-SEDS,S-SEDS)的概念并设计其元素结构,可使用本文提出的通用架构设计其EDS工具链。
对于符合XTCE标准的遥测数据,其工具链可将卫星设计阶段、地面测试阶段或在轨运行阶段的源数据,打包形成统一格式的遥测数据实例文件,在各个异构系统间进行无缝的信息传递。通过在异构系统间规范EDS数据文件的标准和格式,就可以在不改变原有系统设计的情况下传递数据对象的信息[6]。结合XTCE 遥测数据的应用场景,基于XTCE 标准的遥测数据数据流转换关系如图1所示。
图1 基于XTCE标准的遥测数据数据流Fig.1 Telemetry data stream based on XTCE standard
遥测数据通常由包头、副导头、数据组成遥测数据包[2-4]。在进行模板文件设计时,为了通用起见,将包头、副导头与数据内容分成不同的模板文件。在设计好各自部分的组成结构后再进行合成,形成一个模板文件。将在卫星测试或在轨运行期间获得的数据填入模板文件中,生成实例文件[7]。
对于符合XTCE标准的遥控数据,其工具链可根据用户填写的遥控指令参数数据,由模板文件生成指令文件,提供给测试系统或运控系统用于指令的上行注入。结合XTCE遥控数据的应用场景,基于XTCE标准的遥控数据数据流关系如图2所示。
图2 基于XTCE标准的遥控数据数据流Fig.2 Command data stream based on XTCE standard
数据注入指令通常由指令包头、指令副导头、指令数据组成指令包[2-4]。在上行遥控注入的时候,需要将多个指令包组装到数据注入包中。因此,在进行模板文件设计时,需要将指令包头、指令副导头、指令数据、注入包头、注入副导头单独编辑成不同的模板文件。在卫星测试和在轨运行期间需要使用时,可进行编辑,填入指令所需的参数数值,生成指令实例文件。当所有指令实例文件生成后,由于需要组成数据注入包,因此需要将它们都转换成二进制格式,再进行组包,形成可以直接上行注入的数据注入包。
不同的EDS工具链描述的数据对象和应用场景也不同,可按照对应数据对象的数据流转换各阶段对EDS工具链进行功能划分,对各部分工具进行开发,有利于工具链的扩展和工具的重用,可以结合应用场景选择组合各部分工具。
因此,基于上述介绍的XTCE 遥测数据和遥控数据的数据流关系,对其各自的工具链划分和应用背景总结见表1。
表1 基于XTCE标准的工具链划分Table 1 Tool chain based on XTCE standard
SEDS标准主要用于描述星载设备接口信息及其关系,SEDS标准的元素结构如图3所示[5],描述了设备接口的元素组成格式。
图3中包元素描述了一组接口信息和对应的组件信息及其数据类型,设备元素通过其下的元数据元素对包中定义信息再组合成模板文件,进一步可以对参数信息赋值,组成完整的描述设备接口的实例文件。
图3 SEDS标准元素结构图Fig.3 SEDS element structure
接口元素中包含了参数、指令、已有接口的引用,以及对其他接口类型泛型的定义,可以根据需要使用不同的基本数据类型、数组、容器等来定义多样的信息类型,如复杂的数据总线、机、电、热等接口。
对于符合SEDS标准的星上设备数据,其工具链可以设计编辑模板格式,根据用户填写的参数数据,生成实例文件,当互联双方是对等机构组织设计的系统时,实例文件是对外表达的自描述信息,其作用类似于个人名片,用来在异构系统之间交换设备接口信息[6]。工具链还可以实现实例文件到二进制文件的自动转换,再将二进制文件固化到星上设备中,当设备接入系统时,在即插即用协议基础上,标准和格式统一化的二进制文件作为数据内容在星上设备间、设备与系统间交换传输,有助于实现设备的即插即用技术。结合SEDS设备接口数据的应用场景,基于SEDS标准的一般性通用设备接口数据数据流关系如图4所示。
图4 基于SEDS标准的设备接口数据数据流Fig.4 Device interface data stream based on SEDS
设备接口数据通常由包头、副导头、数据组成设备接口数据包,也可以不使用数据包的形式,直接采用数据描述。在进行模板文件设计时,为了通用起见,将包头、副导头与数据内容分成不同的模板文件,再进行合成,形成一个模板文件,此时包头和副导头部分是可选的。根据填入的设备接口参数数值,生成实例文件,再根据设备的不同选择是否转换成二进制文件,形成可以直接配置在设备中的数据文件。
基于上述介绍的SEDS设备接口数据的数据流关系,对其工具链的划分和应用背景总结见表2。
表2 基于SEDS标准的工具链划分Table 2 Tool chain based on SEDS
航天器系统的组成部件在概念上可分为设备、业务、应用,它们可以有各自独立的EDS,也可以相互关联[15]。业务部件可以包括包标准(Packet Utilization Standard,PUS)中规定的标准业务类型[16]。因此,在设备接口的基础上,为了描述星载航天器业务接口及其关系的信息,主要针对PUS中的业务,以SEDS标准为基础补充设计了S-SEDS,其元素结构见图5。
图5 S-SEDS标准元素结构图Fig.5 S-SEDS element structure
S-SEDS是对业务信息的实例化,提供了一种业务间信息交换传递的方法,在内容上包括数据和方法,即业务接口信息和行为。SEDS是从信息视角描述了设备的接口对象信息,如数据格式、语义语法的定义等。S-SEDS是从功能视角描述了业务的接口对象的处理信息,如数据处理的方法和功能的定义。
对比SEDS,S-SEDS主要有两处修改:①用业务元素替换设备元素;②用子业务元素替换了组件元素,并在其中增加了对业务接口可提供的行为和所需要的行为信息的描述。
按照前文所述的EDS 工具链设计思路,S-SEDS工具链的数据流转换关系和工具链功能划分情况与SEDS 相同,详见2.2 节的图4 和表2。S-SEDS的业务接口信息的应用场景,与SEDS的设备接口信息相比,设备接口信息一般相对固定,而业务信息的变化会更频繁一些,二者对工具链的使用需求不太相同,但整体思路类似。
S-SEDS中业务元素与SEDS中设备元素描述和使用方法相同,其差别在于描述的数据对象不同,都可以对数据对象的参数进行实例化赋值。
S-SEDS中子业务元素中包括提供行为元素、所需行为元素、提供接口元素和所需接口元素。SEDS中组件元素描述的状态机和行为可作为S-SEDS中提供行为元素描述的内容,而其他三个元素都可以直接引用行为或接口的名称,可描述业务接口之间的关系。
因此,S-SEDS实例文件中包含了业务接口信息及其关系的内容,可作为业务与其他业务之间互相协同工作所需要的信息在业务间传递。同时,S-SEDS为业务接口信息标准和格式的统一化提供了解决方法,双方都采用同样的标准、格式可使业务信息被其他业务识别,有助于在异构系统间进行业务接口信息的交换。
S-SEDS的元素结构是以SEDS 标准为基础的,二者的主要区别在于所描述数据对象的层次不同,SEDS可以描述设备接口及其关系,因此使用SSEDS来描述业务信息是合理的。对比SEDS标准的元素结构,S-SEDS有两处修改,但其元素结构在总体上仍符合SEDS标准,SEDS 目前已经得到了应用,因此使用S-SEDS来描述业务信息是可行的。可以按照S-SEDS工具链的划分情况,进行S-SEDS工具链的设计开发,从而有助于实现业务级的即插即用技术。
对于XTCE和SEDS标准,二者都是EDS的应用标准,区别在于描述的数据对象不同。虽然应用场景有所不同,但二者的EDS数据文件转换流程大体上类似,因此可以采用同样的思路分别对各数据对象的EDS工具链进行设计。结合前文所述三种数据对象的数据流转换关系和工具链划分情况,提出了EDS工具链的通用架构设计方案,如图6 所示。EDS工具链通用架构应该包括各种数据对象可能具备的全部EDS数据文件处理功能,并允许用户根据数据对象及应用场景的不同选择并组合各功能模块,其通用性表现在不同标准、不同数据对象的EDS工具链都可基于此架构进行设计开发,提高开发效率。
图6 EDS工具链通用架构Fig.6 General architecture of EDS tool chain
架构上分为3层,从上至下分别为表示层、业务逻辑层、数据访问层。表示层的用户界面可供用户选择要执行的操作、填写参数数据。业务逻辑层是EDS工具链中处理数据和文件的部分,其中的5个功能模块对应EDS工具链处理数据文件的各部分过程。数据访问层的数据库管理模块与数据库相连接,可以对数据库中存放的3种EDS数据文件执行增删改查操作。
以1553B数据总线EDS为实例,对EDS工具链通用架构的设计进行验证。1553B数据总线的EDS格式见表3,按照此格式对基于SEDS的1553B数据总线EDS模板文件进行设计。
表3 1553B数据总线EDS格式Table 3 1553B data bus EDS format byte
基于SEDS的1553B 数据总线EDS工具链按照图6中的通用架构层次进行设计。
从用户使用角度来说,用户无需熟悉SEDS标准及EDS数据文件的格式,只需按照工具链软件的操作流程填写参数数据,工具链可以根据这些信息在后台将模板文件转换为实例文件,并进一步转换为二进制文件,全程自动化,用户无需编辑数据文件,对用户友好。工具链可将生成的三种EDS数据文件分别保存在数据库中,供用户查看和使用。
从工具链自身角度来说,工具链是在地面使用的,其生成的实例文件遵循SEDS标准和统一的格式,在地面测试阶段可在异构系统之间进行设备接口信息的传递。卫星在轨运行期间,工具链生成的二进制数据文件可以填入到XTCE 遥控指令数据文件的数据域中,作为透明传输的数据块,上行注入到星载设备中,设备信息可以被系统及其他设备识别并读取,有助于实现设备间的信息交换以及设备的即插即用技术。
部分EDS数据文件的转换内容见图7,文件的结果符合EDS标准和格式的要求,可以正确实现预期的EDS数据文件自动转换功能,验证了EDS工具链设计思路的正确性和EDS工具链通用架构设计的可行性。对于其他数据对象的EDS工具链,也可基于EDS 工具链通用架构进行设计开发,实现EDS数据文件的自动转换。
图7 部分文件转换内容图Fig.7 Part of converted content of files
在SEDS数据文件中可能包含遥测遥控数据,这一部分可以使用XTCE 来描述,因此可以在SEDS实例文件中直接导入XTCE 实例文件,其他信息如设备接口参数仍由用户来填写。
SEDS标准中有导入包文件的XInclude关键字机制[5],由于SEDS包文件和XTCE 的遥测遥控文件处理方式不同,为了有所区分并导入XTCE 实例文件,在EDS工具链实例中设计了功能类似的CInclude关键字。在SEDS实例文件中描述遥测遥控数据的元素节点位置,通过CInclude关键字导入XTCE实例文件。EDS 工具链在进行实例文件解析时,可以识别CInclude关键字,并解析其导入的XTCE实例文件内容,获取遥测遥控信息,可在一定程度上避免重复编写和信息冗余。
表4列举了两类EDS工具链的使用效果。从表中可以看出,基于本文提出的通用架构设计开发的EDS工具链在通用性、自动生成数据文件完整程度以及对用户的要求方面都具有一定的优势,可以提高EDS数据文件的设计效率。
表4 不同EDS工具链使用效果对比Table 4 Comparison of effects of different EDS tools
本文提出了EDS工具链的设计思路,结合应用场景介绍了数据流转换关系,为验证工具链划分的正确性以及EDS 工具链的通用架构的可行性,以1553B数据总线的EDS为实例进行了验证,能够正确实现数据文件的自动转换,有助于实现设备信息交换和设备级的即插即用技术,该设计思路和方案具有一定的通用性。本文在SEDS的基础上,提出了描述业务接口信息及其关系的S-SEDS,为业务层面的数据交换提供了解决方法。
在空间数据系统中采用EDS来描述信息,可以解决异构系统互联互通的问题,但是需要建立相关的EDS标准,并且在基于模型的系统工程(Model Based System Engineering,MBSE)[17-18]的开发方式下,配备工具链才有可能发挥其应有的作用。未来可基于本文提出的S-SEDS和通用架构设计业务EDS工具链,可自动生成业务接口数据文件。EDS工具链生成的数据文件为人-机之间和机-机之间交换数据信息提供标准化的方式,并保证数据的一致性和可靠性,在即插即用协议的基础上,进而有助于实现星载系统中部件的即插即用技术。