看门狗,即「 Watchdog Timer 」,是一种独立的芯片,看门狗芯片可以防止由某些类型的硬件引起的错误造成系统故障。
从本质上来说,看门狗就是一个定时器电路,一般有一个输入和一个输出,一般把输入叫做喂狗,输出通常连接到另外一部分的复位端,一般是连接到单片机。
看门狗的功能是定期的查看芯片内部的情况,由于看门狗命令在程序的中断中拥有最高的优先级,所以一旦发生错误就向芯片发出重启信号。
工作原理
看门狗是一种监控系统的运行状况的手段,通过软硬件结合的方式实现对系统运行状况的监控。稳定运行的软件会在执行完特定指令后进行喂狗,若在一定周期内看门狗没有收到来自软件的喂狗信号,则认为系统故障,会进入中断处理程序或强制系统复位。
系统上电后根据不同的工作模式可以选择使能看门狗的时机,若看门狗被使能则计数器开始计数,如果在设定的时间内没有及时喂狗则会发生看门狗超时。看门狗主要由寄存器、计数器和狗叫模块构成:通过寄存器对看门狗进行基本设置,计数器计算狗叫时间,狗叫模块决定看门狗超时后发出的中断或复位方式。
工作方式
看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行。
看门狗芯片便实现了单片机的自动复位。在看门狗电路的应用中,单片机可以在无人状态下实现连续工作。
看门狗芯片
如果有看门狗的需求可以关注一下英锐恩EN系列的EN8P1100和EN8F202,更多看门狗芯片资讯请访问 enroo-tech.com 。