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

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

3天内不再提示

窗口看门狗的基础知识

星星科技指导员 来源:ADI 作者:ADI 2022-12-14 15:35 次阅读

看门狗是综合系统的重要组成部分,必须充分理解才能充分利用其功能。大多数看门狗都是有窗口的,这需要比非窗口看门狗更精确的计时,但允许更大的功能。设计人员可以使用窗口看门狗来实现上电扩展开窗、锁存功能和可编程保持时间等功能。

介绍

本应用笔记描述了MAX20478和MAX20480系列产品中窗口看门狗的工作原理。这些看门狗具有可编程扩展窗口、可编程 RESETx 保持时间、单个或连续看门狗故障断言以及 RESETx 锁存功能。本应用笔记提供了对看门狗及其功能的更全面的了解。

看门狗操作基础知识

看门狗是系统中用于确保片上系统 (SoC) 设备或微控制器MCU) 正常运行的功能。这可能意味着检测到陷入无限循环、执行任务时间过长甚至完全关闭的 SoC。在系统中使用看门狗要求 SoC 定期向看门狗发送信号,此步骤称为服务/刷新。一旦 SoC 为监视器提供服务,监视器就会确认 SoC 的正常运行,然后开始一个新的周期,在该周期中,它等待来自 SoC 的另一个服务命令。如果 SoC 在监视器设置的持续时间内未为监视器提供服务,则会断言故障。此操作描述了一个非窗口看门狗,本应用笔记将不涉及该看门狗。窗口监视器以非常相似的方式运行,但具有一个服务周期,该周期分为“关闭”和“打开”持续时间,称为窗口。这需要对有效服务进行更精确的计时,因为服务仅在窗口周期中的特定时间有效。

这些窗口的持续时间由IC看门狗时钟定义。看门狗时钟源自IC系统时钟,通常从系统时钟的1/32开始,通常为1.28MHz。某些器件具有可编程的WDIV场,允许对该时钟进行更多划分,以允许更长的窗口时间。在以下示例中,看门狗周期为200μs,所用公式特定于MAX20478(图1)。

pYYBAGOZfNSAAGIeAAAbQrhh0cQ994.png?imgver=1

图1.根据MAX20478看门狗公式的闭合和开窗长度组合示例

监视程序周期的 OPEN 窗口期间的监视器服务被视为有效服务。有效服务后,无论打开窗口中剩余的时间如何,OPEN 窗口都将立即转换为关闭窗口。图 2 显示了一个有效看门狗周期的示例。

poYBAGOZfNaAU-RWAAAK3tflZds285.png?imgver=1

图2.打开窗口期间有效的监视器刷新。紧随其后的是新的关闭和开放。

在监视器周期的 CLOSED 窗口中来自 SoC 的监视器服务将被监视器解释为故障。如果在“关闭”和“打开”窗口都经过时没有服务发生,则监视器将断言故障。要了解关闭窗口如何在窗口监视程序中运行,必须首先探索扩展窗口。

扩展窗口

在大多数系统中,SoC 和 MCU 需要额外的时间来上电或执行除维护看门狗之外的其他更重要的任务。因此,系统可能会使具有“关闭”和“打开”窗口的正常窗口监视程序框架失败。为了解决这个问题,ADI产品具有扩展窗口。这些窗口在首次开机时和每次 RESETx 断言之后发生,并作为 OPEN 窗口运行,在该窗口期间的任何时间,服务都被视为有效。

在正常操作期间,如果 OPEN 窗口中有有效的监视程序服务,监视器将在有效刷新后立即启动新的循环。这意味着一个新的关闭窗口,然后是一个打开窗口。在具有扩展窗口的监视器中,如果发生任何故障,监视器将立即停止当前所在的任何窗口,并在 RESETx 保持时间过后启动新的扩展窗口。此扩展窗口没有 CLOSED 持续时间,并将接受任何监视程序服务在窗口持续时间内有效。如果监视程序在此窗口中提供服务,则扩展窗口将立即停止,并遵循正常的关闭/打开循环。如果未在扩展窗口中为监视器提供服务,RESETx 将断言保持时间,随后将出现另一个扩展窗口。重复此操作,直到为监视器提供服务。

