看门狗定时器有哪些方法?

电器工程 微控制器 安全 计时器 看门狗
2022-01-23 01:24:40

我最近了解了看门狗定时器,并试图为我的电路实现一个,以便在我的 (AVR) 微控制器挂起时重置它(即,不响应看门狗)。

根据一些研究,在我看来,大约有四种选择:

  1. 将我的微控制器与外部专用看门狗定时器专用 IC连接。
  2. 将我的微控制器与一个额外的微控制器(一些非常基本、便宜的微控制器)连接起来,后者编码的唯一专用目的是看门狗定时。
  3. 布置我自己的基于 555 定时器的看门狗电路并将其连接到我的微控制器。
  4. 在我的微控制器上使用内部看门狗定时器功能。

.

您会在上述哪种方法中排名更高,为什么?

我想设置一个大约 6 秒的看门狗时间,基于我制作其余设计和代码的方式的某些标准(该设备将是一个电池供电的周期性温度记录器)。

一点提示:为简单起见,我更喜欢选项 1,但是,根据我发现的这对夫妇,这些部件要么看起来很贵(我想要一个最多低于 1.25 美元的解决方案),要么只允许更少看门狗计时周期超过 2 秒。

3个回答
  1. 更贵,正如您已经发现的那样。但它应该为您提供最高级别的可靠性:因为看门狗完全独立于微控制器,它仍然会继续运行,并在后者着火时重置微控制器,可以这么说。见 4)
  2. 布赖恩反对它,但有一些小封装的廉价微控制器,例如 SOT-23 中的 PIC10F200,您可以将其用作可重新触发的 MMV(单稳态多谐振荡器),实际上就是看门狗。如果您考虑使用 555,则 10F200 更好:没有外部部件,并且计时更准确(1% 准确度)。
  3. 555?严重地?
  4. 如果专用 IC 太贵,内部看门狗就可以了。如果你真的很偏执,你可以想到一些硬件错误会锁定微控制器和看门狗的场景。我从来不知道会发生这种情况,但我不知道你睡得怎么样。

喜欢pjc50说6秒很长。一个典型的微控制器会在这段时间内执行数千万条指令,然后可能会出现很多错误。假设您正在使用 PWM 控制一些负载,并且 10% 的低占空比使功耗保持在较低水平。微控制器出现故障,输出卡在高电平,100% 占空比。负载不喜欢它,然后死去。您不想等待 6 秒钟。您的代码的某些部分应该更频繁地传递。例如,主循环可能短至 10 毫秒,然后您可以将看门狗的超时设置为 100 毫秒。如果你每 10 毫秒踢一次狗,那么超时意味着你错过了 10 次!一次,好吧,但十次是灾难,你必须采取行动。负载将在 100 毫秒而不是 6 秒后关闭,

  1. 看门狗定时器简单、有效、便宜。显而易见的选择。
  2. 一个额外的微控制器是多余的。它没有帮助,因为您必须对其进行编程,它更昂贵,面积更大。
  3. 这是有道理的。但我会做 1 代替。更现代。
  4. 如果它有效,我会使用它。他们唯一的问题是它可以设置为 6 秒。

如果您的电路/设备没有控制对生命至关重要的硬件,您可能可以使用内部看门狗。否则(或实际上,无论如何)请查看 Jack Ganssle 的这两篇精彩文章:

http://www.ganssle.com/watchdogs.htm

http://www.ganssle.com/articles/watchdogsredux.htm

顺便说一句,如果你不能将看门狗设置为长间隔,你可以尝试经常醒来以踢看门狗的方法,但只是偶尔进行一次完整的测量/写入日志。