0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

看门狗提高系统可靠性—如何选择正确的器件

星星科技指导员 来源:ADI 作者:ADI 2023-05-08 11:29 次阅读

看门狗计时器用于监视和最小化代码执行错误。内部看门狗定时器容易受到代码执行问题的影响,使得外部看门狗电路在防止系统锁定方面非常宝贵。

本文档有助于为不同类型的应用选择正确的看门狗/监控产品时间,以及如何在没有软件代码的情况下应用电路。

以前使用专用硬件实现的许多电路功能现在都在软件中实现,部分原因是当今低成本微处理器(μP)的广泛选择。虽然软件通常是解决问题的成本最低、最灵活的方法,但它迫使设计人员采取额外措施来确保系统可靠性。虽然没有代码错误的程序,但仔细的测试可以将错误数量减少到每 1000 行代码 10 到 10 个。因此,设计人员必须期望在具有 000,<> 行代码的典型控制软件程序中至少出现 <> 个代码错误。

导致系统崩溃的桌面应用程序软件错误并不严重,因为用户可以重新启动系统,而只有轻微的数据丢失。但是,对于工业控制软件,系统必须能够在没有人为干预的情况下从代码错误中恢复。此功能对于两个主要类别至关重要:具有高可用性的系统,例如服务器、电话系统和生产线;以及必须高度可靠的系统,因为碰撞可能导致受伤,例如汽车、医疗器械、工业控制、机器人和自动门。即使这些标准都不适用,也最好在没有用户干预(按复位或电源循环)的情况下进行系统崩溃/恢复。如果设备在没有人为干预的情况下从错误中恢复,则此设备的感知质量良好,因为用户不知道设备内部出了问题。实现这种改进的系统可靠性的一种简单有效的方法是使用看门狗。

看门狗

监视器是必须在监视器超时期限内清除的计数器。如果未进行清除,监视器将生成重置以导致系统重新启动或创建不可屏蔽中断 (NMI),从而导致程序分支进入故障恢复子例程。大多数看门狗都是边缘触发的。因此,看门狗输入 (WDI) 上的上升沿或下降沿将清除计数器。WDI 引脚连接到处理器 I/O 引脚,该引脚由软件切换(图 1)。

wKgaomRYcK6AOybeAAAUaxjuhWs034.png

图1.微处理器通过WDI引脚上的脉冲清除看门狗定时器,以防止复位。

清除看门狗计数器的命令必须发生在主程序循环中(图2)。如果未清除监视程序,则进行重置,软件分支到地址 0000(启动例程)。计算执行主循环所需的时间通常很困难,因为可能会调用许多子例程,具体取决于系统的输入。因此,设计人员通常选择比最长测量或计算的环路时间长得多的看门狗超时。

wKgaomRYbISARHNCAAAcj5b0Gm4235.gif

图2.该图显示了在主循环中生成WDI信号的典型程序流程。

图3显示了正常操作时的看门狗和复位信号(看门狗在超时期限内清除)。在图4中,看门狗计数器达到超时后生成复位。行业标准看门狗电路的超时范围为100ms至2s,尽管有可调和定制的看门狗覆盖更宽的范围(30ms至分钟)。如果主环路的执行时间对于看门狗来说太长,设计人员可以在主环路的不同部分实现多个看门狗切换命令,或使用超时更长的设备。

wKgZomRYcLyABaDxAAAMqq9-GJQ976.png

图3.如果WDI引脚始终在看门狗超时内切换,则不会生成复位。

wKgZomRYbIeAEHZdAAAO7u_8Nrc891.gif

图4.一旦看门狗计数器达到超时值,就会生成复位。

