STM32F10xxx——看门狗

2024-03-22 20:10
文章标签 看门狗 stm32f10xxx

本文主要是介绍STM32F10xxx——看门狗,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、介绍

        狗,在生活中我们非常熟悉,常见的有,在田园里的土狗,生活中的累成狗;技术中的菜狗,爱情中的舔狗......那么在STM32中用来检测和解决由软件错误引起的故障的狗叫什么呢,是的叫看门狗。STM32F10xxx内置两个看门狗,独立看门狗和窗户看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看 门狗设备可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。

        独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门 狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟 或过早的操作。

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

二、看门狗的主要性能

        1、独立看门狗(IWDG)

        (1)自由运行的递减计数器。
        (2)时钟由独立的RC振荡器提供 ( 可在停止和待机模式下工作 )。
        (3)看门狗被激活后,则在计数器计数至0x000 时产生复位。
        
        2、窗口看门狗(WWDG)
                
        (1) 可编程的自由运行递减计数器
        (2) 条件复位
                ─ 当递减计数器的值小于0x40 ( 若看门狗被启动 ) 则产生复位。
                ─ 当递减计数器在窗口外被重新装载,( 若看门狗被启动 ) 则产生复位。
        (3) 如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断
                   (EWI),它可以被用于重装载计数器以避免WWDG复位。

三、看门狗的功能框图解说

1、独立看门狗(IWDG)

1)独立看门狗时钟

        独立看门狗的时钟由独立的 RC 振荡器 LSI 提供,即使主时钟发生故障它仍然有效,非常独立。LSI 的频率一般在 30~60KHZ 之间,根据温度和工作场合会有一定的误差,所以一般取 40KHZ, 所以独立看门狗的定时时间并不一定非常精确,只适用于对时间精度要求比较低的场合。

2)递减计数器的时钟

        递减计数器的时钟由 LSI 经过一个 8 位的预分频器得到,可以操作预分频器寄存器 IWDG_PR 来设置分频因子,分频因子可以是:[4,8,16,32,64,128,256,256],计数器时钟 CK_CNT= 40/ 4*2^PRV,一个计数器时钟计数器就减一。

3)计数器

        独立看门狗的计数器是一个 12 位的递减计数器,最大值为 0XFFF,当计数器减到 0 时,会产生 一个复位信号:IWDG_RESET,让程序重新启动运行,如果在计数器减到 0 之前刷新了计数器的值的话,就不会产生复位信号,重新刷新计数器值的这个动作我们俗称喂狗。

4) 重装载寄存器

        重装载寄存器是一个 12 位的寄存器,里面装着要刷新到计数器的值,这个值的大小决定着独立 看门狗的溢出时间。超时时间 Tout = (4*2^prv) / 40 * rlv (s) prv 是预分频器寄存器的值,rlv 是重装载寄存器的值。

5)键寄存器

         软件必须以一定的间隔写入0xAAAA,否则,当计数器为0时,看门狗会产生复位。 写入0x5555表示允许访问IWDG_PRIWDG_RLR寄存器。写入0xCCCC,启动看门狗工作(若选择了硬件看门狗则不受此命令字限制)

6)状态寄存器

       状态寄存器 SR 只有位 0PVU 和位 1RVU 有效,这两位只能由硬件操作,软件操作不了。RVU: 看门狗计数器重装载值更新,硬件置 1 表示重装载值的更新正在进行中,更新完毕之后由硬件清 零。PVU: 看门狗预分频值更新,硬件置’1’指示预分频值的更新正在进行中,当更新完成后,由 硬件清零。所以只有当 RVU/PVU 等于 0 的时候才可以更新重装载寄存器/预分频寄存器。

2、窗口看门狗(WWDG)

        

1)窗户看门狗时钟

        窗口看门狗时钟来自 PCLK1RCC 时钟控制器开启,PCLK1 最大是 36M。   

2)计数器的时钟

         计数器时钟由 CK 计时器时钟经过预分频器分频得到,分频系数由配置寄存器 CFR 的位 8:7 WDGTB[1:0] 配置,可以是 [0,1,2,3],其中 CK 计时器时钟 =PCLK1/4096。由计数器的时钟 CNT_CK=PCLK1/4096/(2^WDGTB),得T= 1/CNT_CK = Tpclk1 * 4096 * (2^WDGTB)。       

3)计数器

       窗口看门狗的计数器是一个递减计数器,共有 7 位,其值存在控制寄存器 CR 的位 6:0,即 T[6:0], 当 7 个位全部为 1 时是 0X7F,这个是最大值,当递减到 T6 位变成 0 时,即从 0X40 变为 0X3F时候,会产生看门狗复位。

 4)计算窗户看门狗的超时时间

四、总结

        通过以上的描述,原来狗也是让人有点头疼的。希望通过在一篇文章可以让你对看门狗更加的熟悉。需要更详细的解释,请查找权威资料,谢谢大家的阅读!

   

