目录
1. 窗口看门狗WWDG简介
窗口看门狗通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变为0前被刷新,否则看门狗电路在达到预置的时间周期时,会产生一个MCU复位。如果在递减计数器达到窗口寄存器值之前刷新控制寄存器的7位递减计数器值,也会产生MCU复位。这意味着必须在限定的时间窗口内刷新计数器。
之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内(窗口),可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗时间不能过早也不能过晚。
为什么需要窗口看门狗呢?独立看门狗是在0~重载值之间任何时间段都可以喂狗,如果在这个时间段程序死循环结束,或者说程序跑飞之后又跑回正常,这时候恰好又刷新了看门狗,这种情况下独立看门狗是检测不到复位芯片的;但是窗口看门狗不同,严格限时了喂狗的时间,即使程序跑飞又跑回正常,只要不在限定的时间窗口内,MCU都会产生复位。
2. 窗口看门狗和独立看门狗的区别
独立看门狗和窗口看门狗同属于STM32的看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门狗外设均可用于检测并解决由软件错误导致的故障。但是:
1. 独立看门狗IWDG由其专用的低速时钟LSI驱动,因此即便在主时钟发生故障时仍然可以保持工作状态。
窗口看门狗WWDG时钟由APB1时钟经预分频后提供,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
2. IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。
WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。
3. 也是两者最重要的区别:独立看门狗IWDG是在定时器减为0这个时间段之中喂狗,就不会产生复位;而窗口看门狗需要在定时器减到0x3F这个时间段内喂狗才不会产生复位,在其他时间均会产生复位。
3. WWDG主要特性
1. 可编程的自由运行递减计数器 //给定一个时间段,由计数器来完成
2. 复位条件
当递减计数器值小于0x40时复位;(如果看门狗已激活) //在计数器的值到0x3F之间喂狗才不会复位,相比于独立看门狗更加严格
在窗口之外重载递减计数器时复位;(如果看门狗已激活) //还是在强调一点:只有在计数器的值递减到0x3F之间才不会复位,其余任何时间哪怕是无限喂狗也会复位,窗口之外指的就是在计数器的值递减到0X3F这个过程之外。也可以说喂狗时间大于了窗口的上限值。
3. 提前唤醒中断(EWI):当递减计数器等于0x40时触发(如果已使能且看门狗已激活) //特殊功能:计数器的值等于0x40时触发中断,该中断可以用来提醒喂狗,并且执行其他功能;但是需要注意:如果有其他优先级更高的中断执行,那么看门狗将执行复位。
4. WWDG功能
4.1 窗口看门狗框图(重要)


文章详细介绍了STM32的窗口看门狗WWDG的工作原理、与独立看门狗的区别、主要特性和功能,包括WWDG的寄存器配置、超时计算以及如何通过中断方式配置和管理窗口看门狗。WWDG提供了一种安全机制,通过限定的喂狗时间窗口来防止软件故障导致的MCU异常。
最低0.47元/天 解锁文章
894

被折叠的 条评论
为什么被折叠?



