一种支持即插即用的星载软件容错方法技术

技术编号:15450507 阅读:121 留言:0更新日期:2017-05-31 12:15
本发明专利技术涉及多平台环境下星载软件容错的方法,公开了一种支持即插即用的星载软件容错方法,采取的步骤包括:异常触发、异常消息解析、故障所在设备驱动程序签名、故障所在软件模块签名、故障所在板卡签名、故障所在星载计算机签名、判断纠错能力、数据恢复处理、判断备份件、切换选用备份件、隔离故障设备或模块、记录故障信息。本发明专利技术解决了复杂应用环境下对多处理器及硬件设备的星载软件采取容错设计时不易扩展和兼容的问题,取得了提升软件快速开发能力、可靠性和支持设备即插即用等有益效果。

An on-board software fault tolerant approach to support plug and play

The invention relates to a method for multi platform environment onboard software fault-tolerant, discloses a PNP on-board fault tolerant method of software, the steps include: abnormal triggering, abnormal message parsing, fault location, fault signature device driver software module, fault signature card signature, the fault location of spaceborne computer signature, judgment error correction ability, data recovery, backup, the backup switching judgment, fault isolation, fault information recording device or module. The invention solves the problem of multi processor by fault-tolerant design of star and hardware complex application environment is not easy to load software expansion and compatibility issues, has made rapid development capacity, improve the software reliability and support plug and play the advantages of.

