一种基于任务自适应分配的星载计算机动态重构方法及系统与流程

文档序号:15636278发布日期:2018-10-12 21:30阅读:243来源:国知局

本发明涉及一种基于任务自适应分配的星载计算机动态重构方法及系统,属于航天器综合电子技术领域。



背景技术:

为提升可靠性,传统航天器中的星载计算机一般采用双机或三机方式,其中双机一般采用冷备模式,每个单机都包含处理器(cpu)模块以及若干io模块,不同单机间的cpu无法进行通信,一个单机的cpu无法对另一个单机的io模块进行访问。

上述设计有如下缺点:

(1)双机中两个单机是完全备份的状态,各单机完成的任务完全相同,当单机处理能力有限而航天器任务大幅增加时,无法通过双机并行运行实现任务扩展。

(2)双机中cpu与io模块是绑定的状态,若其中一个单机的cpu故障,其对应该单机中与该cpu接口的其它模块即使正常也无法使用,只能整体切换至另一个单机。



技术实现要素:

本发明的技术解决问题是:克服现有技术的不足,提供一种基于任务自适应分配的星载计算机动态重构方法及系统,解决了双机单模块故障时只能整机切换以及任务无法按需扩展和并行运行的问题。

本发明的技术方案是:

本发明与现有技术相比的有益效果是:

(1)本发明中在一个星载计算机中包括若干cpu模块和io模块,通过内部总线相连,如图4所示。各cpu模块可以是冷备份,也可以同时工作,系统灵活性强。当单cpu模块处理能力有限而航天器任务大幅增加时,各cpu模块可以同时工作,实现双机并行工作模式,分别承担不同的工作任务,根据任务需要动态扩展星载计算机的软件功能,相对于现有技术的冷备模式,提升系统的扩展能力和灵活性;

(2)本发明cpu模块和io模块是松耦合的关系,cpu模块和io模块之间可任意组合,若其中一个cpu模块故障,则可以用另一个cpu模块代替,该故障cpu模块所访问的io模块仍然可以由新cpu模块进行访问,系统容错能力可大幅提升;

(3)本发明在cpu模块之间采用心跳判断的模式,可以动态切换单机和双机工作模式,实现系统的动态重构;

附图说明

图1是任务分配状态初始化过程示意图;

图2是后台监控过程示意图;

图3是心跳信息结构图;

图4是星载计算机组成示意图。

具体实施方式

具体实施方式如下所述。

一种基于任务自适应分配的星载计算机动态重构方法,该方法用于在星载计算机内部不同cpu之间进行任务自适应分配及动态重构。包括如下步骤:

步骤1、任务分配状态初始化。任务分配状态初始化过程的示意图如图1所示,具体处理过程如下:

(1)各cpu设置其工作模式为初始化模式,并对通信驱动模块进行初始化,建立cpu之间通信的硬件通道连接。本实施例中,采用arinc659总线作为cpu之间通信的硬件通道,设计arinc659总线通信驱动模块,并将其挂接到操作系统中,然后调用操作系统的系统调用创建cpu通信设备。若采用其它星载链路,可开发对应的通信驱动模块予以替换即可;

(2)各cpu的系统监控模块通过cpu的通信驱动模块发送心跳消息到另一个cpu,本实施例中,心跳信息的结构如图3所示;

(3)等待2秒;

(4)各cpu的系统监控模块调用操作系统的系统调用,读取cpu通信驱动设备,以获取另一cpu的心跳信息。本实施例中,若心跳信息的字节长度为4且同步头为0xeb90,则认为是正确接收到心跳信息,设置当前模式为双机工作模式,否则设置当前模式为单机工作模式;

(5)各cpu根据从cpu模块读取的cpu标识设置本cpu的apid基址(唯一标识一个工作任务),启动本cpu的系统监控模块对应的后台监控任务,本实施例中,具体处理过程包括:

(a)若cpu标识为0x0b,则设置本cpu的apid基址为0x440,其它情况设置本cpu的apid基址为0x420。

(b)将本cpu的遥控处理任务的apid设置为apid基址+1,遥测处理任务的apid设置为apid基址+2,内务处理任务的apid设置为apid基址+3,程控处理任务的apid设置为apid基址+4,其它任务依此类推。

(c)调用操作系统的任务创建系统调用启动本cpu的后台监控任务,后台监控任务的处理流程见下文步骤2。

(6)各cpu根据apid基址以及当前工作模式启动本cpu对应的应用任务。本实施例中,具体处理过程包括:

(a)若当前为单机模式,则调用操作系统的任务创建系统调用,启动遥控处理任务、遥测处理任务、内务处理任务、程控处理任务、扩展任务等。

(b)若当前为双机模式,则当apid基址为0x420时表示为当班机,调用操作系统的任务创建系统调用,创建并启动遥控处理任务、遥测处理任务、内务处理任务、程控处理任务;当apid基址为0x440时表示为非当班机,调用操作系统的任务创建系统调用,创建并启动扩展任务。

步骤2、各cpu的系统监控模块的后台监控任务通过cpu之间的心跳信息对当前cpu模块在线状态进行实时监测,根据cpu模块在线状态进行工作模式切换、任务启动、任务删除等操作,实现任务自适应分配及动态重构。后台监控过程示意图如图2所示,具体处理过程如下:

(1)将cpu接收不成功次数清0;

(2)cpu的后台监控任务通过cpu通信驱动模块发送心跳消息到另一个cpu,本实施例中,心跳信息的结构如图3所示;

(3)将cpu接收不成功次数加1;

(4)cpu的后台监控任务通过cpu通信驱动模块获取另一cpu的心跳信息,判断是否正确接收到心跳信息,本实施例中,若心跳信息的字节长度为4且同步头为0xeb90,则认为是正确接收到心跳信息,将cpu接收不成功次数清0;

(5)若cpu接收不成功次数为0且当前模式为单机模式,则将模式切换为双机模式,并根据双机模式下本cpu的任务配置进行任务启动、删除操作。本实施例中,任务配置具体处理过程为:若扩展任务进程标识大于0,则调用操作系统的任务删除系统调用将扩展任务删除,设置扩展任务进程标识为0。

(6)若当前模式为双机模式且cpu接收不成功次数大于3,则将模式切换为单机模式,并根据单机模式下本cpu的任务配置进行任务自适应分配。本实施例中,任务自适应分配具体处理过程为:

(a)若apid基址为0x420,表示当班机由双机模式变为单机模式,则调用操作系统的任务创建系统调用创建扩展任务,将返回值赋予扩展任务进程标识。

(b)若apid基址为0x440,表示当前为非当班机,在双机变为单机后需切换为当班机,此时先将apid基址重设为0x420,并按照步骤1中(5)的(b)项处理方法设置各任务的apid,调用操作系统的任务创建系统调用创建并启动遥控处理任务、遥测处理任务、内务处理任务、程控处理任务。从而将原当班机中的任务自适应分配至现在的当班机。

(7)延时2秒,转到处理过程(2)继续执行。

本实施例中,如图4所示,航天器中可以采用星载计算机实现上述方法,具体包含2个cpu和若干个io模块,各模块通过arinc659总线连接。

cpu中运行操作系统、任务分配状态初始化软件以及本cpu的后台监控任务,cpu可以在任一单机加电状态或者双机加电状态下启动,在运行过程中可以对其中的任一cpu进行加断电操作,实现任务的自适应分配和动态重构。

io模块通过arinc659总线与cpu进行通信,可在cpu的控制下实现遥测采集、指令发送等功能。

本发明说明书中未作详细描述的内容属本领域专业技术人员的公知技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1