广告

MCU独立看门狗vs窗口看门狗

2023-03-10 汽车电子与软件 阅读:
早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。
早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。
为了满足更多使用场景,现在很多MCU都集成了两个看门狗:独立看门狗与窗口看门狗
拿现在大家熟悉的STM32来说,都集成了独立看门狗和窗口看门狗,下面就展开来讲讲这个两个看门狗以及它们的区别。

独立看门狗ht0ednc

独立看门狗,顾名思义,就是独立的一个看门狗,由其专用低速时钟 (LSI) 驱动,因此,即便在主时钟发生故障时仍然保持工作状态。
IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 
独立看门狗特性:
  • 自由运行递减计数器
  • 时钟由独立 RC 振荡器提供(可在待机和停止模式下运行)
  • 当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)

窗口看门狗ht0ednc

窗口看门狗,之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间:喂狗的时间不能过早也不能过晚。
窗口型看门狗
窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。
窗口型看门狗工作原理
上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7F),最小又必须大于下窗口的0x40,所以其取值范围为64~127(即:0x40~0x7F);配置寄存器WWDG->CFR中为计数器设定时钟分频系数,确定这个计数器可以定时的时间范围,从而确定窗口的时间范围。
窗口看门狗的时钟来自于PCLK1,在时钟配置中,其频率为外部时钟经倍频器后的二分频时钟,即为36MHz,根据手册可以知道其定时时间计算方法:

两者对比ht0ednc

1.使用条件对比
2.特点对比

两者的区别ht0ednc

独立看门狗与窗口看门狗的区别如下:
独立看门狗没有中断,窗口看门狗有中断。
独立看门狗有硬件软件之分,窗口看门狗只能软件控制。
独立看门狗只有下限,窗口看门狗有下限和上限。
独立看门狗是12位递减的,窗口看门狗是7位递减的。
独立看门狗是用的内部大约40KHz的RC振荡器,窗口看门狗是用的系统时钟APB1ENR
独立看门狗没有中断功能,只要在计数器减到0(下限)之前,重新装载计数器的值,就不会产生复位。
要注意看门狗和外接复位IC同时存在的情况,外部电路可能会阻止看门狗复位。

窗口看门狗有中断,这个中断的作用是在计数器达到下限0x40的时候,产生中断,让你喂狗;如果你不喂狗,计数器的值变为0x3f的时候,将会产生系统复位;即使是喂狗,也应该在中断里快速喂狗,要不时间长了计数器减1也会变成0x3f产生复位。ht0ednc

窗口看门狗还有一个上限值,这个值如果大于计数器的初始值,那么就没有任何作用了;这个值小于计数器初始值的时候,当计数器的值大于上限值时你对计数器进行装载,将会产生复位,只有在计数器减到小于上限值时,你才能重新装载计数器。意思就是说只有计数器的值在上限值和下限值之间你才能装载计数器,否则就会产生系统复位,当上限值小于下限值,也没有意义。ht0ednc

来源:汽车ECU开发ht0ednc

责编:Ricardo
文章来源及版权属于汽车电子与软件,EDN电子技术设计仅作转载分享,对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。如有疑问,请联系Demi.xia@aspencore.com
汽车电子与软件
汽车电子与软件
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了