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

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

3天内不再提示

看门狗芯片的应用场景

姚小熊27 来源:英锐恩 作者:英锐恩 2020-06-26 14:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对于那些人类无法持续监视的嵌入式系统看门狗芯片可能是个很好的解决方案。英锐恩单片机开发工程师表示,大多数嵌入式系统需要自主处理异常,如果运算跑偏了,通常不可能等人们重新引导他们。这种情况下需要一个复位芯片,以引导嵌入式系统的重启。

看门狗芯片是一种硬件,可以用来自动检测软件异常,并在发生任何异常时重置处理器。一般来说,看门狗芯片基于一个从某个初始值递减到零的计数器。嵌入式软件选择计数器的初始值并定期重新启动它。如果计数器在软件重新启动之前达到零,则认为软件发生故障,并且处理器的复位信号有效。处理器(及其运行的嵌入式软件)将重新启动,就像人工操作员已关闭电源再打开一样。

如下图所示,看门狗芯片是处理器外部的芯片。但是,它也可以与CPU包含在同一芯片中。这是在许多单片机中完成的。无论哪种情况,看门狗芯片的输出都直接与处理器的复位信号相关。

看门狗芯片的应用场景

一、什么是踢狗(也叫:喂狗)

重新启动看门狗芯片计数器的过程有时称为“踢狗(喂狗)”。踢狗的作用作用主要是起到复位重启的作用,确保机器能够一直运行。

如下面的案例1中,做了一个简单的示例。这里,我们有一个无限循环来控制系统的整个行为。这种软件体系结构在许多具有低端处理器和基于单个工作频率的行为的嵌入式系统中很常见。该看门狗的硬件实现允许通过内存映射寄存器设置计数器值。

uint16 volatile * pWatchdog =

(uint16 volatile *) 0xFF0000;

main(void)

{

hwinit();

for (;;)

{

*pWatchdog = 10000;

read_sensors();

control_motor();

display_status();

}

}

案例1:踢狗

假设循环必须每五毫秒至少执行一次。(假设必须至少经常向电动机提供新的控制参数。)如果看门狗芯片的计数器初始化为与经过的时间(即10000毫秒)对应的五毫秒的值,并且软件没有错误,看门狗芯片将永远不会到期,软件将始终在达到零之前重新启动计数器。

二、软件异常

看门狗芯片可以使系统摆脱许多危险情况。但是,如果要有效,必须在整个软件设计中考虑复位看门狗芯片。设计人员必须知道其软件可能出什么问题,并确保看门狗芯片能够检测到它们(如果有的话)。

系统挂起有多种原因。导致执行无限循环的逻辑谬误是最简单的。假设这种情况发生在案例1的read_sensors()调用中。其他任何软件(ISR除外,如果仍然启用中断)都不会再次运行。

另一种可能性是,在循环的一次通过期间,异常数量的中断到达。在ISR中花费的任何额外时间就是没有花费在执行主循环上的时间。可能会给电机新的控制指令带来危险的延迟。

使用多任务内核时,可能会发生死锁。例如,一组任务可能会卡在彼此之间等待,并且其中一个需要一些外部信号,从而使整个任务组无限期地挂起。

如果此类故障是瞬态的,则每次看门狗引起的复位后,系统可能会在一段时间内正常运行。但是,发生故障的硬件可能会导致系统不断重置。因此,计算看门狗引起的复位次数并在固定次数的故障后放弃尝试可能是明智的。

三、Karate框架接口测试

实际的看门狗实现通常会具有一个与案例1中的软件相比更为复杂的软件接口。当重置看门狗所需的指令集非常简单时,有漏洞的软件可能会偶然执行此操作。考虑一个错误,该错误导致将值10000一次又一次地写入内存中的每个位置。此代码将定期重新启动看门狗计数器,并且看门狗可能永远不会咬人。为防止这种情况,许多看门狗实现要求使用两个或多个连续写入的复杂序列来重新启动看门狗芯片。

如果看门狗内置在你的单片机中,则在设备复位时可能不会自动启用它。你必须确保在硬件初始化期间启用它。为了提供保护以防止意外禁用看门狗的错误,硬件设计通常使得一旦启用看门狗芯片就无法禁用它。

如果你的软件可以比看门狗周期更快地完成一个完整的循环,那么案例1中的结构可能对你来说很好。如果你的软件的某些部分需要很长时间才能完成,那么挑战就更大了。假设你有一个循环,等待元素加热到一定温度再返回。许多看门狗芯片的最长持续时间约为两秒钟。如果你要延迟的时间超过该时间长度,则可能必须在等待循环中踢狗。如果你的软件中有很多这样的地方,看门狗的控制可能会出现问题。

系统初始化是代码的一部分,通常需要比看门狗芯片的最大时间更长的时间。也许进行内存测试或从ROMRAM的数据传输会减慢此速度。因此,某些看门狗可以比其后继踢等待更长的时间来等待他们的第一个踢。

