单片机看门狗的工作原理

控制/MCU

1815人已加入

描述

单片机的程序在运行过程中,为了增加系统的可靠性,防止芯片受到外界干扰而程序跑飞等系统异常,我们引入看门狗功能,Watch Dog Timer,简称为WDT。如图1。

看门狗

图1 看门狗监控单片机的程序

它本质上是一个递增定时器,它的工作原理很简单,当程序开始运行时,看门狗定时器的值从零开始向上递增,当到达预设值时,就会强制单片机复位,使系统程序从头开始运行。如图2.

看门狗

图2 看门狗本质上是一个定时器

那么我们如何使用它呢?我们的代码中,当看门狗定时器的值即将溢出时将其清零,使它重新从零开始计数,那么只要程序正常运行,看门狗就不会强制单片机复位。这样就实现了看门狗对程序的监控功能。如图3.

看门狗

图3 清零看懵定时器

上述方法实现的是软件看门狗功能,当然,我们也可以搭建硬件看门狗电路,同样实现超时强制单片机复位的功能。他的思路就是不断的给一个电容充电,在电容从满电状态放电至阈值电压前再次充电,就能保证电路不输出复位信号。从而实现硬件看门狗功能。如图4.

看门狗

图4 不断给电容充电

图5为电路原理图,它由两个与非门外加阻容器件串联而成。

看门狗

图5 硬件看门狗电路

当我们给第1引脚一个低电平,也就是喂狗的时候,A与非门输出高电平,此时电容C两端开始充电。同时,与非门B的两个输入端电平为高,那么输出端第4引脚就为低电平,不产生复位动作。如图6.

看门狗

图6 不产生复位信号

喂狗操作完毕之后,第1引脚为高电平,那么,A与非门输出低电平,此时电容C开始放电,当电容C的电量低于阈值时,第五,六引脚电平为低,则第4引脚输出高电平,产生复位。如图7。图8为产生复位时的时序图。

看门狗

图7 产生复位信号

看门狗

图8 复位时序

我们需要操作的是在电容C放电至阈值的时间段内给第1引脚一个低电平,也就是喂狗操作,保证第4引脚持续输出低电平,这样就实现了看门狗对电路的监控功能。如图9.

看门狗

图9 正常情况下不产生复位的时序图

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分