这篇关于STM32F10xxx——看门狗的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836101

相关文章

STM32G474窗口看门狗中断

STM32G474窗口看门狗中断用来演示最后一次喂狗。注意:即使窗口看门狗被禁止,窗口看门狗的"递减计数器"也会继续递减计数。 1、窗口看门狗复位的条件 1)、将"控制寄存器WWDG_CR"中的WDGA=1,激活"窗口看门狗计数器等于0x3F"时,则产生复位 2)、装载"窗口看门狗的计数器值"大于"窗口看门狗window寄存器的值",则产生复位。 3)、窗口看门狗的"提前唤醒中断EWI=1",且

STM32的窗口看门狗详解及案例(基于HAL库)

目录 一、引言 二、窗口看门狗的工作原理 1.基本概念 2.功能描述 3.窗口值和计数器初始值 三、STM32F429 HAL 库中窗口看门狗的配置步骤 1.开启时钟 2.初始化窗口看门狗  3.开启早期唤醒中断 4.喂狗操作  四、窗口看门狗的应用场景  1.防止软件死锁 2.检测外部干扰 3.提高系统可靠性 五、注意事项 1.时间窗口的设置 2.喂狗操作的

【RTT-Studio】详细使用教程十五:独立看门狗使用

文章目录 一、简介二、初始化配置三、实际使用 一、简介   STM32 有两个看门狗,独立看门狗和窗口看门狗,独立看门狗又称宠物狗,窗口看门狗又称警犬。可用来检测和解决由软件错误引起的故障。两个看门狗的原理都是当计数器达到给定的超时值时,产生系统复位,对于窗口型看门狗同时会产生一个中断。   独立看门狗 (IWDG) 由专用的内部低速时钟 (LSI) 驱动,即使主时钟发生故障它

WWDG—窗口看门狗

WWDG—窗口看门狗 窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下递减计数,当减到一个固定值 0X40时还不喂狗的话,产生复位,这个值叫窗口的下限,是固定的值,不能改变。这个是跟独立看门狗类似的地方,不同的地方是窗口看门狗的计数器的值在减到某一个数之前喂狗的话也会产生复位,这个值叫窗口的上限,上限值由用户独立设置。窗口看门狗计数器的值必须在上窗口和下窗口之间才可以喂狗,这就是窗口看门

《ZigBee开发笔记》第二部分 基础篇-第9章 CC2530看门狗

1 理论分析 1.1 CC2530 看门狗简介 在 CPU 可能受到一个软件颠覆的情况下,看门狗定时器(WDT)用作一个恢复的方法。当软件在选定时间间隔内不能清除 WDT 时,WDT 必须就复位系统。看门狗可用于受到电气噪音、电源故障、静电放电等影响的应用,或需要高可靠性的环境。如果一个应用不需要看门狗功能,可以配置看门狗定时器为一个间隔定时器,这样可以用于在选定的时间间隔产生中断。 看门狗

《嵌入式-STM32开发指南》第二部分 基础篇 - 第12章 看门狗

12.1独立看门狗 12.1.1独立看门狗工作原理 独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。 独立看门狗由内

独立看门狗窗口开门狗

独立看门狗 接线图:按键用于阻塞喂狗。独立看门狗&窗口开门狗接线一样。 第一步,是开启时钟了,只有这个LSI时钟开启了独立看门狗才能运行,所以初始化独立看门狗之前,LSI必须得开启,但是这个开启LSI的代码并不需要我们来写,我们看一下手册6.2.9。 下一步我们就是写入预分频器和重装寄存器了,当然在写入这两个寄存器之前,不要忘了这里的写保护,首先写入这个键值0X5555解除写保护,然

守护系统稳定性的关键技术之看门狗

目录 一、独立看门狗 二、窗口看门狗 三、总结 看门狗定时器(Watchdog Timer,WDT)是嵌入式系统中至关重要的组件,用于监控和维护系统的稳定性。主要是用来监测单片机运行状态和解决程序引起的故障的模块。在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整

WDG看门狗

一、WDG简介 1、WDG(Watchdog)看门狗 (1)看门狗可以监控程序的运行状态,当程序因为设计漏洞、硬件故障、电磁干扰等原因,出现卡死或跑飞现象时,看门狗能及时复位程序,避免程序陷入长时间的罢工状态,保证系统的可靠性和安全性 (2)看门狗本质上是一个定时器,当指定时间范围内,程序没有执行喂狗(重置计数器)操作时,看门狗硬件电路就自动产生复位信号 (3)STM32内置两个看门狗

STM32CubeMX配置-看门狗配置

一、简介         MCU为STM32G070,LSI为32K,看门狗IWDG配置为4S溢出,则配置是设置分频为32分频,重装载值为3000。 二、IWDG配置 1.外设配置 2.时钟配置 3.生成代码 HAL_IWDG_Refresh(&hiwdg);        //喂狗