首页/文章/ 详情

看门狗怎样“看门”的?

2年前浏览1208

看门狗如何定义?
所见即所想,大多数人对看门狗三个字并不陌生,它可能是自己家里养的大黄,也可能是隔壁老王家养的小黑。看门狗有个作用,看门嘛!既然是看门即要有看,监督一层的意思,另外还要有出现问题上报主人的能力。今天所讲的看门狗也有大同之处。
看门狗介绍

看门狗,这里所说的看门狗又叫watchdog timer,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个部分的复位端,另外一个部分就是所要处理的部分,暂且称之为MCU。他的作用是防止程序跑飞,确保在系统出现异常时能自动重启。

看门狗原理   

在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。看门狗其实就是一个可以在一定时间内被复位的计数器。当看门狗启动后,计数器开始自动计数,经过一定时间,如果没有被复位,计数器溢出就会对CPU产生一个复位信号使系统重启(俗称“被狗咬”)。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零(俗称“喂狗”),不让复位信号产生。如果系统不出问题,程序保证按时“喂狗”,一旦程序跑飞,没有“喂狗”,系统“被咬”复位。简单原理图如下:

看门狗的种类    

在现在的嵌入式系统中主要可以分为两种类型的看门狗:    

1、CPU内部自带的看门狗:此类看门狗一般是将一个芯片中的定时器来作为看门狗,通过程序的初始化,写入初值,设定溢出时间,并启动定时器。程序按时对定时器赋初值(或复位),以免被咬。这种看门狗是可以被禁用的(只要停止这个定时器即可)。大部分CPU都内置看门狗,硬件原理可参考各芯片数据手册。  

 优点:可以通过程序改变溢出时间;可以随时禁用  

 缺点:需要初始化,如果程序在初始化、启动完成前跑飞或在禁用后跑飞,看门狗就无法复位系统,这样看门狗的作用就没有了,系统恢复能力降低。  

 2、独立的看门狗芯片:这种看门狗主要有一个用于喂狗的引脚(一般与CPU的GPIO相连)和一个复位引脚(与系统的RESET引脚相连),如果没有在一定时间内改变喂狗脚的电平,复位引脚就会改变状态复位CPU。此类看门狗一上电就开始工作,无法禁用。

优点:无须配置,上电即用。无法禁用,系统必须按时喂狗,系统恢复能力高。  

缺点:无法灵活配置溢出时间,无法禁用,灵活性降低。

来源:8号线攻城狮
电路芯片
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-08-02
最近编辑:2年前
8号线攻城狮
本科 干一行,爱一行
获赞 57粉丝 85文章 1057课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