看门狗设计方法及看门狗的制作方法

文档序号:6464392阅读:503来源:国知局
专利名称:看门狗设计方法及看门狗的制作方法
技术领域
本发明涉及定时器技术领域,具体涉及看门狗设计方法及看门狗。
背景技术
看门狗是一种设备或电子卡,如果一个系统出现故障且在预定时长内不
能自动恢复,则看门狗就会执行特殊操作。例如对于一台机器或者操作系 统,如果其内部两个部件或者程序出现冲突,或者在操作系统中出现内存管 理问题时,系统就会挂起,在某些情况下,系统最终将会自己恢复,但是从 挂起到恢复可能需要很长一段时间,此时,可将看门狗设置成如下模式当 在预定时长内系统对外设部件如鼠标、键盘的动作都没有反应时,看门狗 就执行热启动。看门狗还有其他用途,例如在浏览网页时,若输入网址之 后的预定时长内网页都未完全装载,此时,看门狗就自动开启网页上的刷新 按钮来执行刷新动作。
目前,看门狗都是通过以下原理设计的看门狗内包含一个计数器,该 计数器从一个预设值开始以不变的速度减到0,或者从0加到预设值,当系 统发生异常后,若在计数器从预设值减到0或从0加到预设值之前系统未恢 复,则看门狗就会向指定的电路发送信号,通知电路执行相应动作,同时返 回#刀4台{直。
可以看出,目前看门狗主要用于检测系统异常以帮助系统恢复。实际上, 在其他应用中也需用到看门狗,例如在某些系统的启动过程中,需要保证 多个启动程序的先后顺序,可能还需要保证相邻程序之间的启动时间间隔不 大于预设间隔;或者,在系统的多个应用程序的运行过程中,需要跟踪各个 应用程序的运行时长或结束时刻。这两种情况下,若采用现有的看门狗设计方案,则看门狗每减少到O或增加到预设值都要发出信号,系统都要来响应 该信号,但此时可能并不是程序的启动或结束时刻,系统响应该信号是无用 的,这显然给系统增加了无谓的处理负担。

发明内容
本发明提供看门狗设计方法及看门狗,以降低系统处理负担。
本发明的技术方案是这样实现的 一种看门狗设计方法,包括
看门狗启动,从0开始计数,看门狗检测到系统读取计数值,计算计数值 除以预设值后所得的余数,看门狗从该余数起重新开始计数。 看门狗预先设置一个最大计数值,
且,所述方法进一步包括看门狗检测到计数值到达最大计数值,则从0 开始重新计数。
所述看门狗从0开始重新计数的同时进一步包括看门狗向系统发出复位 信号。
所述看门狗检测到系统读取计数值之前进一步包括 系统检测到一个程序启动,从看门狗读取计数值;
且,系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为 当前程序的启动时刻;
当所有程序都启动后,系统根据所有程序的启动时刻,确定程序启动的先 后顺序是否正确。
所述系统将该总计数值作为当前程序的启动时刻之后进一步包括
系统计算当前程序的启动时刻与前一程序的启动时刻的差值,判断该差值 是否不大于预设最大启动时间间隔,若是,确定当前程序与前一程序的启动间 隔正常;否则,确定当前程序与前一程序的启动间隔异常。
所述述看门狗检测到系统读取计数值之前进一步包括
系统检测到一个程序结束,从看门狗读取计数值;且,系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为 当前程序的结束时刻。
所述系统将总计数值作为当前程序的结束时刻之后进一步包括 系统计算当前程序的结束时刻与前一程序的结束时刻的差值,将该差值作 为当前程序的运行时长。
一种看门狗,包括计数器和重启模块,其中
计数器,启动时,从0开始计数;接收到重启模块发来的余数,从该余 数起开始重新计数;
重启模块,检测到系统从计数器读取计数值,计算计数值除以预设值后 所得的余数,将该余数发送给计数器。
该看门狗进一步包括
复位模块,检测到计数器的计数值到达预先设置的最大计数值,则向计 数器发送复位指示;
且,所述计数器收到该复位指示后,从0开始重新计数。
所述复位模块进一步用于,在检测到计数器的计数值到达预先设置的最 大计数值时,向系统发出复位信号。
一种应用看门狗的系统,包括
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除 以预设值后所得的余数,从该余数起重新开始计数;
程序启动监测模块,检测到一个程序启动,读取看门狗的计数值,将该 计数值发送出去;
程序启动时刻确定模块,接收程序启动监测模块发来的计数值,计算看 门狗的当前总计数值,将该总计数值作为当前程序的启动时刻,记录该启动 时刻;
程序启动时刻记录模块,记录每个程序的启动时刻; 程序启动顺序检测模块,从程序启动时刻记录模块获取各程序的启动时 刻,根据该启动时刻确定程序启动的先后顺序是否正确。所述系统进一步包括
启动间隔监测模块,从程序启动时刻记录模块读取各程序的启动时刻, 计算相邻程序的启动时刻之差,将该差值与预设最大启动时间间隔比较,以 确定该相邻程序的启动间隔是否正常。
一种应用看门狗的系统,包括
看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除 以预设值后所得的余数,从该余数起重新开始计数;
程序结束监测模块,检测到一个程序结束,读取看门狗的计数值,将该 计数值发送出去;
程序结束时刻确定模块,接收程序结束监测模块发来的计数值,计算看 门狗的当前总计数值,将该总计数值作为当前程序的结束时刻。 该系统进一步包括
程序结束时刻记录模块,记录每个程序的结束时刻;
程序运行时长确定模块,从程序结束时刻记录模块读取当前程序与前一 程序的结束时刻,计算当前程序与前一程序的结束时刻之差,该差值即为当 前程序的运行时长。
与现有技术相比,本发明通过在看门狗检测到系统读取计数值时,计算 计数值除以预设值后所得的余数,从该余数起重新开始计数,避免了看门狗 在到达预设值后发出信号而引起系统响应该信号情况的发生,降低了系统的 处理负担。本发明可用于监测多个启动程序的先后顺序、监测相邻程序之间 的启动时间间隔、跟踪多个应用程序的运行时长或结束时刻等。


