目录
1. 独立看门狗是什么
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界的电磁波干扰,造成程序的跑飞,从而陷入到死循环,程序的正常运行被打断,由单片机控制的系统无法继续正常工作,会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”。
STM32板载了两种嵌入式看门狗外设,具有安全性高、定时精准及使用灵活的优点。看门狗分为独立看门狗和窗户看门狗。均可用于检测并解决由于软件错误导致的故障。本章我们着重讲解独立看门狗。
2. 独立看门狗 IWDG简介
看门狗的作用就是在一定的时间内 (这段时间通过定时器去实现) ,如果超过这段时间还没有被喂养信号(表示MCU已经挂了),便启动处理器的自动复位重启(发送复位信号)。
独立看门狗由其专用的低速内部时钟LSI驱动,通过对时钟的学习,我们知道LSI低速内部时钟是专门用来驱动看门狗的,独立看门狗由内部专门的32Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。独立看门狗的时钟是一个内部RC时钟,所以并不是准确的32Khz,而是一个在15~47Khz之间的可变化的时钟。
独立看门狗最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。
硬件看门狗:如果通过器件选项位使能 “硬件看门狗” 功能,上电时将自动使能看门狗;如果在计数器计数结束前,若软件没有向关键字寄存器写入相应的值,则系统会产生复位。
3. 独立看门狗的主要特性
1. 自由运行的递减计数器 用于给定一段确定的时间,如果程序运行超过这段时间,表明MCU已经挂了
2. 时钟由独立RC振荡器提供(可在待机和停止模式下运行) 低速内部时钟LSI,主时钟发生故障时,LSI 仍然保持工作状态
3. 当递减计数器达到0x000时产生复位(前提是看门狗已激活) 递减定时器递减到0时,复位为初始值,循环工作
4. 独立看门狗功能
4.1 独立看门狗功能框图


独立看门狗IWDG是STM32中用于监控程序运行状态的模块,防止因干扰导致程序跑飞。它由LSI低速时钟驱动,即使主时钟故障仍能工作。主要特性包括自由运行的递减计数器、独立RC振荡器和复位功能。配置过程涉及取消写保护、设置预分频系数和重装载值、喂狗以及启动看门狗。实验程序展示了如何通过按键喂狗,防止超时复位。
最低0.47元/天 解锁文章
1788

被折叠的 条评论
为什么被折叠?