图 3 和图 4 显示了无效刷新的两种潜在计时情况。

poYBAGOZfNeADuRJAAATQwYsxTI137.png?imgver=1

图3.RESETx 将立即断言 WD 是否在 CLO 窗口期间刷新。EXT 窗口将在 RESETx 取消断言后启动。扩展窗口继续重复,直到为监视器提供服务。

poYBAGOZfNmATSDwAAAYi6LpRII838.png?imgver=1

图4.如果监视器未刷新,RESETx 将在 OPN 窗口结束后立即断言。RESETx 取消断言后将启动一个新的 EXT 窗口。EXT 窗口将继续重复,直到刷新监视器。

可变复位x 保持时间

系统在为监视器提供服务失败后进入中断过程是很常见的。这些中断例程可能需要几毫秒才能完成,SoC 或 MCU 才能再次刷新看门狗。这可能会导致监视器再次断言 RESETx,并可能重复进入中断例程。此问题可以通过更改 RESETx 保持时间的持续时间以允许 SoC 或 MCU 完成中断例程来解决。可变RESETx保持时间功能将在发生故障后将IC的RESETx引脚保持低电平一段时间。如果发生故障,看门狗将立即停止其所在的窗口,并在由保持时间确定的设定持续时间内置位IC的RESETx引脚。一旦RESETx取消断言,看门狗将恢复正常运行,SoC或MCU可以为看门狗提供服务。在图 3 和图 4 中,省略了 RESETx 保持时间长度以简化图表。图 5 和图 6 描述了两种不同的 RESETx 保持时间。

pYYBAGOZfNqAbvCMAAAR06f3vPY189.png?imgver=1

图5.RESETx 保持时间的持续时间是可编程的。ADI器件具有多个设定的持续时间,在制造器件时进行编程。请参考ADI IC数据手册,了解RESETx保持时间的确切信息

poYBAGOZfNuAYYsAAAARML_0OB8323.png?imgver=1

图6.在此图中,RESETx 保持时间的持续时间设置为 8 毫秒。请参考ADI IC数据手册,了解RESETx保持时间的确切信息。

单/连续WD故障计数器

在某些实现监视器的系统中,RESETx 断言不一定构成系统问题。即使系统运行正常,系统中也可能会出现错误的 RESETx 断言。为解决这一问题,ADI看门狗具有看门狗故障计数器,允许在单个或双看门狗故障上发生RESETx断言。

如果选择了单个故障计数器选项,则只需要一个监视器故障(无服务、CLO 窗口期间的服务等)即可断言 RESETx。如果选择双故障选项,则第一个看门狗故障将增加看门狗故障计数器,第二个故障将置位RESETx。要在一次看门狗故障后重置故障计数器,需要连续两次有效服务看门狗。图 710 对此进行了描述。

pYYBAGOZfN2ABbaWAAAamPg7QX0957.png?imgver=1

图7.如果在 CLO 窗口期间刷新 WD,RESETx 计数器将增加到 1。在下一个 OPN 窗口结束后不刷新会将计数器增加到 2。这会导致 RESETx 断言,RESETx 取消断言后将启动 EXT 窗口,并且故障计数器 RESETx 为 0。RESETx 在 EXT 窗口或 OPN 窗口期间未刷新后再次断言。

poYBAGOZfN6AQNjMAAAXoJuwGl8902.png?imgver=1

图8.如果在第一个 OPN 窗口期间未刷新监视器,则 RESETx 计数器将增加到 1。将出现另一个正常的 CLO 和 OPEN。如果没有刷新,RESETx 计数器将达到 2 并断言。

pYYBAGOZfOCAV3d2AAAct3LwTBk406.png?imgver=1

图9.第一个 OPN 窗口后不刷新会将故障计数器增加到 1。下一帧刷新,但故障计数器仍为 1。下一个 OPN 窗口未收到刷新,因此计数器增加到 2。断言错误,EXT 窗口在 RESETx 取消断言后启动。

