基于时间同步1553B协议的开关指令协同管理方法
2021-10-15兰天张溢张亚航程博文汪路元
兰天 张溢 张亚航 程博文 汪路元
(北京空间飞行器总体设计部,北京 100094)
随着天基信息网络的建设,对航天器智能化、网络化的迫切需求催生出以自主运行、自主任务、自主安全为代表的航天器自主能力,推动了航天器电子信息系统向以信息处理为中心、多航天器协同工作的方向发展[1]。航天器综合电子系统正是在这种对航天器系统智能化、网络化的迫切需求下得到了迅猛的发展[2-4]。在近十几年发展中,国内综合电子系统在需求分析和总体设计的指引下,设计实现了适用于微小型航天器的集中式综合电子系统[5]和适用于中大型航天器的分布式综合电子系统[6]。在此基础上,为提升航天器整体业务能力,在跨系统综合优化设计上进行了有益探索[7]。
在当前综合电子系统中,1553B是最常见的星内总线之一。在1553B总线网络中,一个总线控制器(BC)和多个远程终端(RT)按照线性拓扑结构连接[8]。在MID-STD-1553标准协议基础上,欧洲航天局提出了ECSS-E-ST-50-13C协议,引入了消息传输规划机制[9]。在该协议中,总线通信资源被周期性划分为多个传输帧。基于总线传输帧,协议对总线上的数据传输,包括发送和接收,进行了通用化设计。
参考ECSS协议,在基于中型敏捷遥感卫星公用平台研制的多颗卫星上,设计实现了基于时间同步的1553B协议[10-12]。按照具体卫星任务,对总线通信进行预先规划,按照规划将通信任务分配到不同的总线通信帧中。在每个通信帧的开始,一个通信帧同步消息会在总线上首先被广播,之后是该通信帧内容的固定规划通信和突发通信。在此基础上,从通用化角度出发,以星内路由为设计原则,建立了构件化的开放式分层星载软件架构[13-15]。星内总线上各设备间、设备内部各任务间以空间包作为信息交互的基础,各设备、任务通过空间包数据内容,而不是RT地址识别相应事件。
在综合电子系统设备内部,着眼于提升设备的可靠性与好用易用性,设计了ARINC659背板总线、通用遥控指令译码器等新型硬件[16-17]。这些新型硬件不仅提升了单个设备的功能、性能,也为多个设备间的系统级可靠性设计提供了基础。本文在智能化卫星综合电子系统基础上,设计了一种系统级高可靠开关(ON/OFF)指令发送方法。针对该发送方法对1553B总线上不同RT高精度同步发送指令的需要,提出了一种基于时间同步1553B总线协议的指令协同管理方法。通过在BC、RT软件应用层中分布式的指令协同管理功能,基于时间同步1553B总线协议中各通信帧开始时的帧同步信号,实现了1553B总线网络上多个RT设备指令高精度同步发送。该方法已经在多颗智能化遥感卫星的综合电子系统上得到了应用,取得了良好效果。
1 系统级高可靠开关指令发送控制
ON/OFF指令直接实现对负载的驱动,如继电器、光耦等。开关指令执行过程中,为被驱动的负载提供特定时长(通常为80 ms)的驱动电流。ON/OFF指令直接作用于底层硬件设备,是航天器正常操控的基础,也是自主运行、自主任务、自主安全等功能正常执行的必要条件。
卫星上使用的指令可分为三类:直接指令、间接指令和数据指令。直接指令、间接指令的输出都是脉冲信号,都可视为ON/OFF指令,区别在于触发方式的不同。处理直接指令时,测控设备对指令直接译码并输出脉冲信号,无需星上软件操作。处理间接指令、数据指令时,测控设备先将完整的注入数据帧转给器上软件,再由器上软件处理后输出脉冲信号、进行相关逻辑操作。
间接指令的优势在于能够通过软件控制实现延时程控发送,使用上更灵活;直接指令的优势在于当星上计算机CPU模块工作异常时仍能正常执行,通常将直接指令作为处置星上故障的手段。在实际使用中,直接指令受通信弧段的约束,必须通过地面站或中继星经测控链路上注到星上,因此卫星在可见弧段外无法使用直接指令。而通过中继星上注直接指令时,相邻指令间隔受转发策略影响,星上接收间隔可能与地面发送间隔不一致。因此,在轨更多用到执行时间可预期的延时间接指令。
在以中型敏捷遥感公用平台为代表的智能化卫星上,广泛应用了综合电子系统。如图1所示,该综合电子系统包含一台系统管理单元(SMU)和多台数据接口单元(DIU)。系统中各设备采用通用化模块设计,通过采用通用计算机模块提升了DIU的计算能力。结合DIU本身具备的遥测采集、指令发送、功率驱动等能力,使DIU有足够的算力和能力支撑复杂的自主运行管理和自主安全管理功能,为在SMU、DIU之间进行自主任务分配提供了基础。
图1 智能化卫星综合电子系统组成示意Fig.1 Diagram of avionics system constitution for intelligent satellite
从图1中可知,设备内各模块间通过底板上的内总线通信,各设备间通过星内数据总线通信。其中,底板内总线选用ARINC659总线,星内数据总线选用1553B总线。同时,在两个DIU的指令模块间设置了专用的互连电缆。
在综合电子系统级实现的高可靠开关指令发送控制信息流如图2所示。在发送间接指令时,SMU首先将指令通过1553B总线同时发送给平台数据接口单元(PFDIU)和载荷数据接口单元(PLDIU)。DIU内部与ON/OFF指令发送相关的部件包括CPU模块、指令模块和指令译码器:CPU模块解析遥控包,将指令翻译为指令模块能识别的码字;指令模块根据码字识别指令通道,向指令译码器发送控制码字;指令译码器按照控制码字生成指令脉冲。
图2 综合电子系统级高可靠开关指令发送控制Fig.2 High reliability ON/OFF command sending control at avionics system level
从图2中可知,DIU的CPU模块通过1553B总线接收从SMU发来的遥控包,解析后通过ARINC659总线发送本机指令模块。指令模块识别指令为本机指令时,通过内部通道发送给本机指令译码器;指令模块识别指令为非本机指令时,通过指令模块互连电缆发送给另一个DIU的指令译码器。指令译码器按照收到的指令通道产生输出的脉冲信号。
在大幅提升可靠性的同时,系统级指令发送控制方法也带来了新的需求。一方面卫星对单条ON/OFF指令的脉冲宽度有一定的范围要求,一般应在(80±10)ms的范围内;另一方面需要考虑多条ON/OFF指令连续发送时,指令间不能发生干扰。为满足这两方面约束,需要保证两台DIU处理ON/OFF指令的同步。为此,提出了一种基于时间同步1553B总线协议的指令协同管理方法。
2 基于时间同步1553B总线协议的指令协同管理
得益于综合电子系统的星载处理能力提升,将传统航天器集中于SMU实现的功能重新进行了分布式规划,将其中部分管理功能移至PFDIU和PLDIU上实现。为提升星载软件的通用化程度,在设计上采用了包含5个层次的分布式星载软件架构,如图3所示。
从图3中可知,指令协同管理功能在作为BC的SMU和作为RT的PFDIU、PLDIU星载软件的应用层中实现,涉及的功能项包括软总线层实现的星内路由、中间件与构件层实现的时间同步1553B协议和指令相关功能项(分包遥控、指令序列调度、队列管理)、操作系统与设备虚拟层中实时操作系统提供的中断接口以及硬件层提供的1553B总线接口。
图3 指令协同管理在星载软件架构中的位置示意图Fig.3 Schematic diagram of the location of command collaborative management in on-board software architecture
对所有设备,指令协同管理功能均由时间同步1553B总线协议的帧同步中断信号触发。按照基于时间同步1553B总线通信协议制定的通信帧规划,BC端在特定的通信帧内发送需要协同控制的指令,RT端在特定的通信帧开始时接收处理需要协同控制的指令。BC端发送指令的通信帧与RT端接收处理指令的通信帧不相同,各RT接收处理指令的通信帧相同。
在设计时间同步1553B总线协议时,首先需要选择时间同步周期和帧周期。时间同步周期与帧周期的关系为
Tsync=N×Tframe
(1)
式中:Tsync是时间同步周期,Tframe是帧周期,N为正整数。时间同步周期Tsync的长短与系统级时间同步需求相关,帧周期Tframe的长度选择与RT端处理能力相关。为方便总线通信规划,一般将各个帧周期设为相同时长,Tframe的选取应满足
(2)
式中:CBC(Tframe)为BC端在一个通信帧Tframe内向RT发送消息的能力,M为总线系统中的RT数量,CRT(i)为第i个RT的消息处理能力。协议设计应确保总线上消息处理能力最弱的设备在一个帧周期内不会发生堆栈溢出,以便于RT端软件设计。
基于时间同步1553B总线协议,在综合电子系统应用层软件中设计了指令协同管理功能,在系统层面规划BC向RT发送指令的时机和各RT接收执行指令的时机如图4所示。
图4 通过指令协同管理实现不同设备间开关指令同步处理Fig.4 Synchronized processing of ON/OFF command between different devices implemented through command collaborative management
为实现两个DIU的指令同步,由SMU发起ON/OFF指令发送。SMU收到地面注入的ON/OFF指令源包后,将其解析成单条的ON/OFF指令发送给各个DIU。DIU通过置数取数服务检测到新的ON/OFF指令后,对其进行格式校验,校验正确后发送。BC端软件和RT端软件均通过每个通信帧最开始时的帧同步信号判断该通信帧中本设备可实施的动作,BC端发送控制在图4中标识“检索发送”的通信帧中完成对多个RT的指令分发,RT端接收控制在图4中标识“接收执行”的通信帧开始时完成指令接收。为避免读写冲突,BC和RT不在同一通信帧内进行指令相关操作。
RT在BC发送ON/OFF指令的通信帧之后下一个帧同步信号激励下进入总线中断服务程序,此时两个DIU中均已收到来自SMU的ON/OFF指令,DIU在总线中断中完成ON/OFF指令的接收、执行。通过DIU内中断优先级、中断最大嵌套时间等设计,实现对ON/OFF指令输出脉冲宽度的控制。
通过控制BC端相邻两次“检索发送”的间隔避免ON/OFF指令间发生干扰,例如在一条ON/OFF指令发送过程中又启动另一条ON/OFF指令的发送。相邻两个允许“检索发送”的通信帧的帧同步信号间隔应大于ON/OFF指令最大脉宽。
综合考虑帧周期时长、指令脉冲宽度、系统指令发送能力需求、总线通信效率等各种因素,通过系统级综合规划生成全局指令协同管理配置。1553B总线上各相关设备统一按全局配置分时进行“检索发送”动作(BC端)和“接收执行”动作(RT端)。以图4为例,BC在第i个通信帧检索发送指令,RT在第i+1个通信帧接收执行指令。为确保跨时间同步周期的协同连续性,RT端在第0帧的“接收执行”动作对应BC端在上一个时间同步周期最后的“检索发送”动作。
3 试验结果及分析
在某智能化遥感卫星的综合电子系统硬件平台上,运行实际任务中使用的飞行软件,对本文提出的基于时间同步1553B总线协议的指令协同发送控制方法进行了验证试验。向DIU发送ON/OFF指令,通过地面设备监视ON/OFF指令输出。DIU硬件输出ON/OFF指令脉冲包括对外的指令和控制内部寄存器的指令,可通过监视实际输出的指令脉冲或通过执行效果判断指令是否正常发出。通过示波器监视ON/OFF指令的输出波形,如图5所示。
图5 开关指令输出脉冲波形Fig.5 Waveform of ON/OFF command output pulse
在图5中,每个横格为10 ms,每个纵格为5.0 V。从测量结果可见,P1显示指令脉冲宽度79.254 ms,P2显示指令脉冲最高幅值为29.0 V,P3显示指令脉冲低电平为128 mV,P4显示脉冲平均电压幅值为28.31 V,P5显示指令脉冲上升沿宽度为72.148 μs,P6显示指令脉冲下降沿宽度为236.248 μs。使用本文所提方法控制下的ON/OFF指令脉冲宽度在指标要求的(80±10) ms的范围内,满足要求。
在正常工况和6种故障工况下对ON/OFF指令发送效果进行了测试,结果如表1所示。
表1 ON/OFF指令实际输出脉宽范围测试Table 1 Actual output pulse width range of ON/OFF command
在正常工况下,两个DIU在帧同步信号的触发下同时启动ON/OFF指令的发送,但由于中断嵌套、原子操作等原因,两个DIU动作在不同时序条件下会存在一定范围的波动。DIU脉冲最大宽度80.5 ms与两个DIU星载软件中总线中断最大嵌套时间吻合,指令发送正常。在故障工况下,在一个DIU自身故障导致不能正常输出指令时,仍可在系统层面控制另一台DIU发送故障DIU的ON/OFF指令。
4 结束语
经过“十三五”期间多颗卫星的实践,本文提出的基于时间同步1553B协议的指令协同管理方法的功能和运行可靠性已在对地观测、测绘、海洋观察等多个领域得到了充分验证。基于时间同步1553B总线协议中的帧同步信号实现的系统级指令协同管理,即实现了BC端指令处理动作与RT端指令执行动作的互斥,又实现了不同RT设备指令执行动作的同步。该方法基于层次化的开放式星载软件架构实现,代码通用性和软件跨平台适应性好,易于移植。后续研究中,将针对更多类型星载总线的特点和总线网络内设备同步动作需求,进一步拓展该方法的适用范围。