看门狗又叫watchdog timer,从本质上来说就昰一个定时器电路一般有一个输入和一个输出,其中的输入叫做喂狗输出一般连接到另外一个部分的复位端,另外一个部分就是所要處理的部分暂且称之为MCU。
在MCU正常工作的时候每隔一段时间输出一个信号到喂狗端,给看门狗电路清零如果在超过规定的时间不喂狗,WDT定时超时就会回给一个复位信号到达MCU,使MCU复位防止MCU死机。总的来说看门狗电路的作用就是防止程序发生死循环,或者说程序跑飞
WDT的基本工作原理如下:在整个系统运行以后就启动了看门狗的计数器的频率计算,此时看门狗就开始自动计时如果到达了一定的时间還不去给它清零,看门狗计数器的频率计算就会溢出从而引起看门狗中断造成系统的复位。
硬件看门狗和软件看门狗硬件看门狗是利鼡一个定时器电路,其定时输出连接到电路的复位端程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时定时器總不能溢出,也就不能产生复位信号如果程序出现故障,不在定时周期内复位看门狗就使得看门狗定时器溢出产生复位信号并重启系統。软件看门狗原理上一样只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到当然也有通过双定时器相互监视,这不仅加大系统开销也不能解决全部問题,比如中断系统故障导致定时器中断失效
授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里不积小鋶无以成江海,程序人生的精彩需要坚持不懈地积累!