图1为本发明实施例提供的看门狗设计方法流程图; 图2为本发明实施例提供的看门狗设计方法的应用 一流程图; 图3为本发明实施例提供的看门狗设计方法的应用二流程图; 图4为本发明实施例提供的看门狗的结构示意图;图5为应用本发明实施例提供的看门狗的系统一组成示意图; 图6为应用本发明实施例提供的看门狗的系统二组成示意图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进 一 步详细的说明。 图1为本发明实施例提供的看门狗设计方法流程图,如图l所示,其具 体步骤如下
步骤101:看门狗启动,从0开始计数。
步骤102:看门狗检测到系统读取计数值M,计算计数值M除以预设 值a后所得的余数r,即FM%a,其中,%为取余运算符。
预设值a即系统设定的看门狗检测到系统异常,开始从O计数后,应该 发出信号时的计数值。
步骤103:看门狗从该余数r起重新开始计数,返回步骤102。
在实际应用中,看门狗还可以设置一个最大计数值,若计数值到达了最 大计数值后,系统仍未读取该计数值,则看门狗认为系统发生异常,则从O 重新开始计数,同时向系统发出复位信号。
以下给出本发明实施例提出的看门狗设计方法的两个具体应用
应用一、在系统的启动过程中,需要保证多个启动程序的先后顺序,且 需要保证相邻程序之间的启动时间间隔不能大于预设最大启动时间间隔。如 图2所示,其具体步骤如下
步骤201:系统设置看门狗总计数值Csum,并初始化Csum=0。
步骤202:系统检测到一个程序n (r^l且n为整数)启动,去读取看 门狗的计凄t值count。
步骤203:系统计算看门狗的当前总计数值b: b= ( Csum%a ) *a+count, 以b更新Csum。
其中,a为看门狗的预设值。
步骤204:系统将Csum作为当前程序的启动时刻Tsta (n),并记录Tsta ( n )。
步骤205:系统#^居记录的Tsta (1) Tsta (N),确定各启动程序的
先后顺序是否准确。
例如假设程序1 N的启动顺序依次为1、 2、 3.....N,则程序1~N
的启动时刻应该满足Tsta ( 1 ) <Tsta (2) <Tsta (3) <...<Tsta (N)。 步骤206:系统计算t ( n ) =Tsta ( n ) -Tsta ( n-1 ),其中,1^n^N。 步骤207:系统判断t (n) ^Tmax (n)是否成立,若是,执行步骤208;
否则,执行步骤209。
其中,Tmax ( n)为预设的程序n与程序n-1之间的最大启动时间间隔。
步骤208:系统确定程序n与程序n-1之间的启动时间间隔正常。
步骤209:系统确定程序n与程序n-1之间的启动时间间隔异常,进行
相应处J里。
应用二、在系统的多个应用程序的运行过程中,需要跟踪各个应用程序 的运行时长。如图3所示,其具体步骤如下
步骤301:系统设置看门狗总计数值Csum,并初始化Csum=0。
步骤302:系统检测到一个程序n (n^l且n为整数)结束,去读取看 门狗的计数值count。
步骤303:系统计算看门狗的当前计数值b: b= ( Csum%a) *a+count, 以b更新Csum。
其中,a为看门狗的预设值。
步骤304:系统将Csum作为当前程序的结束时刻Tend ( n ),并记录 Tend ( n)。
步骤305:系统计算当前应用程序的运行时长R (n) : R (n) =Tend (n) -Tend ( n-1 ),并记录R ( n )。
图4为本发明实施例提供的看门狗的结构示意图,如图4所示,其主要 包括计数器41和重启模块42,其中
计数器41:启动时,从O开始计数;接收到重启模块42发来的余数r,乂人r起开始重新计数。
重启模块42:检测到系统从计数器41读取计数值M,计算计数值M 除以预设值a后所得的余数r,即r=M%a,将r发送给计数器41。
在实际应用中,看门狗还可以包括一个复位模块,用于在检测到计数器 41的计数值到达预先设置的最大计数值后,向计数器41发送复位指示,并 向系统发出复位信号。计数器41在收到该复位指示后,则从0开始重新计 数。
图5为本发明实施例提供的应用看门狗的系统一的组成示意图,如图5 所示,其主要包括看门狗50、程序启动监测模块51、程序启动时刻确定 ^^莫块52、程序启动时刻记录才莫块53、程序启动顺序^r测才莫块54和启动间隔 监测模块55,其中
看门狗50:启动时,从O开始计数,检测到程序启动监测模块51读取 自身的计数值M,计算计数值M除以预设值a后所得的余数r,从r起开始 重新计数。
程序启动监测模块51:检测到一个程序n (论l且n为整数)启动,去 读取看门狗50的计数值count,将count发送给程序启动时刻确定^t块52。
程序启动时刻确定模块52:设置看门狗50总计数值Csum,并初始化 Csum=0,接收程序启动监测模块51发来的count,计算看门狗50的当前总 计数值b: b= ( Csum%a) *a+count,以b更新Csum,将Csum作为当前程 序n的启动时刻Tsta (n),并将Tsta (n)记录到程序启动时刻记录才莫块 53。
程序启动时刻记录模块53:保存每个程序的启动时刻Tsta(l) ~Tsta (N) , N为启动程序的总数。
程序启动顺序检测模块54:从程序启动时刻记录模块53获取各程序的 启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
启动间隔监测模块55:从程序启动时刻记录模块53读取Tsta ( n-1)和
Tsta (n),计算t (n) =Tsta (n) -Tsta (n-1),判断t (n) STmax (n)是否成立,若是,确定程序n与程序n-l之间的启动时间间隔正常;否则,确 定程序n与程序n-l之间的启动时间间隔异常,通知相应模块进行处理。其 中,Kn^N, Tmax (n)为预i殳的程序n与程序n-l之间的最大启动时间间隔。
图6为本发明实施例提供的应用看门狗的系统二的组成示意图,如图6 所示,其主要包括看门狗50、程序结束监测模块61、程序结束时刻确定 模块62、程序结束时刻记录模块63和程序运行时长确定模块64,其中
看门狗50:启动时,从0开始计数,检测到程序结束监测模块61读取 自身的计数值M,计算计数值M除以预设值a后所得的余数r,从r起开始 重新计数。
程序结束监测模块61:检测到一个程序n (论l且n为整数)结束,去 读取看门狗50的计数值count,将count发送给程序结束时刻确定模块62。
程序结束时刻确定模块62:设置看门狗50总计数值Csum,并初始化 Csum-O,接收程序结束监测模块61发来的count,计算看门狗50的当前总 计数值b: b= ( Csum%a) *a+count,以b更新Csum,将Csum作为当前程 序n的结束时刻Tend ( n),并将Tend ( n)记录到程序结束时刻记录模块 63。
程序结束时刻记录模块63:保存每个程序的结束时刻Tsta (1) Tsta (N) , N为程序的总数。
程序运行时长确定模块64:从程序结束时刻记录模块63读取Tend( n-l ) 和Tend(n),计算程序n的运行时长R(n): R( n ) =Tend( n )-Tend( n-l ), 记录R (n)。
本发明实施例中提到的系统可以为嵌入式系统等。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在 本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
权利要求
1、一种看门狗设计方法,其特征在于,该方法包括看门狗启动,从0开始计数,看门狗检测到系统读取计数值,计算计数值除以预设值后所得的余数,看门狗从该余数起重新开始计数。
2、 如权利要求l所述的方法,其特征在于,看门狗预先设置一个最大计数值,且,所述方法进一步包括看门狗检测到计数值到达最大计数值,则从0 开始重新计数。
3、 如权利要求2所述的方法,其特征在于,所述看门狗从O开始重新计数 的同时进一步包括看门狗向系统发出复位信号。
4、 如权利要求l所述的方法,其特征在于,所述看门狗检测到系统读取计 数值之前进一步包括系统检测到一个程序启动,从看门狗读取计数值;且,系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为 当前程序的启动时刻;当所有程序都启动后,系统根据所有程序的启动时刻,确定程序启动的先 后顺序是否正确。
5、 如权利要求4所述的方法,其特征在于,所述系统将该总计数值作为当 前程序的启动时刻之后进一 步包括系统计算当前程序的启动时刻与前一程序的启动时刻的差值,判断该差值 是否不大于预设最大启动时间间隔,若是,确定当前程序与前一程序的启动间 隔正常;否则,确定当前程序与前一程序的启动间隔异常。
6、 如权利要求l所述的方法,其特征在于,所述述看门狗检测到系统读取 计数值之前进一步包括系统检测到一个程序结束,从看门狗读取计数值;且,系统根据该计数值确定看门狗启动后的总计数值,将该总计数值作为当前程序的结束时刻。
7、 如权利要求6所述的方法,其特征在于,所述系统将总计数值作为当前程序的结束时刻之后进一步包括系统计算当前程序的结束时刻与前一程序的结束时刻的差值,将该差值作 为当前程序的运行时长。
8、 一种看门狗,其特征在于,该看门狗包括计数器和重启模块,其中 计数器,启动时,从0开始计数;接收到重启模块发来的余数,从该余数起开始重新计数;重启模块,检测到系统从计数器读取计数值,计算计数值除以预设值后 所得的余数,将该余数发送给计数器。
9、 如权利要求8所述的看门狗,其特征在于,该看门狗进一步包括 复位模块,检测到计数器的计数值到达预先设置的最大计数值,则向计数器发送复位指示;且,所述计数器收到该复位指示后,从0开始重新计数。
10、 如权利要求8所述的看门狗,其特征在于,所述复位模块进一步用 于,在检测到计数器的计数值到达预先设置的最大计数值时,向系统发出复 位信号。
11、 一种应用看门狗的系统,其特征在于,该系统包括看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除 以预设值后所得的余数,从该余数起重新开始计数;程序启动监测模块,检测到一个程序启动,读取看门狗的计数值,将该 计数值发送出去;程序启动时刻确定模块,接收程序启动监测模块发来的计数值,计算看 门狗的当前总计数值,将该总计数值作为当前程序的启动时刻,记录该启动 时刻;程序启动时刻记录模块,记录每个程序的启动时刻;程序启动顺序检测模块,从程序启动时刻记录模块获取各程序的启动时刻,根据该启动时刻确定程序启动的先后顺序是否正确。
12、 如权利要求11所述的系统,其特征在于,所述系统进一步包括启动间隔监测模块,从程序启动时刻记录模块读取各程序的启动时刻, 计算相邻程序的启动时刻之差,将该差值与预设最大启动时间间隔比较,以确定该相邻程序的启动间隔是否正常。
13、 一种应用看门狗的系统,其特征在于,该系统包括看门狗,启动后,从0开始计数,检测到计数值被读取,计算计数值除 以预设值后所得的余数,从该余数起重新开始计数;程序结束监测模块,检测到一个程序结束,读取看门狗的计数值,将该 计数值发送出去;程序结束时刻确定模块,接收程序结束监测模块发来的计数值,计算看 门狗的当前总计数值,将该总计数值作为当前程序的结束时刻。
14、 如权利要求13所述的系统,其特征在于,该系统进一步包括 程序结束时刻记录模块,记录每个程序的结束时刻;程序运行时长确定模块,从程序结束时刻记录模块读取当前程序与前一 程序的结束时刻,计算当前程序与前一程序的结束时刻之差,该差值即为当 前程序的运4于时长。
全文摘要
本发明公开了看门狗设计方法及看门狗。方法包括看门狗启动,从0开始计数,看门狗检测到系统读取计数值,计算计数值除以预设值后所得的余数,看门狗从该余数起重新开始计数。本发明避免了看门狗在到达预设值后发出信号而引起系统响应该信号情况的发生,降低了系统的处理负担。本发明可用于监测多个启动程序的先后顺序、监测相邻程序之间的启动时间间隔、跟踪多个应用程序的运行时长或结束时刻等。
文档编号G06F11/00GK101295273SQ20081011532
公开日2008年10月29日 申请日期2008年6月20日 优先权日2008年6月20日
发明者万红星 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1