外部看门狗定时器的必要性

电器工程 微控制器 嵌入式 重置 看门狗
2022-01-28 06:24:20

微控制器对外部看门狗定时器有什么要求?

大多数微控制器都设计有内部看门狗定时器。但是,在某些电路中,他们使用外部看门狗定时器(例如 PIC16F1824)。

4个回答

看门狗定时器可以防止出现故障的……尖端微控制器中的硬件错误。我们最近使用的一个著名品牌的 I/O 引脚偶尔会错过中断,有时无法正确启动,并且集成的看门狗有时无法将系统重置为已知良好的状态。

直到我们开始进行长时间的可靠性测试时才出现这种情况,并且添加外部看门狗比更改微控制器更容易。

如果您在 PCB 上有多个 IC,您可能还需要一个外部复位 IC 或电压监视器以使一切可靠启动。其中许多也可以用作看门狗。

很难争辩说,内部看门狗的内部时钟实际上是独立于所有其他时钟的,并且始终按应有的方式运行。

因此,对于认证,通常在板上放置一个外部看门狗并说:看有我们的看门狗,它必须由 MCU 在那个间隔触发,这比我们的故障时间短,所以我们的设备是安全的正如我们定义的那样。


为了解决一些评论:

“并且总是以应有的方式运行” - 好点。与仅使用看门狗芯片并参考其数据表相比,要证明您的软件在所有情况下都正确初始化了内部看门狗可能更难。

这通常通过故障插入测试来证明,您将其提交给认证机构。所以你向他们展示你的初始化发生在哪里的代码,以及看门狗的触发发生在哪里。他们通常会要求您修改代码,使看门狗的触发在经过一定时间后停止,并检查控制器是否正确复位。

或者证明您的代码不包含意外禁用内部看门狗的错误。

至少在某些控制器上看门狗被称为独立的并且有自己的时钟源并且不能通过软件方式禁用,只有控制器的复位才会禁用看门狗。至少在理论上 - 很容易证明您无法通过软件停止它,但很难证明时钟是真正独立的并且不会在 EMI 下停止。

或者为了证明您的代码不会不断地疯狂运行,尽可能快地重置外部看门狗。问题解决了。;-)

对于这种情况,您使用必须以特定间隔触发的窗口看门狗,如果您未能这样做(触发太频繁或太少)将重置电路。我正在使用的 STM32 有一个内部窗口看门狗,但它从派生自主时钟的 PCLK1 运行,所以我认为它不如具有自己时钟源的外部看门狗有用。

或者某些天才没有将看门狗服务程序放在定时器 ISR 中,因此主代码可能会崩溃,但中断会不断触发并完美地为看门狗服务......

这当然是真的,但希望评论能让那个天才重新回到他的椅子上 - 但是当我开始时,这也是我的第一个想法:D。在我参与的认证过程中,他们总是查看软件的看门狗部分。

某些产品必须满足安全要求,要么由制造商确定,要么满足国际安全标准,例如 IEC 60730-1,或美国仍在使用的旧版 UL1998。任何给定微控制器中的内部看门狗功能可能足以使用,也可能不足以使用。在某些情况下,外部 WDT 可以与内部 WDT 结合使用。

某些微控制器(例如 TI 的 Hercules 系列)非常重视安全关键系统应用,更有可能满足严格的要求,但它们可能不适合对成本敏感的应用。

通常,WDT 是降低故障导致灾难性财产损失或生命伤害的可能性的多种方法之一。其他诸如检测对 MCU 内存的意外访问或从未使用的内存中提取程序的内存保护通常与 WDT 结合使用。

执行安全关键功能的廉价产品的例子有汽车子系统、车库门控制器和用于熔炉、烘干机和热水器的燃气(天然气或丙烷)点火控制器。当然,许多医疗和航空产品也对安全至关重要,但可能有足够的空间用于冗余和其他方法。在某些情况下,可能没有容易到达的安全状态——例如,在飞机上。

理想情况下,看门狗定时器非常简单,独立于 MCU(例如,它应该有自己的时钟源,也许还有时钟监视器),不能(通过软件)设置为比任何软件错误造成损坏的时间更长的时间,如果没有按时“抚摸”系统,则会将系统置于安全状态,无论是超时还是窗口方式,因此可以检测到过于频繁的重置。例如,热控制应用中的 WDT 可能设置为几秒钟,因为如果微控制器锁定该时间长度,则不会造成损坏。

WDT 作为系统级可靠性和安全性方法的一部分最为有用。

微控制器中内置的看门狗具有特定的属性,这意味着它们本身可能会以不同的外部看门狗可能不会发生的方式发生故障。

例如,一种常见的设计是使用从低功耗 RC 振荡器运行的看门狗定时器。该振荡器可能会发生故障。在许多情况下,基于电容器放电而不是振荡器的外部看门狗仍然可以复位微控制器。

另一个原因是外部看门狗可以更强大。微控制器可能只能在一定的电压范围内可靠地运行,并且作为一个复杂的设备可能会以一种使其内部看门狗失效的方式锁定。外部看门狗可能具有更宽的可接受电源范围,并且在受到电噪声时不太容易出现问题。

外部看门狗通常也提供更广泛的超时值。我经常使用的微控制器 XMEGA 的最大超时时间约为 7 秒。对于一个产品,我添加了一个额外的外部看门狗,超时时间为 2 小时。这让我可以每小时唤醒一次微控制器,而不是每隔几秒钟唤醒一次,从而降低电池供电设备的功耗。

外部看门狗有时具有多种功能,例如定时器和电压监控/复位控制。同样,这些也可以比微控制器的内置系统低功耗。

外部看门狗的另一个有趣的优点是它可以用于复位微控制器以外的设备。例如,它可以控制电压调节器的使能引脚,使整个电路断电以一次复位多个设备。使用一些简单的逻辑,可以组合来自多个源的看门狗复位信号,从而允许看门狗需要多个设备不断地对其进行复位。