当前位置:首页 > 公众号精选 > 玩转嵌入式
[导读]▼更多精彩推荐,请关注我们▼早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。为了满足更多使用场景,现在很多MCU都集成了两个看门狗:独立看门狗与窗口看门狗。拿现在大家熟悉的STM32来说,都集成了独立看门狗和窗...

更多精彩推荐,请关注我们▼早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。

为了满足更多使用场景,现在很多MCU都集成了两个看门狗:独立看门狗窗口看门狗


拿现在大家熟悉的STM32来说,都集成了独立看门狗和窗口看门狗,下面就展开来讲讲这个两个看门狗以及它们的区别。

独立看门狗

独立看门狗,顾名思义,就是独立的一个看门狗,由其专用低速时钟 (LSI) 驱动,因此,即便在主时钟发生故障时仍然保持工作状态。


IWDG 最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 


独立看门狗特性:
  • 自由运行递减计数器

  • 时钟由独立 RC 振荡器提供(可在待机和停止模式下运行)

  • 当递减计数器值达到 0x000 时产生复位(如果看门狗已激活)


窗口看门狗

窗口看门狗,之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间:喂狗的时间不能过早也不能过晚。


窗口型看门狗窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;当窗口看门狗的计数器在上窗口值之外,或是低于下窗口值都会产生复位。

窗口型看门狗工作原理
上窗口的值可以只有设定,7位二进制数最大只可以设定为127(0x7F),最小又必须大于下窗口的0x40,所以其取值范围为64~127(即:0x40~0x7F);配置寄存器WWDG->CFR中为计数器设定时钟分频系数,确定这个计数器可以定时的时间范围,从而确定窗口的时间范围。

窗口看门狗的时钟来自于PCLK1,在时钟配置中,其频率为外部时钟经倍频器后的二分频时钟,即为36MHz,根据手册可以知道其定时时间计算方法:

两者对比

1.使用条件对比


2.特点对比

两者区别

独立看门狗与窗口看门狗的区别如下:
  • 独立看门狗没有中断,窗口看门狗有中断。

  • 独立看门狗有硬件软件之分,窗口看门狗只能软件控制。

  • 独立看门狗只有下限,窗口看门狗有下限和上限。

  • 独立看门狗是12位递减的,窗口看门狗是7位递减的。

  • 独立看门狗是用的内部大约40KHz的RC振荡器,窗口看门狗是用的系统时钟APB1ENR


独立看门狗没有中断功能,只要在计数器减到0(下限)之前,重新装载计数器的值,就不会产生复位。


要注意看门狗和外接复位IC同时存在的情况,外部电路可能会阻止看门狗复位。


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


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



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

关注星标公众号,不错过精彩内容素材来源|STM32早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。为了满足更多使用场景,现在很多MCU都集成了两个看门...

关键字: MCU 独立看门狗 窗口看门狗

STM32有两个看门狗,独立看门狗和窗口看门狗。其实两者的功能是类似的,只是喂狗的限制时间不同。 窗口看门狗 窗口看门狗,之所以称为窗口,是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和...

关键字: 独立看门狗 窗口看门狗 计数器 定时

stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。窗口看门狗,所以称之为窗口就是因为

关键字: STM32 库函数 操作寄存器 窗口看门狗

1)独立看门狗没有中断,窗口看门狗有中断2)独立看门狗有硬件软件之分,窗口看门狗只能软件控制3)独立看门狗只有下限,窗口看门狗又下限和上限4)独立看门狗是12位递减的。窗口看门狗是7位递减的5)独立看门狗是用

关键字: STM32 独立看门狗 窗口看门狗

一、 STM8S 外部中断进行唤醒先了解一下STM8S的中断资源再看看STM8S的中断管理。STM8S采用软件优先级和硬件优先级来控制一个中断的响应,先比较软件优先级只有当软件优先级一致时才会比较硬件优先级,由于硬件优先...

关键字: stm8s 窗口看门狗 中断唤醒 定时唤醒

为了提搞系统的可靠性,STM32F4系列MCU有一个独立看门狗(IWDG)和一个窗口看门狗(WWDG)。今天做的实验是关于独立看门狗的。独立看门狗使用的时钟源是内部低速振荡器LSI。因为LSE可能没接,HSE可能坏点,H...

关键字: iwdg stm32f4 独立看门狗

1.看门狗介绍看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。使用看门狗保证系统正常地运行是非常有必要的。我们在设计产品时,代码以及硬件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常

关键字: iwdg STM32 wwdg 独立看门狗 窗口看门狗

1.关于看门狗的解释不再说明,窗口看门狗简而言之即只能看某个窗口期即某段时间内才能够喂狗。32的独立看门狗是没有中断的,而窗口看门狗可根据需要配置中断2.关于独立看门狗和窗口看门狗的应用,手册p316 即17.1节讲

关键字: STM32 独立看门狗 窗口看门狗

STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗

关键字: STM32 独立看门狗

对STM32任何模块使用前都要对其初始化、首先就是初始化外设时钟,可以简单看系统时钟章节关于外设时钟,看数据手册如下:看门狗由独立内部40M时钟驱动,所以不需要我们在初始化时钟配置寄存器。 读数据手册可

关键字: iwdg STM32 独立看门狗
关闭
关闭