单片机看门狗
单片机看门狗
好的,我们来详细解释一下单片机中的“看门狗”:
核心概念:
单片机看门狗本质上是一个独立的硬件定时器(或者在部分架构中是完全由软件模拟的,但通常依赖于硬件实现)。它的核心作用是监控单片机程序的运行状态。如果程序因为各种原因“跑飞”或进入死循环(即“死机”),无法按照预期执行,看门狗会自动触发单片机的复位,强制系统重新开始运行,以恢复系统的正常运行状态。这是一种嵌入式系统中至关重要的可靠性机制。
类比解释(宠物狗喂食):
想象你养了一只狗。为了确保你还在家里活动(代表程序正常运行),你必须定期(比如每5分钟)喂它一次狗粮(“喂狗”操作)。如果你活动正常,你就能按时喂它,狗狗就保持安静。但如果你在家突然晕倒了或卡在某个地方动不了(程序跑飞/死循环),你就无法在规定时间内喂狗了。饿急了的狗狗就会大声吠叫(定时器溢出),这吠叫声就触发了自动重启开关(复位信号),然后有人(或者系统自己)把你弄醒(系统复位),让你重新开始活动。
关键组成部分和工作流程:
-
看门狗定时器:
- 一个内部的、独立的计数器。它由一个独立的时钟源驱动(通常是RC振荡器,与主时钟无关,可靠性高)。
- 这个计数器会不断计数(递增或递减)。当计数值达到预设的溢出值时,就会产生一个复位信号。
-
喂狗:
- 这是你的应用程序代码定期执行的操作。
- 操作本质是在计数器溢出之前,将计数器的值重置回初始值(或重新加载一个数值)。在递减计数器中,通常就是“重装载”预设值。
- 只要程序运行正常,它就能按时“喂狗”,计数器就不会溢出。
-
溢出与复位:
- 如果程序异常(跑飞、死循环、阻塞等),导致无法按时执行“喂狗”操作。
- 计数器溢出,表明程序没有及时响应。
- 溢出信号触发单片机系统的复位逻辑,单片机就像刚上电一样,从头开始执行程序。
看门狗的主要类型:
-
独立看门狗:
- 通常完全由独立的内部时钟源驱动(低速时钟、LSI)。
- 对时间精度要求不高,主要目的是防止程序彻底死锁。
- 配置相对简单,只需要设置一个超时时间(通过预分频器Prescaler和重载值Reload)。
- 一旦开启,只有芯片复位或进入特定的低功耗模式才能关闭(甚至无法关闭),提供极高的可靠性保障。
-
窗口看门狗:
- 通常由系统时钟(或分频后的系统时钟)驱动,时间精度更高。
- 对“喂狗”的时间点要求更严格:必须在一个上下限规定的时间窗口内(称为“窗口”) 进行喂狗操作。
- 无论是过早(在窗口打开前)喂狗、过晚(窗口关闭后)喂狗、或者完全不喂狗,都会导致复位。
- 适合监控需要严格周期性执行的任务,防止任务执行过早、过晚、或缺失。
- 通常可以被软件关闭或复位后关闭。
-
软件看门狗:
- 通常指在操作系统或复杂程序框架中,由另一个软件任务(监控任务)来检查其他任务或主循环的状态。但这本质上不是硬件定时器,且依赖于监控任务本身能运行。
为什么需要看门狗?
- 对抗干扰:电气噪声、电源波动、电磁干扰等可能导致CPU执行错误指令或数据出错(程序跑飞)。
- 处理未知错误:软件本身可能存在隐藏的缺陷(边界条件、指针错误等),在特定环境下触发死循环或崩溃。
- 防止死锁:不当的中断处理、任务调度冲突、资源竞争等可能导致系统卡死。
- 无人值守运行:许多嵌入式设备部署后无人值守(如工业设备、汽车控制器),需要具备自我恢复能力。
- 提高系统健壮性和可靠性:看门狗是许多行业标准(如汽车、医疗)对关键电子设备的基本要求。
关键设计要点:
- 喂狗的位置至关重要:必须在主循环关键路径上,或者在一个能准确反映整体程序活动的监控任务中执行。绝不能在中断服务程序或死循环中进行。
- 重置时间选择:看门狗的超时时间(或窗口)需要大于程序正常运行的最长预期周期(比如主循环执行一圈的最长时间),但又要小于系统允许无响应的时间上限。太短可能导致误复位,太长则无法及时发现错误。
- 避免在调试时启用:在开发和调试阶段,调试器或断点会阻塞程序执行(不喂狗),频繁触发复位会干扰调试,所以这时需要禁用看门狗。
- 复位原因记录:单片机通常提供寄存器位或状态标志,用于区分是上电复位、看门狗复位还是其他原因复位。这有助于故障诊断。
- 错误处理和恢复:虽然复位解决了卡死问题,但在复位后,主程序应有代码检查复位原因。如果是看门狗复位,应尝试进行必要的错误清理(比如保存关键数据到不易失存储器)和安全状态恢复,避免恶性循环。
总结:
单片机看门狗是嵌入式系统的“安全卫士”或“自我急救装置”。它是一个默默运行的计时器,只要主程序定期向它证明“我还正常”,它就保持安静。一旦程序“失去响应”,它就果断采取措施(复位),让系统恢复心跳,极大地提升了系统的抗干扰能力和长期运行的稳定性。正确地配置和使用看门狗是所有嵌入式开发者必须掌握的技能。
什么是模拟看门狗?模拟看门狗有什么用处?
看门狗大家应该再熟悉不过了,一旦忘记喂狗就会导致单片机复位,而在大部分stm32中都存在两种类型的看门狗,Independent watchdo
2023-11-22 09:40:29
“看门狗”也有软硬
输入叫做“喂狗”,输出一般连接到另外一个部分的复位端,一般是连接到单片机。“看门狗”的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。“看门
2023-09-08 09:52:20
STC单片机看门狗
STC单片机看门狗设时钟为11.0592MHz看门狗溢出时间 = (12 Prescale32768)/11059200 = Prescale*
资料下载
laisvl
2021-12-23 19:22:00
单片机看门狗有两种:分别为独立看门狗和窗口看门狗,它们有什么区别?资料下载
电子发烧友网为你提供单片机看门狗有两种:分别为独立看门狗和窗口看门狗,它
资料下载
佚名
2021-04-18 08:41:01
STM32中的独立看门狗和窗口看门狗
一、前言 在早期的MCU中是没有看门狗这种东西的,所以产品就很容易出现死机,跑飞的情况。为了避免这种情况的出现,后期的MCU都集成了看门狗的功能。但是目前看门
2022-12-22 16:58:20
单片机为什么需要看门狗
当然我们需要合理的设置看门狗(Watch Dog Timer)溢出时间,也要合理的放置看门狗清零指令。才可以让看门狗(Watch Dog Tim
2019-10-07 11:42:00
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机