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

嵌入式设计应用

132人已加入

描述

  看门狗定时器(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将被永久禁止;当WDTE=1时,看门狗WDT将被永久启用。就是说,只要WDTE被定义成1,以后在用户程序中将再也无法禁止看门狗的运行。

  若想不让看门狗WDT发生超时溢出,在用户程序中只能不停地、周期性地将看门狗计时器清0,使它不会因计数到超过最大值而溢出。

  看门狗计时器的计时周期取决于独立RC振荡源的频率和计时器的宽度,同时在一定程度上受到工作电压、环蟑温度、制作工艺等因素的影响。

  另外,看门狗的超时周期还可以借助于分频器以及分频器的分频比,在一定范围内改变和延长。分频器是否配置给看门狗使用,可以通过用户程序定义选项寄存器OPTION KEG的PSA位进行设置。

  看门狗设计原理

  在看门狗( watchdog timer),是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位。 防止MCU死机。 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 出于对单片机运行状态进行实时监测的考虑,产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(watchdog))集成电路(MAX*9)的基础上,该电路提供了响应的输入脉冲流损失锁存故障指示。该电路可以监控风扇(上风扇的转速输出计算),振荡电路,或一个微处理器软件执行。

  一个简单的电路提供了响应的输入脉冲流损失锁存故障指示。在μP-supervisor/watchdog集成电路(MAX*9)的基础上,该电路用于监测风扇(在风扇的转速输出计算),振荡电路,或一个合适的微处理器软件执行。

  单片机

  在上电期间,低电平有效复位仍然很低,直到VCC的稳定和复位超时时间到期。电容器C通过R,直到FET的栅极电压达到阈值(电压VTH),它开启了场效应管,使锁存能力。为了防止误触发,你应该设置RC延迟的时间远远超过了复位超时。

  WDI输入(引脚6)必须按切换电容器CSWT设立最低速率。如果这没有发生,低电平有效复位变低,在LED指示灯,在连接和低拉复位,从而锁定低电平复位。该电路仍然有效,直到你循环VCC或推开关在此条件。要么关闭FET的行动,并允许重置变高。

  为了监测风扇开漏测速信号,从世界发展指标10kΩ的连接到VCC(引脚8)上拉电阻器。由于风扇需要一些时间来旋转起来,看门狗电路需要为一个短暂的延迟时间间隔停用。您可以通过将本延迟电容(C2)从对地复位。请注意,此延迟必须小于上述RC延迟,或低电平有效复位锁存过早会较短。

  对于一个风扇监控,对CSWT值设置最大转速脉冲周期根据公式5.06×106 × CSWT,其中在几秒钟内CSWT。如果转速低于这个阈值时,低电平有效复位输出低和插销。

  看门狗定时器的操作

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

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

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

  如图所示是看门狗定时器的功能框图。

  单片机

  S3C44B0X看门狗定时利用MCLK作为时钟源,经过8位的预分频和4选1的2位分割之后得到所需频率。预分频值和频率分割值在看门狗定时器控制寄存器WTCON中配置,有效的预分频值范围为0~28-1,频率分割系数可选为16、32、64或128。使用下列公式计算看门狗定时频率和每个定时器时钟周期值。

  twatchdog=1/MCLK/(预分频值+1)/分频系数

  看门狗定时器使能后,WTDAT(看门狗定时器数据寄存器)不能自动装入WTCNT(看门狗定时计数寄存器)。因此,在看门狗定时器开始工作前,初值必须写到看门狗定时计数寄存器WTCNT中。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分