看门狗定时器

STM32独立看门狗(IWDG)和窗口看门狗(WWDG)的区别

淺唱寂寞╮ 提交于 2020-02-21 22:53:36
1.看门狗介绍 看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。使用看门狗保证系统正常地运行是非常有必要的。我们在设计产品时,代码以及硬件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常对其进行复位,系统的可靠性将大打折扣。看门狗分为软件看门狗和硬件看门狗两类,其原理都是使用一个独立定时器来计时,超出时间就会产生复位信号,主要区别看是否具有独立的硬件结构,如果有,就是硬件看门狗,如果是一个普通定时器实现的那么就是软件看门狗。STM32片内有两个看门狗:独立看门狗IWDG以及窗口看门狗WWDG。 2.两个狗的区别 独立看门狗没有中断,窗口看门狗有中断 独立看门狗有硬件软件之分,窗口看门狗只能软件控制 独立看门狗只有下限,窗口看门狗有下限和上限 独立看门狗是12位递减的。窗口看门狗是7位递减的 独立看门狗是用的内部的大约40KHZ RC振荡器,窗口看门狗是用的系统时钟APB1ENR 独立看门狗(IWDG)没有中断功能,只要在计数器减到0(下限)之前,重新装载计数器的值,就不会产生复位,独立看门够有硬件和软件之分,硬件是通过烧写器的“设定选项几节等”配置,一旦开启了硬件看门狗,那么就停不下来了,只能在重新配置“设定选项几节等”才能关掉硬件看门狗,软件看门狗只需要设置IWDG->KR=0XCCCC;就可以启动看门狗了,软件狗可以在系统复位时关掉

TX2之WDT看门狗测试程序

匿名 (未验证) 提交于 2019-12-02 23:43:01
参考: https://developer.toradex.cn/knowledge-base/watchdog-(linux) 1 背景 看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog/service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位。防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 看门狗分硬件看门狗和软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。 2 TX2看门狗模块 在英伟达官方文档中

【embedded】看门狗相关知识

ε祈祈猫儿з 提交于 2019-12-02 11:18:55
定义: 看门狗,又叫watchdog timer(WDT),是一个定时器电路,一般有一个输入,叫喂狗,一个输出到单片机的RST端,单片机正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT清零, 如果超过规定的时间不喂狗,WDT定时超过,就会给出一个复位信号到单片机,使单片机复位。 作用: 看门狗的作用就是防止程序发生死循环。 分类 1)硬件看门狗。 2)软件看门狗。利用闲置的定时器/计数器就可以设计一个软件看门狗。 优点:无需额外的硬件支持。 缺点:当系统存在严重的错误时(例如:中断服务出错),则有可能导致软件看门狗失效。 来源: https://blog.csdn.net/qq_43248127/article/details/102754563

单片机成长之路(51基础篇) - 026 基于stm89c52之单片机看门狗

早过忘川 提交于 2019-12-01 17:09:50
基于stc89c52的看门狗,代码如下: main.c 1 #include "stc89c5x_Quick_configuration.h"    // 自定义头文件 2 #include "data.h" 3 #include "bsp_gpio.h" 4 #include "bsp_wdt.h" 5 6 void init_OS_Time(void){ 7 DATA.Time.Time_Interrupt = 1; // 设置步长 8 DATA.Time.Interrupt_count = 0; // 设置单位步数 9 DATA.Time.Time_s = 0; // 时间 s 10 DATA.Time.Time_h = 0; // 时间 h 11 DATA.Time.Time_day = 0; // 时间 日 12 DATA.Time.Time_month = 0; // 时间 月 13 DATA.Time.Time_year = 0; // 时间 年 14 } 15 16 void main(void){ 17 init_OS_Time(); 18 init_WDT(); 19 while(1){ 20 ; 21 } 22 } bsp_wdt.h 1 #ifndef __BSP_WDT_H_ 2 #define __BSP_WDT_H_ 3 4 /*-----------

看门狗 (监控芯片)

本小妞迷上赌 提交于 2019-11-30 08:33:39
在由 单片机 构成的 微型计算机系统 中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令等,都有可能会陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,导致整个系统的陷入停滞状态,发生不可预料的后果。 看门狗,又叫 watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到另外一个部分的复位端,一般是连接到单片机。 看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级。 定义 编辑 看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog/service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位。防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 [1] 基本原理 编辑 看门狗是一种监控系统的运行状况的手段,通过软硬件结合的方式实现对系统运行状况的监控。稳定运行的软件会在执行完特定指令后进行喂狗