STM32 独立看门狗和窗口看门狗区别

文章目录

  • 1. 时钟源不同
    • 独立看门狗(IWDG)
      • 时钟源:
      • 特点:
    • 窗口看门狗(WWDG)
      • 时钟源:
      • 特点:
  • 2. 中断机制不同
    • 独立看门狗(IWDG)
      • 中断机制:
    • 窗口看门狗(WWDG)
      • 中断机制:
  • 3. 使用条件与适用场景
    • 独立看门狗(IWDG)
      • 使用条件:
      • 适用场景:
    • 窗口看门狗(WWDG)
      • 使用条件:
      • 适用场景:
  • 总结

在嵌入式系统设计中,看门狗定时器(Watchdog Timer, WDT)是一种重要的硬件机制,用于监控系统的运行状态,防止系统因软件故障或外部干扰而陷入不可预测的状态。STM32系列微控制器提供了两种类型的看门狗定时器:独立看门狗(Independent Watchdog, IWDG)和窗口看门狗(Window Watchdog, WWDG)。

1. 时钟源不同

独立看门狗(IWDG)

时钟源:

IWDG使用内部专门的40KHz低速时钟,这个时钟源是独立的,不依赖于系统主时钟(HCLK)。因此,即使系统主时钟出现故障,IWDG仍能继续工作,确保系统监控的连续性。

特点:

由于使用独立的时钟源,IWDG在电源和系统时钟稳定性方面具有较高的抗干扰能力。

窗口看门狗(WWDG)

时钟源:

WWDG使用的是PCLK1的时钟,其频率通常是系统时钟经过APB1预分频后得到的。这意味着WWDG的时钟源依赖于系统主时钟,但在系统时钟稳定时,其时间精度较高。

特点:

WWDG的时钟源与系统主时钟相关联,因此在系统时钟正常时,其时间测量更为精确。但系统时钟故障时,WWDG可能无法正常工作。

2. 中断机制不同

独立看门狗(IWDG)

中断机制:

IWDG没有中断功能。当计数器减至0时,直接产生系统复位信号,无需通过中断服务程序(ISR)进行处理。
特点:这种设计简化了系统复杂度,但在需要在复位前执行特定操作(如保存关键数据)时显得不够灵活。

窗口看门狗(WWDG)

中断机制:

WWDG具有中断功能。当计数器达到预设的下限(通常为0x40)时,可以产生中断。在中断服务程序中,用户可以执行必要的操作,如喂狗、记录日志或执行特定的错误恢复策略。
特点:WWDG的中断机制为系统提供了更高的灵活性和可控性,允许在复位前执行必要的操作,从而减少数据丢失或系统不稳定的风险。

3. 使用条件与适用场景

独立看门狗(IWDG)

使用条件:

IWDG最适合那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。

适用场景:

如工业自动化系统、嵌入式控制系统等对实时性要求不是特别高的场景。在这些场景中,IWDG能够有效地防止程序跑飞或陷入死循环,保障系统稳定运行。

窗口看门狗(WWDG)

使用条件:

WWDG最适合那些要求看门狗在精确计时窗口内起作用的应用程序。通过配置窗口期和超时时间,WWDG能够精确地监控软件进程或任务的执行状态。

适用场景:

如通信设备、数据采集与处理系统等对时间精度要求较高的场景。在这些场景中,WWDG能够确保软件进程或任务按照预定的时间窗口执行,避免超时或提前完成导致的系统不稳定或数据错误。

总结

STM32的独立看门狗和窗口看门狗在时钟源、中断机制、使用条件及适用场景等方面存在显著差异。在实际应用中,应根据具体需求选择合适的看门狗定时器。对于时间精度要求不高且需要看门狗完全独立工作的场景,可选择独立看门狗;而对于时间精度要求较高且需要精确监控软件进程或任务执行状态的场景,则更适合选择窗口看门狗。通过合理配置和使用看门狗定时器,可以显著提高嵌入式系统的稳定性和可靠性。

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

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

相关文章

尚硅谷大数据Flink1.17实战教程-笔记04【Flink DataStream API】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink 概述、Flink 快速上手】尚硅谷大数据Flink1.17实战教程-笔记02【Flink 部署】尚硅…

【Spring篇】初识之Spring的入门程序及控制反转与依赖注入

🧸安清h:个人主页 🎥个人专栏:【计算机网络】,【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 文章目录 🎯初始Spring …

【K8S系列】Kubernetes pod节点NotReady问题及解决方案详解【已解决】

Kubernetes 集群中的每个节点都是运行容器化应用的基础。当节点状态显示为 NotReady 时,意味着该节点无法正常工作,这可能会导致 Pod 无法调度,从而影响整个应用的可用性。本文将深入分析节点不健康的各种原因、详细的排查步骤以及有效的解决…

查看SQL执行计划 explain

查看SQL执行计划 explain explain使用方式 alter session set current_schematest; explain plan for sql语句; --并不会实际执行,因此生成的执行计划也是预估的 select * from table(dbms_xplan.display); explain使用场景 1.内存中没有谓词信息了&#xff0…

MySQL从入门到跑路

SQL语言 SQL(Structured Query Language,结构化查询语言)是用于管理和操作关系数据库的一种标准编程语言。 SQL分类: DDL(Data Definition Language):数据定义语言,用于操作数据库、表、字段&#xff0c…

