APP下载

空间站电源系统信息管理软件重构方案

2021-08-22戴志晃黄建青刘艳丽张明栋胡晓刚马佰振

航天器工程 2021年4期
关键词:任务调度中断空间站

戴志晃 黄建青 刘艳丽 张明栋 胡晓刚 马佰振

(上海航天电子技术研究所,上海 201109)

根据我国载人航天发展“三步走”的战略规划,我国在第三阶段建造长期有人驻留的空间站。空间站不同于其他在轨飞行器,是一个长寿命、高可靠、可维修、高电压大功率的载人飞行器,其中电源系统负责为整个空间站的电子设备供电。空间站电源系统采用的是多功率通道、多机组的架构,除了常规的数据采集下行和遥控指令上行之外,系统长寿命、可维修性及在轨系统管理所产生的系统信息量非常庞大[1-2]。其他航天器电源通过一台单机的软硬件能实现自身电源的控制及单个总线通信功能,而空间站电源信息系统包含多台单机,实现电源充放电、舱内外驱动控制、分流和展收控制、多个内外总线通信等。空间站电源系统信息管理软件(简称空间站电源软件)运行在电源管理器上,完成电源系统内部多个单机与外部多总线信息管理功能,实现系统内外的数据交换,显然传统电源下位机软件无法直接移植到空间站上使用。我国空间站电源系统是国内首次在载人航天器电源系统中采用多层1553B 总线通信的结构,“国际空间站”上采用空间数据系统咨询委员会-高级在轨系统(CCSDS-AOS)通信体制,由4个局域网通过网关互联而构成信息系统,因此我国空间站电源软件设计无直接借鉴或引用的原型。

我国空间站电源软件相对于传统电源下位机软件来说,需要增加多总线参数、总线指令的中转收发,对电源系统内网进行系统管理,同时作为电源系统与数管系统,制导、导航与控制(GNC)系统等外部系统的接口,完成系统内外的数据交换。因此,本文提出一种基于电源下位机软件的重构方案,能有效解决多总线管理和多任务处理的问题,同时具有继承性和可靠性。

1 空间站电源系统信息管理特点与需求

如图1所示,空间站电源系统的信息管理分为内网与外网两部分[3]。

图1 空间站电源系统信息网Fig.1 Information network of space station power system

(1)内网:以功率通道为单位,每个功率通道组成一个电源系统功率通道内网。内网是由电源管理器、充放电调节器(4台)、舱内驱动控制器、舱外驱动控制器组成的1553B 总线通信网。电源管理器作为总线控制器(BC),负责收集电源系统其余设备的总线参数,同时将数管系统上行的总线指令转发给相应设备。电源系统其余设备作为远程终端(RT),将本设备采集的参数传输给电源管理器,同时接收并执行电源管理器转发的总线指令。

(2)外网:与功率通道内网相对,内网以外的通信网络称为外网。电源管理器作为RT,与1553B总线外网相连,同数管系统进行参数和指令的交换;电源管理器作为RT,与GNC系统1553B局部总线相连,进行对对日定向指令、参数交换。

电源管理器作为总线控制器,负责功率通道所有总线参数、总线指令的中转收发,对电源系统内网进行系统管理,同时作为电源系统与数管系统、GNC系统等外部系统的接口设备,完成系统内外的数据交换。因此,电源管理器要实现3组1553B 的通信,还有1组RS422通信总线用于内部测试,如图2所示。多个系统之间的通信构成多总线结构,它们之间通信任务需求的差异性会产生多总线任务竞争问题,因此,解决多总线任务处理问题是空间站电源系统信息管理的关键。

图2 多总线拓扑结构Fig.2 Multi-bus topology structure

2 空间站电源软件架构设计

在上述多层总线系统中,多路设备同时发出总线请求时就会冲突。为有效利用总线资源,对竞争设备进行仲裁并根据结果对设备赋权,就是仲裁算法。仲裁算法对于系统性能的影响起着重要的作用。常用的仲裁算法分为静态算法和动态算法,在算法中主模块的优先级是确定的称为静态算法,在仲裁过程中主模块自身优先级可变的称为动态算法。固定优先级仲裁算法、循环优先级仲裁算法、彩票仲裁算法都是静态优先级算法。固定优先级仲裁算法容易导致高优先级设备长时间占用总线,而低优先级设备长时间争用不到总线;循环优先级仲裁算法使各设备优先级过于公平,而忽视设备本身优先级高低的差异;彩票仲裁算法的仲裁受到概率的影响。

