软件看门狗和硬件看门狗

2023-05-16

   看门狗,又叫watchdog timer,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个部分的复位端,另外一个部分就是所要处理的部分,暂且称之为MCU。
   在MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给看门狗电路清零,如果在超过规定的时间不喂狗,WDT定时超时,就会回给一个复位信号到达MCU,使MCU复位,防止MCU死机。总的来说,看门狗电路的作用就是防止程序发生死循环,或者说程序跑飞。
    WDT的基本工作原理如下:在整个系统运行以后就启动了看门狗的计数器,此时看门狗就开始自动计时,如果到达了一定的时间还不去给它清零,看门狗计数器就会溢出从而引起看门狗中断,造成系统的复位。


    看门狗分硬件看门狗软件看门狗硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。 看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。加入看门狗目的是对一些程序潜在错误和恶劣环境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间内怠工。同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件看门狗和硬件看门狗 的相关文章

随机推荐

  • STM32-串口通信printf重定向

    前言 xff1a 平时我们进行c语言编程的时候会经常用到printf函数进行打印输出 xff0c 来调试代码 可是这个printf函数C库已经帮我们实现好了 xff0c 通常只需要直接调用即可 xff0c 但是如果在一个新的开发平台 xff
  • FMCW毫米波雷达原理

    Radar系列文章 传感器融合是将多个传感器采集的数据进行融合处理 xff0c 以更好感知周围环境 xff1b 这里首先介绍毫米波雷达的相关内容 xff0c 包括毫米波雷达基本介绍 xff0c 毫米波雷达数据处理方法 xff08 测距测速测
  • VMware虚拟机安装ubuntu16.04系统教程

    对于没有接触过Ubuntu系统的小伙伴来说 xff0c 直接在物理机上安装Ubuntu单系统或者windows Ubuntu双系统一件比较刺激的事情 xff0c 因为一不小心可能就会把电脑整崩溃 xff0c 或者出现各种问题 xff0c 所
  • c#实验五 文件与流

    实验五 文件与流 WPF还不太会 抄STZG的 xff0c 其他自己写的 一 实验目的 掌握文件类的使用 xff1b 掌握文件流的操作 xff1b 掌握二进制数据 文本数据的读写 xff1b 继续应用WPF技术进行界面编程 二 实验内容 要
  • 简易入门MFC

    工作需要用到MFC xff0c 需要能快速上手 xff0c 中间碰到不懂的简单的看了下源码 xff0c 参考了些资料 目标 xff1a 做一个简单的计算器 xff0c 代码就不考虑了 xff0c 主要强调如何上手MFC xff0c 和简单了
  • Problem: 美丽的黄山 (指针)

    Description 众所周知 xff0c 黄山市一片山 xff08 而不是一座山 xff09 假设这些山排成了一排 xff0c 每座山有各自的高度 现在游客们从最左边看山 xff0c 有些山因为高度没有它左边的某座山高 xff0c 就会
  • (冒泡排序) Problem: 并列排名

    冒泡排序原理就是 xff1a 如果有n个数 xff0c 相邻的两个数进行比较 xff0c 就是1号和2号 xff0c 2号和3号 n 1号和n号比较 xff0c 每次比较确定一个数的位置 也就是第一个轮回比较n 1次 xff0c 第二个就比
  • 基于51单片机蓝牙直流电机控制(IR2104S驱动H桥)

    主要目标 xff1a xff08 1 xff09 用51系列单片机作为控制器 xff1b xff08 2 xff09 采用由四个MOS管组成的H桥电机驱动电路 xff0c 并由IR2104S来驱动H桥 xff1b xff08 3 xff09
  • 排序(链表)

    首先说一下程序运行时间的计算 xff1a 一般法则 xff1a 法则1 for循环 xff1a 一次 for 循环的运行时间至多是该 for 循环内语句 xff08 包括测试 xff09 的运行时间乘以迭代次数 法则2 嵌套的for循环 x
  • STM32F407的UART4配置

    复用PC10 PC11作为串口四的TX RX void uart4 init u32 bound GPIO InitTypeDef GPIO InitStructure USART InitTypeDef USART InitStructu
  • Java安装并输出hello world

    首先下载安装包 xff1a https www oracle com technetwork java javase downloads index html xff08 官网地址 xff09 xff08 我这里是Windos系统 xff0
  • Pixhawk WIFI模块Station模式配置

    Pixhawk WIFI模块配置 最近在鼓捣Pixhawk的飞控 xff0c 用来控制双桨的无人船 xff0c 固件刷的最新的ArduRover4 0 0 xff0c 经过扒论坛 xff0c 现场调试 xff0c 终于能让一艘船按照航点前行
  • cmake之获取字目录名list

    宏函数 按照需求 查找目录名称集合 span class token function macro span span class token punctuation span SUBDIRLISTINCLUDE result curdir
  • 【初级C语言】文件结构(头文件结构,头文件作用,头文件被重复包含的问题)

    一 头文件 1 头文件的作用 1 不用在各个源文件中做重复的声明 2 组织项目结构的时候 xff0c 减少大型项目的维护成本 xff08 修改了定义 xff0c 只需修改头文件中对应的声明 xff09 3 通过头文件来调用库功能 在很多场合
  • 解决datax抽mysql数据到hdfs之null值变成‘‘(引号)的问题

    在抽数据的过程中会发现 xff1a mysql的null值通过datax抽取到hdfs xff0c 会变成引号 xff0c 这不是我们所需要的 xff0c 所以需要修改一下datax的源码 如图所示 xff1a recordList add
  • MT7688双摄像头双电机驱动小车(1)环境搭建

    设计目标 xff1a 实现一个带双摄像头 xff0c 可实现远程无线监控 xff0c 控制的小车 其他 xff1a 1 监控具体的作用还为定义 2 硬件需要设计为可拓展性 xff0c 方便后续增加功能 实现方案 xff1a 这里的方案主要指
  • 输入一个字符串,删除其中所有的数字,所有大写字母改成小写,其他不变,并输出

    span class hljs preprocessor include lt stdio h gt span span class hljs title int span main int i j int k char span clas
  • 输入一串字符串,其中有普通的字符与括号组成(包括‘(’、‘)’、‘[’,']'),要求验证括号是否匹配,如果匹配则输出0、否则输出1.

    span class hljs comment include lt stdio h gt span span class hljs keyword int span span class hljs keyword push span ch
  • C函数与汇编函数之间参数及返回值传递方法

    AAPCS对ARM结构的一些标准做了定义 xff0c 在这里我们只重点介绍函数调用部分 xff0c 如图8所示 xff0c AAPCS为ARM的R0 R15寄存器做了定义 xff0c 明确了它们在函数中的职责 xff1a 图 8 AAPCS
  • 软件看门狗和硬件看门狗

    看门狗 xff0c 又叫watchdog timer xff0c 从本质上来说就是一个定时器电路 xff0c 一般有一个输入和一个输出 xff0c 其中的输入叫做喂狗 xff0c 输出一般连接到另外一个部分的复位端 xff0c 另外一个部分