本文比较了内部(与微处理器集成)和外部(基于硬件)看门狗定时器(WDT)的优缺点。它解释了内部看门狗定时器易于实现,但容易发生故障。MAXQ2000微控制器的WDT作为内部看门狗的一个例子。基于硬件的看门狗定时器需要额外的电路板空间,但在可靠性至关重要的情况下是必不可少的。本文最后提供了一个比较矩阵,重点介绍了每个 WDT 解决方案的主要优点和缺点。
介绍
看门狗定时器 (WDT) 强制嵌入式微处理器或微控制器复位(硬件复位),以响应无效的软件状态。这种状态可以像由软件错误、宇宙射线或 EMI(电磁干扰)等事件引起的切换寄存器位一样简单。
本文探讨了为应用程序选择最佳计时器的一些注意事项。
WDT 的典型应用
防止微处理器锁定是WDT的典型应用。通常,嵌入式软件有一个“主循环”,它调用几个指导各种活动的子例程。然后,WDT 在循环顶部重置一次。如果循环因任何原因无法正确执行,则看门狗将触发并重置设备。
具有WDT的系统特别适合检测位错误。瞬时位错误是由中断引起的,包括软内存故障和 EMI 放电到存储设备及其接口。这些位错误会导致数据临时位极性翻转进出嵌入式处理器。当在获取程序信息时发生此位错误时,微处理器将开始执行错误的代码。潜在地,处理器可以开始执行操作数而不是操作码。当处理器开始执行此错误代码时,它将无法正确执行为监视器提供服务的代码。超时间隔后,看门狗将导致处理器重置。在正确设计的系统中,此重置将纠正原始错误。
另请注意,WDT 无法立即检测到故障。根据定义,WDT 必须达到预定时间间隔的终点,然后才能重置处理器。这一事实解释了为什么在 WDT 纠正失控条件之前应选择尽可能短的超时间隔过期。
内部WDT与外部WDT
WDT可以作为微处理器的内部,如MAXQ2000微控制器,外部作为独立的IC,或作为支持ASIC的一部分嵌入。无论 WDT 是内部还是外部,每种设备类型都有优点和缺点。内部定时器可以节省资金,但可能会受到失控代码的影响。虽然实现成本较高,但外部WDT具有单独的时钟源,可提供更好的可靠性;如果配置正确,失控代码无法绕过或禁用它。
基本 WDT 操作
每个WDT的核心都是一个计数器寄存器。时钟源不断递增计数器寄存器,当计数器溢出时,看门狗逻辑会强制系统复位。要防止此重置,必须定期清除计数器寄存器,此过程称为“维护监视器”。外部WDT IC具有一个数字输入,可在每次低到高或从高到低转换时清除计数器寄存器。对于内部 WDT,“服务”实现各不相同。例如,MAXQ2000的WDT可以通过设置寄存器位(MOVE WDCN.0,#1)来提供服务。PIC 微控制器和其他微处理器使用专用指令 (CLRWDT) 为计数器寄存器提供服务。
正常运行的软件应提供具有足够规律的数字信号转换,以便计数器寄存器永远不会溢出。但是软件可能会陷入无限循环或开始失控执行,从而无法清除计数器寄存器。这种情况最终会触发重置。WDT 周期是计数器溢出所需的时间。若要防止重置,监视器服务之间的间隔必须短于超时期限。
某些 WDT 包含比基本计数器寄存器体系结构更高级的功能。常见的变体是“窗口”或“最小/最大”WDT。此功能在看门狗维修太慢或过快时发出复位信号。如果清除计数器寄存器的信号到达,而计数器寄存器中的数字低于某个阈值,则器件将触发系统复位。简而言之,如果服务过快,看门狗会发出系统复位,从而在晶体振荡器开始以晶体标称频率的谐波运行时阻止微处理器运行。另一个功能通过逻辑输入(外部看门狗)或寄存器位(内部看门狗)禁用WDT。
微处理器内部的看门狗定时器
这篇简短的文章不能涵盖微处理器(μP)WDT的所有变化,而是介绍MAXQ2000微控制器内部的WDT。虽然该定时器比上述基本计数器寄存器 WDT 稍微复杂一些,但它类似于许多其他商用微控制器芯片上集成的 WDT。
如果不维修,MAXQ2000的WDT溢出,触发中断,额外计算512个系统时钟周期,然后自行复位。这种中断提供了保存调试信息的“最后机会”,大多数设计人员都认为这种机会在电路开发和故障排除期间很有用。此外,中断可用于从错误中恢复并清除看门狗,而不是保存调试信息。但是,后一种方法可能会损害系统的可靠性。
与其他内部WDT一样,MAXQ2000的看门狗可以通过软件禁用。但是请注意,此功能是一把双刃剑:失控的代码可以禁用监视器,然后继续其横冲直撞。
某些微处理器将其 WDT 连接到独立于系统时钟的内部振荡器。虽然MAXQ2000的WDT时钟来自系统时钟,但MAXQ2000的时钟电路在主振荡器发生故障时将切换到备用RC振荡器。
看门狗定时器 IC
专用的外部WDT IC具有广泛的功能,许多制造商都提供。有些器件,如MAX6752,具有“窗口看门狗”功能。MAX6752还可以使用外部电容调整看门狗超时周期和复位脉冲的宽度,从而满足微处理器和应用的要求。
MAX6369 WDT上的逻辑输入引脚可以禁用定时器并防止复位。尽管将逻辑引脚连接到微处理器很诱人,但这样做可能会损害系统可靠性,因为失控的代码可能会意外禁用看门狗。大多数情况下,在启动期间需要禁用看门狗,而微处理器启动。MAX6369在复位后提供超长的看门狗周期。然后,在首次为监视器提供服务后,将返回正常持续时间的超时。此方法比显式禁用和重新启用监视器计时器可靠得多。
外部看门狗定时器也可以监视 V抄送电源,并在该电压降至指定阈值以下时置位系统复位。一些定时器提供去抖动和ESD保护复位开关输入。此类IC中的电压监视器在工作温度范围内通常比某些微处理器中包含的内置掉电电路更准确。
结论
表1列出了外部和内部WDT的优点和缺点。 外部看门狗定时器IC更昂贵,因此应该用于需要更高可靠性的关键系统。但是,将WDT的禁用输入连接到微处理器(允许软件禁用看门狗复位),会损害内部看门狗定时器的可靠性。因此,微处理器内部的看门狗定时器主要适用于非关键系统和降低成本。
外部 WDT | 内部 WDT | |
优点 |
如果设计正确,不会意外地从软件中禁用。 时钟源独立于系统时钟。 提供最小/最大看门狗超时周期。 复位输出可以连接到需要复位的其他系统IC。 监视一个或多个电源轨(某些微处理器中的内部掉电电路不是很准确)。 超时周期可通过使用电容器完全调节。 |
成本基本上为零。 为了保存调试信息,它可以在重置之前触发中断。 使用方便。 有时,双向复位引脚可以连接到需要复位的其他系统IC。 当处理器从高速更改为低速或睡眠模式时,可以修改超时。 看门狗超时周期随温度的变化较小。 |
缺点 |
实施需要一些成本。 温度范围内的超时期限可能会有很大差异。 需要一条微处理器 I/O 线。 由于微处理器省电功能,必须计算超时以匹配高速和低速时钟模式。 |
几乎所有都可以通过软件禁用(因此,不那么可靠)。 |
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !