STM32
登录
直播中
周棠亨
7年用户
1008经验值
擅长:可编程逻辑 电源/新能源
私信
关注
[问答]
什么是stm32看门狗?stm32看门狗分为哪几类?
开启该帖子的消息推送
什么是
STM32
看门狗?stm32看门狗分为哪几类?
独立看门狗与窗口看门狗有哪些异同点?
回帖
(1)
孙宇
2021-7-23 11:53:43
stm32看门狗
一、定义
由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称看门狗”(watchdog) 。
二、分类
STM32内置两个看门狗,独立看门狗和窗口看门狗,用来检测和解决由软件错误引起的故障。当计数器达到给定的超时值时,产生系统复位或者触发一个中断(仅适用窗口看门狗)。
(一)、独立看门狗(IWDG)
如果喂狗时间超出某个可设定的时间,就会认为程序跑飞,产生复位。
由专用的低速时钟(LSI)驱动,即使主时钟发生故障它仍有效。
独立看门狗适合应用于需要看门狗作为一个在主程序之外 能够完全独立工作,并且对时间精度要求低的场合。
键寄存器(IWDG_KR)
位31:16 保留,始终读为0。
位15:0 KEY[15:0]: 键值(只写寄存器,读出值为0x0000)
写入0xAAAA,重载计数器。软件必须以一定的间隔写入0xAAAA,否则,当计数器为0时,看门狗会产生复位。
写入0x5555表示允许访问IWDG_PR和IWDG_RLR寄存器。
写入0xCCCC,启动看门狗工作(若选择了硬件看门狗则不受此命令字限制)。
(二)、窗口看门狗
喂狗必须在某个可设定的时间窗内进行,早于或晚于这个时间窗喂狗都会触发复位。
由从APB1时钟分频后得到时钟驱动。
通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。
窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。
如果看门狗被启动(WWDG_CR寄存器中的WDGA位被置’1’), 并且当7位(T[6:0])递减计数器从0x40(T6为1)翻转到0x3F(T6位清零)时,则产生一个复位。
如果软件在计数器值大于窗口配置寄存器中的数值(WWDG_CFR)时重新装载计数器,也将产生一个复位。
(三)二者相同点
软件代码一直死循环在某处,无法喂狗,导致产生复位
代码运行超时,或外部一直触发中断,导致无法喂狗产生复位
喂狗时间限制可以自己设定
(四)二者不同点
计数器时钟源不同
• 独立看门狗由内部专门的40KHz的LSI时钟,使用前不需使能
• 窗口看门狗使用PCLK1时钟,使用前需要使能。
中断不都有
• 独立看门狗不产生中断,超时直接复位
• 窗口看门狗有中断,超时可以在中断中做复位前的函数炒作或者重新喂狗。
计数方式不同
• 独立看门狗的寄存器是12位递减
• 窗口看门狗是7位递减,窗口最大值为0x7F
超时复位时间范围不同
• 独立看门狗:计数值 《 IWDG重装载值时喂狗
• 窗口看门狗:0x40 《 计数器值 《 窗口值Wt期间喂狗,0x40是固定的。
使用条件推荐
• 独立看门狗一般用于避免程序跑飞或死循环
• 窗口看门狗用于避免不按预定逻辑执行,如先于理想环境完成,或后于极限时间超时。
stm32看门狗
一、定义
由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称看门狗”(watchdog) 。
二、分类
STM32内置两个看门狗,独立看门狗和窗口看门狗,用来检测和解决由软件错误引起的故障。当计数器达到给定的超时值时,产生系统复位或者触发一个中断(仅适用窗口看门狗)。
(一)、独立看门狗(IWDG)
如果喂狗时间超出某个可设定的时间,就会认为程序跑飞,产生复位。
由专用的低速时钟(LSI)驱动,即使主时钟发生故障它仍有效。
独立看门狗适合应用于需要看门狗作为一个在主程序之外 能够完全独立工作,并且对时间精度要求低的场合。
键寄存器(IWDG_KR)
位31:16 保留,始终读为0。
位15:0 KEY[15:0]: 键值(只写寄存器,读出值为0x0000)
写入0xAAAA,重载计数器。软件必须以一定的间隔写入0xAAAA,否则,当计数器为0时,看门狗会产生复位。
写入0x5555表示允许访问IWDG_PR和IWDG_RLR寄存器。
写入0xCCCC,启动看门狗工作(若选择了硬件看门狗则不受此命令字限制)。
(二)、窗口看门狗
喂狗必须在某个可设定的时间窗内进行,早于或晚于这个时间窗喂狗都会触发复位。
由从APB1时钟分频后得到时钟驱动。
通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。
窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。
如果看门狗被启动(WWDG_CR寄存器中的WDGA位被置’1’), 并且当7位(T[6:0])递减计数器从0x40(T6为1)翻转到0x3F(T6位清零)时,则产生一个复位。
如果软件在计数器值大于窗口配置寄存器中的数值(WWDG_CFR)时重新装载计数器,也将产生一个复位。
(三)二者相同点
软件代码一直死循环在某处,无法喂狗,导致产生复位
代码运行超时,或外部一直触发中断,导致无法喂狗产生复位
喂狗时间限制可以自己设定
(四)二者不同点
计数器时钟源不同
• 独立看门狗由内部专门的40KHz的LSI时钟,使用前不需使能
• 窗口看门狗使用PCLK1时钟,使用前需要使能。
中断不都有
• 独立看门狗不产生中断,超时直接复位
• 窗口看门狗有中断,超时可以在中断中做复位前的函数炒作或者重新喂狗。
计数方式不同
• 独立看门狗的寄存器是12位递减
• 窗口看门狗是7位递减,窗口最大值为0x7F
超时复位时间范围不同
• 独立看门狗:计数值 《 IWDG重装载值时喂狗
• 窗口看门狗:0x40 《 计数器值 《 窗口值Wt期间喂狗,0x40是固定的。
使用条件推荐
• 独立看门狗一般用于避免程序跑飞或死循环
• 窗口看门狗用于避免不按预定逻辑执行,如先于理想环境完成,或后于极限时间超时。
举报
更多回帖
rotate(-90deg);
回复
相关问答
一文读懂
看门狗
的原理是什么
2021-08-06
2132
独立
看门狗
IWDG与窗口
看门狗
WWDG的区别在哪
2021-08-24
797
如何去使用
Stm32
F103的窗口
看门狗
WWDG
2021-08-19
851
如何去启用
STM32
F4的窗口
看门狗
2021-08-13
941
如何对
stm32
独立
看门狗
与窗口
看门狗
进行配置
2021-09-16
812
STM32
看门狗
的复位方式有
哪几
种
2021-08-12
1993
独立
看门狗
和窗口
看门狗
的原理分别是什么
2021-07-30
1038
如何去计算WWDG窗口
看门狗
的超时时间
2021-08-10
776
按照
看门狗
实现方式可
分为
哪几
种
2022-01-17
1132
STM32
F4的独立
看门狗
有哪些应用
2021-09-06
713
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分