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

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

3天内不再提示

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

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2024-12-30 14:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Air201在模组内部集成了硬件看门狗,今天就一起来聊聊~

本文将带你了解看门狗的工作原理、应用架构、定时时间设置、软硬件看门狗的区别,以及看门狗定时器的典型应用场景及关键设计因素等内容。

同时通过具体示例解析,教你如何在一个简单的LuatOS项目中集成看门狗定时器,设置适当的参数来确保系统在正常运行和故障场景下都能自动恢复。

Air201最新资料下载:

www.air201.cn

wKgZPGdyPx-AJjkkAAaPx4vFsEM206.png

▼ 看门狗简介 ▼

看门狗(Watch Dog Timer,WDT)——是一种监控电路,主要应用于嵌入式系统,目的是为了提高系统的可靠性和稳定性。在看门狗电路的帮助下,当系统出现异常,如程序跑飞或死循环时,能够自动复位并重新启动系统。

工作原理:

看门狗电路通常包括一个定时器、一个喂狗信号和一个复位(Reset)输出。在正常的系统运行过程中,主控制器(MCU)会定期向喂狗信号发送一个脉冲,以“喂”看门狗,防止其计时到达预设值。如果MCU由于某种原因未能在规定时间内喂狗,看门狗定时器将会计满并输出一个复位信号,将MCU复位。

应用架构:

在实际应用中,看门狗芯片通常连接到MCU的一个GPIO端口。MCU在其正常运行期间会定期向该端口写入一个高电平或低电平信号,以此告诉看门狗它仍然正常工作。如果MCU未能按时发出信号,看门狗将触发复位操作。

芯片引脚功能:

某些看门狗芯片,如TPV6823具有多个引脚:包括供电引脚(VCC)、喂狗信号引脚(WDI)、复位输出引脚(RESETn)和手动复位输入引脚(MRn)。这些引脚提供了多种复位方式和时间设置,以适应不同的应用需求。

定时时间:

看门狗的定时时间通常需要保持在一个相对较长的周期,例如200毫秒左右。这样的设置是为了确保在正常运行中,即使MCU由于干扰而未能及时喂狗,看门狗也不会立即复位系统,从而给MCU足够的时间来响应和处理问题。

软硬件看门狗的区别:

硬件看门狗利用独立的定时器电路来实现监控功能,具有较高的可靠性。软件看门狗则使用处理器内部的定时器或其他机制来实现,虽然在一定程度上可以简化硬件设计,但在可靠性方面通常不如硬件看门狗。

WDT库提供了一系列用于管理和操作看门狗定时器的API函数,开发者可以通过Air201方便地在LuatOS系统中管理看门狗定时器,从而提高设备的稳定性。

软硬件相关准备工作及最新示例源码下载详见:

https://docs.openluat.com/air201/luatos/app/service/wdt/

一、看门狗示例解析

本文示例分为两个部分:

正常运行情况和故障场景模拟

在正常运行情况下,示例代码会初始化看门狗库,并设置超时时间和喂狗周期。然后,创建一个任务,该任务会定期喂狗,以防止看门狗定时器超时。如果看门狗定时器超时,系统将自动重启。

在故障场景模拟部分,我们添加了一个新的任务fault_task,该任务进入一个死循环,不进行喂狗操作。这样,当看门狗定时器超时后,系统将自动重启,模拟了设备在故障场景下的自动恢复能力。

1.1 程序正常运行

1.1.1 示例代码介绍

项目信息:

在开头定义了项目名称(PROJECT)和版本(VERSION),并通过日志输出这些信息。

引入系统库:

通过require("sys") 引入了sys库,这是LuatOS中常用的系统库。

任务初始化:

使用sys.taskInit函数创建一个新的任务。在任务中检查wdt库是否可用,如果不可用,则进入一个无限循环,每秒钟输出一次提示信息。

WDT配置:

初始化wdt库,设置超时时间为9秒。设置一个定时器每3秒喂一次看门狗,确保设备在正常运行的情况下不会重启;若发生软件崩溃或硬件故障,最多18秒后将自动重启设备。

运行系统:

最后通过sys.run() 启动系统,后面不应添加任何其他语句。

1.1.2 完整代码展示

wKgZO2dyP1iAOrMJAATrj7x_ANc937.png

1.1.3 运行结果展示

通过Luatools工具查看日志:

wKgZO2dyP2WAMfbsAAMoa4r1Jcw219.png

1.2 添加死循环模拟故障场景

1.2.1 示例代码介绍

