一种嵌入式系统监控及复位控制方法

文档序号:6549863阅读:223来源:国知局
一种嵌入式系统监控及复位控制方法
【专利摘要】本发明涉及一种系统监控及复位控制方法,应用于各种嵌入式操作系统及设备,用以提高系统及设备运行的安全性、可靠性和稳定性。本发明方法利用系统软件和CPLD逻辑代码相结合的方式来产生喂狗信号,同时结合复位机制,可以使系统初始状态更加确定,系统复位更加彻底。
【专利说明】一种嵌入式系统监控及复位控制方法
【技术领域】
[0001]本发明涉及一种系统监控及复位控制方法,应用于各种嵌入式操作系统及设备,用以提高系统及设备运行的安全性、可靠性和稳定性。
【背景技术】
[0002]WDT(watch dog timer)是最常见的系统异常监控方法,其中硬件电路一般采用MAX706等看门狗控制芯片,喂狗信号WDI —般有如下两种产生方法。
[0003]第一种是直接利用系统软件来产生周期性的喂狗信号。该方法的优点是实现简单,喂狗信号是否正常直接反映了操作系统软件是否正常工作。但是,它的缺点非常致命。因为MAX706等看门狗控制芯片的喂狗信号一般需要在1.6秒之内从高到低,或者从低到高产生跳变,一旦操作系统中的任务调度比较繁忙的话,经常会保证不了在1.6秒之内使喂狗信号产生跳变,从而会导致由于WDT定时器溢出而使系统复位的误监控情况发生。
[0004]第二种是直接利用CPLD逻辑代码来产生喂狗信号。该方法的优点是可以保证喂狗信号的精准,不会发生由于操作系统任务调度不及时而造成的喂狗信号产生不精准的问题,同时,用CPLD来产生喂狗信号也可以减轻操作系统的负担。这一种方法的缺点是不能直接监控操作系统的运行状况,它只能直接监控系统中CPLD逻辑代码的运行状况,因为操作系统和CPLD逻辑是各自独立的,其中一种运行出问题,不代表另外一种也一定会出问题。

【发明内容】

