硬件看门狗工作原理

硬件看门狗是什么?

硬件看门狗(Hardware Watchdog)是一种用于监控系统运行状态的硬件设备或电路。它的主要功能是检测系统是否正常运行,并在系统出现故障或无响应时自动重启或采取其他恢复措施。

工作原理与引脚

硬件看门狗一般外挂在主控芯片MCU上,看门狗内部有一个定时器,系统正常上电复位后该定时器会被重置;MCU在定时器设定的时间内给看门狗发送一个脉冲信号来进行“喂狗”,看门狗接收到喂狗信号后,将定时器重置开启新一轮计时;MCU发生异常无法完成“喂狗”操作直到看门狗定时器超时,看门狗会触发其故障处理操作,发送信号将MCU进行复位;如下:
在这里插入图片描述

  • 根据上面的原理,我们来想一下一个最简单的看门狗芯片有哪些引脚:
    供电引脚VCC和接地引脚GND;
    使能引脚EN;
    喂狗引脚即MCU时钟脉冲输入引脚CLK;
    复位信号输出引脚RST;

  • 以上就是最简单的看门狗所需的引脚,大部分看门狗还有以下几个引脚:
    看门狗定时器时间以及看门狗复位延迟时间设置引脚CTW;
    (定时器时间:即喂狗时间阈值可以通过在此引脚上外接电容来进行设置;)
    (复位延迟时间:看门狗触发复位输出时输出多长时间的脉冲时间;)
    (二者都可以通过在此引脚上外接电容来进行设置;)
    上电复位时间设置引脚CT;
    (上电复位时间:系统上电时看门狗复位输出脉冲持续的时间;)

设计这两个引脚主要是考虑到以下两点原因:

  1. 不同的MCU内部时钟不同,有些功能简单的MCU内部时钟可能很小只有KHz级别,有些功能复杂的MCU内部时钟在MHz级别,看门狗定时器时间需要根据不同的MCU进行配置;
  2. 不同MCU对于RST复位的脉冲时间有不同的要求,看门狗复位时间需要根据不同MCU进行配置;
  3. 不同MCU对上电时序有一定要求,看门狗上电复位时间需要根据不同MCU进行配置;

看门狗工作时主要引脚电压

在这里插入图片描述
上图是看门狗上电后,使能引脚EN(高有效)一直拉高,当时钟输入引脚CLK一直没收到喂狗信号时,各个引脚的电压变化,由上图知道:

  1. 上电后,当VDD电压值达到看门狗最小工作电压V_{DET},看门狗开始上电复位,CT引脚电压开始充电直到CT引脚的电压升高到该引脚阈值V_{CTTH},这段时间为看门狗的上电复位时间tD;
  2. 上电复位完成后,CTW引脚电压开始充电,直到CTW引脚的电压升高到该引脚高边阈值V_{CTWH},这期间看门狗CLK引脚没有接收到来自MCU的喂狗信号,看门狗触发复位操作,将引脚RST(低有效)拉低;
  3. 引脚RST拉低后,CTW电压开始降低,直到CTW引脚的电压升高到该引脚低边阈值V_{CTWL},这段时间为RST持续输出复位低电平信号给MCU,这段时间为看门狗的复位时间tWL;
  4. 复位完成后,看门狗开始重新计时,RST引脚恢复为高电平,CTW引脚电压开始充电,直到CTW引脚的电压升高到该引脚高边阈值V_{CTWH},这段时间为看门狗的喂狗时间阈值tWH;

相关时间设置与计算

以罗姆的BD87B29FVM看门狗为例,手册中提供了根据外接电容来计算喂狗时间阈值(定时器时间),复位时间以及上电复位时间的方法,如下:

在这里插入图片描述
其中tD为上电复位时间,tWH为喂狗时间阈值(定时器时间),tWH为复位时间;

