回答:
看门狗,又叫 watchdog timer,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做“喂狗”(kicking the dog/service the dog),输出一般连接到另外一个部分的复位端,一般是连接到单片机。“看门狗”的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。“看门狗”命令在程序的中断中拥有最高的优先级,防止程序跑飞,也可以防止程序在线运行时候出现死循环。简而言之:如果一切正常,dog就不会发出叫声,反之异常dog就会叫,并且拒之门外!
在实际生产运用中,工控机大多数都是集成生产、制造、管理等现场的设备中,比如提到最多的机器视觉方案。其中控制着各个大型机器的运行,工控机在其中虽只是占领了很小的空间但却起着决定性的作用,为了保护好整体设施以及提高工业生产的效率,需要在工控机上安装看门狗,以便对各个机器间进行很好的监控,有异常运行时立马重启程序最快的时间内恢复运行。当程序出现死循环的时候,轻则是整个配套的机器系统出现故障,从而影响着整个工业的生产,重则整个生产线系统出现瘫痪,无法正常运作,出现不可挽救的损失。
“看门狗”工作原理
看门狗是一种监控系统的运行状况的手段,通过软硬件结合的方式实现对系统运行状况的监控。在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,稳定运行的软件会在执行完特定指令后进行喂狗,若在一定周期内看门狗没有收到来自软件的喂狗信号,则认为系统故障,会进入中断处理程序或强制系统复位。系统上电后根据不同的工作模式可以选择使能看门狗的时机,若看门狗被使能则计数器开始计数,如果在设定的时间内没有及时喂狗则会发生看门狗超时。看门狗主要由寄存器、计数器和狗叫模块构成:通过寄存器对看门狗进行基本设置,计数器计算狗叫时间,狗叫模块决定看门狗超时后发出的中断或复位方式。
硬件看门狗
硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。
如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。
软件看门狗
软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,并启动定时器。程序按时对定时器赋初值(或复位),以免它饿了。
免责声明:本网站部分文章、图片等信息来源于网络,版权归原作者平台所有,仅用于学术分享,如不慎侵犯了你的权益,请联系我们,我们将做删除处理!