【技术实现步骤摘要】
一种支持即插即用的星载软件容错方法
本专利技术涉及卫星星载软件容错设计以及软件容硬件容硬件错的设计
,特别涉及一种支持对多处理器、硬件设备及多种软件组件即插即用的星载软件容错方法。
技术介绍
通过过去几十年中对星载软件可靠性的研究,发现软件错误仍然是影响系统可靠性的最关键因素。卫星设计要求系统即使出现故障时仍能保持运转而提供相应服务,因此要求卫星具有超强的容错能力,保证系统的高可靠性。直接开发容错应用是比较困难的,因为开发者不仅要处理复杂的应用逻辑,如星上多种异构的硬件设备、不同架构的软件模块、单机和分系统,还要面对复杂的容错逻辑,开发者很难将整个系统的应用逻辑和容错逻辑考虑全面,致使系统的可靠性得不到全面的保障。在星载软件设计基础上,针对卫星系统的容错模型,设计支持即插即用的容错管理方法,可屏蔽容错实现和管理困难,降低了容错处理的难度,实现容错管理的精细化。星载软件容错体系架构,不仅要考虑软件本身的容错,还需要考虑对硬件及上层系统的容错,通过软件对硬件容错的技术称为SIFT(Software-ImplementedFaultTolerance),星载软件容错领域对此加以扩充,并结合软件自身的容错技术,采取分层方式实现,根据容错对象的业务特点及影响范围可以自上而下划分成:系统级、板卡级、模块级及部件级四个层次。为实现快速响应和在轨维护,支持即插即用的星载软件容错方法不仅要考虑软件本身的容错,还需要考虑对硬件及上层系统的容错,通过软件对硬件容错的技术称为SIFT(Software-ImplementedFaultTolerance),采取分层方式实现,根据容错对象的业务特点及影响范围可以自上而下划分成:系统级、板卡级、模块级及部件级四个层次。针对星载软件中间件的数据流、控制流特点,设计多级容错管理软件中间件框架,采用层次化的软件构件化设计技术和分级签名技术,分别在系统、板卡、模块和部件等四个层面建立标准化容错业务及协议。为此,一种支持即插即用的星载软件容错方法可以弥补传统星载软件设计模式下容错设计不支持多处理器和不同硬件设备的兼容的不足,实现星载软件容错设计的通用化和产品化,并可以支持星载软件中间件分层体系架构,这种方法提高了星载软件开发的效率以及星载软件可靠性。目前没有发现同本专利技术类似技术的说明或报道,也尚未收集到国内外类似的资料。
技术实现思路
本专利技术的目的在于提供一种支持即插即用的星载软件容错方法,以解决传统的星载软件设计模式下容错设计不支持多处理器和不同硬件设备兼容的问题,并实现星载软件容错设计的通用化和产品化。为实现上述目的,本专利技术提供了一种支持即插即用的星载软件容错方法,包括以下步骤:S1:异常触发,并获取异常消息;S2:进行异常消息解析,获得异常类型、异常前的程序地址、异常前的系统寄存器组的数据、异常前访问的设备标识及引发异常的内存物理地址;S3:进行故障所在设备驱动程序签名;S4:进行故障所在软件模块签名;S5:进行故障所在板卡签名;S6:进行故障所在星载计算机签名;S7:根据引发异常的内存物理地址是否存在冗余数据来判断是否具有纠错能力,如存在冗余数据,进入步骤S8,如无冗余数据,进入步骤S9;S8:进行数据恢复处理,然后进入步骤S12;S9:根据异常前的程序地址、异常前访问的设备标识检查是否存在具有相同功能的软件模块或硬件设备,判断是否存在备份件,如存在,进入步骤S10,如不存在,进入步骤S12;S10:切换选用备份件;S11:隔离故障设备或模块;S12:记录故障信息。较佳地,所述的异常触发采用处理器陷阱中断的方式触发。较佳地,所述步骤S3中,故障所在设备驱动程序签名是根据异常前访问的设备标识确定的,用8位整形数表示;所述步骤S4中,故障所在软件模块签名是由星载软件对各子程序入口分别进行编码签名,用8位整形数表示;所述步骤S5中,故障所在板卡签名是根据异常前访问的设备标识所属的硬件板卡进行编码签名,用8位整形数表示;所述步骤S6中,故障所在星载计算机签名用8位整形数表示。较佳地,所述步骤S8具体为:若引发异常的内存物理地址所在的硬件存储器芯片支持EDAC纠错功能,则采用EDAC一位错中断纠错的方式进行数据恢复处理。较佳地,所述的EDAC一位错中断纠错方式具体为:通过在星载软件背景任务中按照地址顺序循环读所有内存单元,如果读取的内存单元出现一位错,由处理器触发可纠正存储器错误中断,在可纠正存储器错误中断服务程序中读取出错内存单元地址,通过硬件EDAC纠错,将正确的数据写回出错内存单元地址。较佳地,所述步骤S8具体为:若引发异常的内存物理地址所在的硬件存储器芯片不支持EDAC纠错功能,则采用数据三取二表决的方式进行数据恢复。较佳地,所述步骤S10具体包括:判断当前故障的软件模块或硬件设备是否发生不可纠正的故障,如果发生故障且不可纠正,则在程序中设置变量标志,通过判断变量标志,使备份件执行并替代发生故障的软件模块或硬件设备,并不再执行已发生故障的软件模块或硬件设备。较佳地,判断是否发生不可纠正的故障的方法为:通过监视定时器记录程序模块死锁的时间,计数达到指定阈值后,则发生了不可纠正的故障。较佳地,判断是否发生不可纠正的故障的方法为:通过对硬件设备周期性自检,错误计数达到指定阈值后,则发生了不可纠正的故障。较佳地,所述故障信息包括:故障发生时间、故障所在设备、故障所在软件模块、故障所在板卡、故障所在星载计算机、异常类型、异常前的程序地址、异常前的系统寄存器组的数据、异常前访问的设备标识和引发异常的内存物理地址。本专利技术提供的一种支持即插即用的星载软件容错方法,由于采取上述的技术方案,采取了系统级、板卡级、模块级及部件级四个层次的软件签名流程设计,将故障检测、故障隔离和故障恢复的各类容错设计有机统一在软件架构中。本专利技术解决了传统星载软件容错设计零碎化,难以兼容不同处理器、硬件设备和不同应用环境下软件中间件复用的问题,取得了提高星载软件开发效率和可靠性的有益效果。附图说明图1为本专利技术提供的支持即插即用的星载软件容错方法流程图;图2为优选实施例的判断故障所在模块自主恢复能力的程序流程图;图3为优选实施例的三取二数据恢复的程序流程图。具体实施方式为更好地说明本专利技术,兹以一优选实施例,并配合附图对本专利技术作详细说明,具体如下:如图1所示,本实施例提供的支持即插即用的星载软件容错方法,包括以下步骤:S1:进行异常触发,并获取异常消息;其中,这里的异常触发采用处理器陷阱中断的方式触发。S2:进行异常消息解析;获得异常类型、异常前的程序地址、异常前的系统寄存器组的数据、异常前访问的设备标识及引发异常的内存物理地址;S3:进行故障所在设备驱动程序签名;S4:进行故障所在软件模块签名;S5:进行故障所在板卡签名;S6:进行故障所在星载计算机签名;S7:判断是否具有纠错能力,如存在冗余数据,进入步骤S8,如无冗余数据,进入步骤S9;其中,根据引发异常的内存物理地址是否存在冗余数据来判断是否具有纠错能力。S8:进行数据恢复处理,然后进入步骤S12;S9:判断是否存在备份件,如存在,进入步骤S10,如不存在,进入步骤S12;其中,根据异常前的程序地址、异常前访问的设备标识检查是否存在具有相同功能的软件模块或硬件本文档来自技高网
...
一种支持即插即用的星载软件容错方法

