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

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

3天内不再提示

看门狗,你真的会用吗?

ZLG致远电子 2025-03-12 11:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式系统开发中,看门狗是一种重要的机制,用于在程序异常时自动重启系统,保障其稳定性。本文将深入探讨看门狗及其在程序稳定性中的作用,帮助您更好地理解和应用看门狗技术。


4eb2da4a-fef3-11ef-9434-92fbcf53809c.jpg  看门狗

首先需要明确一点:看门狗并不能直接提升程序本身的稳定性和可靠性。它仅能在程序运行出现异常时,通过重启应用或系统来恢复功能。程序的稳定性和可靠性,从根本上来说,取决于编程过程中的规范性和严谨程度。

看门狗主要分为硬件看门狗和软件看门狗,二者在实现方式和使用场景上存在显著差异。

1.硬件看门狗

硬件看门狗的核心是一个定时电路,由被监控的CPU提供周期性的“清狗”信号,即“喂狗”,以清零定时器。在CPU正常工作时,能够定时“喂狗”,因此看门狗内的定时器不会溢出。一旦CPU出现故障,无法继续提供“喂狗”信号,看门狗内的定时器就会溢出,触发复位信号,导致CPU重启,俗称“被狗咬”。硬件看门狗又可分为两种类型:1.1 外部独立硬件看门狗这种看门狗独立于MCU/MPU之外,无需驱动程序支持,只需在规定时间内为喂狗引脚提供一个电平变化即可,通常通过GPIO实现电平切换。其喂狗时间不可设置,一旦硬件连接完成,就无法关闭,除非断开硬件连接。这种看门狗具有极高的可靠性,适用于对产品可靠性要求极高的场合。不过,由于它是独立的硬件设备,因此会增加一定的硬件成本。

外部独立硬件看门狗,主要用于解决恶劣外部环境导致系统死机且无法人工干预的问题,也能应对硬件故障引发的系统死机重启需求。

1.2 内置硬件看门狗内置硬件看门狗是利用处理器内部的定时器实现定时操作。它需要在系统中编写驱动程序,初始化定时器并实现喂狗操作,甚至可以调整定时器的参数。这种看门狗的喂狗时间可调,还可以通过特殊指令关闭,成本较低。然而,在处理器死机的情况下,它可能会失效,因此适用于对硬件可靠性要求不是特别严格的场合。

内置硬件看门狗,系统驱动+应用程序喂狗,主要用于解决应用程序问题引起的复位重启,也能应对部分外部环境导致的复位重启。

2. 软件看门狗

软件看门狗的原理与硬件看门狗类似,只是将硬件电路上的定时器替换为处理器的内部定时器。这种方式可以简化硬件电路设计,但在可靠性方面不如硬件定时器。例如,如果系统内部定时器自身发生故障,就无法检测到问题。虽然可以通过双定时器相互监视来提高可靠性,但这不仅会增加系统开销,也无法解决所有问题,比如中断系统故障导致定时器中断失效。

软件看门狗,系统驱动+应用程序喂狗,主要用于监控应用程序死机问题。

4eb2da4a-fef3-11ef-9434-92fbcf53809c.jpg  看门狗的正确使用

看门狗本身并不是用来解决系统出现的问题。在调试过程中发现的故障,应该通过排查设计本身的错误来解决。加入看门狗的目的是应对程序潜在错误和恶劣环境干扰等因素导致的系统死机,在无人干预的情况下自动恢复系统正常工作状态。然而,看门狗也不能完全避免故障造成的损失。毕竟从发现故障到系统复位恢复正常这段时间内,系统会处于停滞状态。此外,一些系统还需要在复位前保护现场数据,并在重启后恢复现场数据,这可能需要额外的软硬件开销。
4eb2da4a-fef3-11ef-9434-92fbcf53809c.jpg  可靠性排序与喂狗操作

综合来看,看门狗的可靠性排序为:外部独立看门狗>内置硬件看门狗>软件看门狗。对于喂狗操作,外部独立看门狗由系统自动完成,应用程序无需关心。而应用程序需要喂的狗要么是内置硬件看门狗,要么是软件看门狗,这取决于平台本身提供的资源。应用程序必须在规定时间内进行喂狗操作,以监控程序本身的运行健康状况。如果程序编写不当导致异常不喂狗,就会引发系统复位重启。这就需要程序开发人员进行问题定位和排查,解决可能影响系统运行的各种潜在问题。

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

    关注

    10

    文章

    607

    浏览量

    72573
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3716

    浏览量

    133070
  • 硬件
    +关注

    关注

    11

    文章

    3555

    浏览量

    68733
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

    早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。
    发表于 03-03 09:18 1348次阅读

    关于独立看门狗的一点经验

    stm32基本都内置两种看门狗(另外还有外置的看门狗芯片),窗口看门狗和独立看门狗,两种看门狗的使用方法和应用场景各不相同,今天主要讲讲最常
    发表于 05-09 11:18 1006次阅读
    关于独立<b class='flag-5'>看门狗</b>的一点经验

    什么是看门狗电路

    看门狗电路 看门狗电路一般有软件看门狗和硬件看门狗两种。软件看门狗不需外接硬件电路,但系统需要出让一个定时器资源,这在许多系统中很
    发表于 10-21 01:40 8655次阅读

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

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

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

    stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗
    的头像 发表于 11-06 11:48 2.8w次阅读
    什么是stm32<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 8709次阅读
    STM32<b class='flag-5'>看门狗</b>配置(独立<b class='flag-5'>看门狗</b>IWDG和窗口<b class='flag-5'>看门狗</b>WWDG)

    STM32的看门狗配置详情解说

     stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。独立看门狗有自己独立的40Khz时钟,不存在使能问题;而窗口
    发表于 11-13 11:17 4837次阅读
    STM32的<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>的区别

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

    STM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同。
    发表于 02-08 16:15 18次下载
    STM32:独立<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>有啥区别?

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

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

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

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

    MCU如何集成看门狗的功能

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

    什么是看门狗,工业路由器看门狗技术的功能优势

    工业路由器大多都会配备看门狗技术,它是保证工业路由器传输过程中连续24小时不宕机的重要保护技术,那么,什么是看门狗呢?▍看门狗功能看门狗,又叫watchdog,从本质上来说就是一个定时
    的头像 发表于 03-27 10:16 2879次阅读
    什么是<b class='flag-5'>看门狗</b>,工业路由器<b class='flag-5'>看门狗</b>技术的功能优势