跳转到主要内容

看门狗

详解多任务看门狗及喂狗方法

judy /

看门狗分硬件看门狗和 软件看门狗。硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时, 定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理 上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障 就无法检测到。当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。

看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。加入看门狗目的是对一些程序潜在错误和恶劣环 境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间 内怠工。同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。

STM32 ADC 模拟看门狗及其应用

judy /

<font size="4" color="blue">前言</font>

模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值,用户可以预先设定个模拟看门狗的上下限电压值,一旦采集到的电压超出该上下限,将会触发模拟看门狗中断。模拟看门狗一般用于检测单个的常规或注入转换通道,或同时检测所有的常规和注入通道。

<font size="4" color="blue">模块框图 </font>
<center><img src="http://mcu.eetrend.com/files/2017-06/wen_zhang_/100006724-21323-3.jpg&q…; alt="模块框图"></center>

浅析看门狗电路的原理和用法

editor /

看门狗电路其实是一个定时器,有一个定时器控制寄存器,可以设定时间(开狗),到达时间后要置位(喂狗),如果没有的话,就认为是程序跑飞,就会发出RESET指令。

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

在MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给看门狗电路清零,如果在超过规定的时间不喂狗,WDT定时超时,就会回给一个复位信号到达MCU,使MCU复位,防止MCU死机。总的来说,看门狗电路的作用就是防止程序发生死循环,或者说程序跑飞。

WDT的基本工作原理如下:在整个系统运行以后就启动了看门狗的计数器,此时看门狗就开始自动计时,如果到达了一定的时间还不去给它清零,看门狗计数器就会溢出从而引起看门狗中断,造成系统的复位。

硬件看门狗就是利用了一个定时电路,来监控主程序的运行。在主程序的运行中,我们要在定时时间到达之前对定时器进行复位。

看门狗的作用就是防止程序无限制的运行,造成死循环。它可以用在接收和发送数据时对接受和发送超时的处理,起到保护数据,保护电路的作用。

你的”喂狗”姿势真的对吗?

kelly /

天天“喂狗”,还不知道什么姿势能炫出高能?往下看吧!

<center><img src="http://mm32.eetrend.com/files/2016-09/wen_zhang_/100002984-9739-1.png&q…; alt=""></center>

看门狗功能大家都耳熟能详了,产品在最后量产前为了保证可靠性一般都会将看门狗功能加进去,防止代码在某些意外情况下进入死锁状态从而导致整个系统瘫痪,甚至有些对可靠性要求更高的领域会加入外部看门狗。

通常MCU内部都带有看门狗功能。简单的有软件看门狗(COP),高级一点的叫WDOG。由于COP比较简单,所以这里讲的主要是WDOG。WDOG“喂狗”是很有讲究的,姿势稍有不对可能就会“喂狗”失败,影响系统正常运行。

<strong>正确的“喂狗”姿势</strong>

<strong>1、256个总线周期内初始化看门狗</strong>

嵌入式系统之WATCHDOG(看门狗)概述

kelly /

<strong>1、概述:</strong>

WATCHDOG对于没有底层开发经验的开发人员来说,可能比较陌生,但是它在系统起到非常重要的作用,相当于系统警察,当系统发生严重错误(如程序进入死循环等)不能恢复的时候,WATCHDOG能够让系统重启。WATCHDOG的应用主要是在嵌入式操作系统中,避免了系统在无人干预时长时间挂起的情况。

<strong> 2、WATCHDOG模块</strong>

在比较高档的嵌入式硬件芯片中,都有一个WATCHDOG模块,如果在MCU/MPU中没有集成WATCHDOG,一般会在此嵌入式系统中加一个专门的WATCHDOG芯片来实现WATCHDOG机制。此模块主要的功能包括:

(1)提供WATCHDOG控制寄存器和配置寄存器,供软件开发人员根据系统需要进行灵活配置。

(2)提供一接口,使应用软件能够定时给WATCHDOG“喂狗”。

(3)提供WATCHDOG机制,当系统进入不可恢复错误时,能产生一个不可屏蔽中断来通知系统自动重启(一般这样,也有改变为其他处理方式的),只有相应的复位信号才能清除它。

<strong>3、WATCHDOG的实现方式:</strong>