poYBAGOZfOGAT9TeAAAms42JQeU139.png?imgver=1

图 10.No 第一个 OPN 将故障计数器增加到 1 后的刷新。下一帧刷新,但计数器仍为 1。第三个窗口也接收刷新,因此计数器被清除为 0。接下来的两个帧不会收到刷新,因此计数器达到 2,EXT 窗口遵循取消断言。

复位x锁存功能

ADI看门狗的另一个特性是能够锁存RESETx断言。如果系统发现故障情况的时间超过可能的最长 RESETx 保持时间,则继续保持 RESETx 直到故障条件消除可能是有益的。例如,如果 SoC 无法为监视器提供服务,则正常的 RESETx 保持时间将意味着 RESETx 将在延长窗口的持续时间内取消断言,然后在保留持续时间内断言。这意味着RESETx信号将在断言和取消断言之间切换。使用 RESETx 锁存器功能,此示例中的 RESETx 信号将保持置位状态,直到 SoC 重新获得为看门狗提供服务的能力。此功能也可用作其他信号的启用/禁用。例如,如果检测到故障,看门狗锁存功能可用于禁用所有CAN总线通信。当SoC解决系统故障时,CAN总线上的所有通信都将停止。

如果看门狗尚未完成首次上电,则 SoC 只需要一个有效服务即可解除锁存的 RESETx 信号。上电后,无论是否使用连续故障计数器功能,SoC 都需要两个连续的有效服务来解除锁存的 RESETx 信号。图 11 对此进行了描述。

poYBAGOZfOOAe_zkAAAdBtYDGHM981.png?imgver=1

图 11.上面的示例显示看门狗RESETx信号将锁存,直到再次维护看门狗。它显示由于在关闭的窗口期间刷新而导致的错误,但对于任何 RESETx 错误都是如此。RESETx 保持时间的持续时间实际上是 SoC 正确维护监视器所需的时间。正常的 CLO/OPN 窗口在复位锁存期间出现。

质询/响应看门狗

某些ADI看门狗的另一个特点是能够使用质询/响应通过I2C.在某些系统中,仅仅要求SoC发送脉冲是不够的。要求 SoC 执行任务或计算以确保 SoC 完全正常运行可能是有益的。这就是质询/响应看门狗可以满足此要求的地方。在质询/响应服务中,IC中有一个键值寄存器,SoC必须读取该寄存器。读取寄存器后,SoC 必须使用此值来计算相应的响应。然后,该响应通过I发送回IC2C. 使用正确的响应更新寄存器后,监视程序已得到维护。看门狗的操作方式与窗口设置中的操作方式相同,唯一的变化是更新密钥寄存器,而不是使用上升沿刷新看门狗。该 IC 包含一个线性反馈移位寄存器,多项式为 x8+x6+x5+x4+1。这会将所有位向上移向 MSb,并将计算出的位作为新的 LSb 插入。SoC必须以这种方式计算响应,并将其发送回IC中的寄存器。图 12 对此进行了描述。

pYYBAGOZfOSAFjn4AAASq8zxKPM320.png?imgver=1

图 12.质询/响应看门狗的时间与窗口看门狗非常相似。密钥寄存器由 SoC 通过 I 读取2C 并且只需要出现一次。一旦SoC读取了密钥寄存器,就会使用前一个值计算下一个值。计算响应,然后写回IC中的寄存器。在下一个时钟沿,答案得到确认,并立即启动一个新的 CLO/OPN 窗口。

表1显示了一个特性列表,其中包含多个包含看门狗的ADI IC。ADI公司为那些想要了解更多信息的人提供了几种设计计算器。

表 1.功能列表

部件号 ASIL 评级 可编程复位保持时间 扩展窗口 复位闩锁 挑战/回应
I2C能力
MAX20478 ASIL-D x x x
MAX20480 ASIL-D x x x x

结论

随着窗口看门狗变得越来越普遍,对其操作有一个基本的了解非常重要。本应用笔记介绍了窗口看门狗的几个特性,供读者了解MAX20478和MAX20480产品系列的一般知识。这些功能包括可编程扩展窗口、可编程 RESETx 保持时间、单个或连续看门狗故障断言以及 RESETx 锁存功能