防止系统卡在寄生环路中的一种技术是在主环路开始时将相关I/O引脚设置为高电平,并在主环路的另一部分将其设置为低电平。如果软件在主环路开始时卡在寄生环路中,则看门狗超时,系统恢复,因为WDI保持高电平(图5)。如果使用低-高-低脉冲(如图2所示),看门狗将被清除,但系统将保持卡住状态。对于具有需要监视的多个任务的程序,可能需要更复杂的方案。每个任务设置一个标志,只有在设置了所有标志时,才会切换监视器。所有任务的持续时间必须短于监视器超时期限。与实际程序相比,图 2 和图 5 可能看起来很简单,但它们说明了相关概念。还应监视更复杂的系统中的其他潜在问题,例如内存泄漏和堆栈溢出。这超出了本文的范围,但通常通过使用合适的设计过程、执行仔细的代码审查和使用专门的软件工具来完成。

wKgaomRYbImASBStAAAchQKY1Iw901.gif

图5.改进的程序流程具有两个独立的看门狗切换命令,这些命令在 WDI 引脚上生成上升沿和下降沿信号。这可以防止程序卡在寄生循环中。

内部与外部看门狗

许多μP具有集成的可编程看门狗,可在软件控制下禁用。内部看门狗容易出现代码错误,因此不能提供与独立外部看门狗相同的保护。对于安全关键型应用(即自动门、医疗设备、机器人),内部看门狗是不可接受的。监管机构要求使用单独的外部监管机构。因此,最好使用外部看门狗来降低关键系统故障的风险。

简单的看门狗加复位

由于看门狗超时通常会复位系统,因此大多数看门狗都集成了μP复位功能,该复位器还监视处理器电源电压。复位由看门狗或欠压条件激活。图823所示的MAX825-MAX6系列结合了这两种功能,提供标准复位电压、一个标称看门狗、一个复位超时,电流消耗仅为6μA。这些器件采用超小型SC70封装。

wKgZomRYbIuAETmCAAAYQfe2FOs242.gif

图6.MAX823-MAX825系列集成了两种常用功能:看门狗和复位。

工厂预设看门狗系列

MAX6316-MAX6322系列提供26路工厂预设复位电压、1路标称看门狗和<>路标称复位超时以及<>种输出配置(见表<>)。

应用 家庭 电压监控 看门狗超时(分钟) 复位超时(分钟) 特殊功能
简单加复位 MAX823/
MAX824
工厂预设 2.5V、3.0V、3.3V 或 5V 1.12 140毫秒 SOT23 或 SC70 封装
定制 MAX6316-
MAX6322
工厂预设,步长为 100mV 2.5V 至 5V 4.3毫秒, 71毫秒, 1.12秒, 17.9秒 1毫秒, 20毫秒, 140毫秒, 1.12秒 推挽式、漏极开路或双向输出
电容可调 MAX6746-
MAX6753
出厂预设,或通过分压器调节 1.575V 至 5V 700ms 至 70s,两个范围,100pF 至 100nF 电容器 预设,或电容0.5ms至5s SOT23-8,最小/最大窗口选项
MAX6301-
MAX6304
SO 或 DIP 封装
长启动,引脚可选 MAX6369-
MAX6374
双工厂预设 1.8V、2.5V、3.0V、3.3V 或 5.0V 30ms 至 60s ;200ms 至 60s 首次边缘激活 仅看门狗 双模式、引脚可编程启动延迟
多电源 MAX6369-
MAX6360
双固定1.8V、2.5V、3.0V、3.3V、5V;或双 固定加一个可调 1.6s 正常 100毫秒 手动复位、电源失效比较器、双复位、 复位加复位输出
MAX6721-
MAX6767
25.6秒启动
窗口 MAX6323/
MAX6324
双路模式
工厂预设 2.5V、3V、3.3V 或 5V 1.5毫秒至719毫秒(最小值);10ms 至 1.3s(最大值)窗口 100毫秒 八个工厂修剪选项;仅在定义的窗口内接受超时复位脉冲

电容可调看门狗

