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

发布者:红尘清梦最新更新时间:2020-12-25 来源: elecfans关键字:看门狗  定时器  故障 手机看文章 扫描二维码
随时随地手机看文章

就像一只住在名媛手提包中叫不停的小狗,看门狗定时器(watchdog timer)也时常被认为是不必要的多此一举。然而,若将两者一视同仁,是对看门狗的极大侮辱。不同于「手提包小狗」,看门狗具有关键的监控功能,能够帮助您监控系统里外的故障情形,并在故障发生时采取行动。


什么是看门狗定时器?

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

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

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

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


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

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


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

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

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


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


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


探索看门狗定时器的应用

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


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

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


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


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

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

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

图4 窗口式看门狗功能。

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


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

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

---可调整式看门狗超时:不同的系统和应用对于其WDI讯号需要不同的超时周期。外部电容和SET接脚可以用在看门狗超时中几毫秒到1分钟不等的调整。

---看门狗定时器的关闭功能:有些看门狗定时器能够透过接脚在装置上的使用而被关闭。这在系统初始化和除错的过程中,不想重设处理器时非常实用。

关键字:看门狗  定时器  故障 引用地址:什么是看门狗定时器?为何看门狗定时器如此重要?

上一篇:uint8_t是什么数据类型
下一篇:SPCE061A使用时基,实现定时器

推荐阅读最新更新时间:2024-11-10 16:30

