当前位置: 首页 > news >正文

看门狗电路原理与应用

看门狗的原理与应用

看门狗基本原理

看门狗,英文简称为“Watchdog Timer ”或者“Watchdog”;
本质上就是一个定时器的作用,简单理解就是 MCU发出一个周期性的信号,这个信号是满足看门狗芯片内部计时器的时间限制,则看门狗芯片输出系统不会复位的电平,如果MCU给出的周期信号不满足看门狗芯片内部计时器的时间限制,则看门狗芯片输出使得系统复位的电平。

为什么需要看门狗

看门狗在系统中,最重要的功能就是确保系统芯片(SoC)设备或微控制器(处)操作正常。
假如因为软件或者其他的一些原因,SoC陷入了无限的循环,是花了太长时间来执行任务,或者甚至完全关闭。此时系统死机,软件异常,则系统功能失效。

如果有使用硬件看门狗电路, MCU异常了,没有正常发出喂狗信号,导致看门狗内部的计时器到达设定时间,还未收到信号,则此时看门狗输出的复位信号,给到MCU,使得MCU复位,MCU复位后继续执行代码,可以使得MCU或者系统从异常中(死循环)中恢复过来。

框图讲解

以TI的芯片为例,讲解看门狗简单实用电路。
在这里插入图片描述
1.红色箭头。GPIO是MCU的IO口,最好选择PWM输出,因为这样代码容易实现;WDI是看门狗信号的喂狗输入端。
2.绿色箭头。RESET是看门狗输出的复位信号,这个信号直接给到MCU的复位IO口。
3.MR是手动按键触发的复位端,一般设计不太常用,想用也可以。

内部框图

在这里插入图片描述
注意看,WDI信号输入进来之后,内部的计时器会对这个信号的时间进行计数,基于此来判断看门狗喂狗信号是否有效。
简单说: t(tout)— Watchdog time out;这个信号就是看门狗电路内部计时器的最长检测时间阈值。
WDI是MCU给的,从WDI发出的高电平上升沿开始,看门狗计时器计时,假设这个高电平时间是A。
判断逻辑:

  1. A> t(tout),则此时因为喂狗时间超时,看门狗生效,发出复位信号。
  2. A< t(tout),则此时因为喂狗时间未超时,看门狗不生效,不会发出复位信号。

当高电平时间到时,此时因为不超过看门狗时间,则WDI翻转电平变为低电平,此时看门狗内部计时器清零,从下降沿开始重新计数。

所以只要喂狗时间不超过这个t(tout),则系统不会复位。

看门狗复位时状态

请注意,假如系统MCU没有给出正确的喂狗信号。
则看门狗复位信号是周期性的,即就是先复位,再恢复正常电平;
如果正常状态下没有喂狗,会继续进入这个电平循环状态。

所以切记,看门狗如果没有喂狗,并不是持续的低电平复位状态。

看门狗芯片使用注意事项

1.看门狗芯片输出有些是OD(漏极开路)、有些是推挽输出,所以,一定要注意区分;
如果分不清楚,可以先预留一颗上拉电阻的位置;

2.看门狗供电电压一定要注意,虽然混用了,不一定坏,但是还是需要按照要求办事;

3.看门狗喂狗信号引脚也可以预留上下拉电阻;
实际事项:因为MCU在初始调试状态时,肯定没有喂狗,所以系统会周期性的复位,可能带来一些调试麻烦。
所以有些看门狗芯片内置了一些功能,就是输入是高阻状态(MCU引脚未初始化时,可能是高阻状态),则此时内部时钟自己产生喂狗信号,此时虽然MCU也没喂狗,但是看门狗芯片也不会复位。
当MCU代码调试OK后,正常状态下,要么WDI引脚是高或者低,如果喂狗周期超过了计时器设定时间,因为配置原因不再是高阻,则此时MCU依旧可以被正常复位。
而预留上下拉的原因就是,增加的上下拉电阻,不可能使得该引脚在高阻状态,就禁用这个模式。


http://www.mrgr.cn/news/64966.html

相关文章:

  • Jest进阶知识:模拟 ES6 类 - 掌握类的依赖模拟与方法监听技巧
  • 详细分析Js中保留前几位小数的基本知识(附Demo)
  • 苍穹外卖WebSocket无法建立连接 (修改前端代码)
  • 向量数据库|第2期|pgvectorscale
  • ETCD简介
  • 《C#语法一篇通》,20万字,48小时阅读,持续完善中。。。
  • 学习笔记——三小时玩转JQuery
  • 重读《人月神话》(11)-提纲挈领(The Documentary Hypothesis)
  • WPF怎么通过RestSharp向后端发请求
  • 计组-Cache的基本概念,计算Cache+主存的平均周期
  • 世界时区划分
  • 2. 从服务器的主接口入手
  • Leetcode刷题Python之638.大礼包
  • Windows配置Nodejs及nmp简明教程(2024可用)
  • 深入理解JavaScript中的 new 关键字
  • 【2024-10-31-2024-11-03】LeetCode刷题——python语法基础题
  • python如何调字体大小
  • 241029 网鼎杯青龙组 Crypto2
  • STM32 第22章 常用存储器介绍
  • 语音合成技术:AI如何模仿人类声音
  • PCI、USB、AGP、PCI-Express
  • 计算布尔二叉树的值
  • CleanShot X - Mac(苹果电脑)专业截图录屏软件
  • 移植 AWTK 到 纯血鸿蒙 (HarmonyOS NEXT) 系统 (6) - 触屏事件
  • mysql的存储函数
  • 《CLR via C#》读书笔记--CLR的执行模型