WDG看门狗

WDG简介

WDG(Watchdog)看门狗

看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因出现卡死或者跑飞现象时,看门狗可以技术复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性。其实这里可以将其理解为家里养的狗,当家里来了小偷这种对家里有危害的人的时候,可以将其驱离,保证家里安全。

看门狗本质上是一个定时器,当指定时间范围内,程序没有执行喂狗(重装计数器)操作时,看门狗硬件电路就自动产生复位信号

STM32内置两个看门狗

独立看门狗(IWDG):独立工作,对时间精度要求较低

窗口看门狗(WWDG):要求看门狗在精确计时窗口起作用,必须在某个时限内喂狗,既不可以早于这个时间点,也不可以晚于这个时间。就比如吃午饭的时间点在中午11-12点,那么喂狗的时间必须在这个时间段,不能早于11点,也不能晚于12点。

IWDG框图

IWDG键寄存器

键寄存器本质上是控制寄存器,用于控制硬件电路的工作

在可能存在干扰的情况下,一般通过在整个键寄存器写入特定值来代替控制寄存器写入一位的功能,以降低硬件电路收到干扰的概率

IWDG超时时间

超时时间:T_{IWDG_{}}=T_{LSI_{}}*PR预分频系数*(RL+1)

其中:T_{LSI_{}}=1/F_{LSI_{}}

WWDG框图

T6位作为标志位,当为1是表示为溢出,为0表示溢出,也就是最小值为100 0000(0X40),再次递减时即为011 1111(0X3F),这时溢出,进行复位操作

WWDG工作特性

递减计数器T[6:0]的值小于0X40时,WWDG产生复位

递减计数器T[6:0]在窗口W[6:0]外被重新转载时,WWDG产生复位,也就是不能过早喂狗

递减计数器T[6:0]等于0X40时可以产生早期唤醒中断(EWI),也叫死前中断,用于重装载计数器以避免WWDG复位。这里的意思也就是即将复位,还需不需要进行其他操作(一些重要操作,比如保存重要数据,关闭危险设备等等)。还有一种用法就是,即将复位,但是我们可以在中断里执行一些代码进行解决,或者这个任务不是很危险,超时了只想做一些提示,不想让他复位,这样的话就可以在早期中断里阻值复位。

定期写入WWDG_CR寄存器(喂狗)以避免WWDG复位

WWDG超时时间

IWDG和WWDG对比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yann Chase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值