单片机看门狗是什么东西(单片机的看门狗是如何工作的)

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(1)

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

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(2)

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

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(3)

图3 清零看懵定时器

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(4)

图4 不断给电容充电

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(5)

图5 硬件看门狗电路

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(6)

图6 不产生复位信号

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(7)

图7 产生复位信号

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(8)

图8 复位时序

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

单片机看门狗是什么东西(单片机的看门狗是如何工作的)(9)

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

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页