看门狗介绍
"看门狗"通常指的是计算机科学和信息技术领域中的一种技术或设备,用于监控系统的运行状态,并在系统出现故障或异常情况时采取相应的措施。这种技术或设备起到类似于守卫的作用,确保系统的稳定性和可靠性。
在计算机系统中,看门狗通常是一种硬件设备或计时器,定期接收系统的信号。如果系统正常运行,会定期发送一个称为“喂狗”的信号给看门狗,以防止它超时。如果系统发生故障、崩溃或停止响应,无法发送喂狗信号,那么看门狗就会认为系统出现问题,触发相应的应急措施,例如重新启动系统或执行其他恢复操作。
看门狗的概念也可用于软件层面,其中一个进程被设计为定期检查系统状态,并在必要时采取纠正措施。这种方法有助于提高系统的可用性和稳定性。
独立看门狗:
独立看门狗工作在主程序之外,能够完全独立工作,它的时钟是专用的低速时钟(
LSI
),由
VDD
电压供电, 在停止模式和待机模式下仍能工作。
独立看门狗本质
本质是一个
12
位的递减计数器,当计数器的值从某个值一直减到
0
的时候,系统就会产生一个复
位信号,即
IWDG_RESET
。
如果在计数没减到
0
之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们
经常说的喂狗。
独立看门狗时钟
独立看门狗的时钟由独立的
RC
振荡器
LSI
提供,即使主时钟发生故障它仍然有效,非常独立。启用
IWDG
后,
LSI
时钟会自动开启。
LSI
时钟频率并不精确,
F1
用
40kHz
。
LSI
经过一个
8
位的预分频器得到计数器时钟。
重装载寄存器
重装载寄存器是一个
12
位的寄存器,用于存放重装载值,低
12
位有效,即最大值为
4096
,这个值
的大小决定着独立看门狗的溢出时间。
键寄存器
键寄存器
IWDG_KR
可以说是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存器
写入下面三个不同的值有不同的效果
溢出时间计算公式
独立看门狗实验
需求:
开启独立看门狗,溢出时间为
1
秒,使用按键
1
进行喂狗。
硬件接线:
KEY1 -- PA0
UART1 -- PA9/PA10
溢出时间计算:
PSC=64
,
RLR=625