1 WDG简介
WDG(Watchdog)看门狗
看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性
看门狗本质上是一个定时器,当指定时间范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路就自动产生复位信号
STM32内置两个看门狗
独立看门狗(IWDG):独立工作,对时间精度要求较低
窗口看门狗(WWDG):要求看门狗在精确计时窗口起作用
2 IWDG框图
输入时钟为LSI内部低速时钟40kHz,之后时钟进入预分频器进行分频(最大只能进行256位分频)。分频寄存器IWDG_DR可以配置分频系数,分频后时钟驱动递减计数器(最大值为2的12次方-1=4095),自减到0后产生IWDG复位。运行过程中为了避免复位可以在重装载寄存器写一个值,IWDG_RLR和定时器ARR是一样的,再在键寄存器写一个特定数据控制电路进行喂狗。
3 IWDG键寄存器
键寄存器本质上是控制寄存器,用于控制硬件电路的工作
在可能存在干扰的情况下,一般通过在整个键寄存器写入特定值来代替控制寄存器写入一位的功能,以降低硬件电路受到干扰的概率