空间站电源软件执行任务的优先级是确定的,且不能存在单机设备长时间不被响应的情况,所以传统的静态优先级算法无法适用。传统电源下位机的总线通信中断触发的软件架构仅适应于简单的单总线架构体系,但无法支持多总线和多任务的模式要求。本文结合空间站电源软件所采用的80C32平台特点和电源下位机的总线通信中断触发架构,利用CPU 的软硬中断,通过软件中断扩展系统本身的中断源,并根据任务优先级的高低进行调度执行。它能实现多总线背景下系统数据的分级处理,按数据处理的轻重缓急进行响应,并通过设计基于多级静态优先级的任务调度处理架构,达到数据流的合理通信。图3为空间站电源软件架构,它以任务调度模块为架构核心,其他模块在任务调度模块的调度下执行。下文论述了如何通过传统电源下位机进行架构重构和代码重构的具体步骤,并且描述了重构的效果。

图3 空间站电源软件架构Fig.3 Software architecture of space station power system

3 软件重构方案

当前,软件重构技术主要分为架构重构和代码重构2种。架构重构通常是在设计模式的基础上,对软件的功能及接口进行局部或整体的重新划分[4-5]。代码重构是按照团队规范整理代码,使之更加整洁、规范,提高代码的自表现力。电源下位软件主流程以充电控制为主,结合星务计算机触发的总线通信中断进行处理[6-7]。空间站电源软件设计以总线通信管理为主要功能,不具备充电控制能力。因此,只有对电源下位机的架构进行重构,才能满足空间站电源软件符合多总线和多任务处理的要求。

基于上述理由,首先对电源下位机软件架构重构,即在原总线通信中断触发架构的基础上增加多级静态优先级的任务调度处理模式,以有效解决多总线管理和多任务处理问题;然后在空间站电源软件架构下实现对电源下位机软件代码重构复用。

3.1 架构重构

3.1.1 基于多级静态优先级的任务调度处理模式

空间站电源软件采取3级优先级,将所有的任务模块设置在这3级优先级中,然后通过任务调度模块安排各功能模块执行。对响应时间最敏感的任务,通过单片机硬件中断直接执行;其他任务则通过以单片机内部定时器为基础的任务调度模块安排执行。高优先级任务拥有高响应性,可以较快进入调度执行队列。任务调度模块根据事先定义的任务优先级查询各个任务标志,确认是否需要启动任务执行。

任务调度模块以单片机内部定时器为基础,初始化时设置定时器的定时时间作为调度的最小时间精度,通过定时器中断机制建立一个调度其他任务的模块。同时,软件设置多种时间精度来分配任务的优先级,优先级高的任务具有最高查询时间精度,任务调度模块以高优先级来执行此任务,其他任务则需要等待此任务执行完毕后才能占用CPU 资源。例如:定时器在初始化时设置定时值为200μs,即每200μs±1μs产生1个定时中断,调度模块通过事先定义好的优先级对任务待处理状态进行查询,优先级高的任务查询间隔短,在每个时间片均进行查询是否有执行请求,优先级低的任务由于对执行时间不敏感,一般10个时间片以上查询1次。若查询到有多个任务处于待执行状态,则按照任务优先级高低安排任务执行的先后顺序。任务调度流程如图4所示。其中:任务调度模块根据事先定义的任务优先级决定查询的频率,高优先级任务具有最高的查询频率,从而具有最快的响应时间。

图4 任务调度流程Fig.4 Task scheduling flow

图2中3层总线的优先级由最上层的1553B网络向下逐级降低,RS422网络优先级最低。分系统A1和B1的数据通信对时间最敏感,必须给予数据最高优先级处理,这样第1层的数据得到最及时的实时处理。RS422 网络数据处理对实时性要求不高,对延时容忍大,所以设置为最低优先级。

优先级在程序初始阶段确定,即采用静态优先级的方式。第1层分系统A1和分系统B1总线中断作为硬件中断,使用单片机的外部中断0,1连接总线中断引脚,作为软件外部输入的驱动事件,设置优先级为最高;第2层的分系统A2总线对实时要求较高,所以设置优先级为次高;第3层RS422网络对执行时间要求低,设置为最低优先级。

3.1.2 工作流程设计

传统电源下位机软件采用简单的单总线通信中断触发软件架构,中断来后根据不同的1553B 子地址置位消息标志,在主程序中判断消息标志后执行相关处理,其工作流程如图5所示。空间站电源下位机软件则是利用任务调度模块实现中断按优先级排队,从而按优先级处理相应任务,其工作流程如图6所示。

图5 传统电源下位机软件工作流程Fig.5 Software workflow of tradition power system slave computer

图6 空间站电源软件工作流程Fig.6 Software workflow of space station power system

外部输入信号连接单片机外部中断引脚,硬件中断相对于软件中断来说具有更高的优先级。软件中断分为2级,根据任务的重要性和执行时间等综合因素设置优先级。从任务需求角度考虑,软件把对实时要求高的模块作为软件高优先级处理,处于执行队列的队首,其他低优先级任务则根据请求依次进入处理队列的队尾。

空间站电源软件按任务重要程度和实时性要求,对优先级作进行划分(见表1)。T1,T2总线中断作为硬件中断,使用单片机的外部中断0,1连接总线中断引脚,作为第1层网络分系统A1和B1外部输入的驱动事件,设置优先级为最高;T3对实时要求较高,设置优先级为次高;T4,T5对执行时间要求一致,设置为最低优先级。

