RTOS和看门狗 (Watchdog)

只要是软件,就一定有 Bug。 只要是电子设备,就一定会被强电磁干扰打挂(比如 PC 指针跑飞,跳到了空地址死循环)。

当 CPU “发疯”的时候,谁来按下复位键? 这就是今天我们要讲的主角——看门狗。这看起来是一个很简单的外设,但可能很多的工程师都用错了

为什么在中断里“喂狗”等于没喂?

看门狗(Watchdog Timer, WDT)本质上是一个独立的倒计时计数器。

  • 规则:假如你设定了 1000ms 的超时。如果你的程序没有在 1000ms 内向它写入特定数值(喂狗/Reload),它就会归零,并触发MCU 硬件复位

听起来很简单?那我们一起来看看用法。


1. 独立看门狗 (IWDG) vs 窗口看门狗 (WWDG)

STM32(以及大多数现代 MCU)通常配备了两只狗。它们的性格完全不同。

1.1 独立看门狗 (IWDG - Independent Watchdog)

  • 时钟源:LSI (Low-Speed Internal)内部低速时钟(通常 32kHz 或 40kHz)。

  • 特点:

    • 独立:即使 MCU 的主晶振(HSE)坏了,或者 PLL 锁相环挂了,导致系统主时钟停摆,IWDG 依然能独立工作,把系统复位。

    • 精度低:LSI 的温漂很大(30kHz ~ 60kHz 都有可能),所以 IWDG 适合做“大尺度”的监测(比如 1秒、5秒)。

  • 用途:防止程序跑飞、死循环、硬件晶振故障。

1.2 窗口看门狗 (WWDG - Window Watchdog)

  • 时钟源:APB (PCLK)系统总线时钟分频。

  • 特点:

    • 窗口机制:这是它名字的由来。它不仅规定了“不能太晚喂”(超时复位),还规定了“不能太早喂”

    • 精度高:跟随系统时钟,非常精准。

  • 用途:监测程序执行流程是否过快(跳过逻辑)或过慢。通常用于安规要求极高的场合(如汽车 ABS、医疗设备)。


2. 致命误区:千万不要在定时器中断里喂狗!

这是新手最容易犯的错误:

“我看门狗设定了 1s 超时。为了省事,我在 SysTick 的 1ms 中断里,或者一个专门的 100ms 定时器中断里写了一句HAL_IWDG_Refresh()。”

为什么这是错的?

  • 场景:你的main()函数里有一个while(Flag == 0);等待逻辑。有一天,传感器坏了,Flag 永远为 0,主程序死锁在这里了。

  • 现象:虽然主程序死了,但中断(Interrupt)依然能响应!定时器依然在欢快地跑,每 100ms 喂一次狗。

  • 结果:看门狗觉得“我很饱,系统很正常”,系统实际上已经变成了植物人,永远不会复位。

专家法则:只允许在主循环(Main Loop)或低优先级的任务中喂狗。只有当“大脑”清醒时,才能去喂狗。


3. 高阶策略:多任务系统的“逻辑看门狗”

如果你的系统里有 3 个任务:显示任务、电机任务、通信任务。 如果你只在main循环的末尾喂狗,可能会出现:电机任务死锁了,但显示任务还活着,主循环还在跑,狗被喂了,电机却烧了。

我们需要设计一种**“任务签到”**机制。

实战代码 (Task Monitor)

// 定义任务标志位 #define TASK_FLAG_DISPLAY (1 << 0) #define TASK_FLAG_MOTOR (1 << 1) #define TASK_FLAG_COMMS (1 << 2) #define TASK_ALL_ALIVE (0x07) // 111 static uint8_t g_TaskSignaled = 0; // 1. 各个任务定期汇报 "我还活着" void Display_Task(void) { // ... 业务逻辑 ... g_TaskSignaled |= TASK_FLAG_DISPLAY; } void Motor_Task(void) { // ... 业务逻辑 ... g_TaskSignaled |= TASK_FLAG_MOTOR; } void Comms_Task(void) { // ... 业务逻辑 ... g_TaskSignaled |= TASK_FLAG_COMMS; } // 2. 主循环统一检查 void Main_Loop(void) { while(1) { Display_Task(); Motor_Task(); Comms_Task(); // 核心逻辑:只有所有人都签到了,才喂狗 if (g_TaskSignaled == TASK_ALL_ALIVE) { HAL_IWDG_Refresh(&hiwdg); g_TaskSignaled = 0; // 清空标志,等待下一轮 } else { // 如果某人没签到,这里不喂狗。 // 几个周期后,IWDG 溢出,系统复位。 } } }

如果是 RTOS 系统,可以建立一个低优先级的“看门狗守护任务 (Daemon Task)”,去监视所有其他任务的事件标志组。


