什么是看门狗(watchdog)

看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等.

软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。

51 系列有专门的看门狗定时器,对系统频率进行分频计数,定时器溢出时,将引起复位.看门狗可设定溢出率,也可单独用来作为定时器使用.
    凌阳61的看门狗比较单一,一个是时间单一,第二是功能在实际的使用中只需在循环当中加入清狗的指令就OK了。

C8051Fxxx单片机内部也有一个21位的使用系统时钟的定时器,该定时器检测对其控制 寄存器的两次特定写操作的时间间隔。如果这个时间间隔超过了编程的极限值,将产生一个WDT复位。
--------------------------------------------------------------------------------
看门狗使用注意:大多数51 系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。这可防止程序跑飞。设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。清看门狗也不能太过频繁否则会造成资源浪费。程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位。
看门狗运用:看门狗是恢复系统的正常运行及有效的监视管理器(具有锁定光驱,锁定任何指定程序的作用,可用在家庭中防止小孩无节制地玩游戏、上网、看录像)等具有很好的应用价值.

系统软件"看门狗"的设计思路:

1.看门狗定时器T0的设置。在初始化程序块中设置T0的工作方式,并开启中断和计数功能。系统Fosc=12 MHz,T0为16位计数器,最大计数值为(2的10次方)-1=65 535,T0输入计数频率是.Fosc/12,溢出周期为(65 535+1)/1=65 536(μs)。

2.计算主控程序循环一次的耗时。考虑系统各功能模块及其循环次数,本系统主控制程序的运行时间约为16.6 ms。系统设置"看门狗"定时器T0定时30 ms(T0的初值为65 536-30 000=35 536)。主控程序的每次循环都将刷新T0的初值。如程序进入"死循环"而T0的初值在30 ms内未被刷新,这时"看门狗"定时器T0将溢出并申请中断。

3.设计T0溢出所对应的中断服务程序。此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入"无条件转移"命令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序。

什么是看门狗(watchdog)?看门狗有什么作用?相关推荐

  1. Linux 软件看门狗 watchdog 喂狗

    Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog程序.内核 watchdog 模块通过 /dev/ ...

  2. 什么是看门狗(watchdog)

    什么是看门狗(watchdog) 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂 ...

  3. Android system server之WatchDog看门狗分析

    android -- WatchDog看门狗分析 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系 ...

  4. RTOS 系统篇-看门狗 WatchDog 2

    RTOS 系统篇-看门狗 WatchDog 2 概述 上一节在 RTOS 系统篇-看门狗 WatchDog[不喂狗就咬你] 讲解了 看门狗的基本原理,以及任务.中断中触发看门狗的原因.解决方法. 本小 ...

  5. MSP430 5xx/6xx Watchdog看门狗编程实例

    看门狗定时器是一个32位定时器,可以用作看门狗或间隔定时器. 看门狗定时器模块的主要功能是在出现软件问题后执行受控的系统重启.如果超过选定的时间间隔,将生成系统复位.如果应用程序不需要看门狗功能,则模 ...

  6. AURIX TC397 SCU 之 Watchdog 看门狗

    目录 看门狗基础 TC397 Watchdog 微信公众号 看门狗基础 文档参阅 TC3XX User Manual 的9.4节, 看门狗Watchdog Timers (WDT)是System Co ...

  7. Linux Watchdog/看门狗

    Watchdog timer(看门狗定时器)是一种电子计时器,其用于检测和恢复计算机故障.在正常操作期间,计算机定期重置看门狗定时器以防止它"超时".如果由于硬件故障或程序错误,计 ...

  8. NRF52832学习笔记(31)——Watchdog看门狗使用

    一.简介 看门狗定时器(WDT: Watchdog Timer)的作用是在发生软件故障时(如程序陷入死循环或者程序跑飞),强制复位单片机,让单片机重新运行程序. 看门狗定时器本质上是一个计数器,只不过 ...

  9. python看门狗(watchdog)、多线程、实现文件夹实时监听、日志输出、备份

    python看门狗(watchdog).多线程.实现文件夹实时监听.日志输出.备份 代码展示 import _thread from watchdog.observers import Observe ...

最新文章

  1. java 外来类,外来的Matplotlib图(tkinter中的情节)
  2. NYOJ 970 Yougth's Game II
  3. 【洛谷P5114】八月脸【边分治】【闵可夫斯基和】
  4. 【转】.Net中的异步编程总结
  5. STM32通用定时器输出PWM
  6. Android官方api的下载
  7. Tomcat 工作原理【转】
  8. 蒸妙集团用科学熏蒸法,弥补现代人在运动上的缺乏
  9. Bootstarp4 文字排版
  10. Uniapp引入和使用阿里矢量图
  11. (附源码)ssm考试题库管理系统 毕业设计 069043
  12. calcite learn
  13. 电脑桌面计算机文件打不开怎么办,教大家电脑桌面上的文件都打不开怎么办
  14. 1089 狼人杀-简单版(C语言实现)
  15. 数据库候选关键词怎么求_数据库中候选码求法.(比较全的哦)
  16. shiro反序列化漏洞的原理和复现
  17. 罗塞塔石碑(Rosetta Stone)安装指南
  18. 中专计算机学籍分数,中考成绩不理想,有高中录取却说给办中专学籍,这有什么不同吗?...
  19. 网站绑定域名后不能用IP直接访问了?
  20. flutter 中的深拷贝

热门文章

  1. 思维导图软件 XMind 8 和 XMind 2020的选择
  2. selenium 接管已经打开的本地浏览器窗口
  3. 如何做CEdit中的Undo,Redo(和word类似的输入法输入一次为一个回退块)
  4. 如何通过CRM系统获取更多销售线索?
  5. ip_forward参数对Linux内核转发影响分析
  6. 斗地主洗牌+发牌+排序
  7. 【金猿产品展】Smartbi一站式大数据分析平台——一个平台、所有数据、无限可能。...
  8. iOS - iPhone手机刘海屏判断
  9. 5年测试经验对行业的认知
  10. 消除Word文档被加密、限制编辑的解决方法