我们在原有示例代码中创建了一个新的任务,命名为fault_task,它将进入一个死循环。由于这个新任务不会喂看门狗,设备将在超时后自动重启。这样,我们就可以有效地模拟看门狗的超时情况。

wKgZO2dyP3aAYQBkAAEWpwMIeAM783.png

1.2.2 完整代码展示

wKgZPGdyP46AXVAQAAOFKd8u_I8599.png

1.2.3 运行结果展示

wKgZO2dyP6OAUkPUAATeOubucu4417.png

二、看门狗的扩展

2.1 看门狗定时器的应用场景

看门狗定时器广泛应用于各种嵌入式系统和物联网设备中,特别是在需要高可靠性的应用场景中。

一些典型的应用场景包括:

工业控制系统:

在工业生产过程中,控制系统需要高度稳定和可靠,看门狗定时器可以确保系统在受到干扰或异常情况时能够迅速恢复。

车载电子系统:

车载电子系统面临着复杂的电磁环境和振动,看门狗定时器可以帮助系统在上电复位后保持稳定运行,防止因软件或硬件故障导致的系统死机。

医疗设备:

医疗设备对稳定性和可靠性有很高的要求,看门狗定时器可以确保设备在长时间运行过程中不会因为故障而停止工作,从而保障患者的安全和设备的连续性。

通信设备:

在通信系统中,看门狗定时器可以用于监控和保护网络设备,确保数据传输的稳定性和可靠性。

2.2 看门狗定时器的设计考虑因素

在设计和实现看门狗定时器时,需要考虑以下几个关键因素:

超时时间:

超时时间是指看门狗定时器从开始计时到触发复位信号的时间间隔。这个时间需要根据具体应用的需求来设定,通常需要平衡系统的稳定性和响应速度。

喂狗周期:

喂狗周期是指主控制器向看门狗芯片发送脉冲的时间间隔。喂狗周期应该设置得足够短,以防止看门狗定时器在正常运行中误触发复位。

看门狗复位输出:

看门狗定时器通常具有一个复位输出引脚,用于向主控制器提供复位信号。在设计时,需要确保复位输出引脚的电平和主控制器的复位输入引脚兼容。

看门狗功耗:

在设计看门狗定时器时,需要考虑其功耗,特别是在低功耗应用中。选择低功耗的看门狗芯片和合理的电源设计对于系统的整体功耗至关重要。

兼容性和可扩展性:

在设计看门狗定时器时,需要考虑其与其他系统的兼容性和可扩展性。确保看门狗定时器能够与其他硬件和软件组件无缝集成,并在未来需要时能够轻松扩展或升级。

通过综合考虑这些因素,开发者可以设计和实现一个稳定、可靠且高效的看门狗定时器解决方案,以确保嵌入式系统的正常运行和数据传输的稳定性。

三、看门狗的常见问题

3.1 看门狗定时器是如何工作的?

看门狗定时器通过主控制器定期向其发送脉冲信号来保持计时。如果主控制器在规定时间内未能发送脉冲,看门狗定时器将触发复位信号,将主控制器复位。

3.2 如何配置看门狗定时器的超时时间和喂狗周期?

在LuatOS等嵌入式操作系统中,看门狗定时器的超时时间和喂狗周期通常通过API函数进行配置。可以根据具体应用的需求来设置合适的时间间隔。

若使用本文中所提到的watchdog操作库,可按照以下步骤进行配置:

1)初始化看门狗:

使用wdt.init(timeout) 函数来初始化看门狗定时器,timeout参数是超时时长,单位为毫秒。

例如,如果你希望看门狗的超时时间为9000毫秒,可以这样调用:

wKgZPGdyP7mAacykAAAHhr8S5i4126.png

2)设置看门狗超时时间(可选):

如果设备支持,可以调用:

wdt.setTimeout(timeout)

重新设置看门狗的超时时长,单位同样为毫秒。

例如:

wKgZO2dyP8aABMazAAAOIpsJCGg767.png

3)定期喂狗:

使用wdt.feed() 函数来喂狗,以重置超时计时。建议使用定时器定期调用这个函数。

例如,使用系统定时器每3000毫秒喂一次狗,可以这样设置:

wKgZPGdyP9GAY-YcAAAKV_16bPw036.png

通过以上步骤,你可以成功配置看门狗定时器的超时时间和喂狗周期,确保设备不会因为未喂狗而重启。

今天的内容就分享到这里了~

