CN103853625A - 多任务看门狗的实现装置和方法 - Google Patents
多任务看门狗的实现装置和方法 Download PDFInfo
- Publication number
- CN103853625A CN103853625A CN201210518407.4A CN201210518407A CN103853625A CN 103853625 A CN103853625 A CN 103853625A CN 201210518407 A CN201210518407 A CN 201210518407A CN 103853625 A CN103853625 A CN 103853625A
- Authority
- CN
- China
- Prior art keywords
- counter
- task
- watchdog
- software
- hardware timer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实现多任务的看门狗装置和方法,本发明通过采用硬件看门狗和软件看门狗相结合的技术,给每个任务任务分配一个软件看门狗计数器,任务的正常运行的流程将不断地清除该看门狗计数,即喂狗过程,实现对于任务的看门狗监控。多个任务就形成了一个全局的软件看门狗计数器数组。同时,对于不同类型的任务,根据运行周期的不同,可设定不同的溢出值,即看门狗的动作阀值。从而可解决单一硬件看门狗计数器溢出时间单一的问题,灵活的配置每个任务的保护周期。
Description
技术领域
本发明涉及单片机的复位控制领域,尤其是涉及一种如何实现多任务看门狗的技术领域。
背景技术
随着在32位微处理器在嵌入式产品中的广泛应用,嵌入式操作系统也逐渐被大量应用。由于嵌入式操作系统的使用, 大大降低了复杂应用系统中软件开发的工作量, 使得嵌入式软件能够采用现代的软件开发技术进行代码编写和调试, 从而也提高了软件的质量。但在嵌入式应用中, CPU 必须可靠工作, 即使因为某种原因进入一个错误状态, 系统也应该可自动恢复。为解决“程序跑飞”的问题,常用“看门狗”来提高微型机系统的可靠性和安全性。
所谓 “看门狗”是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。一般有一个输入,叫喂狗(kicking the dog or service the dog);一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时溢出归零,使处理器重新启动。
单任务程序采用顺序机制,看门狗的实现是非常简单的,只需要在合适的位置定时的去“喂狗”就可以了。而在多任务系统中,多个任务进程分享CPU资源,为了保证每个任务的正常运行,需要在每个任务中执行“喂狗”动作。但是如果仅仅是简单直接进行喂狗的动作,如果一个任务出现异常不能正常运行,其它任务还是会可以继续地喂狗。单个任务出现故障,系统还是能够正常运行,此时看门狗并没有起到应有的作用。所以,在嵌入式操作系统中如何使用看门狗是一个比较复杂的流程。
发明内容
为了解决上述技术问题,本发明公开了一种实现多任务看门狗的装置和方法。所述实现多任务的看门狗装置,包括一个硬件定时器,连接一单片机,用于监控主程序的运行;一个软件看门狗计数器数组,所述软件看门狗计数器数组包括若干个软件看门狗计数器,用于对每一个任务进行监控,所述装置还包括一个软件计数器,所述软件计数器对各个任务的软件看门狗计数器进行累加计数。
进一步的,所述的软件看门狗计数器数组根据每一个任务运行周期的不同,设定不同的动作阀值。
进一步的,所述硬件计时器包括一个输入和一个输出,所述输入用于接收清零信号,所述输出连接所述单片机,用于输出复位信号。
进一步的,所述软件计数器的优先级别高于所述若干个软件看门狗计数器。
进一步的,本发明还公开了一种实现多任务的看门狗的方法,所述方法包括下列步骤:
将一个硬件定时器连接到一单片机,对主程序的运行进行监控;
提供一个软件看门狗计数器数组,所述软件看门狗计数器数组包括若干个软件看门狗计数器,每个软件看门狗计数器监控一个任务;
提供一个软件计数器,所述软件计数器对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较;在所有任务正常运行的情况下,所述软件计数器值不断被清零;当某一任务出现故障后,所述软件计数器不能被清零,累计一段时间后,所述软件计数器值将溢出;所述软件计数器值首先通过会试图恢复出现故障的任务,当连续几次仍然不能正常运行该任务时,停止喂硬件狗,重启整个系统。
进一步的,所述软件计数器和所述硬件计时器的输入相连,当各个任务正常运行时,所述软件计数器提供清零信号,当任务出现故障时,所述软件计数器不能及时对于硬件计时器清零,硬件计时器的输出输送复位信号到单片机,复位系统。
进一步的,所述软件计数器的优先级别高于所述若干个软件看门狗计数器。
进一步的,所述的软件看门狗计数器数组根据每一个任务运行周期的不同,设定不同的动作阀值,所述软件计数器对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较。
进一步的,所述软件计数器利用嵌入式系统的任务切换心跳中断,定时实现对硬件计数器的清零动作。
进一步的,所述嵌入式系统的切换心跳中断累计硬件计时器,并判断硬件计时器是否溢出,如果硬件计时器溢出,系统复位。
本发明的优点在于:本发明通过采用硬件看门狗和软件看门狗相结合的技术,给每个任务任务分配一个软件看门狗计数器,任务的正常运行的流程将不断地清除该看门狗计数,即喂狗过程,实现对于任务的看门狗监控。多个任务就形成了一个全局的软件看门狗计数器数组。同时,对于不同类型的任务,根据运行周期的不同,可设定不同的溢出值,即看门狗的动作阀值。从而可解决单一硬件看门狗计数器溢出时间单一的问题,灵活的配置每个任务的保护周期。
同时提供一个优先级高于所述软件看门狗计数器的软件计数器,来监测其它任务是否正常运行,所述软件计数器任务对各个任务的软件看门狗计数器进行累加计数,同时与其对应的动作阀值比较。在某一任务发生故障时,软件计数器首先试图对该任务进行恢复,若无法恢复,停止对硬件计时器的清零,使得硬件计时器发送恢复信号给单片机,恢复程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的有关本发明的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明所述的看门狗任务结构框图;
图2示出所述看门狗任务的工作流程图;
图3示出一种实现多任务的看门狗的方法流程图;
图4示出本发明所述硬件计时器工作流程图。
具体实施方式
以下结合附图对多任务看门狗的实现装置和方法做详细说明。
图1示出本发明所述的看门狗任务结构框图;本发明公开了一种实现多任务的看门狗装置,包括一个硬件定时器10,连接一单片机20,用于监控主程序的运行;一个软件看门狗计数器数组40,所述软件看门狗计数器数组包括若干个软件看门狗计数器50,用于对每一个任务进行监控,所述装置还包括一个软件计数器30,所述软件计数器30对各个任务的软件看门狗计数器50进行累加计数。
图2示出所述看门狗任务的工作流程图,任务开始时,首先对任务进行任务初始化操作110,然后进入任务主体120,进入任务主体后,周期性的对看门狗进行清零操作,即喂狗操作130。喂狗操作130和任务主体操作120循环进行,直到程序结束。
软件看门狗计数器数组40根据每一个任务运行周期的不同,对不同的软件看门狗计数器数50设定不同的动作阀值。硬件计时器10包括一个输入和一个输出,所述输入用于接收清零信号,所述输出连接所述单片机20,用于输出复位信号。软件计数器30的优先级别高于软件看门狗计数器50。
图3示出了一种实现多任务的看门狗的方法流程图,所述方法包括下列步骤:将一个硬件定时器10连接到一单片机20,对主程序的运行进行监控;提供一个软件看门狗计数器数组40,所述软件看门狗计数器数组包括若干个软件看门狗计数器50,每个软件看门狗计数器监控一个任务;提供一个软件计数器30,软件计数器30对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较;在所有任务正常运行的情况下,所述软件计数器值不断被清零;当某一任务出现故障后,所述软件计数器不能被清零,累计一段时间后,所述软件计数器值将溢出;所述软件计数器值首先通过会试图恢复出现故障的任务,当连续几次仍然不能正常运行该任务时,停止喂硬件狗,重启整个系统。
图4示出本发明所述硬件计时器工作流程图,软件计数器30和硬件计时器10的输入相连,当各个任务正常运行时,所述软件计数器提供清零信号,当任务出现故障时,所述软件计数器不能及时对于硬件计时器清零,硬件计时器的输出输送复位信号到单片机,复位系统。所述软件计数器的优先级别高于所述若干个软件看门狗计数器。所述的软件看门狗计数器数组根据每一个任务运行周期的不同,设定不同的动作阀值,所述软件计数器对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较。所述软件计数器利用嵌入式系统的任务切换心跳中断,定时实现对硬件计数器的清零动作。所述嵌入式系统的切换心跳中断累计硬件计时器,并判断硬件计时器是否溢出,如果硬件计时器溢出,系统复位。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1.一种实现多任务的看门狗装置,包括一个硬件定时器,连接一单片机,用于监控主程序的运行;一个软件看门狗计数器数组,所述软件看门狗计数器数组包括若干个软件看门狗计数器,用于对每一个任务进行监控,其特征在于:所述装置还包括一个软件计数器,所述软件计数器对各个任务的软件看门狗计数器进行累加计数。
2.根据权利要求1所述的看门狗装置,其特征在于:所述的软件看门狗计数器数组根据每一个任务运行周期的不同,设定不同的动作阀值。
3.根据权利要求1所述的看门狗装置,其特征在于:所述硬件计时器包括一个输入和一个输出,所述输入用于接收清零信号,所述输出连接所述单片机,用于输出复位信号。
4.根据权利要求1所述的看门狗装置,其特征在于:所述软件计数器的优先级别高于所述若干个软件看门狗计数器。
5. 一种实现多任务的看门狗的方法,其特征在于:所述方法包括下列步骤:
将一个硬件定时器连接到一单片机,对主程序的运行进行监控;
提供一个软件看门狗计数器数组,所述软件看门狗计数器数组包括若干个软件看门狗计数器,每个软件看门狗计数器监控一个任务;
提供一个软件计数器,所述软件计数器对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较;在所有任务正常运行的情况下,所述软件计数器值不断被清零;当某一任务出现故障后,所述软件计数器不能被清零,累计一段时间后,所述软件计数器值将溢出;所述软件计数器值首先通过会试图恢复出现故障的任务,当连续几次仍然不能正常运行该任务时,停止喂硬件狗,重启整个系统。
6.根据权利要求5所述的方法,其特征在于:所述软件计数器和所述硬件计时器的输入相连,当各个任务正常运行时,所述软件计数器提供清零信号,当任务出现故障时,所述软件计数器不能及时对于硬件计时器清零,硬件计时器的输出输送复位信号到单片机,复位系统。
7.根据权利要求5所述的方法,其特征在于:所述软件计数器的优先级别高于所述若干个软件看门狗计数器。
8.根据权利要求5所述的方法,其特征在于:所述的软件看门狗计数器数组根据每一个任务运行周期的不同,设定不同的动作阀值,所述软件计数器对各个任务的软件看门狗计数器进行累加计数;同时与其对应的动作阀值比较。
9.根据权利要求5所述的方法,其特征在于:所述软件计数器利用嵌入式系统的任务切换心跳中断,定时实现对硬件计数器的清零动作。
10. 根据权利要求9所述的方法,其特征在于:所述嵌入式系统的切换心跳中断累计硬件计时器,并判断硬件计时器是否溢出,如果硬件计时器溢出,系统复位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210518407.4A CN103853625A (zh) | 2012-12-06 | 2012-12-06 | 多任务看门狗的实现装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210518407.4A CN103853625A (zh) | 2012-12-06 | 2012-12-06 | 多任务看门狗的实现装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103853625A true CN103853625A (zh) | 2014-06-11 |
Family
ID=50861309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210518407.4A Pending CN103853625A (zh) | 2012-12-06 | 2012-12-06 | 多任务看门狗的实现装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103853625A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360913A (zh) * | 2014-11-04 | 2015-02-18 | 长园深瑞继保自动化有限公司 | 用于计算机操作系统的监控模块 |
CN104486122A (zh) * | 2014-12-17 | 2015-04-01 | 上海斐讯数据通信技术有限公司 | 基于看门狗的路由器异常恢复系统及方法 |
CN104503885A (zh) * | 2014-12-31 | 2015-04-08 | 国家电网公司 | 一种定时看门装置及系统 |
CN104636212A (zh) * | 2014-12-29 | 2015-05-20 | 漳州科能电器有限公司 | 一种嵌入式操作系统看门狗实现方法 |
CN106407032A (zh) * | 2016-09-18 | 2017-02-15 | 深圳震有科技股份有限公司 | 一种基于多核系统的硬件看门狗控制方法及系统 |
CN106776202A (zh) * | 2016-11-25 | 2017-05-31 | 广州日滨科技发展有限公司 | 嵌入式操作系统任务的监控方法与系统 |
CN108491311A (zh) * | 2018-04-02 | 2018-09-04 | 深圳还是威健康科技有限公司 | 一种实时操作系统的看门狗监测方法及终端 |
CN108563530A (zh) * | 2018-04-16 | 2018-09-21 | 杭州鸿泉物联网技术股份有限公司 | 看门狗及其实现方法 |
CN108762969A (zh) * | 2018-06-07 | 2018-11-06 | 浙江国自机器人技术有限公司 | 一种实时控制cpu的监控系统、方法及移动机器人 |
CN109491824A (zh) * | 2018-11-13 | 2019-03-19 | 福建北峰通信科技股份有限公司 | 一种嵌入式操作系统的看门狗控制方法 |
CN109992388A (zh) * | 2019-04-08 | 2019-07-09 | 中国核动力研究设计院 | 一种用于核电厂安全级设备软件多任务管理系统 |
CN111367702A (zh) * | 2020-03-06 | 2020-07-03 | 北京龙鼎源科技股份有限公司 | 一种多任务软件看门狗处理方法及装置 |
CN113296997A (zh) * | 2021-06-16 | 2021-08-24 | 度普(苏州)新能源科技有限公司 | 一种基于看门狗的任务监控方法及装置 |
CN113535448A (zh) * | 2021-06-30 | 2021-10-22 | 浙江中控技术股份有限公司 | 一种多重看门狗控制方法及其控制系统 |
CN113946148A (zh) * | 2021-09-29 | 2022-01-18 | 浙江零跑科技股份有限公司 | 一种基于多ecu协同控制的mcu芯片唤醒系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595368A (zh) * | 2003-09-13 | 2005-03-16 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
JP2006227962A (ja) * | 2005-02-18 | 2006-08-31 | Fuji Electric Systems Co Ltd | アプリケーションタスク監視システムおよび方法 |
CN1908906A (zh) * | 2005-08-05 | 2007-02-07 | 中兴通讯股份有限公司 | 一种软件运行状态的监控方法 |
CN101464811A (zh) * | 2008-12-29 | 2009-06-24 | 艾默生网络能源有限公司 | 多任务监控管理系统 |
-
2012
- 2012-12-06 CN CN201210518407.4A patent/CN103853625A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1595368A (zh) * | 2003-09-13 | 2005-03-16 | 华为技术有限公司 | 多任务系统的异常监控装置及其方法 |
JP2006227962A (ja) * | 2005-02-18 | 2006-08-31 | Fuji Electric Systems Co Ltd | アプリケーションタスク監視システムおよび方法 |
CN1908906A (zh) * | 2005-08-05 | 2007-02-07 | 中兴通讯股份有限公司 | 一种软件运行状态的监控方法 |
CN101464811A (zh) * | 2008-12-29 | 2009-06-24 | 艾默生网络能源有限公司 | 多任务监控管理系统 |
Non-Patent Citations (1)
Title |
---|
戴积发,胡玉霞,李绪勇,杨育霞,刘一飞: "uC/OS-Ⅱ操作系统中多任务看门狗设计", 《科技资讯》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360913B (zh) * | 2014-11-04 | 2017-10-27 | 长园深瑞继保自动化有限公司 | 用于计算机操作系统的监控模块 |
CN104360913A (zh) * | 2014-11-04 | 2015-02-18 | 长园深瑞继保自动化有限公司 | 用于计算机操作系统的监控模块 |
CN104486122A (zh) * | 2014-12-17 | 2015-04-01 | 上海斐讯数据通信技术有限公司 | 基于看门狗的路由器异常恢复系统及方法 |
CN104636212A (zh) * | 2014-12-29 | 2015-05-20 | 漳州科能电器有限公司 | 一种嵌入式操作系统看门狗实现方法 |
CN104503885A (zh) * | 2014-12-31 | 2015-04-08 | 国家电网公司 | 一种定时看门装置及系统 |
CN106407032A (zh) * | 2016-09-18 | 2017-02-15 | 深圳震有科技股份有限公司 | 一种基于多核系统的硬件看门狗控制方法及系统 |
CN106776202B (zh) * | 2016-11-25 | 2020-06-26 | 日立楼宇技术(广州)有限公司 | 嵌入式操作系统任务的监控方法与系统 |
CN106776202A (zh) * | 2016-11-25 | 2017-05-31 | 广州日滨科技发展有限公司 | 嵌入式操作系统任务的监控方法与系统 |
CN108491311A (zh) * | 2018-04-02 | 2018-09-04 | 深圳还是威健康科技有限公司 | 一种实时操作系统的看门狗监测方法及终端 |
CN108563530A (zh) * | 2018-04-16 | 2018-09-21 | 杭州鸿泉物联网技术股份有限公司 | 看门狗及其实现方法 |
CN108762969A (zh) * | 2018-06-07 | 2018-11-06 | 浙江国自机器人技术有限公司 | 一种实时控制cpu的监控系统、方法及移动机器人 |
CN109491824A (zh) * | 2018-11-13 | 2019-03-19 | 福建北峰通信科技股份有限公司 | 一种嵌入式操作系统的看门狗控制方法 |
CN109992388A (zh) * | 2019-04-08 | 2019-07-09 | 中国核动力研究设计院 | 一种用于核电厂安全级设备软件多任务管理系统 |
CN109992388B (zh) * | 2019-04-08 | 2021-04-13 | 中核控制系统工程有限公司 | 一种用于核电厂安全级设备软件多任务管理系统 |
CN111367702A (zh) * | 2020-03-06 | 2020-07-03 | 北京龙鼎源科技股份有限公司 | 一种多任务软件看门狗处理方法及装置 |
CN111367702B (zh) * | 2020-03-06 | 2024-03-08 | 北京龙鼎源科技股份有限公司 | 一种多任务软件看门狗处理方法及装置 |
CN113296997A (zh) * | 2021-06-16 | 2021-08-24 | 度普(苏州)新能源科技有限公司 | 一种基于看门狗的任务监控方法及装置 |
CN113535448A (zh) * | 2021-06-30 | 2021-10-22 | 浙江中控技术股份有限公司 | 一种多重看门狗控制方法及其控制系统 |
CN113535448B (zh) * | 2021-06-30 | 2024-04-26 | 浙江中控技术股份有限公司 | 一种多重看门狗控制方法及其控制系统 |
CN113946148A (zh) * | 2021-09-29 | 2022-01-18 | 浙江零跑科技股份有限公司 | 一种基于多ecu协同控制的mcu芯片唤醒系统 |
CN113946148B (zh) * | 2021-09-29 | 2023-11-10 | 浙江零跑科技股份有限公司 | 一种基于多ecu协同控制的mcu芯片唤醒系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853625A (zh) | 多任务看门狗的实现装置和方法 | |
CN100568191C (zh) | 嵌入式系统的全程喂狗方法 | |
CN102761439B (zh) | Pon接入系统中基于看门狗的异常检测记录装置及方法 | |
US9612893B2 (en) | Peripheral watchdog timer | |
CN100359481C (zh) | 多任务系统的异常监控装置及其方法 | |
CN101615031B (zh) | 嵌入式双处理器系统的失效检测电路 | |
CN105550057B (zh) | 嵌入式软件系统故障检测恢复方法和系统 | |
US9459949B2 (en) | Methods and apparatus to provide failure detection | |
CN105607698A (zh) | 一种高可靠性星载计算机系统方案设计方法 | |
CN105677497A (zh) | 一种高可用性看门狗电路 | |
CN102799212B (zh) | 用于多核多处理器并行系统的全局时钟系统及其使用方法 | |
CN104407958A (zh) | 一种高可靠性的系统监测方法和系统 | |
CN104035536A (zh) | 一种嵌入式系统监控及复位控制方法 | |
CN100395722C (zh) | 一种对控制系统异常状态信息进行保存的方法 | |
CN102360315B (zh) | 一种容错控制系统看门狗电路管理方法 | |
CN101853191A (zh) | 检测操作系统中任务死循环的方法及操作系统 | |
CN101221518B (zh) | 一种防止硬件看门狗的定时器溢出的方法、装置与系统 | |
CN210348469U (zh) | 嵌套式看门狗装置 | |
CN103530197A (zh) | 一种检测及解决Linux系统死锁的方法 | |
CN101561778A (zh) | 一种检测多任务操作系统任务死循环的方法 | |
CN101901168A (zh) | 一种看门狗复位系统及其复位方法 | |
CN105912416A (zh) | 一种在终端中监测处理器的方法及终端 | |
JP5738999B2 (ja) | マルチプロセッサシステムにおける例外制御 | |
CN101526831A (zh) | 用于在多个时钟域之间提升确定性的技术 | |
CN109491824A (zh) | 一种嵌入式操作系统的看门狗控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140611 |
|
WD01 | Invention patent application deemed withdrawn after publication |