自动驾驶介绍系列 ———— 看门狗

文章探讨了硬件看门狗和软件看门狗的原理与差异,硬件看门狗是基于定时器电路的复位机制,而软件看门狗则是通过软件定时器实现。两者都需要定期“喂狗”以避免系统复位,但硬件看门狗具有不可屏蔽和附加功能如延迟复位、电源检测。窗口看门狗提供了一种更精确的计时窗口控制,增加了系统的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件看门狗

 硬件看门狗的本质上是一个定时器电路。通常存在一个输入,输入到MCU的RST端。在正常工作状态下,MCU每隔固定时间间隔会输出一个信号给RST端,实现对看门狗端清零。如果在指定的时间内未收到清零请求,那么看门狗电路会输出一个复位信号给到MCU,实现复位操作,防止MCU死机。
 通常来讲,系统运行后就已经开启了看门狗的计数器。看门狗就开始了自动计数,如果看门狗计数溢出后,就会引起看门狗中断从而造成系统复位。因此,在使用看门狗芯片时需要注意看门狗的电路设计和软件实施。

软件看门狗

 软件看门狗技术的原理和硬件开门狗的技术原理相通,只是通过软件的方法实现。一般来说,一个定时器/计数器就可以实现软件开门狗的设计。设计思路大体如下:
   1. 在初始化过程中设置定时器/计数器的方式设定定时时间的处置,并且打开中断;
   2. 根据定时时间,在主程序中按照一定时间间隔(小于定时时间周期)执行复位定时器的指令;
   3. 另外,在定时器的中断服务程序中,应设置一条无条件转移指令——将定时器的命令转移至程序初始化的入口。

差异分析

硬件看门狗与软件看门狗的差异分析
相同点 都是通过定时器实现;定时时间到没有喂狗就进行复位
都是需要在规定的时间内喂狗
都是靠软件进行喂狗
差异点 硬件看门狗芯片一般还附带了延迟复位和电源检 测的功能,软件则没有
软件看门狗很容易屏蔽关闭,只需修改其中的寄存器,而硬件看门狗一旦启动不断电就停不下来
软件看门狗很容易启动,只需修改其中的寄存器。硬件一般是收到第一个喂狗信号后就启动
硬件看门狗上电后收到第一个喂狗脉冲就完成了初始化,软件看门狗则需要配置相关的寄存器(或者调用相关的看门狗子程序)

延申

窗口看门狗

 窗口看门狗由从 APB1 时钟分频后得到时钟驱动。通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。 窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。
 工作流程如下:
   1.首先需要设置两个窗口值。假设总计数为1024,窗口值1为512,窗口值2为256。
   2.当计数处于1024~512区间内,系统出现喂狗行为,则会产生复位信号;
   3.当计数处于512~256区间内,系统出现喂狗行为,则重新开始计数;
   4.当计数处于256~0区间内,系统出现喂狗行为,则会产生复位信号。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值