制定看门狗策略很容易。只需启用微控制器的内部看门狗定时器,并设置一个中断,偶尔清除定时器,让狗高兴,对不对?不完全是。看门狗有助于确保我们正在创建的嵌入式系统是健壮的,并且可以检测出是否有什么东西出了问题。单个设备在工作台上出错的可能性很小,但一旦生产开始,成千上万(如果不是数百万)的设备被部署到现场,产品粉碎故障发生的可能性就会大大增加。嵌入式开发人员在选择看门狗策略时需要做出很多决定,但可以通过确定系统需要的位置来确定整体策略,如下图所示:
在上图中,x 轴代表系统自行检测错误的能力,最左侧为无错误检测,最右侧为高能力。y 轴表示系统能够自行从错误中恢复的期望。轴越往上走,系统将自行从错误中恢复的期望就越高。轴越低,如果出现问题,人类干预的期望就越高。
根据一般的系统需求,图表可以分为四个主要部分:自主的、互动的、被监控的和被遗忘的。开发人员需要确定哪个区域最能代表他们的系统,以便确定他们的看门狗策略。以下是每个地区的定义。
自主的——这些系统预计会在没有人工干预的情况下自行运行。这些系统需要能够可靠地检测错误是否发生,并自行从错误中恢复。
互动的——这些系统预计会检测到错误,但不一定会自行恢复。在许多情况下,错误可能需要人工检查,因此错误必须是可检测的,然后嵌入式开发人员将与系统交互以解决问题。
被监控的——这些系统在运行时会被人持续观察。在这些系统中,人是错误检测系统。
被遗忘的——这些系统预计会自行恢复,因为附近没有人,但由于它们的设计,它们甚至无法检测到是否发生了错误。如果实施了适当的监视策略,任何系统都不应该属于这一类。然而,许多匆忙或没有通过设计思考的团队可能会意外地陷入这一类别。
一旦确定了所需的看门狗策略,开发人员就可以使用简单的vien图来确定看门狗实现的选项。下图为开发者提供了一个基本的想法,但是完整的细节超出了这个基本的讨论。请记住,每个策略都应该遵循可能会变得非常复杂的看门狗最佳实践。
使用上面的两个图表,开发人员可以感觉到在开发他们的系统监视器策略时应该考虑什么。例如,自主设备将需要所有三种策略的组合。每一个策略本身都将更加详细,并且可以由许多层组成,以便正确地处理可能的错误模式。这些细节留待以后讨论,但现在,嵌入式开发人员确定正确的看门狗策略是朝着正确方向迈出的一步。