审核编辑:郭婷

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

    关注

    48

    文章

    6809

    浏览量

    147637
  • 看门狗
    +关注

    关注

    10

    文章

    541

    浏览量

    70256
  • soc
    soc
    +关注

    关注

    38

    文章

    3745

    浏览量

    215685
收藏 人收藏

    评论

    相关推荐

    独立看门狗窗口看门狗的原理分别是什么

    独立看门狗的原理是什么?在库函数里如何去启动独立看门狗?其函数是什么?窗口看门狗的原理是什么?如何去使用STM32的窗口
    发表于 07-30 07:26

    看门狗总结

    看门狗总结调原子哥的开发板一年多,基本上能用,但是对于STM32某些基本外设的工作机理还不甚明了。借此暑假的机会对各个外设的功能做一个简短的总结,在提高自己基础知识的同时,也给其他同学提供一些参考。先来看门狗部分的内容。
    发表于 07-30 06:17

    看门狗基础知识

    看门狗基础知识什么是看门狗在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,导致单片机控制的系统无法继续工作
    发表于 07-30 08:11

    有关STM32看门狗基础知识

    STM32看门狗总结调原子哥的开发板一年多,基本上能用,但是对于STM32某些基本外设的工作机理还不甚明了。借此暑假的机会对各个外设的功能做一个简短的总结,在提高自己基础知识的同时,也给其他同学提供一些参考。先来看门狗部分的内容
    发表于 07-30 06:14

    窗口看门狗基本知识

    窗口看门狗基本知识什么是窗口看门狗它也是一个看门狗,不过它的刷新(喂狗)操作,要在一个
    发表于 07-30 07:09

    独立看门狗窗口看门狗的喂狗限制

    窗口看门狗和独立看门狗最大的不同就是,独立看门狗的喂狗限制是在计数器递减为零前,而窗口看门狗的喂
    发表于 08-02 10:46

    窗口看门狗的定义及窗口看门狗和独立看门狗区别是什么

    窗口看门狗一、窗口看门狗的定义及窗口看门狗和独立看门狗
    发表于 08-02 06:56

    什么是窗口看门狗

    什么是窗口看门狗?1)独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚。2)窗口看门狗之所以称为
    发表于 08-09 08:07

    什么是窗口看门狗窗口看门狗是怎么工作的?

    什么是窗口看门狗窗口看门狗是怎么工作的?窗口看门狗一般步骤和程序分享
    发表于 08-30 06:04

    如何对独立看门狗窗口看门狗进行配置

    IWDG独立看门狗和WWDG窗口看门狗二者有何区别?如何对IWDG独立看门狗进行配置?如何对WWDG窗口
    发表于 09-22 08:25

    独立看门狗窗口看门狗概述

    为什么要看门狗看门狗解决的问题是什么?独立看门狗有哪些功能?独立看门狗有哪些操作步骤?为什么要窗口看门
    发表于 09-26 08:41

    关于独立看门狗窗口看门狗知识点,不看肯定后悔

    关于独立看门狗窗口看门狗知识点,不看肯定后悔
    发表于 11-09 06:00

    MCU独立看门狗窗口看门狗的区别

      早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。  为了满足更多使用场景,现在很多MCU都集成了两个看门狗:独立看门狗
    发表于 03-17 16:30

    窗口看门狗基础知识

    发表于 11-16 23:57 0次下载
    <b class='flag-5'>窗口</b><b class='flag-5'>看门狗</b>的<b class='flag-5'>基础知识</b>

    窗口看门狗基础知识

    随着窗口看门狗变得越来越普遍,对其操作有一个基本的了解非常重要。本应用笔记介绍了窗口看门狗的几个特性,供读者了解MAX20478和MAX20480产品系列的一般
    的头像 发表于 06-15 14:20 789次阅读
    <b class='flag-5'>窗口</b><b class='flag-5'>看门狗</b>的<b class='flag-5'>基础知识</b>