看门狗是单片机程序运行异常跑飞后的一种复位机制。有硬件看门狗和软件看门狗2种 。硬件看门狗就是在单片机复位引脚上接了一个复位芯片,这个复位芯片需要一个周期性的脉冲电平,当没有这个电平,复位芯片会拉低单片机的复位引脚,使单片机复位;
软件看门狗就是程序代码上实现的,通过代码上设置喂狗时间;超过喂狗时间,软件就会自己复位。
其实说白了,就是程序正常运行时候,会定期把标志位清掉。
如果因为不论什么原因,引起长时间不清标志位。
定时器就溢出,系统就复位了。
就像有条狗看门一样。
防止程序跑飞用的。比如软件看门狗,开启以后,看门狗不停计数。在看门狗复位之前,
及时喂狗,看门狗就不会溢出。所以正常运行情况下,发挥不了它的作用。如果程序跑飞,
在规定的时间不能喂狗,看门狗复位,程序从头运行,把程序从跑飞的地方拉回来。
其实是一种机制,防止程序跑飞(执行不受控),
因为在工业控制领域,就是出故障时死机这种可预见性问题也比程序乱执行造成的危害可控。
为此,在程序编写实施中引入一种机制,
实时探测程序是否还在正常运行,如果没有则执行规定的操作(一般是复位,也可以是停机等等)。
这种机制就像有一条狗在巡逻监控,所以叫“看门狗”。