登录/注册

单片机看门狗

单片机看门狗

更多

好的,我们来详细解释一下单片机中的“看门狗”:

核心概念:

单片机看门狗本质上是一个独立的硬件定时器(或者在部分架构中是完全由软件模拟的,但通常依赖于硬件实现)。它的核心作用是监控单片机程序的运行状态。如果程序因为各种原因“跑飞”或进入死循环(即“死机”),无法按照预期执行,看门狗会自动触发单片机的复位,强制系统重新开始运行,以恢复系统的正常运行状态。这是一种嵌入式系统中至关重要的可靠性机制

类比解释(宠物狗喂食):

想象你养了一只狗。为了确保你还在家里活动(代表程序正常运行),你必须定期(比如每5分钟)喂它一次狗粮(“喂狗”操作)。如果你活动正常,你就能按时喂它,狗狗就保持安静。但如果你在家突然晕倒了或卡在某个地方动不了(程序跑飞/死循环),你就无法在规定时间内喂狗了。饿急了的狗狗就会大声吠叫(定时器溢出),这吠叫声就触发了自动重启开关(复位信号),然后有人(或者系统自己)把你弄醒(系统复位),让你重新开始活动。

关键组成部分和工作流程:

  1. 看门狗定时器

    • 一个内部的、独立的计数器。它由一个独立的时钟源驱动(通常是RC振荡器,与主时钟无关,可靠性高)。
    • 这个计数器会不断计数(递增或递减)。当计数值达到预设的溢出值时,就会产生一个复位信号
  2. 喂狗

    • 这是你的应用程序代码定期执行的操作
    • 操作本质是在计数器溢出之前,将计数器的值重置回初始值(或重新加载一个数值)。在递减计数器中,通常就是“重装载”预设值。
    • 只要程序运行正常,它就能按时“喂狗”,计数器就不会溢出。
  3. 溢出与复位

    • 如果程序异常(跑飞、死循环、阻塞等),导致无法按时执行“喂狗”操作。
    • 计数器溢出,表明程序没有及时响应。
    • 溢出信号触发单片机系统的复位逻辑,单片机就像刚上电一样,从头开始执行程序。

看门狗的主要类型:

  1. 独立看门狗

    • 通常完全由独立的内部时钟源驱动(低速时钟、LSI)。
    • 时间精度要求不高,主要目的是防止程序彻底死锁
    • 配置相对简单,只需要设置一个超时时间(通过预分频器Prescaler和重载值Reload)。
    • 一旦开启,只有芯片复位或进入特定的低功耗模式才能关闭(甚至无法关闭),提供极高的可靠性保障。
  2. 窗口看门狗

    • 通常由系统时钟(或分频后的系统时钟)驱动,时间精度更高。
    • 对“喂狗”的时间点要求更严格:必须在一个上下限规定的时间窗口内(称为“窗口”) 进行喂狗操作。
    • 无论是过早(在窗口打开前)喂狗、过晚(窗口关闭后)喂狗、或者完全不喂狗,都会导致复位。
    • 适合监控需要严格周期性执行的任务,防止任务执行过早、过晚、或缺失
    • 通常可以被软件关闭或复位后关闭
  3. 软件看门狗

    • 通常指在操作系统或复杂程序框架中,由另一个软件任务(监控任务)来检查其他任务或主循环的状态。但这本质上不是硬件定时器,且依赖于监控任务本身能运行。

为什么需要看门狗?

  1. 对抗干扰:电气噪声、电源波动、电磁干扰等可能导致CPU执行错误指令或数据出错(程序跑飞)。
  2. 处理未知错误:软件本身可能存在隐藏的缺陷(边界条件、指针错误等),在特定环境下触发死循环或崩溃。
  3. 防止死锁:不当的中断处理、任务调度冲突、资源竞争等可能导致系统卡死。
  4. 无人值守运行:许多嵌入式设备部署后无人值守(如工业设备、汽车控制器),需要具备自我恢复能力。
  5. 提高系统健壮性和可靠性:看门狗是许多行业标准(如汽车、医疗)对关键电子设备的基本要求

关键设计要点:

总结:

单片机看门狗是嵌入式系统的“安全卫士”或“自我急救装置”。它是一个默默运行的计时器,只要主程序定期向它证明“我还正常”,它就保持安静。一旦程序“失去响应”,它就果断采取措施(复位),让系统恢复心跳,极大地提升了系统的抗干扰能力和长期运行的稳定性。正确地配置和使用看门狗是所有嵌入式开发者必须掌握的技能。

什么是模拟看门狗?模拟看门狗有什么用处?

看门狗大家应该再熟悉不过了,一旦忘记喂狗就会导致单片机复位,而在大部分stm32中都存在两种类型的看门狗,Independent watchdo

2023-11-22 09:40:29

单片机看门狗的分类及其工作原理

,造成寄存器和内存数据混乱,导致程序跑飞和死循环,而看门狗电路可以有效防止由于单片机死机而造成的系统故障。

2023-09-09 09:34:36

看门狗”也有软硬

输入叫做“喂狗”,输出一般连接到另外一个部分的复位端,一般是连接到单片机。“看门狗”的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。“看门

2023-09-08 09:52:20

基于51单片机的内部看门狗实验例程源代码

基于51单片机的内部看门狗实验例程源代码

资料下载 木头1233 2023-05-12 16:22:29

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

STM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却

资料下载 旧念 2022-02-08 16:15:35

STC单片机看门狗

STC单片机看门狗设时钟为11.0592MHz看门狗溢出时间 = (12 Prescale32768)/11059200 = Prescale*

资料下载 laisvl 2021-12-23 19:22:00

单片机看门狗有两种:分别为独立看门狗和窗口看门狗,它们有什么区别?资料下载

电子发烧友网为你提供单片机看门狗有两种:分别为独立看门狗和窗口看门狗,它

资料下载 佚名 2021-04-18 08:41:01

使用单片机实现键控看门狗的程序和工程文件免费下载

本文档的主要内容详细介绍的是使用单片机实现键控看门狗的程序和工程文件免费下载。

资料下载 佚名 2021-01-12 18:01:50

STM32单片机看门狗的配置方法

SATM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理

2023-06-22 09:07:00

单片机独立看门狗和窗口看门狗的区别

早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。

2023-06-06 09:40:32

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

一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门

2022-12-22 16:58:20

单片机看门狗工作原理

刚学习单片机的萌新都听说过单片机看门狗,但是对于其工作原理并不是很清楚,今天这篇文章将为大家介绍

2022-10-12 13:46:12

看门狗是什么 看门狗的功能

STM32的独立看门狗概述看门狗是什么看门狗的功能独立看门狗所需的环境独

2021-07-30 08:07:19

STM32单片机两种看门狗的区别和配置方法

SATM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理

2020-10-10 11:27:40

单片机为什么需要看门狗

当然我们需要合理的设置看门狗(Watch Dog Timer)溢出时间,也要合理的放置看门狗清零指令。才可以让看门狗(Watch Dog Tim

2019-10-07 11:42:00

7天热门专题 换一换
相关标签