【技术保护点】
一种支持即插即用的星载软件容错方法,其特征在于,包括以下步骤:S1:异常触发,并获取异常消息;S2:进行异常消息解析,获得异常类型、异常前的程序地址、异常前的系统寄存器组的数据、异常前访问的设备标识及引发异常的内存物理地址;S3:进行故障所在设备驱动程序签名;S4:进行故障所在软件模块签名;S5:进行故障所在板卡签名;S6:进行故障所在星载计算机签名;S7:根据引发异常的内存物理地址是否存在冗余数据来判断是否具有纠错能力,如存在冗余数据,进入步骤S8,如无冗余数据,进入步骤S9;S8:进行数据恢复处理,然后进入步骤S12;S9:根据异常前的程序地址、异常前访问的设备标识检查是否存在具有相同功能的软件模块或硬件设备,判断是否存在备份件,如存在,进入步骤S10,如不存在,进入步骤S12;S10:切换选用备份件;S11:隔离故障设备或模块;S12:记录故障信息。

【技术特征摘要】
1.一种支持即插即用的星载软件容错方法,其特征在于,包括以下步骤:S1:异常触发,并获取异常消息;S2:进行异常消息解析,获得异常类型、异常前的程序地址、异常前的系统寄存器组的数据、异常前访问的设备标识及引发异常的内存物理地址;S3:进行故障所在设备驱动程序签名;S4:进行故障所在软件模块签名;S5:进行故障所在板卡签名;S6:进行故障所在星载计算机签名;S7:根据引发异常的内存物理地址是否存在冗余数据来判断是否具有纠错能力,如存在冗余数据,进入步骤S8,如无冗余数据,进入步骤S9;S8:进行数据恢复处理,然后进入步骤S12;S9:根据异常前的程序地址、异常前访问的设备标识检查是否存在具有相同功能的软件模块或硬件设备,判断是否存在备份件,如存在,进入步骤S10,如不存在,进入步骤S12;S10:切换选用备份件;S11:隔离故障设备或模块;S12:记录故障信息。2.根据权利要求1所述的支持即插即用的星载软件容错方法,其特征在于,所述的异常触发采用处理器陷阱中断的方式触发。3.根据权利要求1所述的支持即插即用的星载软件容错方法,其特征在于,所述步骤S3中,故障所在设备驱动程序签名是根据异常前访问的设备标识确定的,用8位整形数表示;所述步骤S4中,故障所在软件模块签名是由星载软件对各子程序入口分别进行编码签名,用8位整形数表示;所述步骤S5中,故障所在板卡签名是根据异常前访问的设备标识所属的硬件板卡进行编码签名,用8位整形数表示;所述步骤S6中,故障所在星载计算机签名用8位整形数表示。4.根据权利要求1所述的支持即插即用的星载软件容错方法,其特征在于,所述步骤S8具体为:若引发异常的内存物理地址所在的硬件存储器芯片支持EDAC纠错功能,则采用EDAC一位错中断纠错的方式...

【专利技术属性】
技术研发人员:朱琦林挺胡晓刚蔡曦芮晔游红俊
申请(专利权)人:上海航天测控通信研究所
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1