一种软硬件协同防止系统死机中断业务的复位方法
技术领域
本发明涉及一种电子设备内利用软硬件协同完成防止系统死机的复位方法,尤其涉及的是在通讯领域的复位逻辑电路设计中,通过软件与硬件共同配合,防止系统运行死机引起业务中断的复位方法。
背景技术
在现有技术的电子设备中,为了防止系统出现CPU跑死或在工作不正常的情况下能够及时的进行复位处理,系统中都设计有复位逻辑。
对于一块单板,其一般的复位逻辑是简单的由一块带看门狗的复位芯片来完成的,通过软件喂狗的方式控制整板的复位。这种做法很有可能会造成整个通讯网的业务通讯中断。如在软件跑死时,没有了喂狗信号,单板会重启。对系统软件版本升级时,需重启软件时也不得不复位系统或单板。或在一些由突发性任务造成CPU工作负荷加重的情况下,使得软件无法及时的给出喂狗信号,虽说这时CPU及软件均在正常工作,但仍会引起单板或系统设备复位,造成业务中断。
对于设备的整个系统来说,系统对各线卡的复位方案也比较的简单,安全性很低。一般是从主控板送给各个线卡一个复位信号,指示当前是否要进行单板强制复位,这种做法容易导致由于线上的干扰使线卡误操作,导致整板复位的现象。
因此,现有技术还有待于继续改进和发展。
发明内容
本发明的目的就是为了解决以前复位逻辑过于简单,对复位信号不作区分,任何情况下的复位都会引起整个单板的重起,导致业务中断的技术问题,设计一种能够解决以上各种不完善情况的软硬件协同操作的复位方案。
本发明的技术方案包括:
一种软硬件协同防止系统死机中断业务的复位方法,其包括以下步骤:
A、在系统异常情况下选择软件复位或硬件复位;
B、对于由软件原因引起的软件复位,系统只对CPU部分进行复位,对业务部分不处理,保证软件复位时不断业务;
C、若系统在预定时间内超过了预定次数的软件复位,则进行硬件复位。
所述的方法,其中,所述硬件复位的条件还包括:
上电,按复位键,网管下硬复位命令,线卡收到强制复位信号或单板自检不通过。
所述的方法,其中,所述软件复位的条件还包括:
版本下载结束后重新启动或收到主控板下发的软件复位命令。
所述的方法,其中,所述步骤C还包括:所述系统中设置一可编程逻辑器件,其中设有两个计数器,一第一计数器为看门狗,它的清零控制端需要CPU在预定时间内写入喂狗字节的数字至少变化一次,否则溢出;一第二计数器对所述第一计数器的溢出次数进行计数,当计到预定次数时溢出;该第二计数器溢出后,切断晶振时钟到复位芯片的输入,使所述复位芯片产生复位输出,形成硬件复位过程。
所述的方法,其中,所述步骤C还包括:该第二计数器的计数值由软件的溢出次数字节读回,用于判断是硬件重启还是软件重启。
所述的方法,其中,所述步骤C还包括:所述第二计数器的计数值由软件的溢出次数字节进行修改,以在所述第一计数器下一次溢出时产生硬件复位。
本发明所提供的一种软硬件协同防止系统死机中断业务的复位方法,大大提高了系统的稳定性,对不同情况下的复位信号进行了智能处理,增强了系统复位的灵活性;降低了异常复位引起的业务中断的可能性。
附图说明
图1为本发明方法的复位流程框图;
图2为本发明方法的看门狗复位逻辑框图。
具体实施方式
以下结合附图,将对本发明的各较佳实施例进行较为详细的说明。
本发明的所述软硬件协同防止系统死机中断业务的复位方法,采用了软件复位和硬件复位相结合的方案,可根据产生异常的情况不同产生不同的复位动作,从而达到对系统及业务的影响最小。
本发明方法中的复位分成两大类:硬件复位和软件复位,其中的软件复位只复位CPU部分,对业务部分的芯片不进行操作,从而对业务无中断影响。硬件复位则是对单板上所有能执行复位操作的芯片进行复位操作,也就是通常说的整板复位,此时会中断业务,产生影响,因此非到必不可少不进行整板复位。
本发明较佳实施例中所述复位逻辑产生的条件有以下的几种,根据产生条件的不同进行相应的复位操作。
对于由软件原因引起的软件复位,系统只对CPU部分进行复位,对业务部分不处理,保证软件复位时不断业务。若系统在预定时间内出现了N次软件复位,则可能整个系统有问题,通过软件复位无法解决问题,单板或系统执行硬件复位,此时业务会中断。该次数N为一个根据各自系统特点可以由用户定义的数字,所述预定时间也可以由用户据各自系统特点进行预先设定。
本发明方法的所述复杂可编程逻辑器件CPLD中设有2个计数器,如图1和图2所示的,第一计数器1为看门狗,它的清零控制端需要CPU软件在软件可编程规定的时间内写入喂狗字节的数字(0/1)至少变化一次,否则溢出。该计数器的溢出时间可以根据CPU的忙闲程度做相应的调节,可以适当将时间加长,这种情况下只要相应的调节计数器的溢出计数控制就可以实现。第一计数器1溢出端连至CPU的软件复位引脚,产生软件复位过程。第一计数器1的计数可以通过软件狗使能字节控制停止/启动。
第二计数器2对第一计数器1的溢出次数进行计数,当计到N时溢出。第二计数器2溢出后,切断晶振时钟到复位芯片的输入,使复位芯片产生复位输出,形成硬件复位过程。该第二计数器2的计数值可以由软件的溢出次数字节读回,用于判断是硬件重启还是软件重启。第二计数器2的计数值可以由软件的溢出次数字节进行修改,修改成N-1后,如果第一计数器1再次溢出,就会产生硬件复位。软件每次启动后在规定的时间内要给溢出次数字节寄存器写入0,以保证正常情况下如果规定时间内第一计数器1溢出N次则产生硬件复位。
CPLD内还使用主控板的管理时钟信号采集主控板提供给线卡的强制复位线的信号,使用移位寄存器进行比较,在这里强制复位信号采用一串串行的特征字来表示,当监测到这个特征字后,切断晶振时钟到复位芯片的输入,使复位芯片产生复位输出,形成硬件复位过程。这样可有效的滤出强制复位线上的干扰信号,防止误操作。
本发明方法的该逻辑详细介绍如下:
所述单板内的复位芯片负责硬件复位,其复位输出接至CPU、可编程逻辑器件和各专用芯片的复位脚。所述复位芯片的手工复位输入接至复位芯片的手工复位端,按复位键产生硬件复位操作。所述复位芯片的看门狗输入端接至可编程逻辑器件,由可编程逻辑器件为其提供时钟信号,当产生下列情况之一时可编程逻辑器件停止提供时钟信号,复位芯片产生硬件复位:规定时间内看门狗曾经溢出次数计数达到N次,或,主控板发送的强制复位信号为规定的特征字时。
所述单板上的可编程逻辑器件中设有一个看门狗程序,要求在软件规定的喂狗时间内至少喂狗(控制电平变化)一次,否则看门狗溢出,对CPU进行复位。软件使用看门狗喂狗字节位写“0”/“1”进行喂狗。看门狗可以被禁止(比如启动、版本更新时),软件使用看门狗使能开关字节写“0”禁止看门狗工作。可编程逻辑器件内逻辑使此控制逻辑缺省为禁止看门狗工作。
本发明所述可编程逻辑器件中还有逻辑对看门狗曾经溢出的次数进行计数,当计数到N-1次后又产生了看门狗复位时进行硬件复位。软件要在预定时间后将看门狗溢出次数清零,以保证“如果规定时间内有超过N次看门狗溢出就执行硬件复位”的逻辑。软件使用看门狗溢出次数字节位写零清除看门狗溢出次数计数。
所述硬件复位后看门狗曾经溢出的次数的计数值为0,可以使用看门狗曾经溢出次数做为软件判别软/硬重起的标志。当看门狗曾经溢出的次数为0时,表明是硬重启;当看门狗曾经溢出的次数不为0时,表明是软重启。软件读取看门狗溢出次数字节位对应看门狗曾经溢出次数。软件可以修改看门狗曾经溢出次数,当写成N-1后,看门狗再次溢出,就会产生硬件复位,从而实现软件控制硬件复位。
本发明方法通过软硬件的协同操作,对不同情况下的复位信号进行区分,并作适当的处理,对某些软件或CPU跑死等引起的复位,在保证通讯业务不中断的情况下,恢复系统正常运行。本发明的复位方法大大提高了系统的稳定性,对不同情况下的复位信号进行了智能处理,增强了系统复位的灵活性;降低了异常复位引起的业务中断的可能性。
应当理解的是,上述针对具体实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。