WWDG—窗口看门狗

news2024/11/14 20:43:16

WWDG—窗口看门狗

窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下递减计数,当减到一个固定值 0X40时还不喂狗的话,产生复位,这个值叫窗口的下限,是固定的值,不能改变。这个是跟独立看门狗类似的地方,不同的地方是窗口看门狗的计数器的值在减到某一个数之前喂狗的话也会产生复位,这个值叫窗口的上限,上限值由用户独立设置。窗口看门狗计数器的值必须在上窗口和下窗口之间才可以喂狗,这就是窗口看门狗中窗口两个字的含义
(只是在递减的过程中分了一块窗口区,只有在窗口的范围里才能进行喂狗操作)
在这里插入图片描述

大纲

  1. 功能框图
  2. 时钟和寄存器

具体案例

功能框图

RLR 是重装载寄存器,用来设置独立看门狗的计数器的值。TR 是窗口看门狗的计数器的值,由用户独立设置,WR 是窗口看门狗的上窗口值,由用户独立设置
在这里插入图片描述

时钟和寄存器

计数器时钟

计数器时钟由 CK 计时器时钟经过预分频器分频得到,分频系数由配置寄存器 CFR 的位8:7 WDGTB[1:0] 配置,可以是 [0,1,2,3],其中 CK 计时器时钟 =PCLK1/4096,除以 4096 是手册规定的,没有为什么。所以计数器的时钟CNT_CK=PCLK1/4096/(2^WDGTB),这就可以算出计数器减一个数的时间 T= 1/CNT_CK = Tpclk1 * 4096 * (2^WDGTB)

这里主要强调说明一下时间的计算方式
对于最开始的时钟,我们需要分频,然后按照手册除以4096,这样我们就得到了递减一次的时间,然后再乘以我们设定的次数,就得到了时间

对时钟进行分频是在CFR的WDGTB位进行配置的
在这里插入图片描述

计数器

窗口看门狗的计数器是一个递减计数器,共有 7 位,其值存在控制寄存器 CR 的位 6:0,即 T[6:0],
当 7 个位全部为 1 时是 0X7F,这个是最大值,当递减到 T6 位变成 0 时,即从 0X40 变为 0X3F
时候,会产生看门狗复位。这个值 0X40 是看门狗能够递减到的最小值,所以计数器的值只能是:
0X40~0X7F 之间,实际上真正用来计数的是 T[5:0]。当递减计数器递减到 0X40 的时候,还不会
马上产生复位,如果使能了提前唤醒中断:CFR 位 9EWI 置 1,则产生提前唤醒中断,如果真进
入了这个中断的话,就说明程序肯定是出问题了,那么在中断服务程序里面我们就需要做最重要
的工作,比如保存重要数据,或者报警等,这个中断我们也叫它死前中断。
在这里插入图片描述

窗口值

我们知道窗口看门狗必须在计数器的值在一个范围内才可以喂狗,其中下窗口的值是固定的
0X40,上窗口的值可以改变,具体的由配置寄存器 CFR 的位 6:0 W[6:0] 设置。其值必须大于
0X40,如果小于或者等于 0X40 就是失去了窗口的价值
在这里插入图片描述

状态寄存器

在这里插入图片描述

时间的计算