[0005]本发明的目的是为了克服上述【背景技术】的不足之处,提供一种系统监控及复位控制方法,利用系统软件和CPLD逻辑代码相结合的方式来产生喂狗信号,同时结合复位机制,不但可以避免上述两种方式中问题,同时还可以使系统初始状态更加确定,系统复位更加彻底。
[0006]本发明的发明目的是通过如下技术手段实现的。
[0007]—种系统监控及复位控制方法,该方法使用的硬件部分包括CPLD芯片、CPU芯片、看门狗控制芯片及其他外围硬件电路,该方法中看门狗控制芯片的喂狗信号WDI采用系统软件和CPLD逻辑代码相结合的方式来产生,包括以下步骤:
(I)CPLD逻辑代码产生周期小于3.2秒的方波信号SI,SI通过一个看门狗使能控制位FLAGl和一个CPU喂狗信号是否正常标识位FLAG2共同控制以后,再经CPLD的一个I/O管脚Jl输出给看门狗控制芯片的喂狗输入管脚;其中,看门狗使能控制位FLAGl默认不使能,关闭看门狗,CPU操作系统初始化完成以后再由软件动态使能该控制位FLAG1,打开看门狗。
[0008](2)按如下策略控制CPU喂狗信号是否正常标识位FLAG2:
操作系统软件通过CPU的一个GP1管脚向CPLD的一个I/O管脚J2输入周期为T的方波信号S2,在CPLD逻辑代码中判断S2是否在正常跳变,如果跳变正常,FLAG2置为正常,否则置为异常;考虑到CPU操作系统的调度工作量和系统监控效果,T 一般大于3.2S,小于6S为宜;
FLAGl使能,FLAG2正常时,SI正常输出给看门狗控制芯片的喂狗输入管脚;FLAG1不使能或者FLAGl使能,FLAG2异常时,SI停止输出给看门狗控制芯片的喂狗输入管脚;
这种嵌套产生喂狗信号的方法既监控了 CPLD逻辑代码的实时运行状态,也监控了操作系统软件的实时运行状态,同时S2的产生周期T可根据系统的实际负荷情况进行灵活调整,从而保证操作系统能够调度及时。
[0009](3) CPU操作系统复位控制:
看门狗控制芯片的复位输出管脚W_R接入CPLD的I/O管脚J3,设备的手动复位按钮SW并联接入看门狗控制芯片的手动复位管脚MR,这样看门狗芯片因喂狗信号不正常而复位、手动按钮复位和设备上电启动时J3上都会输入复位信号RST,RST的低电平宽度为200毫秒,之后会自行跳变到高电平;CPLD逻辑代码利用RST信号给相应的寄存器赋予确定的初值,其中,CPLD的喂狗输出管脚Jl上赋予高阻态初值,看门狗使能控制位FLAGl —定要不使能,否则会造成系统启动过程中由于CPU还未来得及产生S2时,Jl上的喂狗信号不正常而造成系统不断重启。同时在CPLD逻辑代码中定义寄存器REG用于系统软件控制各硬件芯片的复位,各硬件芯片的复位信号RSTO,RSTl等由J3上的复位信号RST和系统软件复位控制位REG共同控制,任意一种有效都会控制CPU芯片及操作系统和其他硬件芯片的复位。
[0010]此复位机制中由于手动复位按钮SW并联接入看门狗控制芯片的手动复位管脚MR,而不是直接接入CPLD的I/O管脚,这样就可以利用看门狗控制芯片的防抖动特性,避免CPLD逻辑代码错误的将SW上的抖动当成复位操作。同时利用看门狗芯片输出的复位信号RST来赋予相应的CPLD寄存器初值,可以使相应的初始状态更加确定,避免了由于没有初始状态而引发的一些异常问题发生。各硬件芯片的复位操作由看门狗芯片输出的复位信号RST和软件复位控制位REG共同控制,可以使复位操作更加彻底和更加灵活。
[0011]在上述技术方案中,发明方法硬件部分包括CPLD芯片、看门狗控制芯片MAX706、CPU芯片,所述CPU芯片通过一个GP1管脚与CPLD的一个I/O管脚J2相连,CPLD芯片的I/O管脚Jl与MAX706芯片的WDI输入管脚相连,设备的手动复位按钮SW通过4.7K的上拉电阻后并联接入MAX706芯片的手动复位按钮MR, MAX706芯片的RST管脚与CPLD的I/O管脚J3相连,CPLD的I/O管脚J4和I/O管脚J5别与CPU芯片及其他外围硬件电路相连。
[0012]本发明一种系统监控及复位控制方法,该方法基于CPLD逻辑、硬件电路和软件控制策略,可以实现对实时运行的系统是否正常运行进行监控,同时也提供一种系统上电及系统异常复位控制机制,可有效提高嵌入式系统及设备运行的安全性、可靠性和稳定性。
【专利附图】