基于LabVIEW的船用电机故障检测系统的研究
0 引言 船用电机由于工作在环境温度高、湿度大、有油污及振动大的恶劣环境中,其整体使用性能及技术工况会逐步下降,一旦电机发生故障,就可能导致动力系统和电力系统服务中止,从而威胁船舶航行的安全。因此,基于LabVIEW平台开发的船用电机故障检测系统,能及时、准确地诊断出电机故障,具有广阔的应用前景。 虚拟仪器是一种以全新的理念来设计和发展的仪器,与传统的仪器相比,性价比高,且在数据采集方面具有广泛的应用。把虚拟仪器技术运用到对故障信号的采集分析处理中,一台PC机,配上数据采集卡、信号调理电路,及LabVIEW软件就能开发出一套完整的数据采集分析处理系统,可以完全取代传统仪器。 1 故障信号的分析方法 电机出现故障时,往往能通
[测试测量]
基于LabVIEW的船用电机<font color='red'>故障</font>检测系统的研究
STM32 HAL库学习系列第11篇---定时器TIM---看门狗基本配置及使用
基本配置 使用cube配置溢出时间 记住准时喂狗 独立看门狗: /* IWDG 1s 超时溢出 */ MX_IWDG_Init(IWDG_PRESCALER_64,625); /* 启动独立看门狗 */ HAL_IWDG_Start(&hiwdg); LED1_ON; /* while部分是我们在项目中具体需要写的代码,这部分的程序可以用独立看门狗来监控 * 如果我们知道这部 分代码的执行时间,比如是50ms,那么我们可以设置独立看门狗的 * 溢出时间是60ms,比50ms多一点, 如果要被监控的程序没有跑飞正常执行的话,那么 * 执行完毕之后就会执行喂狗的程序,如果程序跑飞
[单片机]
智能巡检机器人助力乌鲁木齐变电站排查故障
自“十二五”以来,我国智能电网发展迅速,实现电力设备运行状态及外部环境的在线监测,提高预警能力和信息化水平,已是我国发展智能电网的重要组成部分。 图片来自国网乌鲁木齐供电公司 传统的电力运维及管理模式已不能适应智能电网快速发展的需求,将机器人技术与电力技术融合,通过电力巡检机器人对输电环节、变电环节、配电环节实现全面的无人化运维检测已经成为我国智能电网的发展趋势。 在国网乌鲁木齐供电公司三宫变电站,智能巡检机器人穿梭在220千伏变电站内,利用高清摄像头对所有电力设备进行拍照、同时对所有设备的温度、油位、运行情况进行检测,提高了巡视的精准力度,有效的排除故障。 变电站巡检工作具有“繁、杂、难”等特点,传统人工巡检方式存在劳动强度大
[机器人]
STM32应用简章之通用定时器
① 能定时器时钟。 RCC_APB1PeriphClockCmd(); ② 初始化定时器,配置ARR,PSC。 TIM_TimeBaseInit(); ③开启定时器中断,配置NVIC。 void TIM_ITConfig(); NVIC_Init(); ④ 使能定时器。 TIM_Cmd(); ⑥ 编写中断服务函数。 TIMx_IRQHandler(); void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitType
[单片机]
STM32F103标准库开发---定时器中断实验---通用定时器TIM3使用
一、STM32F103定时器 二、STM32F103通用定时器 1. 主要功能 通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括: 位于低速的APB1总线上(注意:高级定时器是在高速的APB2总线上); 16位向上、向下、向上/向下自动装载计数器(TIMx_CNT); 16位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为1~65536之间的任意数值; 4个独立通道(TIMx_CH1~4),这些通道可以用来作为:输入捕获、输出比较、PWM生成(边缘或中间对齐模式)、单脉冲模式输出; 使用外部信号控制定时器和定时器互连的同步电路; 如下事件发生时产生中断/DMA:更新(计数
[单片机]
STM32F103标准库开发---<font color='red'>定时器</font>中断实验---通用<font color='red'>定时器</font>TIM3使用
stm32f407通用定时器
clk_int = 84M; 计数器当前值计数器:CNT; 预分频计数器:TIMx_PSC;自动重装在寄存器:TIMx_ARR;控制寄存器: TIMx_CR1;TIMx_DIER;中断势能寄存器TIMx_DIER; 库函数配置:TIM_TimeVaseInit(); 定时器中断实现步骤:使能定时器时钟(定时器为外设);初始化定时器(配置ARRPSC) 开启定时器中断,配置NVIC;使能定时器;编写中断服务函数; Tout (溢出时间)=(ARR+1)*(PSC+1)/Tclk. arr自动重装载值;psc定时器分频系数。每次都是从0到arr eg:定时器时钟84M.总分频系数8400,84M/8400=10KHz计数
[单片机]
STM32的Systick系统滴答定时器
Systick :系统心跳定时器,提供系统节拍 裸机程序中可作为独立的延时定时器 用途: 1.产生操作系统的时钟节拍 2.便于不同处理器之间程序移植 SysTick定时器被捆绑在NVIC中,异常号15 3.作为一个闹铃测量时间用于测量时间, 但当处理器在调试期间被喊停(halt)时,则SysTick定时器亦将暂停运作 它有四个寄存器 STK_CSR, 0xE000E010 -- 控制寄存器 STK_LOAD, 0xE000E014 -- 重载寄存器 STK_VAL, 0xE000E018 -- 当前值寄存器 STK_CALRB, 0xE000E01C -- 校准值寄存器 stm32的时钟源 选择外部时钟源时
[单片机]
STM32的Systick系统滴答<font color='red'>定时器</font>
简易一小时定时器 数码管显示
近些天图书馆收书,规定人离开座位不能超过15分钟不然就会把书收走,所以制作了一个计时器,用来指示人离开的时长,按照最简需求设计,计时时长为1小时,超出时间清零。 附带了一个按键,用于计时过程中的暂停,这样这个计时器可以当作秒表使用了,做个题什么的限制一下时间又不用占用手机。而且最关键的是小巧,看起来不会太蠢... 说明: 1.单片机使用STC15F104W,共有6个I/O 2.数码管为时钟样式的数码管,中间带有“:”的,焊接时按照最短路径焊接,移植程序请考虑修改smgduan 的段选值 3.程序定时器0初始值是在12MHz晶振下的初始值,移植程序时请注意修改 4.数码管采用74HC138+74HC59
[单片机]
简易一小时<font color='red'>定时器</font> 数码管显示
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved