背景

在单片机运行中,可能会遇到电磁场等恶劣环境干扰失控,造成程序进入死循环,程序跑飞(死机)等意外故障,程序的正常运行被打断,系统无法继续运行,陷入停滞状态,发生不可预料的后果。此时可通过按下复位按钮,强制系统复位。但更理想的实现是通过一套监控系统,实时监视MCU运行状态,在运行异常时,使系统摆脱故障状态。看门狗(Watchdog)技术能够解决这一问题。

工作原理

看门狗定时器(Watch Dog Timer, WDT)是MCU的一个组成部分,是一个计数器,其基本原理是先给计数器设定一个数值(溢出值),程序开始运行后,看门狗定时器开始计数,程序正常运行时,会周期发出指令将计数器置零(喂狗),重新开始计数,而如果长时间没有清零,计数器增加到设定值(定时器溢出),计数器会认为程序出现了异常,强制系统复位。

分类

看门狗又分硬件看门狗和软件看门狗。

  1. 硬件看门狗又叫外部看门狗,外部定时器电路的输出连接到电路的复位端,程序周期性的对定时器清零(俗称‘喂狗’)。
  2. 软件看门狗(又叫内狗)原理上一样,只是将外部定时器用内部定时器代替,可以简化硬件电路设计,但可靠性差,如内部定时器自身故障就无法检测到系统异常。

注意事项

大多数51系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。这可防止程序跑飞。设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。清看门狗也不能太过频繁否则会造成资源浪费。程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位。

设计思路

51单片机系统看门狗的设计思路:

  1. 看门狗定时器T0的设置。在初始化程序块中设置T0的工作方式,并开启中断和计数功能。系统晶振频率Fosc = 12MHz,T0为16位计数器,最大计数值为65535,机器周期Tcy = 12 / Fosc = 1μs,即T0输入计数频率1μs,溢出周期为65535μs。
  2. 计算主控程序循环一次的耗时。考虑系统各功能模块及其循环次数,本系统主控制程序的运行时间约为16.6 ms。系统设置"看门狗"定时器T0定时30 ms(T0的初值为65 536-30 000=35 536)。主控程序的每次循环都将刷新T0的初值。如程序进入"死循环"而T0的初值在30 ms内未被刷新,这时"看门狗"定时器T0将溢出并申请中断。
  3. 设计T0溢出所对应的中断服务程序。此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入"无条件转移"命令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序。

【MCU】单片机看门狗工作原理相关推荐

  1. 单片机看门狗工作原理

    刚学习单片机的萌新都听说过单片机看门狗,但是对于其工作原理并不是很清楚,今天这篇文章将为大家介绍单片机看门狗工作原理,一起来了解一下吧! 一.单片机看门狗是什么 在由单片机组成的微型计算机系统中,单片 ...

  2. stm32看门狗工作原理

    一.为什么需要看门狗? 在MCU微型计算机系统中,MCU运行程序很容易受到外界电磁场的干扰,从而造成程序运行错误甚至造成跑飞现象,从而陷入死循环,程序的正常运行被打乱,从而造成不可预料的严重后果,于是 ...

  3. MCU独立看门狗 vs 窗口看门狗

    关注+星标公众号,不错过精彩内容 素材来源 | STM32 微信公众号 | 嵌入式专栏 早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作.为了避免这个问题,后期的MCU在内部集成了看门狗的 ...

  4. STC15单片机-看门狗介绍

    什么是看门狗 在工业控制/ 汽车电子/航空航天等需要高可靠性的系统中,为了防止"系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作",通常是引进看门狗,如果 ...

  5. 大佬给总结的单片机看门狗详解很有用

    一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...

  6. STC89系列单片机看门狗的使用及应用程序

    转载:STC89系列单片机看门狗的使用及应用程序 "看门狗"概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程 ...

  7. 单片机搭建环境烧录方法_单片机仿真器的工作原理解析

    仿真器出现的原因 1.早期的单片机内部没有ROM,比如8031.8032,这种单片机只能外部扩展紫外擦除的EPROM存储器,就是芯片上带窗口的ROM.紫外擦除的ROM需要用紫外灯照射较长时间(10分钟 ...

  8. 单片机看门狗c语言,单片机看门狗程序

    /*此程序实现单片机"看门狗"WDT的功能*/ #include"p18f458.h" unsignedlongi; /*系统初始化子程序*/ voidinit ...

  9. 单片机看门狗c语言,单片机看门狗程序 -解决方案-华强电子网

    *此程序实现单片机"看门狗"WDT的功能*/ #include"p18f458.h" unsignedlongi; /*系统初始化子程序*/ voidiniti ...

最新文章

  1. AI公开课:19.04.04李航—字节跳动AILab总监《深度学习与自然语言处理:评析与展望》课堂笔记以及个人感悟
  2. 福昕PDF阅读器的图章妙用
  3. 数据结构课上笔记14
  4. Java笔记02-OOP
  5. editplus public class自动补齐大括号问题破解
  6. rtsp协议的视频服务器,RTSP拉流协议视频平台EasyNVR能够接入多少路视频直播流?...
  7. 〖Android〗屏幕触屏事件录制与回放
  8. Software Project Management之EVM问题的求解
  9. Mysql-5.6.x多实例配置
  10. 黄色量能通达信指标公式!没有未来函数,不加密的副图指标!
  11. 借助易宝实现Java版网上在线支付
  12. php源码安装教程宝塔,宝塔版-源码安装教程
  13. AlphaGo算法最清晰的解读
  14. SEGGER Embedded Studio 搭建开发环境
  15. 仿QQ音乐下载歌曲头部导航
  16. Web漏洞扫描工具(批量脱壳、反序列化、CMS)
  17. linux安装java(zz)
  18. 聚类方法的区别解读:各种聚类分析
  19. 获取京东 Cookie/浏览器获取 Cookie
  20. python系列——多进程之进程池(pool)

热门文章

  1. 基于模块化的PLM系统设计研究
  2. Latex中的实心原点
  3. 网易互动直播2.0 开发 十二 视频设备管理
  4. Vue.directive()的用法和实例
  5. centos系统安装教程
  6. HDU-1278-逃离迷宫
  7. JavaScript_函数
  8. 怎么使用视频做动图?如何快速将视频转成gif图
  9. Android音视频开发,详说PCM音频重采样、PCM编码
  10. python获取csv文件中某一列或者某些列