表1 任务优先级Table 1 Task priority

为了提高CPU 利用率,减少CPU 空转时间,在执行任务队列为空的情况下,任务调度模块把CPU 分配给高优先级任务占用,比如分系统A2总线传输等任务。这样,在提高CPU 利用率的同时,均衡了CPU 的负载。

3.2 代码重构

如图7所示,为了满足对电源系统的控制要求,传统电源下位机采用硬件实现对模拟量电压变换、处理工作,软件实现对蓄电池充放电闭环控制、遥测采集、执行遥控指令和总线通信等工作。电源下位机软件包括1553B 总线通信、指令发送模块、遥测采集模块和控制模块。通过1553B 总线实现与其上位机星务系统通信[8-10],包括发送组帧后的遥测值和接收指令参数。

图7 传统电源下位机原理框图Fig.7 Schematic diagram of tradition power system slave computer

电源下位机软件主要完成3项功能:对氢镍蓄电池组进行氢压和安时计充电控制;对锂离子蓄电池组进行充电控制和均衡管理;与星务主机进行通信。其中:与星务主机的1553B 总线通信,包括对65170芯片初始化,芯片寄存器和内存的读写,并将遥测组帧发送,接收总线指令并执行。

如图1 和图2 所示,空间站电源软件要实现3组1553B的通信,需要采集系统内单机的遥测,组帧后转发给2个外系统,并且接收2个系统的指令注入转发给电源系统内单机。空间站电源软件因需求变化,要对电源下位机软件代码进行重构。需求差异体现在芯片初始化数量、遥测组帧、接收指令和注数、指令处理及新增总线监测上,具体如下。

(1)直接复用:寄存器读写和内存读写模块。

(2)部分复用:芯片初始化模块,因为要对3个1553B芯片进行初始化,各个芯片寄存器的设置、查找表及子地址控制字都不一样,所以根据它们各自的设置生成3个芯片初始化函数;遥测模块,复用模拟量采集和数字滤波代码;接收指令模块,复用执行集电极开路(OC)指令代码。

(3)新增代码:接收指令和注数的数据校验函数;电源系统内总线数据收发函数;总线监测函数;串口函数;遥测组帧模块;任务调度模块。

由以上可知:直接复用和部分复用的函数模块为5个,占到整个13个函数模块的38.47%,实现了38.47%的软件代码复用率。

4 应用与验证

本文设计的空间站电源软件已在我国空间站电源系统中得到应用。软件接收数管计算机的总线指令和注入数据后,分发给系统内部各单机;软件收集系统内各单机的遥测数据(包括工程、常规、仪表和蓄电池遥测数据),组帧后将数据发送给数管系统;响应来自GNC 系统的驱动控制指令,分发给相关的驱动控制设备;接收驱动控制设备反馈的驱动控制数据,组帧后发送给GNC 系统。下面以电源系统内各单机的遥测数据采集的T3任务晚于T4,T5任务的执行比率为例,对重构后空间站电源软件进行验证。

如果采用传统电源下位机总线通信中断处理方法,则收集电源系统内各单机的遥测数据的T3任务晚于表1中T4,T5任务执行的比率如图8所示。T3任务中收集分系统4种遥测晚于T4,T5任务执行的比率总计为44.48%。通过重构后的空间站电源软件,优先执行T3任务,不会晚于T4,T5任务执行,即执行比率提高了44.48%。通过以上验证,可知空间站电源软件采用具有静态优先级的任务调度处理模式,实时性任务的响应率提高了44.48%,保证了系统内实时性任务的响应和数据传输的可靠性,能有效满足空间站电源系统的信息管理任务需求。

图8 T3任务晚于T4,T5任务执行的比率Fig.8 Execution rate that T3 task is later than T4,T5 tasks

5 结束语

经过重构的空间站电源软件,实现了多重总线的互联互通。在它的管理下,连接了不同层次的网络,扩展了系统原有设备数量和数据负载的限制。软件采用具有静态优先级的任务调度处理模式,保证了系统内实时性任务的响应和数据传输的可靠性。后续根据航天电源的发展方向,必定需要更加复杂的信息网络,软件需要处理能力更强的CPU平台。下一代空间站电源软件可以结合新型平台的特点和软件重构技术继续迭代开发,从而实现复杂网络通信和大量数据的实时处理。

猜你喜欢

任务调度中断空间站
天壤之别的空间站内行走和太空行走
空间站为什么不会掉下来
首个第三代空间站——“和平号”空间站
基于改进NSGA-Ⅱ算法的协同制造任务调度研究
基于时间负载均衡蚁群算法的云任务调度优化
跟踪导练(二)(5)
千里移防,卫勤保障不中断
云计算环境中任务调度策略
云计算中基于进化算法的任务调度策略
空间站夺宝