【看门狗】通俗理解什么是看门狗?如何工作?

204 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情 >>

看门狗是什么?

通俗来讲,看门狗可理解为“看门”!!!用咱们自家的小狗举例,当没人来家里的时候狗子会安静的玩自己的,但是一旦有人进入家门,狗子就会突然疯狂地开始叫,用此来告诉主人有人来了。

因此,我们也可以将看门狗(watchdog)用此解释,一切正常就不会叫,但是一旦出现异常,就会叫,从而将信息反馈给我们。综上,他是用来监测单片机运行状态和解决程序引起的故障的模块。分为独立看门狗(时间精度要求较低场合)和窗口看门狗(时间精度要求较高场合)。

二、看门狗工作

1.看门狗原理

单片机在外界的干扰下可能会出现程序bug的现象导致死循环出现,那看门狗是干什么呢?
看门狗电路就是为了避免这种情况的发生!也就是说,它的存在就是为了防止程序发生死循环,或者说程序跑飞!
但是狗总会有饿的时候,不给他吃饭他当然就没有力气看门了呀。所以我们还有一个名词叫做**喂狗**!
--程序正常启动,定时器开始,初始值减小,判断初始值是否为0,如果为0、给CPU发送复位信号,我们可以重置看门狗,简称**喂狗**,让其继续检测等待下一次投喂
--反之,计数器重置重新计数,这个过程称为**清狗**操作。
在一定时间内(通过定时计数器实现),如果没有喂狗(表示MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。
当没有东西可以喂狗时,CPU就会收到复位信号,系统复位重新运行。、
在系统运行以后,定时器就会被启动,如果到时间后还不去清狗,计时器就会溢出从未引起看门狗中断,造成系统复位。因此我们在使用过程中要及时去清狗!

2. 看门狗定时器?

一般来说,看门狗也叫“看门狗定时器”!为什么叫定时器呢?因为我们也可以把它理解成定时器。在使用的时候可以给他一个值,让他在程序启动后启动后开始⏲。常见有以下两种或情况:

1、系统复位:在看门狗函数中设置一个函数,每间隔一段时间发送给CPU一次复位信号,CPU进行复位操作。

2、系统正常运行不想让系统产生复位: