你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32单片机看门狗的区别

[复制链接]
STMCU小助手 发布时间:2022-6-4 15:34
早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。
, t5 z! R( e3 }( S
0 i7 ^: F$ m! q9 d+ M. W
为了满足更多使用场景,现在很多MCU都集成了两个看门狗。
( `% E4 h% L) l: H, X6 Z
拿现在大家熟悉的STM32来说,都集成了独立看门狗和窗口看门狗,下面就展开来讲讲这个两个看门狗以及它们的区别。

% N* f% A! |/ q
独立看门狗
, Y; n: W! X9 U  k5 S: }
独立看门狗,顾名思义,就是独立的一个看门狗,由其专用低速时钟 (LSI) 驱动,因此,即便在主时钟发生故障时仍然保持工作状态。

3 T. A. w) {9 E: s# ]/ ]+ q
IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。

5 |  V4 F/ z  |5 K
独立看门狗特性:
  • 自由运行递减计数器
  • 时钟由独立 RC 振荡器提供(可在待机和停止模式下运行)
  • 当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)

    ' `/ {6 A& m6 B! v: r: M+ Z
    / a& h6 C; ]/ Y& ~( l

$ O1 P/ A1 X, V. U+ T
640 (1).png

+ D1 L2 }( d/ k6 m2 o6 v; d! Z/ p
窗口看门狗
" \: J& {7 N# O) P: t( t
窗口看门狗,之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间:喂狗的时间不能过早也不能过晚。
2 i8 A, c/ l5 o4 }
640.png
窗口型看门狗窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。+ f4 i, N' x! P/ e

) h6 ?; ]1 V% c6 L$ X4 g4 K
640 (1).jpg

* b0 d: h( A' o7 T4 h+ k; Q0 c

6 I* \# b, a* N( j: w2 e: W- g& I
窗口型看门狗工作原理
1 Q/ _  v8 |# |9 l: O: Y
" W( `! y9 |" z
1 {& `# n7 Y; V
上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7F),最小又必须大于下窗口的0x40,所以其取值范围为64~127(即:0x40~0x7F);配置寄存器WWDG->CFR中为计数器设定时钟分频系数,确定这个计数器可以定时的时间范围,从而确定窗口的时间范围。6 E+ |- V9 o2 i6 J6 ]0 x5 R6 u# W

0 ?( E- x+ @" m5 \0 R, U& G6 Z
窗口看门狗的时钟来自于PCLK1,在时钟配置中,其频率为外部时钟经倍频器后的二分频时钟,即为36MHz,根据手册可以知道其定时时间计算方法:

8 B: W' V5 P( g8 }/ E+ s% D
640.jpg

+ F! j$ F" V: ^: g$ Q  R) x+ V
两者对比
) j, V4 N) z  J3 O; T
1.使用条件对比
B32FH9Q1~7VX`~@PI6NIUS9.png

. g2 ?; D8 b5 e  [
2.特点对比

5 E8 N& F1 R. K# S& h9 C6 t$ B1 {9 B5 k' [1 M
IQP5W]K7_ZPI}G]T2RYC$@E.png

' ^3 l) v6 Z' C1 Y, {! \0 C# Q5 u7 K; a( t% Z: v  W
两者区别
6 E0 n# n" v& I. E; w5 Q: d. b0 ~. S
独立看门狗与窗口看门狗的区别如下:
  • 独立看门狗没有中断,窗口看门狗有中断。

    3 Y, O* |3 T$ x# H: T  b2 f3 O& E8 o
    . V8 G4 [& k! M' \  n
  • 独立看门狗有硬件软件之分,窗口看门狗只能软件控制。7 _' m) N( @5 J+ f! }% ~( x
  • 独立看门狗只有下限,窗口看门狗有下限和上限。
    ) b% b8 I4 i7 Y2 M9 s0 b
  • 独立看门狗是12位递减的,窗口看门狗是7位递减的。- V, X& \9 a' N& a
  • 独立看门狗是用的内部大约40KHz的RC振荡器,窗口看门狗是用的系统时钟APB1ENR

    & }2 M; U( g8 h3 l) |
    0 f5 F, c# o7 K$ j& m1 \% n" Z
/ S5 @  L/ \: s8 i" X+ |' o
独立看门狗没有中断功能,只要在计数器减到0(下限)之前,重新装载计数器的值,就不会产生复位。

3 f7 s$ ]8 e, D
外部电路可能会阻止看门狗复位。
) c' H0 A  Q: P" u- d8 `3 z
窗口看门狗有中断,这个中断的作用是在计数器达到下限0x40的时候,产生中断,让你喂狗;如果你不喂狗,计数器的值变为0x3f的时候,将会产生系统复位;即使是喂狗,也应该在中断里快速喂狗,要不时间长了计数器减1也会变成0x3f产生复位。
) ]; k# s$ h% D" u  |1 {
窗口看门狗还有一个上限值,这个值如果大于计数器的初始值,那么就没有任何作用了;这个值小于计数器初始值的时候,当计数器的值大于上限值时你对计数器进行装载,将会产生复位,只有在计数器减到小于上限值时,你才能重新装载计数器。意思就是说只有计数器的值在上限值和下限值之间你才能装载计数器,否则就会产生系统复位,当上限值小于下限值,也没有意义。

4 I) C5 e4 o& p+ ^6 F6 }, M
" c7 H$ u' c: T
赞 收藏 评论0 发布时间:2022-6-4 15:34

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版