首页/文章/ 详情

看门狗工作原理和电路设计

11月前浏览931

目录:
1.看门狗是什么?
2.硬件和软件看门狗
3.硬件看门狗芯片电路

1.看门狗是什么?



看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog/service the dog),一个输出到MCU的RST端。

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



2.硬件和软件看门狗



☀ 硬件看门狗

硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813,5045,IMP 813等。


☀ 软件看门狗

而在某些情况下,也会采用纯软件的方法来设置看门狗,如在单片机系统中,利用闲置的定时器/计数器就可以设计一个软件看门狗。具体实现步骤如下:


首先,在初始化程序中设置定时器/计数器的方式以控制寄存器(TMOD) 和定时时间的初值,并且打开中断。


然后,根据定时器的时间,在主程序中按一定的时间间隔插入复位定时器的指令(喂狗), 两条喂狗指令之间的时间间隔可以根据系统时钟与指令周期计算出来,而且该时间周期应该小于定时器的定时时间。


最后,在定时器的中断服务程序中,设置一条无条件转移指令,将程序计数器PC转移到初始化程序的入口。


软件看门狗的优点是无需额外的硬件支持,但当系统存在严重的错误时(例如:中断服务出错),则有可能导致软件看门狗失效。



3.硬件看门狗芯片电路



看门狗芯片与MCU的连接关系如下:其基本的原理就是MCU要在固定的时间内通过IO翻转去控制看门狗芯片的WDI引脚,否则看门狗芯片就会将WDO拉低,进而使CPU复位。



以SP706为例,看门狗芯片的引脚定义和功能描述如下图:
(来自CSDN: heat.huang)

这个MR脚是手动复位,挺有用的,原理图设计时注意下


当J2接上跳线帽时,开启看门狗。反之,看门狗关闭。

芯片参数比较少,关注下最短喂狗时间Twd 即可:


参考文献:
  1. https://www.bilibili.com/video/BV1134y197sh?spm_id_from=333.337.search-card.all.click&vd_source=1dd819fba773162098e21ce510439d48
  2. https://baike.baidu.com/item/%E7%9C%8B%E9%97%A8%E7%8B%97/6518878?fr=aladdin
  3. https://blog.csdn.net/weixin_40407893/article/details/117956750

声明:


     
声明:本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。 

来源:硬件笔记本
电路电子芯片控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-11-18
最近编辑:11月前
硬件笔记本
本科 一点一滴,厚积薄发。
获赞 153粉丝 34文章 373课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