一种软件抗干扰方法及装置的制作方法

文档序号:6556741阅读:171来源:国知局
专利名称:一种软件抗干扰方法及装置的制作方法
技术领域
本发明涉及软件技术领域,尤其涉及一种使系统排除干扰、恢复正常的软件抗干扰方法及装置。
背景技术
当今众多的电子产品越来越多地被应用到工业控制的各个领域。电子类产品在工业现场使用时,由于控制过程一般需要运行软件系统,而工业现场周围众多的干扰源不仅对软件的输入、输出产生巨大的影响,而且时常破坏内部程序计数器PC状态使程序跑飞(程序跑飞是由于外部干扰或内部程序编制错误引起的一种单片机运行故障),甚至对系统硬件造成致命的损害,使计算机系统不能正常运行,致使控制失灵,造成重大事故。
抗干扰技术由此而产生,并分为两大类硬件抗干扰技术和软件抗干扰技术。硬件抗干扰技术发展较早,且对于干扰抑制技术已较为成熟。然而,硬件抗干扰技术的针对性较强,预见性较差,无法屏蔽掉所有干扰,且有时成本过高。与之相反软件抗干扰技术软件不仅设计灵活,节约硬件资源,成本低,同时还由于它是一种干扰过后的补救手段,通用性强,适用于不同的系统抵抗不同的干扰。因此,软件抗干扰问题的研究愈来愈引起人们的重视。但由于软件技术起步较晚,对于软件抗干扰的认识还不成熟。目前,使用较多的软件抗干扰方法包括软件陷阱和软件看门狗。这两种方法都仅仅做到在系统受到干扰后,帮助系统摆脱失控状态,从头开始初始化,而无法将系统恢复到程序跑飞前的状态。

发明内容
本发明的目的是提供一种软件抗干扰方法及装置,用于监控软件运行及故障恢复,以避免因外界干扰造成的系统失控,并且可在短时间内将系统恢复,继续失控前的运行状态,将系统恢复到程序跑飞前的状态。
本发明的目的是通过以下技术方案实现的一种软件抗干扰方法,包括A、为组成软件的每个相互独立的模块分别设置唯一对应的功能字,在软件运行过程中保存模块对应的功能字与该模块的运行数据信息;B、当软件复位时根据相应的功能字及运行数据信息对软件进行恢复处理。
所述的步骤A包括A1、在每个模块调用返回前保存该模块对应的功能字与该模块的运行数据信息。
所述的步骤A1包括A11、在每个模块调用返回前将该模块对应的功能字与该模块的运行数据信息在片内保存或片外保存。
所述的步骤A11包括在每个模块调用返回前将该模块对应的功能字与该模块的运行数据信息在片内或片外保存一份或一份以上。
所述的步骤B包括确定系统是上电复位还是系统复位,如是上电复位则执行步骤B1,如是系统复位则执行步骤B2;B1、进行系统初始化,正常运行软件;B2、读取保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理。
所述的步骤B2包括无需进行系统初始化,直接读取保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理;或者,读取片外保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理;或者,无需进行系统初始化,读取片外保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理。
所述的步骤B还包括在软件中设置一个上电标志位,当系统上电时根据上电标志位确定系统是上电复位还是系统复位。
一种软件抗干扰装置,包括信息存储器用于存储软件的信息;信息读取器用于在软件系统复位时读取信息存储器保存的软件的信息;软件恢复控制器根据信息读取器读取的软件的信息,对软件进行恢复处理。
所述的信息存储器包括片内存储器用于在片内存储软件的信息;片外存储器用于在片外存储软件的信息;且所述的软件的信息包括为组成软件的每个相互独立的模块分别设置的唯一对应的功能字、为组成软件的每个相互独立的模块的运行数据信息和/或系统的上电标志位。
所述的软件恢复控制器包括状态判断器根据信息读取器读取的软件的信息中的系统的上电标志位,确定系统是上电复位还是系统复位。
由上述本发明提供的技术方案可以看出,本发明所述的一种软件抗干扰方法及装置在程序中设立了若干个岗哨,每次调用子程序返回前保存数据;返回后,都要对返回的功能字进行验证,正确后方可继续下面的程序。并在程序入口处设立标志位判断是上电复位还是系统复位,用以决定是进行系统初始化还是系统恢复;若需系统恢复则根据保存数据确定入口。实现监控软件运行及故障恢复,以避免因外界干扰造成的系统失控,并且可在短时间内将系统恢复,继续失控前的运行状态,将系统恢复到程序跑飞前的状态。