【附图说明】
[0013]图1为本发明中喂狗信号WDI及复位信号产生硬件连接示意图。
[0014]图2为本发明喂狗信号WDI产生流程图。
【具体实施方式】
[0015]下面结合附图及实施例对本发明作进一步描述。
[0016]如图1所示,本实施例硬件部分包括CPLD芯片、看门狗控制芯片MAX706、CPU芯片,所述CPU芯片通过一个GP1管脚输出周期为T的方波信号S2给CPLD的一个I/O管脚J2,CPLD逻辑产生的喂狗信号WDI通过I/O管脚Jl输入到MAX706芯片的WDI输入管脚,设备的手动复位按钮SW通过4.7K的上拉电阻上拉后并联接入MAX706芯片的手动复位按钮MR, MAX706产生的复位信号RST通过I/O管脚J3输入给CPLD,CPLD产生的复位信号RSTO和RSTl等分别通过I/O管脚J4和I/O管脚J5输入给CPU芯片及其他外围硬件电路芯片。其中,为了给复位信号一个确定的初始非复位状态,电路中各复位信号均通过一个4.7K的电阻上拉,并且为了去抖动,各复位信号同时通过一个1nf左右的电容并联到地,MAX706的定时器溢出管脚WD0_N直接和MR相连,这样一旦WDI喂狗不及时,MAX706芯片内部的定时器溢出或者设备的手动复位按钮SW按下时,MAX706的复位管脚RST_N均会输出200ms左右的低电平复位号。
[0017]如图2所示为由系统软件和CPLD逻辑代码相结合来产生WDI信号的流程图。
[0018]第一步,系统启动一个看门狗定时器来通过CPU的一个GP1管脚产生周期为T的方波信号S2:启动看门狗定时器,通过CPU的GP1管脚8产生周期T=4秒的方波信号S2 ;
第二步,系统软件设置CPLD中的看门狗使能控制位FLAGl为使能状态;
第三步,CPLD逻辑代码产生周期小于3.2秒的方波信号SI ;
第四步,判断S2信号的高低跳变周期是否小于Τ/2,若为是则判断CPU喂狗信号是否正常标识位FLAG2跳变正常,进入步骤五;若为否则判断CPU喂狗信号是否正常标识位FLAG2跳变不正常,则SI停止输出给看门狗控制芯片的WDI管脚;
第五步,判断是否满足看门狗使能控制位FLAGl使能,CPU喂狗信号是否正常标识位FLAG2正常,若为是SI正常输出给看门狗控制芯片的WDI管脚,若为否则SI停止输出给看门狗控制芯片的WDI管脚;
第六步,返回第四步。
[0019]本实施例中还提供一种CPU操作系统复位控制,具体实现方式如下:
看门狗控制芯片的复位输出管脚W_R接入CPLD的I/O管脚J3,设备的手动复位按钮SW并联接入看门狗控制芯片的手动复位管脚MR,这样看门狗芯片因喂狗信号不正常而复位、手动按钮复位和设备上电启动时J3上都会输入复位信号RST,RST的低电平宽度为200毫秒,之后会自行跳变到高电平;CPLD逻辑代码利用RST信号给相应的寄存器赋予确定的初值,其中,CPLD的喂狗输出管脚Jl上赋予高阻态初值,看门狗使能控制位FLAGl —定要不使能,同时在CPLD逻辑代码中定义寄存器REG用于系统软件控制各硬件芯片的复位,各硬件芯片的复位信号由J3上的复位信号RST和系统软件复位控制位REG共同控制,任意一种有效都会控制CPU芯片及操作系统和其他硬件芯片的复位。
[0020]以VxWorks操作系统为例,系统启动一个看门狗定时器来通过CPU的一个GP1管脚产生周期为T的方波信号S2的实现过程如下:
/*启动看门狗定时器,通过CPU的GP1管脚8产生周期T=4秒的方波信号S2*/ void Feed_ffdt_Start (void)
{
WdIdO =wdCreate() ;//创建看门狗定时器
ffd_Ctrl_Low() ;//启动看门狗定时器产生周期为4秒的方波信号
}Void ffd_Ctrl_Low (void)
{
Gp18_direct1n_output (0) ; // 控制 CPU 的 GP108 对外输出低电平 wdStart(ffdIdO, T/2, (FUNCPTR)ffd_Ctrl_High, NULL) ;// 启动看门狗定时器
}
Void ffd_Ctrl_High (void)
{
Gp18_direct1n_output (I) ; // 控制 CPU 的 GP108 对外输出高电平 wdStart(ffdIdO, T/2, (FUNCPTR)ffd_Ctrl_Low, NULL) ;// 启动看门狗定时器
}
操作系统启动完成以后,执行如下函数Init_WDT()来开启系统的监控功能。
[0021]void Init_WDT (void)
{
Feed_ffdt_Start () ;//启动看门狗定时器产生周期为4秒的方波信号 CPLD_ffd_En() ;//使能CPLD中的看门狗使能控制为FLAGl
}
以Verilog可编程逻辑语言为例,CPLD逻辑中检测S2信号是否在按周期T正常跳变, 产生WDI喂狗信号以及复位控制等的实现过程如下: input GP108, //J2 input RST, //J3 output WDI, //Jl output RSTO, //J4 output RSTI, //J5
wire FLAG2; //S2产生是否正常标识位 reg WDI_reg;
reg FLAGl;//看门狗使能控制位
regCLK_8K;//8KHz 的时钟信号
reg S2_HIGH;//S2的高电平半周期跳变标识位
reg S2_L0ff;//S2的低电平半周期跳变标识位
reg run_per1d_2s; //周期为2秒的方波信号,用于输出给WDI
reg soft_rst_ctl [7:0];系统软件复位各芯片控制位
always (posedge CLK_8K or negedge RST)//WDI 产生模块
begin
if (RST == I’ bO) // MAX706输出低电平复位信号
begin
FLAGK=IJ bO; //初始化时把看门狗使能位置为不使能
ffDI_reg<=rbz; //复位过程中WDI给高阻态,不启动MAX706内部的定时器,以免MAX706不断输出复位信号,使系统无法正常启动end
【权利要求】
1.一种嵌入式系统监控及复位控制方法,该方法使用的硬件部分包括CPLD芯片、CPU芯片、看门狗控制芯片及其他外围硬件电路,其特征在于该方法包括以下步骤: (1)CPLD逻辑代码产生周期小于3.2秒的方波信号SI,SI通过一个看门狗使能控制位FLAGl和一个CPU喂狗信号是否正常标识位FLAG2共同控制以后,再经CPLD芯片的一个I/O管脚Jl输出给看门狗控制芯片的喂狗输入管脚;其中,看门狗使能控制位FLAGl默认不使能,关闭看门狗,CPU操作系统初始化完成后再由软件动态使能控制位FLAG1,打开看门狗; (2)按如下策略控制CPU喂狗信号是否正常标识位FLAG2: CPU操作系统通过CPU的一个GP1管脚向CPLD的一个I/O管脚J2输入周期为T的方波信号S2,在CPLD逻辑代码中判断S2是否在正常跳变,如果跳变正常,FLAG2置为正常,否则置为异常;其中,T 一般大于3.2S,小于6S; (3)若FLAGl使能,FLAG2正常时,SI正常输出给看门狗控制芯片的喂狗输入管脚;FLAGl不使能或者FLAGl使能,FLAG2异常时,SI停止输出给看门狗控制芯片的喂狗输入管脚; (4)CPU操作系统复位控制: 看门狗控制芯片的复位输出管脚W_R接入CPLD的I/O管脚J3,设备的手动复位按钮SW并联接入看门狗控制芯片的手动复位管脚MR,这样看门狗芯片因喂狗信号不正常而复位、手动按钮复位和设备上电启动时J3上都会输入复位信号RST,RST的低电平宽度为200毫秒,之后会自行跳变到高电平;CPLD逻辑代码利用RST信号给相应的寄存器赋予确定的初值,其中,CPLD的喂狗输出管脚Jl上赋予高阻态初值,看门狗使能控制位FLAGl —定要不使能,同时在CPLD逻辑代码中定义寄存器REG用于系统软件控制各硬件芯片的复位,各硬件芯片的复位信号由J3上的复位信号RST和系统软件复位控制位REG共同控制,任意一种有效都会控制CPU芯片及操作系统和其他硬件芯片的复位。
2.根据权利要求1所述的嵌入式系统监控及复位控制方法,其特征是:所述方法硬件部分包括CPLD芯片、看门狗控制芯片MAX706、CPU芯片,所述CPU芯片通过一个GP1管脚与CPLD的一个I/O管脚J2相连,CPLD芯片的I/O管脚Jl与MAX706芯片的WDI输入管脚相连,设备的手动复位按钮SW通过4.7K的上拉电阻后并联接入MAX706芯片的手动复位按钮MR, MAX706芯片的RST管脚与CPLD的I/O管脚J3相连,CPLD的I/O管脚J4和I/O管脚J5分别与CPU芯片及其他外围硬件电路相连。
【文档编号】G06F11/30GK104035536SQ201410269423
【公开日】2014年9月10日 申请日期:2014年6月18日 优先权日:2014年6月18日
【发明者】郑霞, 郭浩, 陈鹏, 徐鹏飞, 淳增辉, 李三, 张翼, 陈昊, 邓松, 何裕舒, 程晓, 蔡立安, 邓玉华, 温照柏, 徐翔, 汤灵 申请人:中国船舶重工集团公司第七二二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1