审核编辑 黄宇

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

    关注

    5212

    文章

    20778

    浏览量

    338903
  • 看门狗
    +关注

    关注

    10

    文章

    615

    浏览量

    73339
  • 物联网
    +关注

    关注

    2951

    文章

    48273

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞萨RA系列FSP库开发实战指南之WDT看门狗定时器简介和功能框图剖析

    一般来说,看门狗也叫看门狗定时器,从本质上面来看,其实它就是一个计数,在使用的时候,需要给它一个数值,随后看门狗的计数
    的头像 发表于 05-21 14:21 4498次阅读
    瑞萨RA系列FSP库开发实战指南之WDT<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>简介和功能框图剖析

    深入解析MAX16997/MAX16998高电压看门狗定时器

    深入解析MAX16997/MAX16998高电压看门狗定时器 一、引言 在电子系统设计中,尤其是在对可靠性要求极高的汽车和工业领域,看门狗定时器是保障系统稳定运行的关键组件。MAX16
    的头像 发表于 03-26 15:30 219次阅读

    MAX6369 - MAX6374:引脚可选看门狗定时器的全方位解析

    MAX6369 - MAX6374:引脚可选看门狗定时器的全方位解析 在电子系统设计中,保障微处理(μP)的稳定运行是至关重要的。而看门狗定时器
    的头像 发表于 03-26 14:55 220次阅读

    探秘MAX6814:5引脚看门狗定时器电路的实用指南

    探秘MAX6814:5引脚看门狗定时器电路的实用指南 在电子系统设计中,可靠性是至关重要的。今天,我们将深入探讨Maxim Integrated推出的MAX6814,一款采用5引脚SC70封装
    的头像 发表于 03-26 14:50 268次阅读

    SGM858xQ汽车窗口看门狗定时器:设计与应用深度解析

    SGM858xQ汽车窗口看门狗定时器:设计与应用深度解析 在汽车电子系统中,可靠的监控和复位机制对于确保微控制(MCU)的稳定运行至关重要。SG Micro Corp推出的SGM858xQ汽车
    的头像 发表于 03-24 10:55 283次阅读

    SGM819SxQ 汽车应用看门狗定时器电路解析

    SGM819SxQ 汽车应用看门狗定时器电路解析 在电子系统设计中,尤其是汽车、工业设备等对可靠性要求极高的领域,看门狗定时器电路是保障系统稳定运行的关键组件。今天我们就来详细了解一下
    的头像 发表于 03-24 10:10 277次阅读

    SGM819S看门狗定时器电路:设计与应用详解

    SGM819S看门狗定时器电路:设计与应用详解 在电子系统设计中,看门狗定时器是保障系统稳定性和可靠性的重要组件。SG Micro Corp推出的SGM819S
    的头像 发表于 03-24 09:40 248次阅读

    深度解析SGM821:纳米功耗系统定时器看门狗功能

    深度解析SGM821:纳米功耗系统定时器看门狗功能 在电子设计领域,低功耗和可靠的系统监控是永恒的追求。SGM821作为一款具备看门狗功能的纳米功耗系统定时器,为我们带来了独特的解决
    的头像 发表于 03-23 17:20 874次阅读

    深度解析 MAX6369–MAX6374 引脚可选看门狗定时器

    深度解析 MAX6369–MAX6374 引脚可选看门狗定时器 在当今电子设备的复杂系统中,确保微处理(μP)稳定运行至关重要。看门狗定时器
    的头像 发表于 12-30 17:55 1690次阅读

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

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

    CW32A030看门狗和SysTick定时器

    CW32A030的看门狗有独立看门狗和窗口看门狗如下: 1、 独立看门狗(IWDT) 独立看门狗定时器
    发表于 11-27 07:52

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

    的作用、原理与应用。一、看门狗定时器(WatchdogTimer)1.原理看门狗定时器本质上是一个独立定时器,持续倒计时:软件在规
    的头像 发表于 11-17 10:53 1864次阅读
    <b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>、复位源、异常处理机制科普

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

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

    TPS3435 Nano IQ精密超时看门狗定时器技术解析与应用指南

    Texas Instruments TPS3435/TPS3435-Q1 Nano I~Q~ 精确超时看门狗定时器是一款250nA(典型值)超低功耗器件,具有可编程超时看门狗定时器。该
    的头像 发表于 08-26 16:20 1395次阅读
    TPS3435 Nano IQ精密超时<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>技术解析与应用指南

    德州仪器TPS3436-Q1汽车级窗口看门狗定时器技术解析

    Texas Instruments TPS3436-Q1精密窗口看门狗定时器是一款超低功耗(250nA典型值)器件,提供可编程窗口看门狗定时器。TPS3436-Q1可提供具有多种功能的
    的头像 发表于 08-18 14:54 2102次阅读
    德州仪器TPS3436-Q1汽车级窗口<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>技术解析