您当前的位置:检测资讯 > 科研开发
嘉峪检测网 2025-06-04 08:18
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误,不在程序区,取出错误的程序指令,都有可能会陷入死循环。程序的正常运行被打断,由单片机控制的系统无法继续正常工作,导致整个系统的陷入停滞状态,发生不可预料的后果。
看门狗,又叫 watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到另外一个部分的复位端,一般是连接到单片机。 看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。看门狗命令在程序的中断中拥有最高的优先级。
软件看门狗的定义:
WDT(Watch Dog Timer)表示看门狗定时器重新启动系统。WDT是个特殊定时器,软件在预订时间内会去清WDT标志位。当软件死掉后,没有办法及时清除标志,WDT就会自动重新复位系统进行重启。
WDT(Watch Dog Timer)是一个定时电路,一个输入叫喂狗(Kicking The Dog),一个输出连接到控制器的RST信号,系统正常工作的时候,每隔一段时间输出一个信号到喂狗端,给标志位清零,如果超过规定的时间不喂狗(一般是程序跑飞)WDT定时超过,会给出一个复位信号给控制芯片,使系统重新启动,防止控制芯片宕机、死机,系统进入死循环,或系统程序跑飞。
软件看门狗的基本原理:
系统运行时计数器开始计数,未及时清零则溢出触发复位。一旦系统开始运行,看门狗的计数器也随之启动,并自动开始计数。若在一定时间内未对看门狗进行清零操作,其计数器将发生溢出,进而触发看门狗中断,导致系统复位。因此,在使用具备看门狗功能的芯片时,需格外留意清零看门狗的时机。
硬件看门狗的实现:
硬件看门狗通过芯片内部的定时器监控主程序,防止死循环。硬件看门狗通过定时器来监控主程序的运行状态。在主程序执行过程中,我们必须在定时时间到期前对定时器进行复位,以防止死循环或PC指针无法回溯的情况发生。若出现这些情况,定时时间一到,单片机将自动复位。
软件看门狗的实现:
利用软件设置定时器监控主程序,通过中断进行状态确认和复位操作。软件看门狗技术的原理与硬件看门狗相似,但它是通过软件方式来实现的。以51系列单片机为例,我们可以利用其中的两个定时器T0和T1来监控主程序的运行状态。具体来说,我们可以为T0设定一个特定的定时时间,并在定时中断时对某个变量进行赋值。这个变量在主程序开始时已被赋予一个初始值。我们设定的定时时间应小于主程序的运行时间。这样,在主程序结束时,我们可以通过判断该变量的值是否按预期改变来确认T0中断是否正常。若未发生变化,则触发程序复位。
看门狗的应用价值:
看门狗技术帮助恢复系统运行,用于权限管理等领域。看门狗技术在实际应用中具有广泛价值。它不仅能帮助恢复系统的正常运行,还能作为有效的监视管理器使用,如锁定光驱、指定程序等,非常适合家庭中使用,能有效防止小孩无节制地玩游戏、上网或观看录像。
在EMC问题调试过程中,尤其是抗扰度测试(EFT、ESD、雷击浪涌、RS、CS)过程中系统受到噪声出现宕机、死机可以通过看门狗(WDT)来系统的重新复位。
看门狗的应用注意事项:
使用看门狗需注意溢出时间设置,并定期清零以防止误复位。在嵌入式系统开发中,确保系统的稳定性和可靠性至关重要。而"看门狗"技术,作为一种有效的系统监控与恢复机制,正日益受到开发者的青睐。其设计思路在于通过专门的硬件定时器或软件监控模块,对系统状态进行持续检测。一旦发现系统出现异常或死锁,便触发复位或重启操作,从而恢复系统的正常运行。此外,"看门狗"技术还可广泛应用于权限管理、资源保护等领域,为家庭和工业控制提供了强有力的支持。
来源:风陵渡口话EMC