打印
[资料分享]

解析看门狗定时器的重要性

[复制链接]
973|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Orchids|  楼主 | 2019-2-12 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
解析看门狗定时器的重要性

什么是看门狗定时器?

简单来说,看门狗定时器是一种若在特定时间范围内未从处理器接收到周期性脉冲讯号,就会发出重设输出讯号的装置。其中一种应用这种装置的方法,是透过来自处理器的数字讯号输出(GPIO)回馈给外部看门狗定时器的看门狗输入(WDI),如图1所示。TPS3851便是具有整合看门狗定时器的监控器,能够监控微控制器的电源轨,并透过外部方式监控从微控制器(MCU)发出的数字脉冲。


图1 TPS3851所提供的看门狗监控。

处理器周期性地向看门狗定时器发送一个脉冲,以表示系统软件的正常运作。若看门狗定时器在规定的时间范围(称为看门狗超时)内未接收到此脉冲,看门狗定时器将发出重设输出讯号。该重设输出讯号可以用于通知系统处理器出现了停机或冻结的情况,或重设处理器本身。图2所示为在看门狗超时期间内接收的脉冲,以及在超过看门狗超时之后所接收的脉冲。

图2 标准看门狗定时器的运作。


为何看门狗定时器如此重要?

看门狗定时器提供一种警报系统的机制,或重设一个软件历经冻结或停机的处理器。尽管没有人会刻意设计会冻结的软件,但优秀的系统设计人员还是会为故障做准备——因为未雨绸缪总是好的。若缺少这种监控,处理器可能会无限期地冻结,并导致更多的系统故障。像是TPS3851具有可调整超时间间隔的外部看门狗定时器,能够在几毫秒内辨识这些软件冻结,并适当地重设系统或处理器。因为要手动重设这些系统是不实际、甚至几乎是不可能的,因此这项功能在嵌入式或远程系统中更有其必要性。


如何在嵌入式系统运用看门狗定时器?

有两种主要的方式能够来实作看门狗定时器:

˙使用具有整合看门狗功能的处理器。许多微控制器如MSP430F5529系列具有整合看门狗的功能。它的价值在于非常容易实作,且不需要使用其他IC。然而,有一个重要的告诫:由于程序代码问题而导致的MCU故障可能无意中使看门狗定时器丧失功用,因此整合看门狗可能不会总是按预期的方式运作。同样地,虽然软件以内部看门狗能够侦测所有冻结或停机的方式编写,但是,采取额外的步骤以冗余方式监控看门狗输入可以帮助解决程序代码中不可预见的错误。

˙使用具有看门狗定时器的电压监控器。像是TPS3851或TPS3110具有看门狗定时器功能的监控器能够以外部冗余方式监控电源电压和看门狗讯号。若处理器的内部看门狗未能侦测到错误或缺失的脉冲,外部看门狗定时器将能发挥其他方式无法达到的侦测层级。

原则上,看门狗定时器的功能不会过于复杂;然而,其在维持系统可靠性的重要性也不容小觑,尤其是在系统发生错误、但是人为的系统重设是困难甚至是不能实现的情况下。


探索看门狗定时器的应用

接下来,本文将说明为什么应该在应用中使用看门狗定时器、窗口式看门狗定时器如何运作,以及看门狗定时器的一些特性,如何让它们成为许多不同应用的绝佳附加功能。


为什么要应用中使用看门狗定时器?

看门狗定时器在许多应用中都占有一席之地,如四轴飞行器、电网计量、马达控制…等。对于这些不同的应用,看门狗定时器提供相同的基本功能:透过对处理器的监控侦测出错误运作并发出相应的讯号。

然而,监控的使用可能依据应用类型而有所不同。例如,期望有人能够在距离地表几百英呎的四轴飞行器中手动重设其处理器是不切实际的。在智慧仪表中,同样的问题可能导致装置无法读取或记录信息,位于远程位置的仪表和传感器也会遇到软件故障的状况,导致系统无法读取和记录信息,并且也没有人能够手动重设的情形。控制马达和其他机械零组件的系统中的程序代码故障尤其令人紧张,因为这些系统的故障可能对正在操作和在附近的人员造成身体上的伤害。好在使用看门狗定时器可以增加冗余来拦截这些错误,有助于防止这些问题的发生。


