基于CCSDS-CDAS模型的空间机械臂数据管理软件设计
2012-12-29王斌高建军张猛
王斌 高建军 张猛
(北京空间飞行器总体设计部,北京 100094)
1 引言
传统的星载计算机软件系统通常严格根据任务的需要进行设计,当任务的软件需求或者硬件拓扑结构、通信接口发生变化时,软件系统需要进行大量的修改。软件设计中重复开发的现象造成开发周期长、测试周期长、人力和财力耗费严重。研究新型的星载软件体系结构,建立统一的、通用化的星载软件系统接口,对于实现星载计算机系统“低成本、快交付、高质量、多用途”的发展要求具有重要意义[1]。
空间数据系统咨询委员会(CCSDS)的指令与数据获取业务(CDAS)对星载软件的通用化设计具有良好的指导作用。指令与数据获取业务是CCSDS航天器在轨接口业务(SOIS)[2]的重要组成部分。CDAS业务为星载软件的指令发送与数据获取提供了通用的服务,从而使得上层应用进行指令发送和数据获取操作时与底层的拓扑结构和通信接口隔离。CDAS业务由3 个子业务组成:设备访问业务[3]、设备数据池业务[4]和设备虚拟化业务[5]。除CCSDS外,欧洲航天局也提出了基于服务请求和服务报告的接口标准化包应用标准(Packet Utilisation Standard,PUS)[6],以实现航天器生产、测试和在轨飞行过程中的监视和控制。美国空军研究实验室(AFRL)开发了基于中间件软件系统的卫星数据模型(SDM)系统[7],该系统提供自我配置和自我发现能力,有助于在卫星网络中快速综合硬件和软件构件。
空间机械臂是深入开展航天活动必不可少的工具,是机、电、热、控一体化的高集成度的空间机电系统。它在空间站系统中承担着舱段捕获与转移、空间设备安装与维修、辅助航天员作业等功能[8]。中央控制器是空间机械臂控制的核心,它控制机械臂依据自主路径规划、避障算法或者地面注入的运动规划,实现指定运动[9]。在空间机械臂研发的初期,设计良好的软件构架,能够有效减少硬件拓扑结构改变对软件造成的影响,提高软件的可移植性和健壮性,从而,对提高软件质量、缩短研制周期产生重要的影响。
本文首先对某空间机械臂的总线拓扑结构以及指令与数据特性进行分析,然后,研究CDAS模型的构架以及各组成部分,结合设备虚拟化业务采用面向对象的方法进行设备抽象,对设备数据池业务设计时的遥测数据更新、上层业务数据获取、数据有效性等重要问题进行论述。最后,建立了基于CDAS模型的机械臂数据管理软件构架。
2 空间机械臂总线拓扑结构及指令与数据特性分析
某空间机械臂采用多总线分布式拓扑结构,如图1所示。机械臂的内部总线通信采用CAN 总线和RS422总线,通过内部总线对空间机械臂的关节运动控制器、末端运动控制器、关节热控控制器、末端热控控制器、相机控制器、相机热控控制器、供配电控制器等设备进行控制。空间机械臂通过1553B总线和RS422总线分别向空间站数管分系统和空间站在轨操作分系统发送遥测数据及接收遥控注入指令。
图1 某空间机械臂总线的拓扑结构Fig.1 Bus topology of a space manipulator
基于上述拓扑结构和空间机械臂自身业务特点,某空间机械臂中央控制器数据管理软件具有如下特性。
(1)通信总线类型多,接口数量多。通信总线包括1553B总线、CAN 总线和RS422 总线。通信接口数量多,其中,仅CAN 总线设备的数量就达60余个(含主份及备份设备)。
(2)遥测数据采集周期呈多样性。与路径规划相关的相机控制器遥测的更新周期为100ms;中央控制器自身遥测状态,关节控制器运动状态(关节角度、关节速度、关节电机电流)等信息的更新周期为500ms;热控总线遥测和其他运控总线遥测的更新周期为2000ms。
(3)多种上层应用均需要使用从总线获取的数据。遥测相关业务需要周期性的获取遥测数据并传输至空间站;路径规划相关业务需要在规划开始时获取初始关节角,在与相机相关的路径规划模式中,还需实时地由相机控制器获取目标位姿参数;而健康管理相关业务需要获取空间机械臂的运行状态遥测,如电机电流、各种传感器状态等信息。
(4)多种上层应用均需要向总线发送控制指令。遥测相关业务需要周期性的发送遥测数据采集指令;在执行路径规划时,路径规划相关业务需要实时地向总线发送关节运动控制指令;遥控注入业务在接收到总线转发数据时,需要向总线进行数据转发;健康管理相关业务在监测到空间机械臂状态异常时,需要实时向各个关节发送紧急停止指令等。
基于上述特点,空间机械臂数据管理软件设计时采用的思路如下:
(1)采用面向对象的思想将底层设备进行抽象。将底层设备抽象为一个个的对象(即虚拟设备),对设备的控制指令抽象为对设备的操作方法。
(2)隔离上层应用。将上层的指令发送和数据获取接口与底层通信接口隔离,并将所有的周期性数据获取操作由专用业务完成。
(3)设计统一的底层驱动接口。通过统一的设备读、写方法对总线的访问提供硬件无关的接口机制,以适应多种类型总线以及后续硬件配置的变化。
3 CCSDS指令与数据获取业务模型研究
CCSDS指令与数据获取业务(CDAS)提供了高效的访问星载设备的方法。CDAS由3个子业务组成:设备虚拟化业务(DVS)、设备数据池业务(DDPS)和设备访问业务(DAS),CDAS 模型的构架如图2所示。
图2 指令与数据获取业务模型构架Fig.2 Frame of command and data acquisition services
1)设备虚拟化业务
设备虚拟化业务用于提供标准的设备驱动。同时,设备虚拟化业务向其用户提供了设备逻辑标识,用户通过设备逻辑标识来访问物理设备,该业务负责维护逻辑设备与物理设备的对应关系,提供标准化的设备访问接口,业务用户无需关心物理设备的访问细节。
2)设备数据池业务
设备数据池业务负责维护所有设备的状态数据信息。多种上层应用均需要使用底层业务获取的数据。由每个应用自行获取数据,会造成数据的重复获取,也会影响总线通信的实时性。使用设备数据池业务对外部设备的状态数据进行统一维护和更新,能够很好地解决此问题。该业务能够根据“遥测采集配置表”,周期性地从外部设备获取数据,并将其存放在数据缓存中。各个上层应用欲获取数据时,不需要了解外部设备的物理位置、通信接口,就能够从数据池中获取数据。此业务同样能够降低硬件拓扑结构变化产生的影响。
3)设备访问业务
设备访问业务提供了一个用于软件和硬件之间操作的标准接口。该业务的基本思想是软件可以在不关心具体设备位置,以及不了解设备的电气接口等详细信息的情况下对设备进行访问。接口标准化可以简化星载软件开发,适应星载硬件设计变化,增加软件的潜在重用能力。
设备访问业务相当于硬件设备驱动,提供基本的读、写功能,实现硬件隔离。
4 基于CDAS业务模型的设计
4.1 设备虚拟化业务层设计
在空间机械臂数据管理软件的设备虚拟化业务层设计中,提出了通用设备的数据结构,来维护逻辑设备与物理设备的对应关系,如表1 所示。在表1中,由设备类型、设备子类型和设备编号构成了一个设备的唯一标识,即CDAS 模型中的设备逻辑标识。通用设备预留了设备基本操作接口,如主备切换、设备复位。在系统初始化时,对这些接口进行设置,使得上层应用能够在无需了解外部设备信息的情况下,通过设备逻辑标识来访问物理设备。
表1 通用设备数据结构Table 1 Data structure of general device
其他虚拟设备为通用设备数据结构所派生,除具有通用设备所有属性外,还具有专用功能。下面以运动控制器为例,介绍专用虚拟设备数据结构的设计。运动控制器数据结构如表2所示。
表2 运动控制器数据结构Table 2 Data structure of motion controller
设备虚拟化业务层的一项主要功能,是将实际物理设备的访问操作进行抽象。运动控制器数据结构具有通用设备的所有属性和操作。同时,运动控制器数据结构还具有自身的操作方法,包括获取关节控制器状态、获取关节角度、获取关节角速度,这些操作方法通过函数指针的方式实现。
在空间机械臂数据管理软件中,虚拟设备通过设备数据池获取遥测数据,实现了上层应用与设备数据访问的隔离。当软件需求或者硬件配置发生变化时,设备数据池中存储数据的起始位置和数据长度等信息会发生变化。此时,仅需要重写虚拟设备的相关操作方法就能够适应这些变化,而不需修改所有相关的上层应用,从而有效提高软件的可移植性和可靠性。
4.2 设备数据池业务层设计
在空间机械臂数据管理软件中,对设备数据池业务的设计主要涉及3个方面的内容:
1)通过遥测采集配置表周期性更新设备数据池的数据
设备数据池业务根据遥测采集配置表周期性的向指定的设备发送遥测数据采集指令。遥测采集配置表由若干表项构成,如表3所示。
表3 遥测采集配置表的表项Table 3 Configuration table of telemetry acquisition
遥测采集配置表的表项与一条遥测采集指令相对应。表项的内容包括:遥测采集指令、遥测采集周期、采集设备数量、虚拟设备结构、遥测回传数据的存放位置和长度。
遥测采集周期亦即遥测数据的更新周期,不同设备的遥测采集指令对应数据池的更新周期相互独立。如:相机控制器的遥测数据采集指令CA 的更新周期为100 ms,CB 更新周期为500 ms,CC、CD更新周期为2000ms。
设备数量是指接收该条遥测采集指令的设备数目。设备数据池业务根据遥测采集配置表向所有具有该种遥测数据的设备发送采集指令,并将收到的回传数据放置于不同设备数据池的相应位置。
虚拟设备指针的主要用途是:①确定设备类型、子类型,以确定发送该条遥测采集指令使用的方式;②确定设备逻辑标识,以通过设备访问业务获取遥测采集指令发送的目的地址;③根据虚拟设备指针索引数据池。
2)上层业务获取设备数据池中存储的数据
在空间机械臂数据管理软件以及其他类似的星载软件中,上层业务中的遥测参数汇集与下传业务涉及大量周期性的数据拷贝操作。如果采用由设备虚拟化业务中函数接口的方式获取数据,将导致函数接口数量大量增加,同时也增加数据处理的时间。由遥测参数汇集与下传业务直接从数据池中获取数据能够提高软件效率。但是,本文建议为了提高软件的可移植性,除了遥测参数汇集与下传业务(该业务直接针对设备数据池来设计),其他上层业务不直接对设备数据池进行访问。
遥测参数汇集与下传业务,将同种类型设备中相同采样周期的数据组织成一个数据包下传,如图3所示。
图3 空间机械臂数据管理软件的设备数据池Fig.3 Device data pool in the data management software of the space manipulator
3)设备数据池中数据的有效性问题
设备数据池业务将上层业务与底层设备访问隔离,在提高软件效率、增强可移植性的同时,也带来了设备数据池中数据的有效性问题。在空间机械臂数据管理软件中采用“数据有效性标志数组”管理所有设备数据池中数据的有效性。
具体方法是:“数据有效性标志数组”中的每一个数据与一个设备的某条遥测采集指令的回传数据块相对应。当遥测采集指令回传数据错误或者发生超时,设备数据池业务将该标志置为无效。上层应用或者设备虚拟化业务在使用设备数据池中的数据时,需要先判断数据有效性标志。
4.3 基于CDAS业务模型的空间机械臂数据管理软件构架
空间机械臂数据管理软件指的是系统中央控制器的软件,它是由三层组成(如图4所示)。顶层为应用程序,主要包括遥测参数汇集与下传业务、遥控注入接收与处理业务、路径规划算法管理业务和健康管理业务;中间层为指令与数据获取业务;底层为硬件通信接口相关业务。
设备访问业务为其他CDAS 提供了硬件通信访问接口,统一地接收、发送总线数据(数据流①),设备数据池业务和设备虚拟化业务分别通过设备访问业务发送遥测采集指令和控制指令(数据流②、③),设备数据池业务通过设备访问业务获取遥测数据(数据流②),设备虚拟化业务仅从设备数据池业务处获取遥测数据(数据流⑤)。
在应用程序中,遥测参数汇集与下传业务与设备数据池业务和设备虚拟化业务进行交互,通过设备数据池业务获取速变遥测和缓变遥测数据(数据流④),进行组织后通过设备虚拟化业务下传(数据流⑥)。
遥控注入接收与处理业务只与设备虚拟化业务进行交互,通过设备虚拟化业务获取来自空间站的遥控注入数据,并向机械臂内部总线转发指令数据(数据流⑦)。
路径规划算法管理业务通过设备虚拟化业务在路径规划开始时,从运动控制器数据结构中获取各个关节的初始关节角度以计算空间机械臂初始位姿,在与相机相关的路径规划模式中,实时地由相机控制器数据结构处获取目标位姿参数,并通过设备虚拟化业务实时发送关节控制器控制指令(数据流⑧)。健康管理业务通过设备虚拟化业务实时检测整个空间机械臂的工作状态,并在确认发生故障时,通过该业务发送空间机械臂紧急停止指令(数据流⑨)。
图4 空间机械臂数据管理软件数据流图Fig.4 Data flow graph in the data management software of the space manipulator
5 结术语
本文对CCSDS-CDAS模型的构架以及各组成部分进行了研究,结合设备虚拟化业务采用面向对象的方法对某空间机械臂各设备进行设备抽象,对CDAS模型中的基于设备数据池业务的遥测数据更新、上层业务数据获取、数据有效性等重要问题进行了阐述,并提出了基于CDAS模型的机械臂数据管理软件构架。目前,该软件构架已成功应用于某空间机械臂的研发过程,为空间机械臂的数据管理提供了良好的构架支持,从而有效提高了软件产品的质量和可靠性。现阶段,应重点加强对以指令与数据获取业务为代表的CCSDS航天器在轨接口业务的研究和应用,以提高我国星载软件的通用化设计水平。
(References)
[1]张元昭.空间机动平台自主管理系统体系结构研究—SDM 系统的分析与标准服务的实现[D].长沙:国防科技大学,2007
Zhang Yuanzhao.Research on space maneuver vehicle autonomous management architecture-SDM analysis and realization of standard services[D].Changsha:National University of Defense Technology,2007(in Chinese)
[2]CCSDS.Spacecraft onboard interfaces services,CCSDS 850.0-G-1[S].Washington:CCSDS,2007
[3]CCSDS.Spacecraft onboard interfaces services-device access service,CCSDS 871.0-R-2.1[S].Washington:CCSDS,2010
[4]CCSDS.Spacecraft onboard interfaces services-device data pooling service,CCSDS 871.1-R-2.1[S].Washington:CCSDS,2010
[5]CCSDS.Spacecraft onboard interfaces services-device virtualisation service,CCSDS 871.2-R-0.1[S].Washington:CCSDS,2009
[6]European Cooperation for Space Standardization.Space engineering:Ground systems and operations-telemetry and telecommand packet utilization,ECSS-E-70-41A[S].Netherlands:European Cooperation for Space Standardization,2003
[7]Space Software Laboratory.The satellite data model[EB/OL].[2007-07-16].http://sdl.usu.edu/index.htm
[8]张晓东.空间柔性机械臂控制策略研究[D].北京:北京邮电大学,2008
Zhang Xiaodong.Research on control strategy of flexible space manipulator[D].Beijing:Beijing University of Posts and Telecommunications,2008(in Chinese)
[9]于登云,孙京,马兴瑞.空间机械臂技术及发展建议[J].航天器工程,2007,16(4):1-8
Yu Dengyun,Sun Jing,Ma Xingrui.Suggestion on development of Chinese space manipulator technology[J].Spacecraft Engineering,2007,16(4):1-8(in Chinese)