看门狗定时器是一个独立于CPU的计数单元,如果不采用特定的指令周期地使看门狗定时器复位,看门狗单元将会使系统复位。为了避免不必要的复位,要求用户软件周期地对看门狗定时器进行复位操作。如果不明原因使CPU中断程序,比如系统软件进人了一个死循环或者CPU的程序运行到了不确定的程序空间,从而使系统不能正常工作,则看门狗电路将产生一个复位信号使CPU复位,程序从系统软件的开始执行。通过这种方式,看门狗就可以监测软件和硬件的运行状态,提高了系统的可靠性。
F28l2/F281ODSP上的看门狗与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 看门狗功能框图