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

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

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

审核编辑 黄宇

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

    关注

    5083

    文章

    19133

    浏览量

    305638
  • 看门狗
    +关注

    关注

    10

    文章

    565

    浏览量

    70826
  • 物联网
    +关注

    关注

    2909

    文章

    44691

    浏览量

    373892
收藏 人收藏

    评论

    相关推荐

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

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

    具有可编程超时延迟的TPS3430EVM窗口看门狗定时器用户指南

    电子发烧友网站提供《具有可编程超时延迟的TPS3430EVM窗口看门狗定时器用户指南.pdf》资料免费下载
    发表于 12-24 15:27 0次下载
    具有可编程超时延迟的TPS3430EVM窗口<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>用户指南

    看门狗定时器的工作原理

    看门狗定时器是一种独立的计时硬件模块,其核心功能是倒计时。如果系统软件在计时超时前没有对其进行复位操作(即“喂狗”),看门狗将触发一个预
    的头像 发表于 10-21 14:18 471次阅读
    <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

    如何在PSOC创建者项目中确认看门狗定时器已启用?

    您好,我是 PSOC BLE 部件的新手,只有一项任务,即确认看门狗定时器是否正确启用并按需要工作。我是 PSOC Creator 的新用户。如有任何帮助,将不胜感激。如何在 PSOC 创建者项目中确认看门狗
    发表于 07-02 07:10

    CX3看门狗定时器何时使用,有什么好处?

    我正在犹豫是否要在印刷电路板上安装运行看门狗定时器的元件,因此提出了这个问题。 在我的设计中,摄像头一直用于视频流,因此 CX3 从未进入睡眠模式。 此外,我不明白为什么要为 ARM926EJ-S
    发表于 05-28 08:13

    软件看门狗和硬件看门狗的区别

    软件看门狗和硬件看门狗都是用于监控系统崩溃的工具,它们的作用是在系统出现故障或异常情况时自动恢复系统。  软件看门狗是一种程序,运行在操作系统中,通过定时检测系统是否正常运行来判断系统
    的头像 发表于 04-16 15:10 1111次阅读

    看门狗定时器的微处理监控UCCx946数据表

    电子发烧友网站提供《带看门狗定时器的微处理监控UCCx946数据表.pdf》资料免费下载
    发表于 04-01 15:26 0次下载
    带<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>的微处理<b class='flag-5'>器</b>监控<b class='flag-5'>器</b>UCCx946数据表

    集成有看门狗定时器的高精度电压监控TPS3851数据表

    电子发烧友网站提供《集成有看门狗定时器的高精度电压监控TPS3851数据表.pdf》资料免费下载
    发表于 03-29 10:00 0次下载
    集成有<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>的高精度电压监控<b class='flag-5'>器</b>TPS3851数据表

    带可编程延迟和看门狗定时器TPS386000-Q1数据表

    电子发烧友网站提供《带可编程延迟和看门狗定时器TPS386000-Q1数据表.pdf》资料免费下载
    发表于 03-14 10:57 0次下载
    带可编程延迟和<b class='flag-5'>看门狗</b><b class='flag-5'>定时器</b>TPS386000-Q1数据表

    求助,关于看门狗定时器的喂狗时间和多APP看门狗的问题求解

    参考例程,在看门狗定时器时间的配置上,我看到如下函数: /* Step 3- Write match value */ #if(WDT_DEMO == WDT_INTERRUPT_DEMO
    发表于 02-21 06:50

    什么是看门狗?如何实现对系统程序的监控?

    看门狗通过定时器计数和相关的控制逻辑来实现功能。在系统正常运行时,定时器会以固定的时间间隔重复计数,如果系统一切正常,那么定时器会定期被重
    的头像 发表于 02-02 15:58 2544次阅读