艾巴生活网

您现在的位置是:主页>科技 >内容

科技

什么是看门狗技术有哪些实现方法(看门狗工作原理、应用和设计思路解析)

2024-12-09 16:50:03科技帅气的蚂蚁
看门狗又称看门狗定时器,是一种定时器电路。通常,它有一个输入,称为喂狗,一个输出到MCU的RST端子。MCU正常工作时,每隔一段时间向喂狗

什么是看门狗技术有哪些实现方法(看门狗工作原理、应用和设计思路解析)

看门狗又称看门狗定时器,是一种定时器电路。通常,它有一个输入,称为喂狗,一个输出到MCU的RST端子。MCU正常工作时,每隔一段时间向喂狗终端输出一个信号,并复位WDT。如果超过规定时间没有喂狗(通常是程序跑偏的时候),WDT超时会给MCU一个复位信号,这就是MCU复位。预防

这只狗不是另一只狗。

工作原理:系统运行后会启动看门狗计数器,看门狗会自动开始计数。如果一段时间后看门狗未被清零,看门狗计数器将溢出,这将导致看门狗中断和系统复位。所以使用带看门狗的芯片时要注意看门狗。

硬件看门狗使用一个定时器来监控主程序的运行,也就是说,在主程序运行过程中,我们要在预定的时间之前重置定时器。如果有一个无限循环,或者PC指针能不要回来。然后,当计时时间到时,微控制器将被复位。常用的WDT芯片,如MAX813、5045、IMP 813等。价格从4元到10元不等。

软件看门狗技术的原理与此类似,但都是通过软件实现的。我们还是以51系列为例。我们知道51单片机中有两个定时器,我们可以用这两个定时器来监控主程序的运行。我们可以为T0设置一定的定时时间,在定时中断发生时给一个变量赋值,而这个变量在主程序开始时已经有了初始值。这里我们要设置的计时值应该小于主程序的运行时间,这样就可以判断主程序结束时变量的值。如果值按预期变化,说明T0中断正常,如果没有变化,程序将复位。对于我们用来监控主程序运行的T1,我们为T1设置了一定的定时时间,并在主程序中将其复位。如果可以在一定时间内被复位,T1的定时中断将使微控制器复位。这里,T1的计时时间应设置为大于主程序的运行时间,给主程序留有一定的余量。而T1的中断是否正常将由T0定时中断子程序监控。这足以形成一个循环。T0监控T1,T1监控主程序,主程序监控T0,保证了系统的稳定运行。

51系列有一个特殊的看门狗定时器,它计算系统的频率。当定时器溢出时,它将被重置。看门狗可以设置溢出速率,也可以单独用作定时器。

凌阳61 的看门狗比较简单,一是单次,二是在实际使用中,它可以只添加指令来清除循环中的狗。

C8051Fxxx MCU还有一个使用系统时钟的21位定时器,用于检测对其控制寄存器的两次特定写操作之间的时间间隔。如果该时间间隔超过编程限制,将产生WDT复位。

看门狗使用注意事项:大部分51系列单片机都有看门狗,不定期清除看门狗会导致复位。这可以阻止程序飞行。设计人员必须知道看门狗的溢出时间,以决定何时清除看门狗。看门狗不要清理太频繁,否则会造成资源浪费。程序正常运行时,软件每隔一段时间(小于定时器的溢出周期)设置一次定时器,可以防止溢出中断造成的误复位。

Watchdog的应用:Watchdog是恢复系统正常运行的有效监控管理器(可以锁定光驱和任意指定程序,可以在家庭中使用,防止孩子无节制的玩游戏、上网、看文章),具有很好的应用价值。

软件的设计思想看门狗

1.看门狗定时器T0的设置。在初始化块中设置T0的工作模式,启动中断和计数功能。系统的FOSC为12mhz,T0为16位计数器,最大计数值为(2的10次方)-1=65 535,T0的输入计数频率为。Fosc/12,溢出周期为(65 535 1)/1=65 536(s)。

2.计算主控制程序循环一次所需的时间。考虑到系统各功能模块及其循环次数,系统主控程序运行时间约为16.6 ms,设置看门狗定时器T0为30 ms(T0初始值为65 536-30 000=35 536)。主程序的每个周期都会刷新T0的初始值。如果程序输入无限循环并且T0的初始值在30 ms内没有被刷新,那么看门狗定时器T0将溢出并申请中断。

3.设计T0溢出对应的中断服务程序。这个子程序只需要一条指令,就是写无条件转让命令在T0对应的中断向量地址(000BH),把计算机拖回整个程序的第一行,重新初始化单片机,得到正确的执行顺序。