微信|嵌入式开发:设计智能看门狗的5个技巧

微信|嵌入式开发:设计智能看门狗的5个技巧

从系统故障或软件故障中恢复并非易事 。 故障发生的时间越长 , 就越难识别和恢复 。 使用外部看门狗是嵌入式开发人员工具箱中一个重要且关键的工具 。 设计看门狗系统时应考虑五个技巧 。

技巧1 – 监控心跳
外部看门狗可以拥有的最简单的功能是监视由主应用处理器产生的心跳 。 监测心跳应该有两个不同的目的 。 首先 , 微控制器应仅在对软件执行功能检查以确保其正常运行后生成心跳 。 其次 , 心跳应该能够揭示系统的实时响应是否受到威胁 。
可以使用简单的“哑”外部看门狗来监控软件功能和实时响应的心跳 。 外部看门狗应该能够分配心跳周期以及心跳必须出现在其中的窗口 。 心跳窗口的目的是让看门狗检测到系统的实时响应受到损害 。 如果功能或实时检查失败 , 则看门狗会尝试通过重置应用处理器来恢复系统 。
技巧2 – 使用低性能 MCU
可以监控心跳的外部看门狗成本相对较低 , 但会严重限制看门狗系统的能力和恢复可能性 。 低功能微控制器的成本几乎与外部看门狗定时器相同 , 所以为什么不为看门狗增加一些智能并使用微控制器 。 可以开发微控制器固件以通过添加更多功能来实现窗口心跳监控 。 像这样的“智能”看门狗有时被称为监管者或安全看门狗 , 实际上已在汽车等不同行业使用多年 。 通常 , 微控制器看门狗是为安全关键型应用预留的 , 但考虑到开发工具和硬件成本 , 它在其他应用中也具有成本效益 。

技巧3 – 监督关键系统功能
嵌入式开发人员使用小型微控制器作为看门狗的决定为如何使用看门狗开辟了几乎无限的可能性 。 智能看门狗的首要角色之一通常是监督关键系统功能 , 例如系统电流或传感器状态 。 看门狗如何监控电流的一个示例是进行独立测量 , 然后将该值提供给应用处理器 。 然后 , 应用处理器可以将自己的读数与看门狗的读数进行比较 。 如果两者之间存在分歧 , 那么系统将执行一个被认为适合应用程序的故障树 。
技巧4 – 观察沟通渠道
有时 , 嵌入式系统可能看起来像看门狗和应用处理器所期望的那样运行 , 但从外部观察者看来 , 它处于无响应状态 。 在这种情况下 , 将智能看门狗连接到通信通道(例如 UART)会很有用 。 当看门狗连接到通信通道时 , 它不仅监控通道流量 , 甚至监控特定于看门狗的命令 。 一个很好的例子是为监视飞行计算机和地面站之间的无线电通信的小型卫星设计的看门狗 。 如果飞行计算机对无线电无响应 , 则可以向看门狗发送命令 , 然后执行该命令并用于重置飞行计算机 。
技巧5 – 考虑外部定时复位功能
当使用微控制器作为看门狗时 , 谁在看门狗的问题无疑是许多工程师的想法 。 使用微控制器来实现额外的功能会增加系统的复杂性和新的软件元素 。 如果看门狗陷入困境 , 看门狗将如何恢复?一种选择是使用前面讨论过的外部看门狗定时器 。 智能看门狗会产生一个心跳 , 以防止自己被看门狗定时器重置 。 另一种选择是让应用处理器充当看门狗的看门狗 。 需要仔细考虑确保两个处理器按预期运行的最佳方法 。
结论
【微信|嵌入式开发:设计智能看门狗的5个技巧】智能看门狗的目的是监控系统和主微控制器 , 以确保它们按预期运行 。 在系统看门狗的设计过程中 , 允许支持的功能数量增加是非常诱人的 。 嵌入式开发人员需要记住 , 随着智能看门狗复杂性的增加 , 看门狗本身包含潜在故障模式和错误的可能性也会增加 。 保持看门狗的简单性和最少的必要功能集将确保它可以经过详尽的测试并被证明可以工作 。

相关经验推荐