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


19

微控制器需要一个外部看门狗定时器吗?

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

Answers:


10

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

诸如TI的Hercules系列之类的某些微控制器非常重视安全性至关重要的系统应用,并且更有可能满足严格的要求,但是它们可能不适用于对成本敏感的应用。

通常,WDT是减少故障可能性而导致财产损失或生命损失的多种方法之一。通常将其他功能(例如,用于检测对MCU内存的意外访问的内存保护或从未使用的内存中提取程序)与WDT结合使用。

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

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

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


33

看门狗定时器可以防止硬件错误车片的...切削刃微控制器。我们最近使用的一个著名品牌的I / O引脚偶尔会丢失中断,有时无法正确启动,并且集成的看门狗有时无法将系统重置为已知状态。

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

如果PCB上有多个IC,则可能还需要一个外部复位IC或电压监视器,以使所有组件可靠地启动。其中许多也可以充当看门狗。


9
“集成的看门狗有时无法将系统重置为已知良好状态”-在功能上等同于“没有内部看门狗”。
德米特里·格里戈里耶夫

32

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

因此,为了进行认证,通常更容易在板上放置一个外部看门狗,然后说:看有我们的看门狗,它必须由MCU在该间隔内触发,该间隔比我们的故障时间短,因此我们的设备是安全的正如我们定义的那样。


解决一些意见:

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

通常可以通过故障插入测试来证明这一点,您可以将其提交给认证机构。因此,您向他们展示了初始化发生在哪里以及看门狗触发发生在哪里的代码。他们通常会要求您以某种方式修改代码,以便在经过一定时间后停止看门狗的触发,并检查控制器是否已正确重置。

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

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

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

在这种情况下,您需要使用窗口看门狗,该窗口看门狗必须在一定的间隔内触发,如果这样做失败(触发次数过多或过少),则会重置电路。我正在使用的STM32有一个内部窗口看门狗,但是它运行于从主时钟派生的PCLK1上,因此我认为它不像具有自己的时钟源的外部看门狗那样有用。

或某些天才没有将看门狗服务例程放入计时器ISR中,因此主代码可能会崩溃,但中断会继续触发和维护看门狗...

的确是这样,但是希望能有一个天才回到他的椅子上-但是,当我刚开始的时候,那也是我的第一个想法:D。在我参与的认证过程中,他们始终关注软件的看门狗部分。


4
“并且总是像应该的那样运行”-好点。与仅使用看门狗芯片并参考其数据表相比,很难证明您的软件在所有情况下都能正确初始化内部看门狗。
JimmyB

4
@JimmyB或证明您的代码不包含意外禁用内部看门狗的错误。
TripeHound18年

2
@TripeHound或证明您的代码不会疯狂运行,以尽可能快的速度连续重置外部看门狗。问题解决了。;-)
JimmyB

2
或某些天才没有将监视程序服务例程放入计时器ISR中,因此主代码可能会崩溃,但中断会继续触发和维护监视程序……
John U

@JohnU,但是,似乎外部IC无法提供帮助。
ilkkachu

12

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

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

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

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

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

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


根据我对外部wdog的经验,我会说它们不如内部wdog健壮,仅因为另一个外部电路可能会损坏。焊接,EMI,ESD等。如果设法将时钟输入短路到某物,则有效地禁用了外部wdog。所以我真的不买增加安全性的东西。如果您一次兼顾了两者,那么可以肯定,您会因此稍微提高安全性。
伦丁'18

@Lundin大多数使用内部RC振荡器或电容器放电,而不是外部时钟。实际上,我想不出使用外部时钟的任何辅助工具。同样,如果您有外部和内部的看门狗,那么失败就不会加在一起,而且一个失败显然比只拥有一个更好。
用户

3

某些认证(例如UL)可能要求对两点故障进行保护。外部看门狗定时器被认为是针对第一故障点(微控制器)的保护。


2

在这方面,看门狗与您在MCU中找到的任何其他内置外设实际上并没有什么不同。MCU带有定时器,RTC,ADC,EEPROM和复位控制器,但所有这些功能也作为独立的IC存在。如果可用的内置块不满足您的要求,则必须使用外部块。或者,您可以尝试找到具有所有正确功能块的MCU,这些功能块可能不存在,或者过于昂贵或难以移植代码。


1

看门狗是一个计时器,当IC在一段时间内丢失输入脉冲时便激活其输出。

它是一个构建基块,可以用于任何应用程序。

因此,它们可以在任何应用程序中使用,例如,以故障安全模式更改数据路由。当微控制器时钟出现故障时,我们无法禁用一些关键输出。

外部看门狗与微控制器的复杂时钟域无关,并且其中一些具有模拟RC充电时序或内部时钟。

当电荷击中触发器时,辐射中的数字电路可能会触发输出。但是某些模拟电路更安全,因为它们将电荷集成在电容器中,而当我们将其集成时,它是安全的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.