详细计算过程如下:

  1. 喂狗时间阈值由CTW引脚外接的电容来决定:
    t W H = ∣ V C T W H − V C T W L ∣ × C C T W I C T W C = ∣ 0.9 V − 0.3 V ∣ × C C T W 0.3 u A = 2 × C C T W × 1 0 − 6 t_{WH}=\frac{\left | V_{CTWH}-V_{CTWL} \right |\times C_{CTW} }{I_{CTW_C} } =\frac{\left | 0.9V-0.3V \right |\times C_{CTW} }{0.3uA }=2\times C_{CTW}\times 10^{-6} tWH=ICTWCVCTWHVCTWL×CCTW=0.3uA0.9V0.3V×CCTW=2×CCTW×106
    V_{CTWH}为CTW引脚高边阈值,单位为V;V_{CTWL}为CWT引脚低边阈值,单位为V; I_{CTW_C}为CWT充电电流,单位为A;三者均可以在datasheet中找到对应值;
    C_{CTW} 为CTW引脚外接电容容值,单位为F;
    计算除了的tWH为喂狗时间阈值,单位为S,与datasheet中给出的计算公式一致;

  2. 复位时间也由CTW引脚外接的电容来决定:
    t W L = ∣ V C T W H − V C T W L ∣ × C C T W I C T W D = ∣ 0.9 V − 0.3 V ∣ × C C T W 0.9 u A ≈ 0.67 × C C T W × 1 0 − 6 t_{WL}=\frac{\left | V_{CTWH}-V_{CTWL} \right |\times C_{CTW} }{I_{CTW_D} } =\frac{\left | 0.9V-0.3V \right |\times C_{CTW} }{0.9uA }\approx 0.67\times C_{CTW}\times 10^{-6} tWL=ICTWDVCTWHVCTWL×CCTW=0.9uA0.9V0.3V×CCTW0.67×CCTW×106
    V_{CTWH}为CWT引脚高边阈值,单位为V;V_{CTWL}为CWT引脚低边阈值,单位为V; I_{CTW_D}为CWT放电电流,单位为A;三者均可以在datasheet中找到对应值;
    C_{CTW} 为CTW引脚外接电容容值,单位为F;
    计算除了的tWL为复位时间,单位为S,与datasheet中给出的计算公式一致;

  3. 上电复位时间由CT引脚外接电容来决定:
    t D = V C T T H × C C T I C T = 0.9 V × C C T 1.3 u A ≈ 0.69 × C C T × 1 0 − 6 t_{D}=\frac{V_{CTTH}\times C_{CT} }{I_{CT} }=\frac{0.9V\times C_{CT} }{1.3uA }\approx 0.69\times C_{CT}\times 10^{-6} tD=ICTVCTTH×CCT=1.3uA0.9V×CCT0.69×CCT×106
    V_{CTTH}为CT引脚阈值电压,单位为VI_{CT} 为CWT充电电流,单位为A;三者均可以在datasheet中找到对应值;
    C_{CT}为CT引脚外接电容容值,单位为F;
    计算除了的tD为上电复位时间,单位为S,与datasheet中给出的计算公式一致;

以上计算都是通过电荷量的基础公式进行计算的:
Q = I t = C V Q=It=CV Q=It=CV

注意事项

  1. 对于这个看门狗来说,喂狗时间阈值由硬件C_{CTW}电容大小来确定,而真正的喂狗周期由软件来设置:软件设置的喂狗周期不能太长,如果喂狗周期很接近喂狗时间阈值,则系统可能会由于电容精度等误差发生异常复位的情况;软件设置的喂狗周期不能太短,喂狗周期太短会导致系统功耗增大,尤其是在休眠情况下,喂狗太频繁会导致休眠电流偏大;
    因此,通常软件喂狗时间设置为喂狗时间阈值的一半比较合适;
  2. MCU对RST信号在上电时刻和持续时长有一定要求:一般来说MCU要保证上电一段时间后,才允许RST引脚拉高;复位MCU时也会需要RST信号持续一定时间才能正确复位MCU;
    因此,要先明确MCU的需求,再通过看门狗上电复位时间和复位时间公式来计算出CT与CTW引脚外接电容的容值;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux -初识 与基础指令1

博客主页:【夜泉_ly】 本文专栏:【Linux】 欢迎点赞👍收藏⭐关注❤️ 文章目录 📚 前言🖥️ 初识🔐 登录 root用户👥 两种用户➕ 添加用户🧑‍💻 登录 普通用户⚙️ 常见…

Elasticsearch在liunx 中单机部署

下载配置 1、下载 官网下载地址 2、上传解压 tar -zxvf elasticsearch-XXX.tar.gz 3、新建组和用户 (elasticsearch 默认不允许root账户) #创建组 es groupadd es #新建用户 useradd ryzhang -g es 4、更改文件夹的用户权限 chown -R ryzhang …

Refit 使用详解

Git官网:https://github.com/reactiveui/refit Refit 是一个针对 .NET 应用程序的 REST API 客户端库,它通过接口定义 API 调用,从而简化与 RESTful 服务的交互。其核心理念是利用声明性编程的方式来创建 HttpClient 客户端,使得…

Ubuntu24.04配置DINO-Tracker

一、引言 记录 Ubuntu 配置的第一个代码过程 二、更改conda虚拟环境的默认安装路径 鉴于不久前由于磁盘空间不足引发的重装系统的惨痛经历,在新系统装好后当然要先更改虚拟环境的默认安装路径。 输入指令: conda info可能因为我原本就没有把 Anacod…

vulnhub靶场【哈利波特】三部曲之Aragog

前言 使用virtual box虚拟机 靶机:Aragog : 192.168.1.101 攻击:kali : 192.168.1.16 主机发现 使用arp-scan -l扫描,在同一虚拟网卡下 信息收集 使用nmap扫描 发现22端口SSH服务,openssh 80端口HTTP服务,Apach…

顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Maltab)

顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Maltab) 目录 顶刊算法 | 鱼鹰算法OOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Maltab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实…

getchar()

getchar():从计算机终端(一般是键盘)输入一个字符 1、getchar返回的是字符的ASCII码值(整数)。 2、getchar在读取结束或者失败的时候,会返回EOF 输入密码并确认: scanf读取\n之前的内容即12345678 回车符…

动态规划-----路径问题

动态规划-----路径问题 下降最小路径和1:状态表示2:状态转移方程3 初始化4 填表顺序5 返回值6 代码实现 总结: 下降最小路径和 1:状态表示 假设:用dp[i][j]表示:到达[i,j]的最小路径 2:状态转…

实现PDF文档加密,访问需要密码

01. 背景 今天下午老板神秘兮兮的来问我,能不能做个文档加密功能,就是那种用户下载打开需要密码才能打开的那种效果。boss都发话了,那必须可以。 需求:将 pdf 文档经过加密处理,客户下载pdf文档,打开文档需…

HarmonyOS Next 模拟器安装与探索

HarmonyOS 5 也发布了有一段时间了,不知道大家实际使用的时候有没有发现一些惊喜。当然随着HarmonyOS 5的更新也带来了很多新特性,尤其是 HarmonyOS Next 模拟器。今天,我们就来探索一下这个模拟器,看看它能给我们的开发过程带来什…

深入探索进程间通信:System V IPC的机制与应用

目录 1、System V概述 2.共享内存(shm) 2.1 shmget — 创建共享内存 2.1.2 ftok(为shmmat创建key值) 2.1.3 为什么一块共享内存的标志信息需要用户来传递 2.2 shmat — 进程挂接共享内存 2.3 shmdt — 断开共享内存连接 2.4…

Rust : 生成日历管理markdown文件的小工具

需求: 拟生成以下markdown管理小工具,这也是我日常工作日程表。 可以输入任意时间段,运行后就可以生成以上的markdown文件。 一、toml [package] name "rust-workfile" version "0.1.0" edition "2021"[d…

mean,median,mode,var,std,min,max函数

剩余的函数都放在这篇里面吧 m e a n mean mean函数可以求平均值 a a a为向量时, m e a n ( a ) mean(a) mean(a)求向量中元素的平均值 a a a为矩阵时, m e a n ( a , 1 ) mean(a,1) mean(a,1)求矩阵中各列元素的平均值; m e a n ( a , 2 )…

Android studio 签名加固后的apk文件

Android studio打包时,可以选择签名类型v1和v2,但是在经过加固后,签名就不在了,或者只有v1签名,这样是不安全的。 操作流程: 1、Android studio 对项目进行打包,生成有签名的apk文件&#xff…

【计算机网络】实验2:总线型以太网的特性

实验 2:总线型以太网的特性 一、 实验目的 加深对MAC地址,IP地址,ARP协议的理解。 了解总线型以太网的特性(广播,竞争总线,冲突)。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实…

PHP RabbitMQ连接超时问题

问题背景 Error: The connection timed out after 3 sec while awaiting incoming data 看到这个报错,我不以为意,认为是我设置的超时时间不够导致的,那就设置长一点 Error: The connection timed out after 300 sec while awaiting incom…

asp.net core过滤器应用

筛选器类型 授权筛选器 授权过滤器是过滤器管道的第一个被执行的过滤器,用于系统授权。一般不会编写自定义的授权过滤器,而是配置授权策略或编写自定义授权策略。简单举个例子。 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCo…

Linux DNS解释器

作用 DNS(Domain Name System)是互联网上的一项服务,用于将域名和IP地址进行相互映射,使人 更方便的访问互联网 正向解析:域名->IP 反向解析:IP->域名 连接方式 DNS使用53端口监听网络 查看方法&a…

3.STM32通信接口之SPI通信---SPI实战(W25Q64存储模块介绍)《精讲》

上一节介绍了SPI的通信过程和方法,接下来就要进行STM32与外围模块通信了,这个模块是一块非易失型存储芯片,能够提供8MB的存储空间。接下来跟着Whappy脚步,进行探索新大陆吧!【免费】W25Q64(中英文数据手册)资源-CSDN文…

嵌入式系统应用-LVGL的应用-平衡球游戏 part2

平衡球游戏 part2 4 mpu60504.1 mpu6050 介绍4.2 电路图4.3 驱动代码编写 5 游戏界面移植5.1 移植源文件5.2 添加头文件 6 参数移植6.1 4 mpu6050 4.1 mpu6050 介绍 MPU6050是一款由InvenSense公司生产的加速度计和陀螺仪传感器,广泛应用于消费电子、机器人等领域…