微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 看门狗定时器的设计、工作原理及看门狗定时器的操作

看门狗定时器的设计、工作原理及看门狗定时器的操作

时间:04-23 来源:网络整理 点击:

  看门狗定时器(WDT,Watch Dog TImer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。

  

  为了给初学者一个系统的概念,先介绍一下看门狗的基本概念。当嵌入式系统运行时受到外部干扰或者系统错误,程序有时会出现"跑飞",导致整个系统瘫痪。为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(WATCHDOG)电路。看门狗的作用就是当系统"跑飞"而进入死循环时,恢复系统的运行。

  看门狗定时器的功能作用

  看门狗定时器(WDT,Watch Dog TImer)是单片机的一个组成部分,在单片机程序的调试和运行中都有着重要的意义。它的主要功能是在发生软件故障时,通过使器件复位(如果软件未将器件清零)将单片机复位。也可以用于将器件从休眠或空闲模  看门狗定时器对微控制器提供了独立的保护系统,当系统出现故障时,在可选的超时周期之后,看门狗将以RESET信号作出响应,像x25045就可选超时周期为1.4秒、600毫秒、200毫秒三种。当你的程序死机时,x25045就会使单片机复位。

  大多数看门狗定时器IC产生一个单一的,有限的输出脉冲持续时间当看门狗超时。这适用于触发复位或中断微处理器,但有些应用需要输出(故障指示灯)的锁存器。

  考虑到安全性问题,汽车电子系统需要监控电路监测故障容限或安全性。看门狗定时器可理想满足这类需求,通过对微控制器正常工作条件下产生的周期脉冲进行检测,侦测电路或?C的失效状态,一旦发生故障可立即切换到备份/冗余系统。式唤醒。

  看门狗工作原理

  1. 其基本原理为:设本系统程序完整运行一周期的时间是Tp,看门狗的定时周期为TI,TI》Tp,在程序运行一周期后就修改定时器的计数值,只要程序正常运行,定时器就不会溢出,若由于干扰等原因使系统不能在Tp 时刻修改定时器的计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。

  2. 在一个完整的嵌入式系统或单片机小系统中通常都有看门狗定时器,且一般集成在处理器芯片中,看门狗实际上就是一个定时器,只是它在期满后将自动引起系统复位。

  使用时,WDT将递增,直到溢出,或称"超时"。除非处于休眠或空闲模式,WDT 超时会强制器件复位。为避免WDT超时复位,用户必须定期用PWRSAV 或CLRWDT 指令将看门狗定时器清零。如果WDT 在休眠或空闲模式下超时,器件将唤醒并从PWRSAV 指令执行处继续执行代码。在上述两种情况下,WDTO 位(RCON《4》)都会置1,表示该器件复位或唤醒事件是由于WDT超时引起的。如果WDT 将CPU从休眠或空闲模式唤醒,"休眠"状态位(RCON《3》)或"空闲"状态位(RCON《2》)也会置1,表示器件之前处于省电模式。

  在正常操作期间,一次WDT超时溢出将产生一次器件复位。当器件处于休眠状态时,一次WDT超时溢出将唤醒器件,使其继续正常操作(即称作WDT 唤醒)。对WDTE 设置位清零可以永久性地关闭WDT。

  后分频器分配完全是由软件控制,即它可在程序执行期间随时更改。

  为避免发生不可预测的器件复位,当从Timer0 预分频器的分配改为WDT 后分频器的分配时,必须执行下列指令序列。即使WDT 被禁止,也要执行这个指令序列。

  

  由看门狗WDT引发系统复位的电路结构等效图如图所示。从该图中可以看出,只有当状态信号SLEEP=1,即单片机处于非睡眠状态时,看门狗超时溢出才会引发单片机的复位操作。而在单片机处于睡眠状态,即状态信号SLEEP=0时,看门狗超时溢出会唤醒单片机

  

  看门狗就是一个用独立时钟源提供的脉冲进行累加计数的计数器,无需任何外部元件。独立的RC时钟信号源是指RC振荡器与OSC1(ULKIIN)引脚的外接RC振荡器,OSC1和OSC2外接晶体振荡器/陶瓷谐振器构成的单片机系统时钟是分离的。这就意味着,即使单片机进入系统时钟停振的睡眠状态,监视定时器WDT仍然能够运行。

  在单片机执行程序期间,一次看门狗WDT超时溢出,将使单片机产生复位操作(称为WDT复位)。如果单片机处于睡眠状态,一次看门狗WDT超时溢出将使单片机被唤醒,恢复正常运行状态,并且继续执行在进入睡眠之前被搁置的程序(称为WDT唤醒)。

  每次看门狗超时溢出,都会使得状态寄存器STATUS中的了T0位被清0,以记录曾经发生的这次看门狗溢出事件,供作程序查询判断用。

即当WDTE=0时,看门狗WDT将被永

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top