硬件看门狗的选择与设计

看门狗定时器(WatchDog Timer)在出现程序跑飞卡死的时候用来强制复位处理器或控制器。具体操作是:通常程序正常循环会在一定周期内进行“喂狗”,若程序执行一个错误代码或者程序卡死,将不能进行“喂狗”,WDT会将控制器进行复位。而且,WDT不能检测瞬态故障,只有在WDT计数器达到预定的时间间隔时才会产生复位。

WDT基本原理

WDT的核心是计数寄存器,时钟源连续递增计数器的值,计数器发生溢出时,WDT产生复位。为防止复位,需要周期性的将计数清零,俗称“喂狗”。

内部或外部WDT

现在好多MCU内置WDT,使用内部WDT最大优势就是节省成本体积,但缺点也比较明显容易受软件程序失效影响,稳定性不佳。使用外部WDT IC具有独立的时钟源,稳定性较高,但相应的也会增加一定成本。

在一些要求较高的场合下,建议使用外部WDT IC。


看门狗电路

本身看门狗电路比较简单,一个IO引脚用来喂狗,另一个IO引脚输出复位响应。详细的设计需要仔细查看DataSheet。

在这里插入图片描述

本文将介绍一下有些系统会涉及操作系统启动时间较长超出溢出周期的方案设计。

一些系统启动需要经历U-boot–kernel–文件系统–应用层,这种启动时间短则几十秒,多则甚至1分钟以上,只有系统启动正常后才能进行喂狗,如果这是外部WDT IC 一直得不到喂狗,就会一直产生喂狗,系统进入死锁状态。

下面介绍两种方法:

1. 模拟开关+普通WDT

使用一个单刀双掷模拟开关接到WDI引脚上,当启动时WDI通过模拟开关将接到悬空态,这种情况下,看门狗会禁止,内部计数器停止计数。当系统正常启动后,打开IO调整模拟开关,进行正常工作。

在这里插入图片描述

2. 使用长时间溢出周期的WDT

如下芯片启动会有51s延时,常规超时1.6s复位。如下示意:

在这里插入图片描述


  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
硬件看门狗电路(Hardware Watchdog)的设置通常需要涉及以下几个方面: 1. 看门狗定时器配置:硬件看门狗电路通常由一个定时器和一个计数器组成。您需要根据硬件平台的要求,在系统初始化期间配置看门狗定时器的时钟源、计数器的初始值和定时器的工作模式等参数。 2. 看门狗喂狗操作:在系统运行过程中,您需要定期喂狗来防止看门狗定时器超时触发复位。这通常可以通过向看门狗计数器写入特定的数值来实现,从而重置定时器的计数值。 3. 看门狗超时处理:当看门狗定时器超时未被重置时,硬件看门狗电路会触发复位信号,导致系统重新启动。您可以在系统中添加特定的处理程序,以便在看门狗超时发生时进行相应的处理,例如记录日志、执行特定操作或进行故障恢复。 请注意,硬件看门狗电路的具体设置方式会因硬件平台的不同而有所差异。因此,您需要参考硬件供应商提供的文档或参考设计手册来了解具体的设置方法和参数配置。 另外,为了确保系统的稳定和可靠性,在设置硬件看门狗电路时,请务必注意以下几点: - 设置合适的看门狗定时器超时时间,以保证系统可以在正常运行过程中及时喂狗,避免误触发复位。 - 在系统初始化期间,确保正确地配置和启动看门狗定时器,以防止出现意外复位或系统死锁的情况。 - 在系统运行过程中,定期喂狗,确保看门狗定时器不会超时触发复位。 - 在系统设计中,合理考虑看门狗超时处理的策略和操作,以便及时发现和处理系统故障情况。 希望以上信息对您有所帮助。如果有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值