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

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

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

审核编辑 黄宇

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

    关注

    5158

    文章

    19730

    浏览量

    318628
  • 看门狗
    +关注

    关注

    10

    文章

    584

    浏览量

    71893
  • 物联网
    +关注

    关注

    2932

    文章

    46349

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

    TPS3430 是一款独立的窗口看门狗定时器,具有可编程看门狗窗口和可编程看门狗复位延迟,适用于各种应用。TPS3430窗口看门狗可实现 2
    的头像 发表于 04-10 14:23 ?334次阅读
    TPS3430 具有可编程复位延迟的窗口<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>数据手册

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

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

    TPS3431-Q1 具有使能功能的汽车标准可编程看门狗定时器数据手册

    TPS3431-Q1 是一款标准的汽车可编程看门狗定时器,具有用于汽车应用的使能功能。看门狗超时具有 15% 的精度、高精度定时 (–40°C 至 +125°C) 和 25°C 时 2
    的头像 发表于 04-10 13:52 ?331次阅读
    TPS3431-Q1 具有使能功能的汽车标准可编程<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>数据手册

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

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

    TPS35-Q1系列 具有超时看门狗定时器的汽车级纳米静态电流精密监控数据手册

    TPS35-Q1 是一款超低功耗(典型值为 250nA)器件,提供具有可编程超时看门狗定时器的精密电压监控。TPS35-Q1 支持宽阈值级别,可在指定温度范围内以 1.2% 的精度进行欠压监控
    的头像 发表于 04-09 14:48 ?355次阅读
    TPS35-Q1系列 具有超时<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>的汽车级纳米静态电流精密监控<b class='flag-5'>器</b>数据手册

    TPS3436-Q1 汽车级纳米静态电流精密窗口看门狗定时器数据手册

    TPS3436-Q1 是一款超低功耗(典型值为 250 nA)器件,提供可编程窗口看门狗定时器。 TPS3436-Q1 提供高精度窗口看门狗定时器,具有许多功能,适用于各种应用。
    的头像 发表于 04-09 14:40 ?348次阅读
    TPS3436-Q1 汽车级纳米静态电流精密窗口<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>数据手册

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

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

    圣邦微电子SGM819SxQ车规级看门狗定时器电路特性与数据手册分享

    SGM819SxQ 是一款独立的看门狗定时器电路,它可以帮助防止因硬件故障(例如外围设备错误、总线占用)或软件故障(例如循环中无限执行的代码)导致的系统故障。 该器件配备了 WDI 输入和 nWDO
    的头像 发表于 02-26 17:34 ?1705次阅读
    圣邦微电子SGM819SxQ车规级<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>电路特性与数据手册分享

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

    看门狗能够及时检测并采取相应措施,从而避免系统长时间处于故障状态。本文将详细介绍看门狗的工作原理及其正确使用方法。 同时通过具体示例解析,教你如何在一个简单的LuatOS项目中集成看门狗定时器
    的头像 发表于 12-31 14:29 ?608次阅读
    安利给工程师!<b class='flag-5'>看门狗</b>相关<b class='flag-5'>知识</b>

    TPS3431EVM带使能的标准可编程看门狗定时器

    电子发烧友网站提供《TPS3431EVM带使能的标准可编程看门狗定时器.pdf》资料免费下载
    发表于 12-24 15:48 ?0次下载
    TPS3431EVM带使能的标准可编程<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>

    看门狗定时器的工作原理

    看门狗定时器是一种独立的计时硬件模块,其核心功能是倒计时。如果系统软件在计时超时前没有对其进行复位操作(即“喂狗”),看门狗将触发一个预
    的头像 发表于 10-21 14:18 ?1374次阅读
    <b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>的工作原理

    禁用Tl系列监控看门狗定时器

    电子发烧友网站提供《禁用Tl系列监控看门狗定时器.pdf》资料免费下载
    发表于 10-12 09:40 ?0次下载
    禁用Tl系列监控<b class='flag-5'>器</b>的<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>

    DRV3205-Q1的问答看门狗定时器配置

    电子发烧友网站提供《DRV3205-Q1的问答看门狗定时器配置.pdf》资料免费下载
    发表于 09-30 10:42 ?0次下载
    DRV3205-Q1的问答<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>配置

    单片机开发:使用内部看门狗定时器(WDT)还是外挂看门狗芯片?

    的损害要小。 以上就是英锐恩单片机开发工程师分享的内部看门狗定时器(WDT)与外挂看门狗芯片的知识。如有错误及说明不到位的地方,请指正,谢谢大家!
    发表于 09-25 13:46