如果应用需要灵活的看门狗超时,设计人员可以使用可调电路。MAX6746-MAX6753系列提供工厂预设或分压器可编程复位电压,以及看门狗和复位超时的外部电容调整。图7显示了一个典型的工作电路,其中:

复位电压由分压器R1/R2确定,

复位超时由电容决定,以设置复位超时(C.SRT),和

看门狗超时由电容器设置,以设置看门狗超时(C斯威特).

wKgaomRYbIyACcLcAAAaAsjk3dU571.gif

图7.图中给出了电容可调看门狗系列MAX6346-MAX6353的典型应用电路。

图 8 显示了 C 的看门狗超时范围斯威特值从 100pF 到 100nF。凭借如此广泛的看门狗超时范围,设计人员可以为任何应用提供解决方案。MAX6301-MAX6304系列与MAX6746-MAX6753系列具有基本相同的特性,但提供SO和DIP封装。

wKgZomRYbI6AfT6vAAAitjK_iC8941.gif

图8.此图显示了各种可用的看门狗超时。

引脚可选看门狗,具有更长的启动/超时

如果启动例程很长(参见图 2),则需要具有两种不同超时的看门狗:较长的初始超时和较短的正常操作超时。MAX6369-MAX6374系列具有引脚可编程的启动延迟,可选择200ms至60s,看门狗超时范围为30ms至60s。某些版本提供看门狗的首次边缘激活,为更长的启动例程提供解决方案。对于这些芯片,看门狗在启动期间被禁用,并由μP相关I/O引脚的第一个边沿激活。

具有多个电源电压的看门狗

对于双电源系统,MAX6358-MAX6360系列可以 监视两个标准电压,并提供具有长启动和正常超时的看门狗。对于具有三路电源电压或同时需要高电平有效和低电平有效复位功能的系统,设计人员可以使用MAX6721-MAX6729系列。这些器件具有双模式看门狗,具有较长的启动时间以及正常的超时。它们可监测两个标准电源电压(MAX6721-MAX6722)或两个标准电源电压加第三个可调电源电压(MAX6723-MAX6724)。这些器件提供手动复位输入、电源失效比较器、双复位输出以及复位和/复位输出。

具有超高可靠性的窗口看门狗

为实现超高可靠性,设计人员可以使用MAX6323/MAX6324窗口看门狗。对于这些器件,看门狗的脉冲清除必须在明确指定的时间窗口内发生。有效脉冲可能最早在最后一个脉冲后1.5ms到达,也可能在最后一个脉冲后10ms到达(有关其他范围,请参见表1)。利用MAX6323/MAX6324,系统从寄生环路中恢复,如果清除看门狗命令在环路内,可以产生快速脉冲序列。这些脉冲将清除正常的看门狗,并且不会产生复位。使用窗口看门狗可以避免这种情况,因为它们需要看门狗脉冲之间的最小延迟。这些器件的典型应用是防抱死制动系统或其他汽车电路、高安全要求的工业和医疗应用,或系统可用性至关重要的应用。

结论

由于每个软件程序都有代码错误,设计人员必须确保系统不会锁定。噪声和EMI也会影响系统中的数据,并导致不可预测的系统行为。看门狗是提高系统可靠性的一种简单、廉价的方法。外部看门狗可防止系统卡住,并在看门狗超时期限内未切换WDI时复位μP。由于当今的看门狗种类繁多,设计人员一定会找到符合器件要求的器件。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    184

    文章

    17586

    浏览量

    249495
  • emi
    emi
    +关注

    关注

    53

    文章

    3582

    浏览量

    127353
  • 微处理器
    +关注

    关注

    11

    文章

    2247

    浏览量

    82316
