对于多线程,实时和多任务嵌入式系统的全部复杂性,它已成为越来越难以预测的一个微型的行为不端。有了这么多的服务程序操作略微独立是非常有可能的,有人还活着,而其他人都被锁定,死亡,或执行无意义的代码。因此,现在是比较困难的嵌入式系统设计师来保护整个系统从在一些低服务程序或内核,走入歧途发生的故障。本文着眼于更先进的看门狗功能不断变化的需求和技术的工程师可以使用,以确保可靠的MCU操作。它探讨了需要用软件来解决这两个外部硬件和内部缺陷和看样品看门狗的部分。所有部件,数据表,教程和发展引用在这里可以在Digi-Key的网站上找到。
简单的保护
对于需要看门狗功能涵盖了从4位到先进的32位机和超越。它不是经常可以看到简单的处理器执行的潜在的危险情况。例如,一个油门控制回路可以仅局部地需要一种简单的混合信号的8位微控制器,以提供稳定的闭环控制。它可以通过命令汽车的CAN总线,可以卸载所有的处理从远程车载电脑。但是,如果简单的处理器出现故障,全油门可能是致命的。可以有把握地说,几乎每一个现代的微控制器包含了一些基本的看门狗功能,无论是可用于实现软件控制的看门狗功能的专用看门狗硬件模块或通用定时器。这些都是同步到所述处理器的系统时钟。随着处理器变得更加复杂,因此也可以超频处理器本身内部结构和时钟分配。振荡器可以是特别容易受到ESD命中,例如,如果时钟走下来,同步监督机构也没有好处。的R / C振荡器和时间常数可以是旧的学校,但可以提供独立的时钟机制和复位机制作为后备或备份。同样的,冗余的内部 - 外部振荡器源可以提供某种形式的心跳,保持监测电路正常工作时的不良故障。可选择融合时钟也很重要,因为是在树的时钟(图1)的位置。
图1:结合系统时钟进行备份的R / C振荡器可以降低功耗和系统时钟被破坏了可靠的独立备份时钟监视功能在事件。注意如何两个R / C振荡器用于更换预定同样适用于低电压检测电路。而基本的精度可以使用内部电压基准,比较器和检测器来实现,外部电路可以提供更高的分辨率和更精确的电压电平选择性。例如,如果你的电压故障模式软件的一部分,包括写入EEPROM,你可能想提前跳闸低电压检测器的阈值,使电容内的电荷储存足够的时间以有序的方式关闭之前执行EEPROM写。现代的电压检测器可以实现电压的分辨率降低到0.05 V为精确使用的所有能源。这通常是一个更好的分辨率比,你会发现在内部具有微。的是,单独的最大超时并不总是有效的另一件事情要注意。大多数看门狗方案基本上实现再触发的,单稳态触发器(重新触发的1次)的功能。如果软件或硬件循环时钟不一个最大允许时间帧,看门狗行程内复位定时器并复位处理器(或启动故障恢复服务程序)。最短时间要求也感兴趣。
如果一个服务程序,例如,与一个60赫兹的电力线的零交叉同步,则脉冲应8.33毫秒分开。如果他们到达的早晚,噪声或故障情况,必须加以处理,往往与安全的后果。多处理器和多核心的设计有特殊的情况。个别监督者应设置为监视每个处理器核心或与该处理器当时运行的代码的独特条件。这意味着针对在多核环境中的核心,应该随身携带它的具体监督情况表明发生故障的特定代码块的软件开发的一部分。此外,看门狗报告应该是分层的。每个核心应报告给更高级别的看门狗来自所有subcores和过程报告的所有的故障模式联系在一起。作为上位系统的功能,一个看门狗行政工作的手在手与主任务执行该分配码块以特定的核。它也应该与外部监督系统的紧密合作。线或型多看门狗块可以很容易地扩展到使用I / O具体到一个核心中(图2)报告。它可以是FPGA或CPLD内部的一个独立的逻辑块和处理多个处理器和街区,可轻松扩展。的寄存器可以积累所有报告块的独立地位,试图单独恢复的核心。正如你可能想象,恢复程序变得更加复杂,在这个级别一样如何重新引导内核,而让系统运行的其余部分。
图2:看门狗层次的顶层可以使用可膨胀的线或功能,以允许所有万分之一或内核,在他们自己的报告率在。每1次应该允许它被监测的时间间隔进行编程的过程。它监视每一个参数的代码块进行。
零件进行特殊的看门狗功能
几万分之一拥有独特的或不同的功能,当谈到他们如何实现自己的监督者。就拿16位马克西姆MAXQ系列,它结合了灵活的定时器种类丰富巧妙的电路,以提高实用性。如Maxim的MAXQ2000-RBX +部件有戒备二级。如果没有维修和MAXQ2000的WDT溢出,引发与512额外的系统时钟周期的额外计数中断。然后,将所有如果没有禁用或覆盖。这种中断提供了“最后一次机会”来保存调试信息,大多数的设计师达成了共识,电路开发和故障排除过程中非常有用的机会。更重要的是,而不是保存调试信息,中断可用于从错误中恢复和清除看门狗。这后一种方法,但是,可以破坏系统的可靠性,如果一个系统存在故障。像其他内部WDTS,MAXQ2000的看门狗可以通过软件禁止。但是,请注意,此功能是一个双刃剑:失控代码可以禁用看门狗,然后继续横行。一些微处理器他们WDT到内部振荡器独立于系统时钟。有些使用内部或外部的R / C振荡器,有些可以同时使用。一个有趣的功能存在于马克西姆MAXQ2000的WDT派生看门狗定时由系统时钟,但将切换到备份RC振荡器在主振荡器一个故障的情况下。
另一个有趣的MCU具有独特的看门狗功能是STM32F100系列意法半导体万分之一,其中有两个看门狗定时器。像STM32F100CBT6B零件的目标需要有可靠的智能电网和智能医疗应用。像大多数万分之一,它有多个定时器,在这种情况下6,与另两个16位的定时器专用于看门狗功能。每个看门狗具有一个可选择的预分频器(从1到64 K),可用于时钟看门狗定时器也能触发DMA请求和捕获比较通道。还有一个独立的看门狗是基于一个112位的递减计数器和8位预分频器由一个独立的40 kHz内部的R / C振荡器时钟。请注意这两个部分是如何依赖于R / C元件的超可靠的备份技术。意法半导体部分的一个有趣的特点是模拟看门狗功能。精确监测的从A / Ds的一个或多个转换后的电压电平可以跳闸复位如果模拟水平编程阈值之外。这对于其中传感器连接到一个身体区域网络健康监测或活性药物分配(图3)的医疗应用中是有用的。作为一个辅助设计,意法半导体为工程师提供医疗保健和健康设计一个产品培训模块。
图3:作为医疗装置集成更积极地与我们的身体区域网络,一些设备(起搏器,除颤器,胰岛素泵等)可能是极其重要的维持生命。可靠监督者需要被工程化到这些系统。
在外面看
有几个不错的积木式的外部解决方案,包括简单的R / C门槛发电机,偏置的晶体管,低功耗定时器和专用的上电复位和看门狗伴侣处理器。此外,开发环境提供了鼓励试验和易用性测试。德州仪器(TI)提供了一个有趣的解决方案以其TPL5000纳米功耗可编程定时器,吸引了30 nA的在宽1.8至5 VCC。该TPL5000EVM评估套件可让您测试和一个可爱的小自包含的模块优化此功能。几个离散的监督者可结合其他有用的功能,例如实时时钟和监控功能。一个有趣的组合是来自莱迪思半导体公司,其ISPPAC-POWR607-01SN32I电源监控器,看门狗和复位发生器(图4)。注1%的模拟跳变点步长和在系统可编程宏小区的状态机和组合定制。
图4:在系统用户可编程参数允许看门狗功能,动态决定通过使用组合和状态机为基础的用户可配置逻辑。
结论
请记住,有次在那里不会有任何帮助恢复系统。有些故障模式是不可恢复的。例如,如果系统内存损坏,没有别的可以信任。另一种情况是,如果有非常高的水平的噪音。即使看门狗复位处理器,噪声可以与看门狗级的处理器的初始化干扰。如果看门狗功能ca的不被初始化,这是因为如果没有看门狗可言。没有人可以依靠任何MCU对100%的无故障运行所有的时间。 MICROS可能会出现偏差。但是,聪明的利用内部和外部资源可以做一个温和的故障和灾难性的财产损失,甚至失去生命之间的差异。