【STM32】IWDG独立看门狗【原理】

前注:本文章主要讲解【原理】

内容为 '_Snake_'编写,日常学习总结,内容如有不足、不妥之处请私信告知,谢谢!

简介

        MCU可能工作在一些复杂环境,可能受到某些电磁干扰出现程序跑飞,导致死循环无法继续执行工作,看门狗的作用就是为了避免这种情况。看门狗的本质也是一个定时器,在启动后,需要在一定时间内再给它一个信号,俗称“喂狗”,如果没有按时“喂狗”,说明MCU可能处于非正常状态,这时看门狗就向 MCU发送个复位信号,使整个系统重启,重新进入正常的工作状态。

框图

【STM32】IWDG独立看门狗【原理】

1. 时钟、预分频器

独立看门狗的时钟源来自 LSI (内部低速时钟)

分配器(具有写保护功能)

【STM32】IWDG独立看门狗【原理】 

【STM32】IWDG独立看门狗【原理】

【STM32】IWDG独立看门狗【原理】

2.重装载值、计数器、键值寄存器

计数器

独立看门狗的计数器是一个 12 位的递减计数器,最大值为 0XFFF ,当计数器减到 0 时, 会产生一个复位信号 :IWDG_RESET ,让程序重新启动运行,如果在计数器减到 0 之前刷新 了计数器的值的话,就不会产生复位信号,重新刷新计数器值的这个动作我们俗称 喂狗 。

重装载值

重装载寄存器是一个 12 位的寄存器,里面装着要刷新到计数器的值,这个值的大小决 定着独立看门狗的溢出时间。超时时间 Tout = (4*2^prv) / 40 * rlv (s) , prv 是预分频器寄存   器的值, rlv 是重装载寄存器的值。

键值寄存器

【STM32】IWDG独立看门狗【原理】

 

3.IWGH复位

溢出时间 Tout = prv/40 * rlv (s)

prv 可以取 IWDG_Prescaler_64 ,rlv 取 625 , IWDG_SetPrescaler (IWDG_Prescaler_64 ,625)。 Tout=64/40*625=1s 。

4.状态寄存器

【STM32】IWDG独立看门狗【原理】

 

上一篇:OSS提供的安全防护功能介绍


下一篇:站点中如何应用OSS资源