如何连接看门狗WDI?
看门狗定时器(Watchdog Timer, WDT)是一种用于嵌入式系统中的监控设备,其主要功能是检测并防止系统因软件故障或干扰而进入死循环或停止响应,通过定期“喂狗”(即重置WDI引脚),可以保持看门狗定时器不触发复位,下面详细介绍看门狗定时器的接法及其相关原理:
1、接法一:这种接法常见于芯片规格书推荐的电路,适用于大多数MCU,具体连接方式如下:
RESET接到MCU的RESET引脚。
WDO接到MCU的NMI(非屏蔽中断)引脚,有些MCU没有NMI,可以接到外部GPIO中断,并适当调高中断优先级。
WDI接到MCU的GPIO。
2、接法二:这种纯硬件的接法主要特点是WDI直接控制MR,当WDI在1.6秒内无跳变时,WDO输出低电平,拉低MR产生复位信号,这种方式安全性较高,但需要断开RESET或WDO与MR的连接来进行软件仿真调试。
RESET接到MCU的RESET引脚。
WDI接到MCU的GPIO。
WDO接到MR脚,以实现超时后自动复位。
3、内部看门狗:内部看门狗通常为芯片内部某个特殊定时器,用户可以通过手动初始化、设置timeout、使能、失能该看门狗,在Linux系统中,可以在uboot中打开看门狗,把喂狗时间设置长度超过kernel启动时间,从而当kernel正常启动后,喂狗任务由uboot交给了应用程序。
4、外部看门狗:外部看门狗具有独立性,可以更加安全的确保芯片的正常运行,外部看门狗的工作方式简单,不需要所谓的初始化、使能等操作,只需电源、地、WDI喂狗引脚、RESET引脚即可,当WDI每次检测到边沿跳变时,重新置位看门狗计数,如果在超出timeout,则拉低RESET引脚一段时间。
5、注意事项:
89S51的看门狗必须由程序激活后才开始工作,所以必须保证CPU有可靠的上电复位,否则看门狗也无法工作。
看门狗使用的是CPU的晶振,在晶振停振的时候看门狗也无效。
89S51只有14位计数器,在16383个机器周期内必须至少喂狗一次,而且这个时间是固定的,无法更改。
6、常见问题解答:
Q1: 如何在AT89S51单片机中激活看门狗?
A1: 在程序初始化时向看门狗寄存器(WDTRST)先写0x1E,再写0xE1即可激活看门狗。
Q2: 如何确保外部看门狗在系统启动过程中不会触发复位?
A2: 可以在电路设计中增加跳线,在生产阶段将跳线跳开,完毕后再跳上;或者设计电路使得JTAG中的Reset优先级最高,当JTAG插上时,程序不运行,Reset也就失效了。
看门狗定时器的接法和使用方法根据具体应用需求有所不同,但基本原理都是通过定期“喂狗”来保持系统正常运行,在实际应用中,可以根据具体情况选择合适的接法和配置方式。
作者:豆面本文地址:https://www.jerry.net.cn/articals/14006.html发布于 2025-01-10 06:12:16
文章转载或复制请以超链接形式并注明出处杰瑞科技发展有限公司