4. WWDG 的正确打开方式:防跳过

WWDG 的“不可太早喂”有什么用? 假设你有关键的安全逻辑:

void Safety_Check(void) { Step1_Check_Voltage(); // 耗时 2ms Step2_Check_Temp(); // 耗时 2ms Step3_Check_Speed(); // 耗时 2ms // 总耗时 6ms // WWDG 窗口设定:必须在 5ms ~ 10ms 之间喂狗 Feed_WWDG(); }

故障场景:PC 指针因为干扰,直接跳过了 Step1 和 Step2,直接执行了Feed_WWDG()

  • 结果:此时只过了 0ms。WWDG 发现你喂得太早了!判定为逻辑异常,立即复位系统。

结论:IWDG 防死锁(太慢),WWDG 防跑飞(太快)。


5. 最后的挣扎:复位前能保存现场吗?

看门狗复位是瞬间发生的,就像断电一样。 我们能不能知道“我是被看门狗复位的”?甚至知道“死在哪里”?

  1. 复位源寄存器 (RCC_CSR):系统启动后的第一件事,检查RCC->CSR寄存器。

    • 如果IWDGRSTF置位,说明是看门狗咬死的。

    • 如果PINRSTF置位,说明是被人按了复位键。

    • 专家技巧:记录这个标志到 EEPROM,统计设备的“非正常死亡率”。

  2. 死前遗言 (难):WWDG 通常有一个“早期唤醒中断 (Early Wakeup Interrupt, EWI)”。 在计数器减到 0x40(马上要复位)之前,会先触发一个中断。你可以在这个最高优先级的中断里,把关键寄存器保存到 Flash 或 备份寄存器中,作为“黑匣子”数据。


总结本章

看门狗不是“开了就行”的配置项,它是系统稳定性的基石。

  1. IWDG:用来救命(死机复位)。必须在主循环或逻辑末端喂,严禁在定时器中断喂

  2. WWDG:用来体检(流程监控)。适合安规场景。

  3. 多任务策略:使用“签到制”,缺一不可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1210323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重庆思庄技术分享——oracle添加ACL(访问控制表)的步骤

oracle添加ACL&#xff08;访问控制表&#xff09;的步骤 一、新增 步骤 1: 创建 ACL 文件并授予权限 首先&#xff0c;我们创建一个新的 ACL 文件&#xff0c;并允许 INFODBA用户访问外部 HTTP 服务。 BEGIN -- 创建一个新的ACL&#xff0c;允许bakmes用户进行网络访问

基于PLC控制的四路抢答器设计基于PLC的知识竞赛抢答器设计【程序与文档】(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC控制的四路抢答器设计基于PLC的知识竞赛抢答器设计【程序与文档】(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 基于PLC控制的四路抢答器设计[说明书抢答器接线图抢答器流程图抢答器梯形图调研报告任务书】。可以作为…

基于PLC的生产线搬运机器人的机械手控制系统【程序与文档】(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PLC的生产线搬运机器人的机械手控制系统【程序与文档】(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 本次设计主要采用的是顺序控制的思路&#xff0c;系统在确认好上一步完成的基础上再进入下一步&#xff0c;然后逐步…

PLC停车场进出控制系统仿真(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

PLC停车场进出控制系统仿真(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码三菱PLC编程软件GXWorks2/3与触摸屏组态软件 GT Designer3仿真 1.10表软元件说明 2.PLC接线图主电路图流程图 3.梯形图仿真指令表 4.设计报告(Word文件…

plc自动售货机设计报告+代码合集(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

plc自动售货机设计报告代码合集(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码根据设计要求&#xff0c;经过电路分析&#xff0c;确定所控制参数的精度及类型需要。主电路为6个直流电机转动的控制&#xff0c;由PLC的输出端控…

2026 权威调研|雅思网课口碑排行榜推荐 个性化提分路径与性价比解析

本次测评由中国外语教学研究中心联合英国文化教育协会(BC)官方认证测评团队开展,依据《2026雅思培训服务质量规范》,覆盖50个城市182个区县,结合26000+考生及家长实测反馈、203家雅思教育机构全维度考核结果,形成…

JX076_PLC在高楼供水系统中的应用

第二章 系统组成及控制要求 2.1系统简介 为改善生产环境&#xff0c;某公司投资清洁水技改工程并建成一座日产水2.5万顿的供水系统&#xff0c;分别建设了抽水泵系统、加压泵系统和高位水池。根据公司用水需求特点&#xff0c;从抽水泵系统过来的水一部分直接供给生产用水部门&…

005JX乘客电梯的PLC控制

第三章 课题任务的分析 3.1 电梯控制方法的分析 随着科学技术的发展、近年来&#xff0c;我国的电梯生产技术得到了迅速发展。目前电梯控制系统主要有三种控制方式&#xff1a;继电路控制系统(“早期安装的电梯多位继电器控制系统)、PLC控制系统、微机控制系统。继电器控制系统…

救命神器8个AI论文平台,本科生毕业论文轻松搞定!

救命神器8个AI论文平台&#xff0c;本科生毕业论文轻松搞定&#xff01; 论文写作的救星&#xff0c;AI 工具如何改变你的学习方式 在当今信息爆炸的时代&#xff0c;学术写作已成为本科生必须面对的一项挑战。无论是课程作业还是毕业论文&#xff0c;都需要大量的时间、精力和…

整体二分

整体二分 (搞完这个专题就要开dp和数学了,诶诶) 前言 整体二分是一种离线处理时间轴的技术,对于特定问题可以做到 \(O(n\log^2 n)\) 复杂度(假设 \(n\) \(V\) 同阶),可惜常规写法复杂度有点大,不过经过优化常数…

权威榜单|2026 雅思网课口碑排名推荐 直播课高效备考技巧拆解

本次测评由中国教育评估协会联合英国文化教育协会(BC)授权测评团队开展,依据《2026雅思培训服务质量规范》,覆盖46个城市175个区县,结合24000+考生及家长实测反馈、198家雅思网课机构全维度考核结果,形成这份兼具…

说说灭菌过滤器国产品牌,哪个比较靠谱?

2026年工业制造领域高质量发展提速,压缩空气净化与气体提纯设备已成为保障生产安全、提升产品品质的核心支撑。无论是满足食品医药行业严苛要求的灭菌过滤器国产品牌,还是适配多粉尘环境的高效除尘过滤器国产品牌,抑…

酸奶杯制造商哪家做工好,雄县普联成是优选

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆酸奶杯制造企业,围绕酸奶杯厂哪家品质好、酸奶杯制造商哪家做工好、酸奶杯供应企业哪家做工好三大核心需求,为餐饮、乳制品、烘焙等行业企业选型提供客观…

RustFS MCP server 介绍

RustFS MCP&#xff0c;这是一个高性能的 模型上下文协议 (Model Context Protocol, MCP) 服务器。 核心功能与目的: 桥梁作用: RustFS MCP 充当 AI 助手&#xff08;如 Claude Desktop&#xff09;和 S3 兼容对象存储服务&#xff08;如 RustFS、MinIO 等&#xff09;之间的桥…

RustFS Docker 部署指南 (SNSD)

RustFS Docker 安装指南 (SNSD) 本篇博文博主将详细介绍如何使用 Docker 在单节点单磁盘 (Single Node Single Disk, SNSD) 模式下安装和部署 RustFS。 概述: RustFS 定义: 一个高性能、100% S3 兼容的开源分布式对象存储系统。SNSD 模式: 单节点单磁盘部署模式。其后端不使…

探讨郑州西点烘焙培训学校,新东方培训学校费用多少钱?

随着西式烘焙行业的快速发展,越来越多对甜品制作感兴趣的人开始寻找专业的学习渠道,学西点烘焙哪家专业专业的西点烘焙学校也成了不少人搜索的高频问题。本文将围绕这些问题展开问答,帮助大家清晰了解如何选择合适的…

分析浙江灌装机生产商哪家好,筛选优质之选

2026年食品饮料制造业持续升级,灌装机作为生产链路的核心装备,其适配性、精度与稳定性直接决定企业的产能效率、原料成本与品控水平。无论是初创水厂的小批量灵活生产、中型饮料厂的多品类快速换产,还是大型企业的规…

专业的玻璃温室供应商怎么选择?

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为农业生产者选型提供客观依据,助力精准匹配适配的温室工程服务伙伴。 TOP1 推荐:青州市冠丰温室园艺工程有限公司 推荐指数:★★★★★ | 口碑评…

AI科学家Kosmos:数小时完成数月科研,引发行业热议

人工智能能够处理大量数据&#xff0c;但它能做科学吗&#xff1f;一种AI科学家可以独立工作数小时&#xff0c;完成人类需要数月才能完成的研究&#xff0c;并且据其创造者称&#xff0c;已经在科学领域做出了多项“新颖贡献”&#xff0c;但其他人对此则更加怀疑。 该系统名…

Type-C 140W一拖二,双接EPR扩展功率分配

在笔记本、平板、智能手机成为生活刚需的今天&#xff0c;“充电焦虑” 已成为用户普遍痛点&#xff1a;传统单口线材无法满足多设备并行需求&#xff0c;普通一拖二线材又深陷功率分配失衡、快充效率打折的瓶颈。在此背景下&#xff0c;支持 USB PD3.1 协议的 140W 一拖二快充…