收藏 人收藏

    评论

    相关推荐

    硬件和软件看门狗的异同

    说到提高系统可靠性,刚入门的工程师都知道,增加一个看门狗是重要的手段。看门狗又分软件看门狗和硬
    的头像 发表于 04-03 18:13 4296次阅读

    如何利用看门狗电路改善系统可靠性

    复位操作。使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时溢出归零,使处理器重新启动。看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比
    发表于 02-26 07:30

    利用看门狗改善系统可靠性―如何正确选择器件

    本文主要讲述的是利用看门狗改善系统可靠性―如何正确选择器件
    发表于 04-23 08:46 10次下载

    利用看门狗改善系统可靠性―如何正确选择器件

    本文主要讲述的是利用看门狗改善系统可靠性―如何正确选择器件
    发表于 04-26 16:27 12次下载

    利用看门狗改善系统可靠性

    利用看门狗改善系统可靠性
    发表于 04-27 10:34 22次下载
    利用<b class='flag-5'>看门狗</b>改善<b class='flag-5'>系统</b><b class='flag-5'>可靠性</b>

    单片机应用中看门狗技术

    分析研究了单片机应用系统中软件看门狗、单双时限和强制复位 看门狗 等几种常见的看门狗技术及具体的实现方法, 从提高看门狗工作
    发表于 06-03 16:49 318次下载
    单片机应用中<b class='flag-5'>看门狗</b>技术

    利用看门狗提高系统可靠性

    看门狗是一个计数器,它需要在一定的看门狗延时周期内被清零,如果没有清零动作,看门狗电路将产生一个复位信号使系统重新启动或建立一个非屏蔽终端、执行故障恢复子程序。
    发表于 03-07 16:03 35次下载
    利用<b class='flag-5'>看门狗</b><b class='flag-5'>提高</b><b class='flag-5'>系统</b><b class='flag-5'>可靠性</b>

    基于CPLD的系统硬件看门狗设计

    本设计的最初思路来源:实现高可靠性数字伺服控制器软、硬件看门狗的双冗余设计要求,目前缺少军品级国产化硬件看门狗器件,在满足系统要求的情况下减
    发表于 05-03 09:18 6250次阅读
    基于CPLD的<b class='flag-5'>系统</b>硬件<b class='flag-5'>看门狗</b>设计

    stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

    本文为您讲解STM看门狗时间计算(时限)与频率计算,独立看门狗和窗口看门狗的特性、区别与联系。
    发表于 10-10 10:41 8733次阅读

    什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析

    stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。 独立看门狗
    的头像 发表于 11-06 11:48 2.7w次阅读
    什么是stm32<b class='flag-5'>看门狗</b>?独立<b class='flag-5'>看门狗</b>和窗口<b class='flag-5'>看门狗</b>工作原理解析

    STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

    stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型
    发表于 11-09 17:17 8422次阅读
    STM32<b class='flag-5'>看门狗</b>配置(独立<b class='flag-5'>看门狗</b>IWDG和窗口<b class='flag-5'>看门狗</b>WWDG)

    uC/OS-II 系统的多任务看门狗设计

    在嵌入式系统中为提高微型机系统可靠性和安全, 常用的方法就是使用看门狗
    发表于 11-30 06:39 698次阅读

    STM32中的独立看门狗和窗口看门狗

    和窗口看门狗。 独立看门狗:使用的是外部时钟,即使主频不工作了,看门狗也能正常工作。只要在到达喂狗时间的上限前喂狗即表示程序是正常的,这点和窗口看门狗是有区别的。另外独立
    的头像 发表于 12-22 16:58 2059次阅读

    窗口看门狗增强了μP监控器

    看门狗定时器提高了基于微处理器的系统可靠性。引脚可选的看门狗定时器允许看门狗超时周期可调,从而
    的头像 发表于 05-08 11:23 1169次阅读
    窗口<b class='flag-5'>看门狗</b>增强了μP监控器

    看门狗芯片具有哪些功能?

    看门狗芯片可以通过多种方式来保证系统的稳定性和安全,从而提高系统可靠性和可用
    的头像 发表于 07-05 14:37 1887次阅读