窗口式看门狗定时器如何运作?

图3所示的窗口式看门狗定时器是一种特殊的看门狗定时器,其不仅监控在看门狗超时结束(即看门狗上部边界)前处理器所发送的讯号是否失败,它还能监控处理器是否在看门狗超时窗口开始前发送看门狗输入端(WDI)讯号(即看门狗下部边界)。此功能如图4所示。


图3 监控微控制器的窗口式看门狗定时器。


图4 窗口式看门狗功能。


不同于只检查脉冲是否在超时结束前抵达的标准看门狗定时器。监控早期WDI讯号能够侦测并制止不理想的超频,是相当有用的功能。


看门狗定时器的附加功能有哪些?

窗口式看门狗定时器只是看门狗定时器众多功能中的一种附加功能。几个其他附加功能能够确保系统的稳健性和功能性:

˙可调整式看门狗超时:不同的系统和应用对于其WDI讯号需要不同的超时周期。外部电容和SET接脚可以用在看门狗超时中几毫秒到1分钟不等的调整。˙看门狗定时器的关闭功能:有些看门狗定时器能够透过接脚在装置上的使用而被关闭。这在系统初始化和除错的过程中,不想重设处理器时非常实用。


相关帖子

沙发
Orchids|  楼主 | 2019-2-12 15:12 | 只看该作者
解析看门狗定时器的重要性

文档1.pdf

262.31 KB

使用特权

评论回复
板凳
kkzz| | 2019-2-13 21:00 | 只看该作者
看门狗实际上是一个计数器

使用特权

评论回复
地板
hudi008| | 2019-2-13 21:00 | 只看该作者
果看门狗减到0就认为程序没有正常工作,强制整个系统复位。

使用特权

评论回复
5
lzmm| | 2019-2-13 21:00 | 只看该作者
看门狗定时器由程序开始运行的时候就开始累加

使用特权

评论回复
6
minzisc| | 2019-2-13 21:01 | 只看该作者
看门狗的数值将递增,直至达到“超时”状态,当处于休眠或者空闲的状态下,看门狗超时会强制所有的器件复位

使用特权

评论回复
7
selongli| | 2019-2-13 21:01 | 只看该作者
看门狗定时器对电路检测有着重要的作用

使用特权

评论回复
8
fentianyou| | 2019-2-13 21:02 | 只看该作者
程序正常执行看门狗定时器不断复位重新计数

使用特权

评论回复
9
xiaoyaodz| | 2019-2-13 21:03 | 只看该作者
为防止程序跑飞,每隔一段时间要执行一次看门狗程序,也就是喂狗

使用特权

评论回复
10
febgxu| | 2019-2-13 21:03 | 只看该作者
看门狗分硬件看门狗和软件看门狗。  

使用特权

评论回复
11
sdlls| | 2019-2-13 21:03 | 只看该作者
看门狗只是引发了中断                  

使用特权

评论回复
12
pixhw| | 2019-2-13 21:04 | 只看该作者
在单片机运行以后也就启动了看门狗的计数器

使用特权

评论回复
13
febgxu| | 2019-2-13 21:04 | 只看该作者
硬件看门狗是利用一个定时器电路   

使用特权

评论回复
14
kkzz| | 2019-2-13 21:04 | 只看该作者
如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。

使用特权

评论回复
15
xiaoyaodz| | 2019-2-13 21:04 | 只看该作者
如果不执行程序会自行复位     

使用特权

评论回复
16
hudi008| | 2019-2-13 21:04 | 只看该作者
单片机的工作常常会受到来自外界电磁场的干扰

使用特权

评论回复
17
fentianyou| | 2019-2-13 21:04 | 只看该作者
看门狗作为定时器使用的时候就必须设置中断了

使用特权

评论回复
18
lzmm| | 2019-2-13 21:04 | 只看该作者
看门狗定时器,作为单片机的一个重要组成部分

使用特权

评论回复
19
selongli| | 2019-2-13 21:04 | 只看该作者
每隔一段时间输出一个信号到喂狗端

使用特权

评论回复
20
minzisc| | 2019-2-13 21:04 | 只看该作者
为了避免看门狗超时复位,使用者必须使用CLRWDT软件等把看门狗定时器的数值定时清零。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

697

主题

993

帖子

4

粉丝