【STM32F4】十、窗口看门狗(WWDG)

一、窗口看门狗概述

1. 窗口看门狗与独立看门狗的不同

1.1 独立看门狗

在讲窗口看门狗之前,我们先简单说一说独立看门狗。想详细了解独立看门狗的读者,请进入这条链接

独立看门狗的主要组成器件包括时钟、递减计数器、键寄存器、重装载寄存器

独立看门狗启动后,递减计数器中的数字就会每时钟周期都减1,直到减为0,独立看门狗就认为程序跑飞了,则会引发系统复位

为了避免看门狗引发复位,我们就需要告诉看门狗“程序没有跑飞,仍在我的掌控之中” ,如何通知看门狗这条信息呢?我们就需要给键寄存器发一个装载信号,键寄存器接到信号后,就会命令重装载寄存器把它装载的值赋给递减计数器,以此来更新递减计数器。

只要我们保证在每次递减计数器减到0之前能更新它其中的数值,就能保证看门狗不会引发复位,这个操作就是我们常说的“喂狗”。

示意图大致如下,OneNote用得不好请见谅……

1.2 窗口看门狗

窗口看门狗,其最重要的组成部件仍然是时钟、递减计数器、键寄存器、重装载寄存器,而关键在于它的理解窗口

窗口看门狗的窗口指的是 上限时间/上窗口下限时间/下窗口,其中:

上限时间下限时间实际上就是两个不同的数值,在递减计数器从初值开始递减的过程中,会经过这两个数值。
递减计数器初值 > 上限时间 > 下限时间

上限时间下限时间有各自不同的作用:

  • 启动窗口看门狗后,递减计数器开始从初值递减;
  • 如果在减到上限时间前,用户对递减计数器的值进行了重装载,那么将引发系统复位
  • 如果在上限时间减到下限时间的窗口期间,用户对递减计数器的值进行了重装载,那么这是正常的喂狗,程序正常运行,不会引发复位
  • 如果在减到下限时间时,用户仍没有喂狗,那么将同独立看门狗减到0的效果一样,引发系统复位

注: 下限时间不是0,它的值由系统固定,是0x3F

附上窗口看门狗的内部结构示意图如下:

工作流程示意图大致如下:

1.3 窗口看门狗可引发中断

窗口看门狗引发中断,用户可以在中断服务函数中进行喂狗。

独立看门狗不能引发中断。

1.4 时钟来源、精度不同

独立看门狗的原始时钟信号来源于LSI,是独立时钟,但频率低,精度低。
窗口看门狗的时钟来源于PCLK1,并非独立时钟,但频率高,精度高。


2. 窗口看门狗的工作细节

2.1 在何时喂狗比较合适?

上面讲到,下限时间是一个固定值,是0x3F,即二进制011 1111

那么,在递减计数器从100 0000减到011 1111的瞬间,也就是即将引发复位的前一刻,窗口看门狗会先引发中断(若其中断已被使能),用户就可以在中断服务函数中编写程序,进行喂狗

2.2 计数器和控制寄存器配合工作,产生中断

上面提到,在 100 0000 递减到 011 1111 的瞬间,会引发中断,那么,实际上只要检测这个二进制数的第6位(从0开始计位数)是否从1变到了0,就可以判断是否要引发中断。

计数器的示意图如下:

可以看到,计数器共有八个位,分别为T0、T1、T2、T3、T4、T5、T6,用来计数;以及一个WDGA,用来使能窗口看门狗。

而系统(窗口看门狗控制寄存器WWDG_CR)只要检测T6位是否从1变到了0,就能知道是否要引发中断。

3. 窗口看门狗超时时间计算

分频系数计算:

分频寄存器设置为WDG_TB时,实际得到的分频系数是`

4096 x ( 2 ^ WDG_TB)

由于窗口看门狗的原始时钟从PCLK接收而来,频率非常高(精确),因此要固定得对它除以4096进行分频,以减小其频率;然后再除以2 ^ WDG_TB进一步分频。

根据分频系数,以及原始频率Fpclk,可以得到新时钟信号的新时钟周期新时钟频率的倒数**,即:

4096 x ( 2 ^ WDG_TB) / Fpclk

时钟周期 x 递减计数器初值:

看门狗的超时时间是指递减计数器减到下限时间所用的总时间,所以在得到时钟周期(递减计数器每个时钟周期减1)后,还要乘上递减计数器的初值,得到最终的窗口看门狗超时时间,即:

4096 x ( 2 ^ WDG_TB)  x (T[5:0] + 1)/ Fpclk

上式中T[5:0] + 1中,**T[5:0]**是指递减计数器二进制初值的 0 ~ 5 位,为什么不取第6位呢?

因为我们想要的是从初值减到下限时间的值,而递减计数器总共有6位,下限时间是011 1111,加1后得到100 0000;而递减计数器初值是1xx xxxx,用1xx xxxx 减去 100 0000,得到的自然就是 0 ~ 5 位,即T[5:0],也就是xx xxxx。
在此基础上加1,是为了弥补100 0000到011 1111的1次计数。

二、窗口看门狗程序编写

1. 窗口看门狗常用库函数

猜你喜欢

转载自blog.csdn.net/qq_39642978/article/details/112556380
今日推荐