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

    文章

    541

    浏览量

    70256
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92977
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79542
收藏 人收藏

    评论

    相关推荐

    独立看门狗的原理是什么?如何去使用独立看门狗

    为什么需要看门狗独立看门狗的原理是什么?独立看门狗的特点有哪些?如何去使用独立
    发表于 07-26 13:59

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

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

    独立看门狗程序功能示例

    00. 目录文章目录00. 目录01. 独立看门狗简介02. 程序功能示例03. 硬件设计04. 编程步骤05. 程序示例06. 附录07. 声明01. 独立
    发表于 07-30 08:02

    独立看门狗功能框图和它的应用

    《STM32F4XX 中文参考手册》IWDG 章节。1、IWDG简介:  STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗独立
    发表于 07-30 06:34

    看门狗是什么 看门狗功能

    STM32的独立看门狗概述看门狗是什么看门狗功能独立看门狗
    发表于 07-30 08:07

    独立看门狗的使用

    ,与主程序、大部分外设相独立,这能最大限度保证独立看门狗功能正常运行。1、使能独立看门狗/*
    发表于 08-02 10:31

    看门狗实验概述

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

    独立看门狗有何功能

    概述独立看门狗是基于一个12位的递减计数器和一个8位的预分频器,它由一个内部独立的40kHz的RC振荡器提供时钟;因为这个RC振荡器独立于主钟,所以它可运行于停机和待机模式。它可以被
    发表于 08-02 11:01

    独立看门狗和窗口看门狗功能框图和应用是什么

    独立看门狗的工作原理是什么?独立看门狗功能框图和应用是什么?窗口看门狗的工作原理是什么?窗口
    发表于 08-05 06:20

    独立看门狗有哪些功能 怎样去使用独立看门狗

    什么是看门狗?为什么需要看门狗看门狗要解决什么问题?独立看门狗有哪些功能?怎样去使用
    发表于 08-10 06:49

    为什么要看门狗?怎么操作独立看门狗

    为什么要看门狗看门狗解决的问题是什么?独立看门狗有哪些功能?怎么操作独立
    发表于 08-30 07:31

    独立看门狗有什么功能?如何配置独立看门狗

    独立看门狗有什么功能?如何配置独立看门狗
    发表于 09-18 07:23

    IWDG独立看门狗和WWDG独立看门狗功能是什么?

    STM8S看门狗WDG有哪几种类型?IWDG独立看门狗和WWDG独立看门狗功能是什么?
    发表于 09-18 09:10

    独立看门狗与窗口看门狗概述

    为什么要看门狗看门狗解决的问题是什么?独立看门狗有哪些功能独立
    发表于 09-26 08:41

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

      早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗功能。  为了满足更多使用场景,现在很多MCU都集成了两个看门狗
    发表于 03-17 16:30