目前,在许多情况下,设计人员会用软件实现以往由硬件才能完成的电路功能,其中部分原因是低成本的微处理器(μP)为大家提供了广泛的选择。软件常常是解决问题成本最低、灵活性最高的方案,但它也迫使设计人员进行一些额外的测试以确保系统的可靠性。当然,如果程序没有代码错误也就不存在上述问题,细心的测试能够在1000条指令中减少1至10条错误。而设计人员则希望在10,000条指令中出错率不要超过十处。在台式机系统中出现导致系统瘫痪的软件错误并不可怕,因为用户只需重新启动系统即可,它只会造成少量数据的丢失。然而,对于运行在工控系统的软件,系统则必须能够在没有人为干预的条件下恢复故障。这一特性在两种情况下非常关
在单片机与DSP系统设计中,为了提高系统的可靠性和稳定性,经常采用“看门狗”技术。看门狗是一种监控机制,它主要用于检测和预防软件的异常行为,确保系统在遇到错误时能够自动恢复,避免系统长时间无响应或者崩溃。在微处理器和数字信号处理器(DSP)广泛应用的今天,软件的复杂性和错误可能性增大,看门狗成为保障系统连续运行的重要手段。
看门狗的工作原理是基于一个计数器,这个计数器在一个预定的时间周期内必须被重置(清零)。如果在规定的时间内没有收到重置信号,看门狗就会触发一个复位事件,使得系统重启或执行预设的故障恢复程序。在大多数情况下,看门狗的输入引脚(WDI)通过微处理器的一个I/O口连接,通过软件指令来触发重置计数器的操作。如果看门狗计数器溢出,即在设定的时间周期内未被重置,它将发出复位信号,导致系统回到初始状态,从而摆脱可能存在的死循环或其他软件错误。
选择合适的看门狗延时周期是关键,它应该远大于程序预期的最长执行时间,但也不能过长以免影响正常操作。常见的看门狗延时范围在100毫秒到2秒之间,更高级的看门狗芯片可以提供更宽的延时调整范围。为了防止系统陷入无法恢复的死循环,除了在主程序的多个位置设置看门狗触发,还可以结合任务完成标志来控制看门狗的激活,确保每个重要任务的正常执行。
此外,内部集成的看门狗虽然方便,但在高可靠性系统中,由于其可能受到软件错误的影响,通常推荐使用外部独立的看门狗电路。外部看门狗不受微处理器内部状态影响,能提供更高的安全性,特别是在关键应用如工业控制、医疗设备、汽车电子等领域。
看门狗技术是提升单片机与DSP系统可靠性的有效方法,通过监控和自动恢复机制,它能够在软件错误发生时及时纠正,确保系统能够持续、稳定地运行,减少因软件异常导致的停机时间和数据丢失,提高整体系统性能和用户满意度。在设计阶段,设计师应充分考虑看门狗的应用,合理设置延时周期,以及采取适当的策略防止系统陷入无法恢复的状态,以达到最佳的系统可靠性和安全性。