看门狗定时器(WatchDog Timer)在出现程序跑飞卡死的时候用来强制复位处理器或控制器。具体操作是:通常程序正常循环会在一定周期内进行“喂狗”,若程序执行一个错误代码或者程序卡死,将不能进行“喂狗”,WDT会将控制器进行复位。而且,WDT不能检测瞬态故障,只有在WDT计数器达到预定的时间间隔时才会产生复位。

WDT基本原理

WDT的核心是计数寄存器,时钟源连续递增计数器的值,计数器发生溢出时,WDT产生复位。为防止复位,需要周期性的将计数清零,俗称“喂狗”。

内部或外部WDT

现在好多MCU内置WDT,使用内部WDT最大优势就是节省成本体积,但缺点也比较明显容易受软件程序失效影响,稳定性不佳。使用外部WDT IC具有独立的时钟源,稳定性较高,但相应的也会增加一定成本。

在一些要求较高的场合下,建议使用外部WDT IC。


看门狗电路

本身看门狗电路比较简单,一个IO引脚用来喂狗,另一个IO引脚输出复位响应。详细的设计需要仔细查看DataSheet。

本文将介绍一下有些系统会涉及操作系统启动时间较长超出溢出周期的方案设计。

一些系统启动需要经历U-boot–kernel–文件系统–应用层,这种启动时间短则几十秒,多则甚至1分钟以上,只有系统启动正常后才能进行喂狗,如果这是外部WDT IC 一直得不到喂狗,就会一直产生喂狗,系统进入死锁状态。

下面介绍两种方法:

1. 模拟开关+普通WDT

使用一个单刀双掷模拟开关接到WDI引脚上,当启动时WDI通过模拟开关将接到悬空态,这种情况下,看门狗会禁止,内部计数器停止计数。当系统正常启动后,打开IO调整模拟开关,进行正常工作。

2. 使用长时间溢出周期的WDT

如下芯片启动会有51s延时,常规超时1.6s复位。如下示意:


硬件看门狗的选择与设计相关推荐

  1. 3G/4G路由器方案之外置硬件看门狗设计

    看门狗电路 为了确保设备可长时间稳定工作,增加看门狗电路.为简化设计,看门狗采用芯片MAX823TEUK,其最长喂狗时间为1.6s.当设备运行Linux或WinCE系统时,启动时间长(远大于1.6s) ...

  2. 硬件看门狗和软件看门狗

    看门狗分硬件看门狗和软件看门狗.硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称"喂狗"),因此程序正常工作时,定时器总不能溢出 ...

  3. 软件看门狗和硬件看门狗

    看门狗,又叫watchdog timer,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个部分的复位端,另外一个部分就是所要处理的部分,暂且称之为M ...

  4. 服务器看门狗芯片电路图,新型纯硬件看门狗电路设计分析研究

    摘   要:看门狗电路是电子电路中一种非常常见的电路,常用的看门狗电路在喂狗进程工作,CPU死机的状态时,可以重新复位CPU,防止CPU跑飞.但是在一些极端条件下,看门狗进程也会挂死,例如温度过高等, ...

  5. 嵌入式系统的软件看门狗和硬件看门狗

    本文从原理.异同.举例来说明硬件软件看门狗怎么选择: 一. 硬件看门狗的原理 硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称"喂狗&qu ...

  6. 服务器看门狗硬件,软件看门狗和硬件看门狗的作用和区别

    软件看门狗和硬件看门狗的作用和区别 工业级无线路由器,作为无线组网中非常重要的设备,洞察客户应用场景,只要是关乎无线组网可靠性的需求,即使是最细微的技术应用都要做到极致,比如看门狗. 为什么工业级无线 ...

  7. 基于STM32、FreeRTOS实现硬件看门狗+软件看门狗监测多任务的思路

    关注+星标公众号,不错过精彩内容 作者 | strongerHuang 微信公众号 | 嵌入式专栏 这是一篇旧文,技术交流群有人在讨论这个问题,今天就来分享一下. 我们都知道硬件看门狗的目的:是用来监 ...

  8. STM32硬件看门狗的使用

    本文使用STM32 STLink Utility和STM32CUBELDE 1.手动添加库文件 由于使用硬件看门狗,在STM32CUBELDE内的图形界面设置时不使能看门狗. 由于STM32CUBEL ...

  9. linux 硬件看门狗 软件看门狗,如何确定机器上是否实现了硬件或软件看门狗?...

    我有一台我试图开发的嵌入式计算机,我想知道它的看门狗是软件看门狗还是硬件看门狗. 首先我查看了,我看到/ dev / watchdog存在于/ dev中.但是当我发布ps时,我没有看到看门狗进程.所以 ...

最新文章

  1. [转]Effective C# 原则5:始终提供ToString()
  2. 安装lynis_lynis安装和扫描Linux的安全漏洞
  3. C#中变量(成员变量、局部变量、全局变量)的作用域
  4. 终极解密输入网址按回车到底发生了什么
  5. 带余除法(信息学奥赛一本通-T1009)
  6. python安装第三方扩展包_Python之安装第三方扩展库
  7. Perl语言入门(第六版)pdf
  8. 网络资源大搜索(转)
  9. 离散题目9(判断是否为单射函数)
  10. 思科路由器存储分类介绍
  11. 渗透测试入门(域名、DNS)— 理论知识
  12. 《薄冰实用英语语法详解》独家连载之十三:过去分词
  13. 我的世界服务器整人系列,我的世界:六种整蛊方案,你敢用吗?小心你的小伙伴因此退游...
  14. 基于高德地图的APP路径规划开发
  15. Linux用户管理及权限设置
  16. 这届年轻人开始种草快递纸箱
  17. QTP学习视频(小强老师)
  18. Google,Verizon和网络中立性辩论
  19. Elasticsearch相似度算分TF-IDF BM25(标贝科技)
  20. scau 19081 树上摘樱桃

热门文章

  1. C语言错误:expected declaration or statement at end of input、编写函数求100万以内的素数
  2. Java,微信交流群
  3. 神经网络的正向传播和反向传播(转)
  4. 金蝶云如何html5登录,金蝶精斗云登录时,网页端和客户端如何选择?
  5. 牛客 [JSOI2007]建筑抢修
  6. Chrome Console 小技巧之 01 如何启动XHR监控网络请求
  7. 什么是产品分析?谁该使用产品分析?|产品分析全解
  8. 使用谷歌的服务器训练
  9. 做站群前期的准备工作
  10. go vscode go mod win环境配置