单片机的看门狗(Watchdog Timer)是一种硬件电路,用于监控单片机的运行状态,确保系统的稳定性和可靠性。当单片机由于软件或硬件故障导致程序运行异常或停滞时,看门狗能够检测到这种情况,并采取措施使系统复位,从而恢复正常运行。看门狗的主要工作原理如下:
定时器:看门狗通常包含一个定时器,这个定时器会在单片机正常工作时被周期性地重置。如果单片机在设定的时间内没有重置看门狗定时器,那么看门狗会认为单片机出现了异常。
超时复位:一旦看门狗定时器超时,它将触发一个复位信号,将单片机复位到初始状态,从而允许系统重新启动并尝试恢复正常操作。
中断或处理程序:在某些设计中,看门狗超时可以触发一个中断,允许执行特定的错误处理程序,而不是立即复位。这样可以在系统复位前进行一些日志记录或清理操作。看门狗在那些对安全性和稳定性要求较高的应用中特别重要,如工业控制、汽车电子、医疗设备和航空航天等领域。通过使用看门狗,可以大大减少系统因软件故障而导致的长时间不可用或错误操作的风险。CW32单片机有两个看门狗:独立看门狗IWDT和窗口看门狗WWDT。
独立看门狗IWDT:独立看门狗定时器 (IWDT),使用专门的内部 RC 时钟源 RC10K,可避免运行时受到外部因素影响。一旦启动 IWDT,用户需要在规定时间间隔内对 IWDT 的计数器进行重载,否则计数器溢出会触发复位或产生中断信号。IWDT 启动后,可停止计数。可选择在深度休眠模式下 IWDT 保持运行或暂停计数。
IWDT的功能框图如下:
IWDT 由一个 12 位可重载的向下计数器实现,其计数时钟源为内部专用低速 RC 振荡器 RC10K,通过控制寄存器IWDT_CR 的 PRS 位域可对其时钟源 RC10K 信号进行 4 ~ 512 的预分频。IWDT 计数器发生溢出时可选择产生中断和复位信号。
窗口看门狗WWDT:窗口看门狗定时器 (WWDT),用户需要在设定的时间窗口内进行刷新,否则将触发系统复位。WWDT 通常被用来监测有严格时间要求的程序执行流程,防止由外部干扰或未知条件造成应用程序的执行异常, 导致发生系统故障。
WWDT的功能框图如下
WWDT 内含一个 7 位递减计数器,计数时钟源为内部系统时钟 PCLK,通过控制寄存器 WWDT_CR1 的 PRS 位域 可对其时钟源 PCLK 进行分频,分频后得到计数时钟 WWDTCLK 用来驱动计数器计数。WWDT 在深度休眠模式下将停止计数,CPU 被唤醒后恢复正常工作。独立看门狗更注重在极端情况下的系统恢复能力,而窗口看门狗则提供了更灵活的时间窗口管理,以便更精确地监控程序的执行。开发者需要根据具体的应用需求选择合适的看门狗类型。
审核编辑 黄宇
-
看门狗
+关注
关注
10文章
558浏览量
70691 -
单片机
+关注
关注
0文章
201浏览量
16658
发布评论请先 登录
相关推荐
评论