随着将控制线程添加到软件中(以ISR和软件任务的形式),在代码中仅放置一处看门狗变得无效。所以,选择合适的踢脚间隔也是一个重要问题,这只能以系统特定的方式解决。

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

    关注

    32

    文章

    2306

    浏览量

    97571
  • 看门狗芯片
    +关注

    关注

    0

    文章

    19

    浏览量

    6372
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    中科芯CKS32F107XX系列MCU的独立看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),它们在
    的头像 发表于 11-28 14:51 3428次阅读
    中科芯CKS32F107XX系列MCU的独立<b class='flag-5'>看门狗</b>介绍

    中科芯CKS32F107XX系列MCU的窗口看门狗介绍

    中科芯CKS32F107xx系列产品内部提供两个看门狗定时器单元,独立型看门狗IWDG(Independent Watchdog)和窗口型看门狗WWDG(Window Watchdog),本文主要介绍WWDG的应用,关于IWDG
    的头像 发表于 11-28 14:48 3588次阅读
    中科芯CKS32F107XX系列MCU的窗口<b class='flag-5'>看门狗</b>介绍

    “喂狗”的艺术:看门狗不叫,才是系统好

    看门狗选哪只好呢? 中间那只看起来不错。 咳咳搞错了,自动化项目中说的看门狗是PLC的看门狗,那这个有什么用呢?难道真的是看大门的
    的头像 发表于 11-25 10:50 77次阅读
    “喂狗”的艺术:<b class='flag-5'>看门狗</b>不叫,才是系统好

    既然有独立看门狗了,为啥还要窗口看门狗(WWDT),窗口看门狗的特色是什么?

    既然有独立看门狗了,为啥还要窗口看门狗(WWDT),窗口看门狗的特色是什么?
    发表于 11-21 06:42

    看门狗定时器、复位源、异常处理机制科普

    在嵌入式开发中,系统一旦“跑飞”,工程师最怕的不是bug,而是程序卡死无人知。这时,芯片自身的自我保护机制就至关重要。看门狗、复位源和异常处理机制,是保证系统可靠性的三大基石。本文带你梳理清楚它们
    的头像 发表于 11-17 10:53 704次阅读
    <b class='flag-5'>看门狗</b>定时器、复位源、异常处理机制科普

    小安派BW21-CBV-Kit入门教程之看门狗简介

    这是一个简单的看门狗定时器(WDT)示例,演示了看门狗 API 的用法。 有关看门狗的定义和工作原理,请参阅以下信息。
    的头像 发表于 11-13 17:22 4958次阅读
    小安派BW21-CBV-Kit入门教程之<b class='flag-5'>看门狗</b>简介

    TPS3431 带启用功能的标准可编程看门狗定时器数据手册

    TPS3431 是一款标准的可编程看门狗定时器,具有使能功能,适用于各种应用。看门狗超时具有 15% 的精度、高精度定时 (–40°C 至 +125°C) 和 25°C 时 2.5% 的典型值
    的头像 发表于 04-10 14:28 640次阅读
    TPS3431 带启用功能的标准可编程<b class='flag-5'>看门狗</b>定时器数据手册

    TPS3430 具有可编程复位延迟的窗口看门狗定时器数据手册

    TPS3430 是一款独立的窗口看门狗定时器,具有可编程看门狗窗口和可编程看门狗复位延迟,适用于各种应用。TPS3430窗口看门狗可实现 2.5% 的定时精度(25°C 时的典型值),
    的头像 发表于 04-10 14:23 595次阅读
    TPS3430 具有可编程复位延迟的窗口<b class='flag-5'>看门狗</b>定时器数据手册

    TPS3430-Q1 具有可编程复位延迟的汽车级窗口看门狗定时器数据手册

    TPS3430-Q1 是一款独立的汽车窗口看门狗定时器,具有可编程看门狗窗口和可编程看门狗复位延迟,适用于汽车应用。TPS3430-Q1 窗口看门狗可实现 2.5% 的定时精度(25°
    的头像 发表于 04-10 14:15 721次阅读
    TPS3430-Q1 具有可编程复位延迟的汽车级窗口<b class='flag-5'>看门狗</b>定时器数据手册

    TPS3435 纳米静态电流精密超时看门狗定时器数据手册

    TPS3435 是一款超低功耗 (典型值为 250nA) 器件,提供可编程超时看门狗定时器。 TPS3435 提供高精度超时看门狗定时器,具有适用于各种应用的一系列功能。超时看门狗定时器可由
    的头像 发表于 04-09 15:49 716次阅读
    TPS3435 纳米静态电流精密超时<b class='flag-5'>看门狗</b>定时器数据手册

    看门狗,你真的会用吗?

    嵌入式系统开发中,看门狗是一种重要的机制,用于在程序异常时自动重启系统,保障其稳定性。本文将深入探讨看门狗及其在程序稳定性中的作用,帮助您更好地理解和应用看门狗技术。看门狗首先需要明确
    的头像 发表于 03-12 11:37 4560次阅读
    <b class='flag-5'>看门狗</b>,你真的会用吗?

    安利给工程师!看门狗相关知识

    适当的参数来确保系统在正常运行和故障场景下都能自动恢复。​ ▼ 看门狗简介 ▼ 看门狗(Watch Dog Timer,WDT) ——是一种监控电路,主要应用于嵌入式系统,目的是为了提高系统的可靠性和稳定性。在
    的头像 发表于 12-31 14:29 919次阅读
    安利给工程师!<b class='flag-5'>看门狗</b>相关知识

    抄作业!看门狗定时器必备知识

    Air201在模组内部集成了硬件看门狗,今天就一起来聊聊~ 本文将带你了解看门狗的工作原理、应用架构、定时时间设置、软硬件看门狗的区别,以及看门狗定时器的典型应
    的头像 发表于 12-30 14:44 1077次阅读
    抄作业!<b class='flag-5'>看门狗</b>定时器必备知识

    一文详解看门狗/电压监控芯片规格书

    一、关于一些看门狗、电压监控的疑问?1.什么是看门狗看门狗,又叫Watchdog,本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做喂狗,输出一般连接到另外一个部分的复位端,一般
    的头像 发表于 12-26 17:18 2197次阅读
    一文详解<b class='flag-5'>看门狗</b>/电压监控<b class='flag-5'>芯片</b>规格书