大型航天器设备之间指令管理优化方法
2021-08-22陆岚孙勇何熊文余晟
陆岚 孙勇 何熊文 余晟
(北京空间飞行器总体设计部,北京 100094)
随着航天器交会对接[1-2]等各类复杂空间任务的出现和发展,使得航天器之间和航天器内部各设备之间都需进行更紧密的指令交互和协同控制。设备管理指令是大型航天器组合体内任意设备主动发往舱内或舱间其他设备的指令,往往需要进行一次或多次转发,每次转发都需在指令管理设备控制下进行较为复杂的交互过程。相对于以往常见的程控指令转发,设备管理指令的转发步骤更多,相应的转发时延更大。以往通用的程控指令转发方法已经不能满足大型航天器设备之间指令交互的实时性要求。目前国内航天领域针对1553B 总线[3-6]消息的实时调度方法已经有了一定的成果[7-9],但还缺乏针对指令转发全过程的分层优化策略研究。
基于上述现状,本文提出了一种设备管理指令的实时性优化方法,在数据链路层[10]采用解析流程和总线反馈过程优化,在物理层[11]进行总线消息发送序列优化,可有效缩减设备管理指令各转发步骤的时间延迟,并可兼容原有的硬件设计和软件框架。
1 指令交互需求分析
大型航天器长期在轨运行期间,由于测控区限制,地面不能随时监测航天器组合体各舱段状态,使得在轨自主管理成为其必备的关键功能。由于资源互备和共享需求,各舱段间热控、能源等重要设备的功能关联紧密,使得航天器自主管理过程中指令交互过程成为重中之重。其中舱段间指令交互传输往往需经过多次转发,对整个传输途径的时延控制成为研究重点。图1给出了在三舱指令管理设备控制下的舱间指令交互过程模型。图中舱段1的发令设备在进行自主故障诊断后,向舱段3的某执行机构发出设备管理指令。该指令经过三舱指令管理设备的三次转发后到达终端的执行机构执行,其传输延迟主要包括三次转发的时延T1~T3,以及执行机构从接收到执行的时延T4。三次转发最大时延占比约为1∶1∶1,而T4的时延一般小于200 ms。大型航天器自主管理设计中多项紧急重大故障都需进行舱间设备管理指令传输。为进行在轨紧急故障处置和故障隔离,指令在整个传输途径中的延迟不应大于1 s。因此设备管理指令的每次转发最大时延不应大于266 ms。如果不进行优化设计,以往通用的程控指令转发方法最大延迟一般在350 ms以上,已经不能满足大型航天器指令交互的实时性要求。因此有必要对每次设备管理指令的转发进行步骤分析和优化设计,以满足大型航天器复杂和紧急的自主管理需求。
图1 舱间指令交互模型Fig.1 Inter-cabin command interaction model
设备管理指令格式定义与遥控空间数据链路协议[12-13]一致:包含主导头、帧数据域和帧差错控制域,格式如图2所示。帧数据域又包含了一个程控指令源包,该源包由包主导头、副导头、应用数据和包差错控制域组成。传送帧主导头中包含航天器标识(SCID)和虚拟信道(VCID)标识。航天器标识是用于区分不同航天器的唯一标识;虚拟信道标识则用于区分同一航天器上的不同设备。设备管理指令帧长固定为22 byte,即一个指令源包加上帧主导头长度,以减少总线额外开销,提高系统资源利用率。
图2 设备管理指令格式Fig.2 Format of device management command
2 时序分析和优化方法
2.1 转发步骤和时序
设备管理指令转发是在指令管理设备的控制下,从发送方设备获取指令并转发到接收方设备的过程。发送方设备准备好指令后,在总线上设置服务请求;指令管理设备以固定周期发出读取服务请求消息,并对返回的消息状态进行判断,如发现有服务请求,则发出读取设备管理指令的消息。在接收到设备管理指令后,对指令进行校验和转发;最后接收方接收指令。这是一次设备管理指令转发的完整流程,图3展示了转发流程的步骤和时序。其中t1~t5为管理方在指令转发流程中各主要步骤的时延。t6为从管理方发出指令到接收方收到指令的时延。
图3 设备管理指令转发流程Fig.3 Device management command forwarding process
将从发送方设置完服务请求到接收方收到指令的时间延迟记为tc,管理方的每个处理环节的平均运行时间记为to,可得tc=5to+
其中to大小由管理方设备硬件性能决定,在硬件环境不变的前提下取值固定;t1的最大值由管理方发出服务请求的间隔决定,该间隔可作为参数由软件自行设置;而t6接收方软硬设计决定,不属于指令管理范畴。因此要缩减tc的时间延迟首先需考虑对t2~t5的处理时间进行优化,也就是使得取值最小。
2.2 解析流程优化
传送帧格式的指令解析和转发流程通常如图4(a)所示,对接收到的传送帧首先进行帧校验,如格式正确首先进行帧解析,将具备不同SCID 或VCID 的帧存入相应的缓冲区;再对其中需进一步处理的包取出进行包校验,正确后再进行包解析、处理和转发;最后对所有缓存中的帧一一进行判别、处理和转发。这种方式可用于大多数实时性要求较弱的遥控注入数据和指令,但不能适应强实时性的设备管理指令转发要求。因此考虑优化解析流程,在帧校验正确后增加针对设备管理指令的判别,如为需要进行总线转发的设备管理指令,则跳过后续帧解析和包解析环节,直接进行帧处理和转发,如图4(b)所示。该优化措施可避免不必要的大量帧、包复制过程和模块调用操作,缩减前文描述的t4(发出读取设备管理指令消息到接收和处理指令)时间间隔。
图4 解析流程优化方法Fig.4 Analysis process optimization method
2.3 总线消息反馈过程优化
如图5(a)所示,指令管理方由总线进程发出读取服务请求消息后,与其他所有类型的总线返回消息一同处置,先读取消息并存入缓存,再将消息数据通过进程间消息传递方式发送到相关处理进程去处理。相关处理进程在处理后还需发出读取设备管理指令消息,再通过消息传递机制发到总线进程,由总线进程再将消息发出。
考虑到两次进程间消息传递的时间开销较大,为提高实时处理能力,设计了一种钩子函数注册机制。由相关进程在初始化时,在共享数据区注册专用的钩子函数,用于解析、处理并发出读取设备管理指令的消息,如图5(b)所示。总线进程在收到总线上返回的消息后,判断消息类型为读取服务请求消息,则调用注册的钩子函数进行处理。这种方式可避免两次缓冲区拷贝和两次进程调度的时间开销,有效缩小前文描述的t2(从发出读取服务请求消息到进行消息判断)时间间隔。
图5 总线消息反馈过程优化方法Fig.5 Optimization method of bus message feedback process
2.4 总线消息发送序列优化
完整的设备管理指令发送周期里,需要发出三种总线消息:读取服务请求消息、读取设备管理指令消息和转发指令消息。传统方式下,总线消息最终都要通过总线进程发送出去。本文设计的物理层优化方法是设置不同的总线消息优先级:将读取服务请求消息设为优先级3;读取设备管理指令消息和转发指令消息设为优先级1。如图6所示,总线发送进程调度后,优先级2和优先级3的队列会放在当前发送队列的后面发送出去;而优先级1的消息可通过相关发送进程直接打断当前队列的消息,将优先级1的消息最先发送出去。当优先级1的消息发送完毕后,再依序将当前发送队列、优先级2队列和优先级3队列发送出去。这种方式避免大量低优先级的消息占用总线,可大幅缩小前文描述的t3和t5(物理层消息发送)的时间间隔。
图6 总线物理层优化发送序列Fig.6 Optimized sending sequence of bus physical layer
3 验证和分析
本文提出的指令管理优化方法已应用于某大型航天器组合体的指令管理设备。测试系统由组合体某舱段上指令管理设备的真实软硬件和地面软件构成,该软件已采用文中所述优化方法。通过地面软件仿真某舱段1553B的指令发送方和接收方,模拟总线上设备管理指令的发送和接收。测试时设置指令管理设备发送服务请求的间隔为80 ms,随机选择不同的总线终端进行多次指令发送和接收,以地面软件记录从发送方服务请求设置到管理方指令转发消息发出的时间间隔为10~88 ms。即tc的最大值为88 ms,根据前文分析可知通过优化,5to+的最大时间间隔为8 ms。对指令管理设备的软件进行修改,不采取任何优化的情况下,tc值实测为43~252 ms。即未优化的情况下5to+的最大时间间隔为172 ms。可见经过优化,设备管理指令转发最大时延tc缩短了65%。
再对指令管理设备发送服务请求的间隔进行调整,分别设为20 ms和200 ms,实测优化后tc值为12~88 ms和13~208 ms。可见优化后5to+的最大时间间隔稳定为8 ms,优化效果与服务请求间隔的大小无关。
在指令管理设备软件中设置优化开关,对3种优化方法分别测试其优化效果:单独使用解析流程优化,优化后tc值缩短了2~5 ms;单独使用总线消息反馈过程优化,使得tc值缩短了13~56 ms;单独使用总线消息发送序列优化,使得tc值缩短了21~107 ms。可见3种优化方法的最大优化效率占比约为1∶11∶21。
4 优化方法应用
4.1 优势分析
本文提出的设备间指令管理优化方法相对于优化前主要优势如下。
(1)解析流程优化前,设备管理指令解析过程由于通用设计,必须执行帧解析、包解析环节。优化后这些不必要环节省略,减少了处理时间。
(2)总线消息反馈过程优化前,发出读取服务请求消息到进行消息判断过程中需进行两次消息传递和两次进程调度。优化后这些时间开销可省略。
(3)总线消息发送序列优化前,非重要的总线数据可能长时间占用总线,使得重要的指令消息不能及时发送。优化后通过高优先级消息抢占调度,可有效缩减该时间延迟。
4.2 应用扩展思路
本文中所述方法可推广应用至其他高实时性需求任务的软件优化设计中,可供后续借鉴和参考的设计思路如下。
(1)多层次多环节优化:在对需优化的高实时需求任务的执行环节及软件实现层次进行全面分析并选取优化策略,争取各环节、各层次的处理时延都进行优化,以获得最佳优化效果。
(2)应用层优化从应用软件和操作系统调度两方面入手:应用软件中对高实时需求任务的进程进行针对性流程优化;同时跟据操作系统调度策略,分析高实时需求任务的相关进程执行时序,将不必要的进程切换和进程间消息传递作为优化目标。
(3)面向总线接口的物理层优化基于总线调度策略展开,分析不同总线消息的传输实时性需求,选择合适的总线消息调度策略以兼顾高、中、低实时性的总线消息传输需求。
5 结束语
本文描述了设备管理指令的转发步骤和时序,对指令转发时延产生的各个环节进行了分析,并针对每个环节给出了相应的减少时延、提高指令转发实时性的技术措施。最后给出了针对其他高实时需求任务的推广应用建议。大型航天器组合体的设备管理指令可能需要一次或多次转发。本文所研究的指令转发周期产生的时延只是一次转发的主要时延,最终多次转发的时间延迟还与舱间对接总线的网络拓扑设计有关。但每次转发过程都可参考文中方法进行优化,以达到最优的实时传输效果。
文中所述优化方法在提高指令转发实时性的同时,也会带来一定可靠性风险。总线消息发送序列优化方法采用高优先级抢占的总线调度策略,不同优先级进程抢占总线资源可能导致访问冲突,使得总线消息内容错误或消息发送失败。实际应用中可通过信号量对共享的总线资源和发送缓冲区进行保护,实现不同进程访问的互斥,以避免访问冲突。文中所述优化方法已在某大型航天器不同舱段的指令管理设备软件中应用,并已通过长期综合电测验证了其可靠性和优化效果。