0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

独立看门狗功能描述

科技绿洲 来源:知晓编程 作者:知晓编程 2023-06-22 09:03 次阅读

01IWDG

1.1独立看门狗简介

IWDG(Independentwatchdog)独立看门狗,可以用来检测并解决由于软件错误导致的故障,当计数器到达给定的超时值时,会触发一个中断或产生系统复位。

独立看门狗的时钟是它专用的低速时钟(LSI),所以它能保持工作及时主时钟出现问题。窗口看门狗的时钟是有APB1时钟分频得到得到,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

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

1.2独立看门狗的特点

①自由运行递减计数器

②时钟来自通过独立的RC振荡器(可以工作在待机和停止模式下)

③当向下计数器值达到0时,会产生复位(如果看门狗已经激活)

1.3独立看门狗功能描述

pYYBAGSNdoiAcAyWAAB9jlLjdP0606.png

上图红框显示,看门狗功能由VDD电压域供电,所以在停止模式和待机模式下仍能工作。

向关键字寄存器(IWDG_KR)写入0XCCCC,独立看门狗就会启动,计数器开始下降从复位值0XFFF。当计数器值到达0,会产生一个复位信号(独立看门狗复位)。

无论何时向关键字寄存器写入0XAAAA,IWDG_RLR的数值会重载进计数器,避免看门狗复位。

1.4硬件看门狗

如果通过器件选项位使能“硬件看门狗”功能,上电时将自动使能看门狗;如果在计数器计数结束前,若软件没有向关键字寄存器写入相应的值,则系统会产生复位。

1.5寄存器访问保护

IWDG_PR 和IWDG_RLR 寄存器具有写访问保护。若要修改寄存器,必须首先对IWDG_KR寄存器写入代码0x5555。而写入其他值则会破坏该序列,从而使寄存器访问保护再次生效。这意味着重装载操作(即写入0xAAAA)也会启动写保护功能。

状态寄存器指示预分频值和递减计数器是否正在被更新。

1.6调试模式

微控制器进入调试模式时(Cortex™-M3 内核停止),IWDG 计数器会根据DBG 模块中的DBG_IWDG_STOP 配置位选择继续正常工作或者停止工作。

下图是LSI在不同分频情况下IWDG超时周期的最小值和最大值。

poYBAGSNdpeAZhz9AADOYOD79E8294.png

02WWDG

2.1简介

窗口看门狗(Windowwatchdog)通常被用来监测,由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6 位变成0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU 复位。如果在递减计数器达到窗口寄存器值之前刷新控制寄存器中的7 位递减计数器值,也会产生MCU 复位。这意味着必须在限定的时间窗口内刷新计数器。

2.2窗口看门狗主要特点

①可编程自由向下计数器

②复位条件,激活看门狗的情况下,当递减计数器值小于0x40 时复位;在窗口之外重载递减计数器时复位。

③提前唤醒中断(EWI):当递减计数器等于0x40 时触发(如果已使能且看门狗已激活)。

2.3窗口看门狗功能说明

如果窗口看门狗启动(WWDG_CR寄存器的WDGA位置1),7位向下计数器从0X40向0x3F滚动(T6已经清零),会导致一个复位。如果软件重载计数器,当计数器值大于窗口所存储的值时,就会产生复位。

poYBAGSNdqKADYGhAACtY12CDj0569.png

应用程序必须在正常操作期间写WWDG_CR寄存器去组织MCU复位。这个操作必须发生在计数器值小于窗口寄存器值。窗口寄存器值存储在WWDG_CR寄存器,必须在0XFF和0XC0之间。

使能窗口看门狗

复位之后,窗口寄存器经常是禁止的。通过设置WWDG_CR寄存器的WDGA位去使能,不能被禁止除了通过复位。

控制向下计数器

递减计数器处于自由运行状态:即使禁止看门狗,递减计数器仍继续递减计数。当使能看门狗时,必须将T6 位置1,以防止立即复位。

T[5:0] 位包含了看门狗产生复位之前的计时数目;复位前的延时时间在一个最小值和一个最大值之间变化,这是因为写入WWDG_CR 寄存器时,预分频值是未知的。配置寄存器(WWDG_CFR) 包含窗口的上限:为防止发生复位,当递减计数器的值低于窗口寄存器值且大于0x3F 时必须重载。

注意:可使用T6 位产生软件复位(将WDGA 位置1 并将T6 位清零)。

pYYBAGSNdqyARTPhAABv-1K6yT8674.png

看门狗中断高级特性

如果在产生实际复位之前必须执行特定的安全操作或数据记录,则可使用提前唤醒中断(EWI)。通过设置WWDG_CFR 寄存器中的EWI 位使能EWI 中断。当递减计数器的值为0x40时,将生成EWI 中断。在复位器件之前,可以使用相应的中断服务程序(ISR) 来触发特定操作(例如通信或数据记录)。

在某些应用中,可以使用EWI 中断来管理软件系统检查和/或系统恢复/功能退化,而不会生成WWDG 复位。在这种情况下,相应的中断服务程序(ISR) 可用来重载WWDG 计数器以避免WWDG 复位,然后再触发所需操作。