在这里插入图片描述
这个图来自数据手册,从图我们知道看门狗超时时间:Twwdg = Tpclk1 x 4096 x 2^wdgtb x (T[5:0]

    1. ms,当 PCLK1 = 36MHZ 时,WDGTB 取不同的值时有最小和最大的超时时间,那这个最小和
      最大的超时时间该怎么理解,又是怎么算出来的?讲起来有点绕,这里我稍微讲解下 WDGTB=0
      时是怎么算的。递减计数器有 7 位 T[6:0] ,当位 6 变为 0 的时候就会产生复位,实际上有效的计
      数位是 T[5:0],而且 T6 必须先设置为 1。如果 T[5:0]=0 时,递减计数器再减一次,就产生复位
      了,那这减一的时间就等于计数器的周期 =1/CNT_CK = Tpclk1 * 4096 * (2^WDGTB) = 1/36 * 4096
      2^0 =113.7us,这个就是最短的超时时间。如果 T[5:0] 全部装满为 1,即 63,当他减到 0X40 变
      成 0X3F 时,所需的时间就是最大的超时时间 =113.7
      2^5=113.7*64=7.2768ms。同理,当 WDGTB
      等于 1/2/3 时,代入公式即可

从0X111111到0x100000(0x4f)这里其实只用到了5位,而当从0x100000到0x011111这还需要一次,所以最后就是五位加一次

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

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

相关文章

C练手题--Two Oldest Ages 【7 kyu】

一、原题 链接:Training on Two Oldest Ages | Codewars The two oldest ages function/method needs to be completed. It should take an array of numbers as its argument and return the two highest numbers within the array. The returned value should b…

bash反弹shell分析

目录 介绍步骤 介绍 与目标主机建立连接的原理是利用漏洞执行ShellCode。 GetShell的实质是:执行ShellCode,将目标主机的Shell重定向到攻击机。拿到Shell利于后续的渗透。 所谓的反弹Shell是指GetShell的过程由目标主机主动发起(反向连接&a…

mysql(查询)

1.单表查询 (1)查询多个字段 指定列查询基础语法:select 字段1,字段2,字段3,... from 表名; 全列查询基础语法:select * from 表名; 注意: 1)在实…

AI-Talk开发板CSK6固件烧录

一、说明 在windows系统上使用cskburn desktop工具对主控CSK6011A进行固件烧录,烧录接口为UART2(TXD:PA18,RXD:PA15),需要CSK6011A处于boot模式才能升级。 官方参考文档:cskburn桌面烧录工具 | 聆思文档中…

DETR3D: 3D Object Detectionfrom Multi-view Images via 3D-to-2D Queries

本文的主要贡献如下: 我们提出了一种基于RGB图像的简化3D物体检测模型。与现有工作在最终阶段结合来自不同相机视角的物体预测不同,我们的方法在每一层计算中融合所有相机视角的信息。据我们所知,这是首次尝试将多摄像头检测视为3D集合到集合…

软考攻略/超详细/系统集成项目管理工程师/基础知识分享06

2.2 新一代信息技术及应用 2.2.1 物联网(掌握) 物联网:是指通过信息传感设备,按约定的协议将任何物品与互联网相连接,进行信息交换和通信,以实现只能识别、定位、跟踪、监控和管理的网络 1、技术基础 物联…

Flask框架 完整实战案例 附代码解读 【3】

Flask 是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。 前面已经写过项目从新建运行安装到测试部署的全流程,其中有写Flask框架从新建到部署全流程,但是只有部分代码。本篇主要是…

国产光耦合器在提高各行业能源效率方面的作用

随着各行业对节能解决方案的需求不断增长,国产光耦合器已成为降低能耗和提高整体系统效率的关键部件。这些由本地制造商开发的组件现在不仅因其成本效益而受到认可,而且还因其能够满足需要可靠隔离和高效电源管理的工业应用的特定需求而受到认可。 通过隔…

语义传输中单智能体语义知识库

在语义传输中涉及到的智能体包括信源数据模态、信宿智能任务以及信道传输环境。单智能体系统仅涉及一个智能体,该智能体独立完成感知、决策和执行任务,通常在不需要与其他智能体直接交互的环境中运行,能自主获取环境信息,并基于自…

PHP高效进销存管理系统智能管理库存销售与采购系统小程序源码

高效进销存管理系统 —— 智能管理,轻松驾驭库存、销售与采购 🔥 【开篇:告别繁琐,拥抱智能管理】 你还在为库存管理混乱、销售数据不清、采购计划难定而烦恼吗?是时候告别那些低效的手工账本和复杂的Excel表格了&…

传输层(TCP、UDP、RDT详解)

目录 1.无连接传输:UDP UDP:User Datagram Protocol(用户数据报协议) UDP:校验和 Internet校验和的例子 2.可靠数据传输(Rdt)的原理 可靠数据传输:问题描述 1.Rdt1.0&#xff…

【JAVA】两轮充电桩设计模式实践分享

如果说数据结构和算法是程序员构建高效代码的基石,那么设计模式则是打造高质量代码的“内功心法”。掌握并应用合适的设计模式,有助于管理项目复杂性,简化维护,并加速开发进程。 因此,深入理解并合理运用设计模式&…

HTTP 请求方法(method)介绍

目录 一、GET 二、POST 三、其他方法 3.1 PUT 3.2 DELETE 3.3 HEAD 3.4 OPTIONS 3.5 TRACE 3.6 CONNECT 3.7 PATCH 3.8 LINK 和 UNLINK(扩展方法) HTTP(超文本传输协议)定义了多种请求方法,如: …

opencv计算机视觉识别图像处理c++项目实战python网课程视频教程

课程名称 《OpenCV计算机视觉识别图像处理C实战课程》 课程亮点 全面覆盖:从基础概念到高级技术,涵盖OpenCV的核心功能。实战导向:通过具体项目实践,帮助学员掌握图像处理的实际应用。双语言支持:虽然重点是C&#x…

使用神卓互联内网穿透开发支付宝支付回调环境(Java版)

支付宝支付功能在电商网站和其他在线服务中扮演着重要角色。对于使用Java作为开发语言的应用来说,集成支付宝支付回调功能是必不可少的一部分。为了能够在本地开发环境中测试这一功能,内网穿透技术可以让我们绕过公网IP的限制。下面将介绍如何利用神卓互…

Unity教程(十三)敌人状态机

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

集成电路学习:什么是I/O输入输出

I/O:输入输出 I/O,全称Input/Output,即输入输出,是信息处理系统(如计算机)与外部世界(可能是人类或另一信息处理系统)之间的通信方式。具体来说,输入是系统接收的信号或数…

shell编程--正则表达式

正则表达式 正则表达式都被置于两个正斜杠之间;如/l[oO]ve/ 示例 匹配数字的脚本,用户输入创建账号的数量 语法: [[ ^[0-9]$ ]] 表示必须输入数字 #!/bin/bashwhile : do read -p "输入数字:" numif [[ $num ~ ^[…

springboot整合logback进行日志管理(下篇)

上一篇介绍了springboot整合logback的一些项目中用到的经验,本片文章继续介绍在项目中实际用到的工程经验 1、设想一下有这样一个场景:我想把我所有service层的日志单独打印到service.log中,那应该怎么做? 有人会说了可以配置一…

高收录高权重的采集站源码——码山侠

前端预览:i5i.net——码山侠点击看看 采集非常简单,不伪原创,也不处理种种外链,也不需要什么配图,而且结构也不复杂。 后台管理: 文章发布手动发布及编辑管理后台 采集以及伪原创类工具后台: …