首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

看门狗介绍(1)

看门狗介绍(1)

看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 出于对单片机运行状态进行实时监测的考虑,产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)看门狗的基本结构
  •   看门狗定时器是一个独立于CPU的计数单元,如果不采用特定的指令周期地使看门狗定时器复位,看门狗单元将会使系统复位。为了避免不必要的复位,要求用户软件周期地对看门狗定时器进行复位操作。如果不明原因使CPU中断程序,比如系统软件进人了一个死循环或者CPU的程序运行到了不确定的程序空间,从而使系统不能正常工作,则看门狗电路将产生一个复位信号使CPU复位,程序从系统软件的开始执行。通过这种方式,看门狗就可以监测软件和硬件的运行状态,提高了系统的可靠性。
      F28l2/F281O DSP上的看门狗与240x器件上的基本相同,当8位的看门狗计数器计数到最大值时,看门狗模块产生一个输出脉冲(512个振荡器时钟宽度)。如果不希望产生脉冲信号,则需要屏蔽计数器,或用软件周期地向看门狗复位控制寄存器写0x55+OxAA,该寄存器能够使看门狗计数器清零。图1为看门狗的功能框图。
      WDINT信号使能看门狗作为IDLE/STANDBY模式唤醒的定时器。在STANDBY模式下,所有外设都将被关闭,只有看门狗起作用。WATCHDOG模块将脱离PLL时钟运行。WDINT信号反馈到LPM +H块,可以将器件从STANDBY模式唤醒。在IDI'E模式下,WDINT信号能够向CPU产生中断(该中断为WAKEINT)使CPU脱离IDLE工作模式。在HALT模式下,Pl-I-和OSC单元被关闭,因此不能实现上述功能。

      图1  看门狗功能框图

看门狗基本操作
  •   在看门狗计数器(WDCNTR)溢出之前,如果采用正确的时序向WDKEY写人数据就可以使WDCNTR复位。当向WDKEY写0x55时,WDCNTR复位到使能位置;只有在向WDKEY写0xAA后才会使WDCNTR真正地复位。0x55和0xAA以外的任何数据写到WDKEY都会引起系统复位。只要向WDKEY写0x55和0xAA,无论写的顺序如何都不会导致系统复位,而只有先写Ox55再写OxAA才会使WDCNTR复位。表1列出了看门狗操作的几种情况。

      表1  看门狗操作实例
      看门狗的预定标寄存器可以用来提高看门狗的计数溢出周期。逻辑校验位(WDCHK)是看门狗的另一个安全机制,所有访问看门狗控制寄存器(WDCR)的写操作中,相应的校验位(位5~3)必须是“101”,否则将会拒绝访问并会立即触发复位。看门狗的内部原理如图1所示。

      图1  看门狗内部原理图
继承事业,薪火相传
返回列表