前端文件流导出

1、前端代码 ​ /** 导出 */ const handleExport async () > {let config {responseType: blob,headers: {Content-Type: application/json,},};const res await getTargetExport(config);const blob new Blob([res]);const fileName PK目标跟进导出列表.xls;const li…

SpringBoot整合Freemarker(一)

Freemarker和jsp一样是一个视图的引擎模板,其实所有的模板引擎的工作原理都是类似的,如下图: 接下来就具体讲解一下Freemarker的用法,参考手册:模板 数据模型 输出 - FreeMarker 中文官方参考手册 SpringBoot默认就…

【浏览器】如何正确使用Microsoft Edge

1、清理主页广告 如今的Microsoft Edge 浏览器 主页太乱了,各种广告推送,点右上角⚙️设置,把快速链接、网站导航、信息提要、背景等全部关闭。这样你就能得到一个超级清爽的主页。 网站导航       关闭 …

HarmonyOS NEXT和认证(在校生的大福利)

今天重点关注了一下HarmonyOS NEXT,也就是我们所说的纯血鸿蒙! 根据官方的说法: 欢迎开发者进入HarmonyOS NEXT。暌违一年,HarmonyOS NEXT终于在万千开发者的期待下从幕后走向台前。 HarmonyOS NEXT采用全新升级的系统架构&#…

【Python】NumPy(一):数据类型、创建数组及基本操作

目录 ​NumPy初识 1.什么是NumPy? NumPy的应用 NumPy数据类型 Python基本数据类型 NumPy数据类型 NumPy数组 创建数组 1.使用numpy.array() 2.使用arange()方法创建 3.使用linspace()创建等差数列 4使用zeros()创建数组 5.使用ones()创建数组 6.利用…

Linux基本使用和程序部署

文章目录 一. Linux背景Linux发行版 二. Linux环境搭建Linux常见命令lspwdcdtouchcatmkdirrmcpmvtailvimgreppsnetstat管道 三. 搭建java部署环境安装jdk安装mysql部署Web项目到Linux 一. Linux背景 1969−1970年,⻉尔实验室的DennisRitchie和KenTompson开发了Unix操作系统. 他…

在Linux操作系统上安装NVM教程——CentOS 7/VMware 17版

目录 一、测试网络是否能上网 二、下载阿里云镜像 三、解决执行yum命令出现报错(没有就跳过) 四、下载NVM安装包 五、解压NVM安装包 六、安装Node 七、连接新的动态库 八、升级GLIBC版本 九、安装GCC 十、查看当前服务器CentOS版本 一、测试网…

[AWS云]kafka调用和创建

背景:因为因为公司的项目需要使用AWS的kafka,但是在创建和使用过程中都遇到了一些报错和麻烦,毕竟老外的东西,和阿里云、华为使用起来还是不一样。 一、创建(创建的配置过程就略了,就是配置一下可用区、型号&#xff0…

闯关leetcode——110. Balanced Binary Tree

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/balanced-binary-tree/description/ 内容 Given a binary tree, determine if it is height-balanced. A height-balanced binary tree is a binary tree in which the depth of the two subtrees…

深入理解售后派单管理系统,功能优势一览

售后派单管理系统优化售后服务流程,提升响应速度、运营效率和服务质量。ZohoDesk等系统通过自动化派单、实时调度监控等功能,助力企业赢得竞争优势。适用于电子产品、汽车、IT及房地产等行业。 一、什么是售后派单管理系统 售后派单管理系统是一种专门用…

第七届机械、控制与计算机工程国际学术会议(ICMCCE2024)

重要信息 大会官网:www.icmcce.com 大会地点:中国杭州 大会时间:2024年10月25-27日 大会简介 第七届机械、控制与计算机工程国际学术会议定于2024年10月25日至27日在中国杭州召开。本届会议由巢湖学院主办,主要围绕“机械”、…

AGI|浅尝多Agent协作框架CrewAI,打造一个智能旅行助手

目录 一、介绍 二、特性 三、使用案例 四、 结语 一、介绍 Crew AI是一个多智能体协作智能框架,可以编排角色扮演的AI智能体。旨在协调角色扮演的自主AI代理,通过促进协作智能体,Crew AI使代理能够无缝协作,共同应对复杂任务。…

【JavaScript】LeetCode:61-65

文章目录 61 课程表62 实现Trie(前缀树)63 全排列64 子集65 电话号码的字母组合 61 课程表 Map BFS拓扑排序:将有向无环图转为线性顺序。遍历prerequisites:1. 数组记录每个节点的入度,2. 哈希表记录依赖关系。n 6&a…

(十九)、使用 minikube 运行k8s 集群

文章目录 1、机器信息2、官方文档3、启动本机 docker4、安装 minikube5、启动 minikube5.1、报错重试应该做什么? 6、启动后7、安装 Vs Code & k8s extensions8、在 VS Code 查看运行起来的 k8s 集群9、基本命令10、虚拟化不支持 Mac Os 14.3.1 1、机器信息 Ma…

c++算法第3天

本篇文章包含三道算法题,难度由浅入深,适合新手练习哟 目录 第一题 题目链接 题目解析 代码原理 代码编写 本题总结 第二题 题目链接 题目解析 代码原理 代码编写 第三题 题目链接 题目解析 代码原理 代码编写 第一题 题目链接 [NOIP2…