单片机的看门狗是如何工作的?
单片机的程序在运行过程中,为了增加系统的可靠性,防止芯片受到外界干扰而程序跑飞等系统异常,我们引入看门狗功能,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 正常情况下不产生复位的时序图
STM32单片机的看门狗,程序启动方式
1 总结一句话 看门狗就是一直得喂狗 不然就程序复位
2 程序启动方式用内部flash启动就把BOOT1 BOOT0 下拉接地,一般都用这种方式。
相关问答
单片机 里面什么是 看门狗 ?如何实现系统 程序 的监控?看门狗其实是一个特别的定时器看门狗的英文是WatchDogTimer。其实就是单片机内置的一个定时器,如果定时器溢出,可以让单片机复位重启,可以避免程序跑飞或者...
AT89S51 单片机看门狗 怎样设置?AT89S51看门狗:要启用WDT功能,需要一次将0x1e,0xe1放入WDTRST寄存器,此寄存器的位置是0xa6。启用WDT之后不可停用,但是可以复位WDT,让它重新计时;复位的方...
大侠快来!明明加了 看门狗 但是电源干扰一来, 单片机 还是死机是什么情况?看门狗就是防止程序跑飞后,死机。跑飞后,看门狗会重启程序。跑飞的情况一个是程序写的不好,有BUG,还有就是外界干扰。如果不是做产品,自己试验的话,尽量不...
求助,N79E815AT20 看门狗 怎么开启?单片机程序中每隔一段时间就向狗喂食,如果超过一定时间狗没有吃到,就表示死机了,狗就出发单片机复位。单片机程序中每隔一段时间就向狗喂食,如果超过一定时间...
我用max690给52 单片机 做 看门狗 电路,一旦复位一次就不停的复位,max690会很烫,是怎么回事?我觉得是程序不完善。理论上,一旦进入复位程序,肯定是相关的状态有异常情况,进入复位程序后,再次进入正常程序后,在检测相关的状态如果没人人为干预的话,...
Keil可以用来开发PIC 单片机程序 么?keil不能给pic单片机编程。pic有专用的编译软件,mplab和c语言编译软件picc。1、MPLABX目前还不是很成熟,如果用来做项目的话,建议用MPLAB8.86版本即可,到MIC...
凌阳 单片机 DA550A03E有那么内置功能,不再编程可实现那么功能?[回答]在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机...
单片机 自动重启的原因有哪些?1、单片机硬件复位,这个要检查硬件电路中的复位电路是不是有错误2、单片机程序中有代码造成软件复位3、单片机在不断上电断电循环过程造成不断复位你先检...
AT89S51 单片机 内部集成哪些外围功能部件?1、4kBytesFlash片内程序存储器;2、128bytes的随机存取数据存储器(RAM);3、32个外部双向输入/输出(I/O)口;4、2个中断优先级、2层中断嵌套中断;5......
当AT89S51 单片机 运行出错或 程序 陷入死循环时,如何摆脱困境?单片机运行出错,或者陷入死循环,有可能是硬件电路原因,也有可能是程序原因。一、排除电路故障当单片机运行出错,直观的表现就是电路中某一部分不能正常工作...