图1为本发明提供的一种软件抗干扰方法的流程图;图2为本发明提供的一种软件抗干扰装置的结构示意图。
具体实施例方式
本发明的核心是在程序中设立了若干个岗哨,每次调用子程序返回前保存数据;返回后,都要对返回的功能字进行验证,正确后方可继续下面的程序。并在程序入口处设立标志位判断是上电复位还是系统复位,用以决定是进行系统初始化还是系统恢复;若需系统恢复则根据保存数据确定入口。
困此本发明要求软件必须模块化编程,且每个模块功能明确,执行独立、唯一的功能;并为每个模块设立模块功能字寄存器,并为配置唯一的功能字。
本发明的所述的一种软件抗干扰方法其具体的过程如图1所示步骤11、系统上电后,读取并判断上电标志位是否为“0”,如是则执行步骤12,否则将其置执行步骤17;本发明需事先设立上电标志位,用于区分上电复位和系统复位。可以是“0”也可以是“1”,此处以“0”为例。处理器在上电后对所有片内寄存器进行初始化,对于无特殊用途预留的寄存器置0。选择1位预留的寄存器作为上电标志位,如89C51中可以选择PSW.5。若硬件支持,最好在片外EEPROM中设立上电标志位。
步骤12、进行系统初始化;步骤13、系统初始化后,开始依次调用各模块子程序;步骤14、每个模块在调用返回前,将其功能字写入对应的功能寄存器。
将功能寄存器中数据和对于恢复系统继续运行起重要作用的数据多处保存,建议存入片外EEPROM。这样做主要是考虑到若电源电压受到强烈干扰,产生巨大波动,电压快速下降到下限工作电压以下;短暂干扰后,电源电压恢复正常,系统重新启动,但此时RAM中数据整体受到冲毁,此时故障恢复将无法实现。数据保存后返回上级程序。
步骤15、程序返回后,应先判断功能字寄存器中的功能字是否正确。若正确,继续运行下面的模块子程序,执行步骤13;否则,执行步骤16;有的时候程序运行完成后,还需要跳转到步骤13,从头开始运行,而不必再进行系统初始化。
步骤16、将程序拦截强制性跳转到程序入口处,执行步骤11;若不正确,检测到模块功能字寄存器中的功能字错误后,则表示PC指针可能已经跳转到错误的位置,程序已经跑飞,子程序没有按预计的出口返回。此时,将程序拦截强制性跳转到程序入口处。这种方法,如同在程序中设立了若干个岗哨,每次调用子程序返回后,都要对返回的功能字进行验证,正确后方可继续下面的程序。
步骤17、若是系统复位,跳过系统初始化,并将片外EEPROM中存储的功能字和重要数据读到片内RAM区相应地址;步骤18、根据模块功能寄存器内功能字,确定程序跑飞前的位置,继续运行程序。
本发明所述的一种软件抗干扰装置,其具体结构如图2所示包括信息存储器、信息读取器与软件恢复控制器,其中信息存储器用于存储软件的信息,包括片内存储器与片外存储器,片内存储器用于在片内存储软件的信息;片外存储器用于在片外存储软件的信息;所述的软件的信息为组成软件的每个相互独立的模块分别设置的唯一对应的功能字、为组成软件的每个相互独立的模块的运行数据信息和/或系统的上电标志位。
信息读取器用于在软件系统复位时读取信息存储器保存的软件的信息;软件恢复控制器根据信息读取器读取的软件的信息,对软件进行恢复处理。包括状态判断器,根据信息读取器读取的软件的信息中的系统的上电标志位,确定系统是上电复位还是系统复位。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种软件抗干扰方法,其特征在于,包括A、为组成软件的每个相互独立的模块分别设置唯一对应的功能字,在软件运行过程中保存模块对应的功能字与该模块的运行数据信息;B、当软件复位时根据相应的功能字及运行数据信息对软件进行恢复处理。
2.根据权利要求1所述的软件抗干扰方法,其特征在于,所述的步骤A包括A1、在每个模块调用返回前保存该模块对应的功能字与该模块的运行数据信息。
3.根据权利要求2所述的软件抗干扰方法,其特征在于,所述的步骤A1包括A11、在每个模块调用返回前将该模块对应的功能字与该模块的运行数据信息在片内保存或片外保存。
4.根据权利要求3所述的软件抗干扰方法,其特征在于,所述的步骤A11包括在每个模块调用返回前将该模块对应的功能字与该模块的运行数据信息在片内或片外保存一份或一份以上。
5.根据权利要求1所述的软件抗干扰方法,其特征在于,所述的步骤B包括确定系统是上电复位还是系统复位,如是上电复位则执行步骤B1,如是系统复位则执行步骤B2;B1、进行系统初始化,正常运行软件;B2、读取保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理。
6.根据权利要求5所述的软件抗干扰方法,其特征在于,所述的步骤B2包括无需进行系统初始化,直接读取保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理;或者,读取片外保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理;或者,无需进行系统初始化,读取片外保存的模块对应的功能字与该模块的运行数据信息,并根据相应的功能字及运行数据信息对软件进行恢复处理。
7.根据权利要求5所述的软件抗干扰方法,其特征在于,所述的步骤B还包括在软件中设置一个上电标志位,当系统上电时根据上电标志位确定系统是上电复位还是系统复位。
8.一种软件抗干扰装置,其特征在于,包括信息存储器用于存储软件的信息;信息读取器用于在软件系统复位时读取信息存储器保存的软件的信息;软件恢复控制器根据信息读取器读取的软件的信息,对软件进行恢复处理。
9.根据权利要求8所述的软件抗干扰装置,其特征在于,所述的信息存储器包括片内存储器用于在片内存储软件的信息;片外存储器用于在片外存储软件的信息;且所述的软件的信息包括为组成软件的每个相互独立的模块分别设置的唯一对应的功能字、为组成软件的每个相互独立的模块的运行数据信息和/或系统的上电标志位。
10.根据权利要求8或9所述的软件抗干扰装置,其特征在于,所述的软件恢复控制器包括状态判断器根据信息读取器读取的软件的信息中的系统的上电标志位,确定系统是上电复位还是系统复位。
全文摘要
本发明所述的一种软件抗干扰方法及装置在程序中设立了若干个岗哨,每次调用子程序返回前保存数据;返回后,都要对返回的功能字进行验证,正确后方可继续下面的程序。并在程序入口处设立标志位判断是上电复位还是系统复位,用以决定是进行系统初始化还是系统恢复;若需系统恢复则根据保存数据确定入口。实现监控软件运行及故障恢复,以避免因外界干扰造成的系统失控,并且可在短时间内将系统恢复,继续失控前的运行状态,将系统恢复到程序跑飞前的状态。
文档编号G06F11/36GK101034369SQ20061005735
公开日2007年9月12日 申请日期2006年3月10日 优先权日2006年3月10日
发明者宋颖 申请人:北京佳讯飞鸿电气有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1