day 12 看门狗外设
1看门狗外设的由来
看门狗电路(Watchdog Timer, WDT)的由来与计算机系统对稳定性和可靠性的需求密切相关,其核心设计思想源于对系统异常状态的自动检测和恢复。
①早期计算机系统的痛点
在计算机和嵌入式系统发展的早期,硬件和软件环境并不稳定,容易出现以下问题:
• 程序跑飞:由于干扰、电压波动或软件漏洞,程序可能跳出正常流程,陷入死循环或卡死。
• 硬件故障:传感器错误、信号干扰等可能导致系统无响应。
• 人工复位低效:对于无人值守的设备(如工业控制、航天设备),人工复位不现实。
②看门狗电路通过定时检测系统是否正常运行。如果系统“沉默”(未按时发送信号),看门狗会强制复位系统。
③工作原理
• 喂狗(Kick the Dog):系统正常运行时,需定期向看门狗发送信号(通常通过写寄存器或翻转引脚)。
• 超时复位:若未按时“喂狗”,看门狗认为系统异常,触发复位信号或中断。
④使用看门狗的目的:为了提供程序的可靠性,防止由软件或者硬件造成的问题的出现。如果想要了解看门狗的资源和特点,可以参考STM32F4中文参考手册。
2看门狗的分类
STM32F4系列的芯片提供的两个看门狗,一个叫做独立看门狗,一个叫做窗口看门狗。两个看门狗的使用流程差不多,但是相比于独立看门狗,窗口看门狗比较难伺候。
特性 独立看门狗(IWDG) 窗口看门狗(WWDG)
喂狗灵活性 任意时间喂狗(只要不超时) 必须在指定时间窗口内喂狗
时钟源 独立低速时钟(如LSI) 主时钟(如PCLK)
超时精度 低精度(毫秒级到秒级) 高精度(微秒级到毫秒级)
抗时钟失效能力 强(不依赖主时钟) 弱(依赖主时钟)
典型应用 通用嵌入式系统、高可靠性场景 实时控制系统、防局部死循环
3独立看门狗
独立看门狗原理及特性
所使用代码函数
代码配置步骤
代码展示
4窗口看门狗
窗口看门狗原理及特性
所使用代码函数
代码配置步骤
代码展示