通过将0 写入WWDG_SR 寄存器中的EWIF 位来清除EWI 中断。

2.4如何设置看门狗超时

pYYBAGSNdriAMrRUAACPhWrx4hU192.png

例子:APB1的频率是24MHZ,WDGTB[1:0]设置3,T[5:0]设置成63

t = 1/24000*4096*2*2*2*(63+1)=24.85ms。

有关TWWDG的最小值和最大值。

poYBAGSNdtGAKGJKAABsZjWLDoQ385.png

2.5调试模式

当微控制器进入调试模式时(Cortex™-M3内核停止),WWDG计数器会根据DBG模块中的DBG_WWDG_STOP配置位选择继续正常工作或者停止工作。

03区别

应用场景不同

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

WWDG 最适合那些要求看门狗在精确计时窗口起作用的应用程序。

为什么要窗口看门狗?

对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了。

如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前刷新看门狗也不会滞后刷新看门狗,这样可以检测出程序没有按照正常的路径运行非正常地跳过了某些程序段的情况。
责任编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    560

    浏览量

    70790
  • 计数器
    +关注

    关注

    32

    文章

    2256

    浏览量

    94484
  • 程序
    +关注

    关注

    117

    文章

    3785

    浏览量

    81008
收藏 人收藏

    评论

    相关推荐

    独立看门狗(IWDG)的基础知识

      STM32F10xxx系列内置两个看门狗(独立看门狗和窗口看门狗),提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(
    发表于 10-19 17:10 4251次阅读
    <b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>(IWDG)的基础知识

    STM32中的独立看门狗和窗口看门狗是什么

    在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗功能。但是目前看门狗发展到今天基本上分为两大类:
    的头像 发表于 02-20 17:47 2724次阅读
    STM32中的<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>是什么

    独立看门狗的特点及功能描述

    目录1、IWDG1.1 独立看门狗简介1.2 独立看门狗的特点1.3 独立看门狗
    发表于 07-30 07:27

    看门狗实验概述

    看门狗实验概述也就是保证程序能正常执行,如果程序执行异常,可以使系统复位。 STM32看门狗的分类: 这次主要学习独立看门狗的相关知识,独立
    发表于 08-02 07:50

    stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

    本文为您讲解STM看门狗时间计算(时限)与频率计算,独立看门狗和窗口看门狗的特性、区别与联系。
    发表于 10-10 10:41 8762次阅读

    什么是stm32看门狗独立看门狗和窗口看门狗工作原理解析

    stm32有两个看门狗独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立
    的头像 发表于 11-06 11:48 2.7w次阅读
    什么是stm32<b class='flag-5'>看门狗</b>?<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>工作原理解析

    STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

    stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定
    发表于 11-09 17:17 8438次阅读
    STM32<b class='flag-5'>看门狗</b>配置(<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>IWDG和窗口<b class='flag-5'>看门狗</b>WWDG)

    浅谈STM8S_008_WDG独立看门狗和窗口看门狗

    STM8S_008_WDG独立看门狗和窗口看门狗
    的头像 发表于 03-20 09:39 5276次阅读
    浅谈STM8S_008_WDG<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>

    MCU独立看门狗与窗口看门狗的区别

    早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗功能。为了满足更多使用场景,现在很多MCU都集成了两个看门狗
    发表于 10-28 20:06 8次下载
    MCU<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>与窗口<b class='flag-5'>看门狗</b>的区别

    STM32:独立看门狗、窗口看门狗的配置

    STM32单片机的看门狗独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同。
    发表于 02-08 16:15 18次下载
    STM32:<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>、窗口<b class='flag-5'>看门狗</b>的配置

    窗口看门狗是什么?与独立看门狗有啥区别?

    STM32有两个看门狗独立看门狗和窗口看门狗。其实两者的功能是类似的,只是喂狗的限制时间不同。
    发表于 02-09 10:28 9次下载
    窗口<b class='flag-5'>看门狗</b>是什么?与<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>有啥区别?

    STM32中的独立看门狗和窗口看门狗

    一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗功能。但是目前看门狗发展到今天基本上分为两大
    的头像 发表于 12-22 16:58 2139次阅读

    详解独立看门狗的实现原理

    这里以大家熟悉的STM32为例给大家讲解一下独立看门狗的配置以及工作过程。STM32F10xxx内置两个看门狗独立看门狗和窗口
    发表于 12-22 17:01 3239次阅读

    STM32中的独立看门狗和窗口看门狗

    在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗功能。但是目前看门狗发展到今天基本上分为两大类:
    的头像 发表于 01-30 14:38 1368次阅读
    STM32中的<b class='flag-5'>独立</b><b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>

    MCU如何集成看门狗功能

    一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗功能。但是目前看门狗发展到今天基本上分为两大
    的头像 发表于 06-22 09:09 1784次阅读
    MCU如何集成<b class='flag-5'>看门狗</b>的<b class='flag-5'>功能</b>