从系统故障或软件故障中恢复并非易事。故障存在的时间越长,识别和恢复的难度就越大。外部监视器可以帮助系统快速应对此类故障。
外部监视器是嵌入式系统工程师工具箱中的重要和关键工具。但是,它们必须正确设计,以便捕获系统故障而不会导致系统故障。在设计看门狗系统时,应该考虑五个提示。
提示1 - 监视心跳
外部监视程序可以具有的最简单的功能是监视主应用程序处理器生成的周期性“心跳”信号,以及心跳失败时生成错误信号。监测心跳应该有两个不同的目的。首先,微控制器应仅在对软件执行功能检查后生成心跳,以确保软件正常运行。其次,心跳应该能够揭示系统的实时响应是否已经受到危害。
使用简单的“哑”外部监视器可以监控心跳的软件功能和实时响应。外部看门狗应该能够分配心跳周期以及心跳必须出现在其中的窗口。心跳窗口的目的是允许监视程序检测系统的实时响应何时受到损害。如果功能或实时检查失败,则看门狗会尝试通过重置应用程序处理器来恢复系统。
技巧2 - 使用低性能MCU
可监控心跳的基于定时器的简单外部看门狗成本相对较低,但严重限制了功能和恢复的可能性看门狗系统。低功耗微控制器的成本与外部看门狗定时器的成本几乎相同,那么为什么不向看门狗增加一些智能并使用微控制器呢?可以开发微控制器固件以实现窗口心跳监视,并增加更多功能。
像这样的“智能”监管机构有时被称为主管或安全监督机构,实际上已经在汽车等不同行业使用了很多年。通常,基于微控制器的看门狗主要用于安全关键应用。鉴于现有的开发工具和硬件的低成本,这种设计在其他应用中也具有成本效益。
提示3 - 监督关键系统功能
决定使用一个小型微控制器作为监视器打开几乎无限的可能性如何使用看门狗。添加到智能监视器的第一个角色之一通常是监督关键系统功能,例如系统电流或传感器状态。看门狗如何监控电流的一个例子是对电流进行独立测量,然后将该值提供给应用处理器。然后,应用程序处理器可以将自己的读数与看门狗的读数进行比较。如果两者之间存在分歧,则系统将执行被认为适合于应用程序的故障树。
提示4 - 观察通信信道
有时嵌入式系统看门狗和应用处理器可能会按预期运行,但对于外部观察者来说处于无响应状态。在这种情况下,将智能看门狗连接到通信通道(如UART)会很有用。当看门狗连接到通信通道时,它不仅可以监控通道流量,还可以接收监视器特有的命令。
这方面的一个很好的例子是为小型卫星设计的监视器,用于监控飞行计算机和地面站之间的无线电通信。如果飞行计算机对无线电无响应,则可以向看门狗发送命令,然后执行该命令并用于重置飞行计算机。
技巧5 - 考虑外部定时复位功能
使用微控制器实现具有额外功能的看门狗会给系统设计增加一些复杂性和新的软件元素。因此,在这样的系统中谁在监视看门狗的问题无疑是许多工程师的想法。如果看门狗本身进入杂草状态,看门狗将如何恢复?
一种选择是使用前面讨论过的哑外部看门狗定时器。智能看门狗会产生一个心跳,以防止被愚蠢的看门狗定时器复位。另一个选择是让应用程序处理器充当监视程序的监视程序。需要认真考虑确保两个处理器保持正常运行的最佳方式。
结论
智能看门狗的目的是监控系统和主微控制器,以确保它们按预期运行。在系统监视器的设计过程中,允许看门狗支持的功能数量向上爬行非常诱人。开发人员需要记住,随着智能监视器的复杂性增加,监视器本身将包含潜在故障模式和错误的可能性也随之增加。保持监视器的简单性和最小必要的功能集将确保它可以经过详尽的测试并证明可以正常工作。
-
看门狗
+关注
关注
10文章
558浏览量
70718 -
PCB打样
+关注
关注
17文章
2968浏览量
21630 -
华强PCB
+关注
关注
8文章
1831浏览量
27704 -
华强pcb线路板打样
+关注
关注
5文章
14629浏览量
42953
发布评论请先 登录
相关推荐
评论