内部与外部看门狗定时器的比较
软件看门狗和硬件看门狗
看门狗分硬件看门狗和软件看门狗。
硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。
如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。
软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。
当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。
看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。
加入看门狗目的是对一些程序潜在错误和恶劣环境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。
看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间内怠工。
同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。
图1:(a) 多任务系统看门狗示意图;(b) 相应的看门狗复位逻辑图。
在单任务系统中看门狗工作原理如上所述,容易实现。
在多任务系统中情况稍为复杂。
假如每个任务都像单任务系统那么做,如图1(a)所示,只要有一个任务正常工作并定期“喂狗”,看门狗定时器就不会溢出。
除非所有的任务都故障,才能使得看门狗定时器溢出而复位,如图1(b)。
而往往我们需要的是只要有一个任务故障,系统就要求复位。
或者选择几个关键的任务接受监视,只要一个任务出问题系统就要求复位,如图2(a)所示,相应的看门狗复位逻辑如图2(b)所示。
在多任务系统中通过创建一个监视任务TaskMonitor,它的优先级高于被监视的任务群Task1、Task2...Taskn。
TaskMonitor在Task1~Taskn正常工作情况下,一定时间内对硬件看门狗定时器清零。
软件看门狗和硬件看门狗
看门狗分硬件看门狗和软件看门狗。
硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。
如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。
软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。
当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。
看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。
加入看门狗目的是对一些程序潜在错误和恶劣环境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。
看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间内怠工。
同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。
在单任务系统中看门狗工作原理如上所述,容易实现。
在多任务系统中情况稍为复杂。
假如每个任务都像单任务系统那么做,如图1(a)所示,只要有一个任务正常工作并定期“喂狗”,看门狗定时器就不会溢出。
除非所有的任务都故障,才能使得看门狗定时器溢出而复位,如图1(b)。
而往往我们需要的是只要有一个任务故障,系统就要求复位。
或者选择几个关键的任务接受监视,只要一个任务出问题系统就要求复位,如图2(a)所示,相应的看门狗复位逻辑如图2(b)所示。
在多任务系统中通过创建一个监视任务TaskMonitor,它的优先级高于被监视的任务群Task1、Task2...Taskn。
TaskMonitor在Task1~Taskn正常工作情况下,一定时间内对硬件看门狗定时器清零。
如果被监视任务群有一个Task_x出现故障,TaskMonitor就不对看门狗定时器清零,也就达到被监视任务出现故障时系统自动重启的目的。
AT89c51与AT89S51单片机的区别
AT89c51与AT89S51单片机的区别AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP (In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统供给高性价比的解决方案。
AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,12 8 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不一样产品的需求。
AT89S51与AT89C51相比,外型管脚完全相同,AT89C51的HEX程序无须任何转换可直接在AT89S51运行,结果一样。
AT89S比AT89C51新增了一些功能,支持在线编程和看们狗是其中主要特点。
它们之间主要区别在于以下几点:1.引脚功能:管脚几乎相同,变化的有,在AT89S51中P1.5,P1.6,P1.7具有第二功能,即这3个引脚的第二功能组成了串行ISP编程的接口。
2.编程功能:AT89C51仅支持并行编程,而AT89S51不但支持并行编程还支持ISP再线编程。
在编程电压方面,AT89C51的编程电压除正常工作的5V外,另Vpp需要12V,而AT89S51仅仅需要4-5V即可。
看门狗MAX705、706、813中文说明
看门狗MAX705/706/8131 概述MAX705/706/813L是一组CMOS监控电路,能够监控电源电压、电池故障和微处理器(MPU或mP)或微控制器(MCU或mC)的工作状态。
将常用的多项功能集成到一片8脚封装的小芯片内,与采用分立元件或单一功能芯片组合的电路相比,大大减小了系统电路的复杂性和元器件的数量,显著提高了系统可靠性和精确度。
该系列产品采用3种不同的8脚封装形式:DIP、SO和mMAX。
主要应用于:微处理器和微控制器系统;嵌入式控制器系统;电池供电系统;智能仪器仪表;通信系统;寻呼机;蜂窝移动电话机;手持设备;个人数字助理(PDA);电脑电话机和无绳电话机等等。
2 功能说明2.1 RESET/RESET操作复位信号用于启动或者重新启动MPU/MCU,令其进入或者返回到预知的循环程序并顺序执行。
一旦MPU/MCU处于未知状态,比如程序“跑飞”或进入死循环,就需要将系统复位。
对于MAX705和MAX706而言,在上电期间只要Vcc大于1.0V,就能保证输出电压不高于0.4V的低电平。
在Vcc上升期间RESET维持低电平直到电源电压升至复位门限(4.65V或4.40V)以上。
在超过此门限后,内部定时器大约再维持200ms后释放RESET,使其返回高电平。
无论何时只要电源电压降低到复位门限以下(即电源跌落),RESET引脚就会变低。
如果在已经开始的复位脉冲期间出现电源跌落,复位脉冲至少再维持140ms。
在掉电期间,一旦电源电压Vcc降到复位门限以下,只要Vcc不比1.0V还低,就能使RESET维持电压不高于0.4V的低电平。
MAX705和MAX706提供的复位信号为低电平RESET,而MAX813L提供的复位信号为高电平RESET,三者其它功能完全相同。
有些单片机,如INTEL的80C51系列,需要高电平有效的复位信号。
2.2 看门狗定时器MAX705/706/813L片内看门狗定时器用于监控MPU/MCU的活动。
软件看门狗是利用单片机片内闲置的定时器
第21卷第2期 吉林大学学报(信息科学版) V o l121 N o12 2003年5月 JOU RNAL O F J I L I N UN I V ER S IT Y(I N FORM A T I ON SC IEN CE ED IT I ON) M ay2003文章编号:167125896(2003)022*******单片机应用系统中的看门狗技术α胡 屏1,柏 军2(11哈尔滨工业大学威海分校信息与控制工程系,山东威海 264209;21哈尔滨工业大学威海分校计算机科学与工程系,山东威海 264209)摘要:分析研究了单片机应用系统中软件看门狗、单 双时限和强制复位看门狗等几种常见的看门狗技术及具体的实现方法,从提高看门狗工作可靠性的角度,分析了各种看门狗方案的优缺点,给出了基本的硬件电路和软件控制策略,指出了在设计和应用过程中需注意的一些问题。
关键词:单片机;看门狗;抗干扰;X5045看门狗定时器中图分类号:T P39 文献标识码:A引 言随着单片机技术的发展和制造工艺的日益成熟,单片机的应用领域不断拓宽,但由于单片机自身的抗干扰能力较差,尤其是在一些条件比较恶劣,噪声大的场合,常会出现单片机因受外界干扰而导致死机的现象,造成系统不能正常工作。
设置看门狗是防止单片机死机、提高单片机系统抗干扰性的一种重要途径,笔者研究分析了几种较为实用的看门狗技术,供读者参考。
1 软件看门狗软件看门狗是利用单片机片内闲置的定时器 计数器单元作为看门狗,在单片机程序中适当地插入“喂狗”指令,当程序运行出现异常或进入死循环时,利用软件将程序计数器PC赋予初始值,强制性地使程序重新开始运行。
具体实现方法如下。
1)首先在初始化程序中设置好定时器 计数器的方式控制寄存器(TM OD)和定时时间的初值,并开中断。
2)根据定时器的定时时间,在主程序中按一定的间隔插入复位定时器的指令,即插入“喂狗”指令,两条“喂狗”指令间的时间间隔(可由系统时钟和指令周期计算出来)应小于定时时间,否则看门狗将发生误动作。
XMC4000中文参考手册-第09章 窗口看门狗定时器(WDT)
9.8.1
初始化和启动操作
系统复位后,需要完成WDT模块的初始化。 • 检查最后一次系统复位的原因,以确定电源状态 - 读出SCU_RSTSTAT.RSTSTAT寄存器位段,确定最后一次系统复位的原因 - 依据最后系统复位的原因执行适当的操作 看门狗软件初始化序列 用SCU_CLKSET.WDTCEN寄存器位段启用WDT时钟 用SCU_PRCLR2.WDTRS寄存器位段释放WDT复位 用WDT_WLB寄存器设置窗口下限 用WDT_WUB寄存器设置窗口上限 配置外部看门狗服务指示(可选,请参阅SCU/HCU章节) 用SCU_WDTCLKCR寄存器选择和启用WDT输入时钟 用SCU_NMIREQEN寄存器在系统级上启用系统陷阱预警报警(可选,仅用在WDT预警 模式) 软件启动序列 - 选择模式(超时或预警)和用WDT_CTR寄存器启用WDT模块 服务看门狗 - 在WDT_TIM寄存器中,对编程时间窗口检查当前定时器值 - 在有效时间窗内,写魔字到WDT_SRV寄存器 9.8.2 重新配置和重新启动操作 - - - - - - -
参考手册 WDT, V2.3
9-3
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
图 9-2
无预警复位
图 9-2中描绘的示例场景展示了在有效时间窗口内WDT模块成功服务后产生的两个连续的服务 脉冲。对于没有服务执行的情况,在计数器的值已经超过窗口上限值后立即触发在wdt_rst_req 输出上的复位请求生成。 9.3 预警模式
在预警模式时,溢出事件的作用在有和没有启用预警是不同的。当预警启用时,计数器第一次 超过上限时触发输出报警信号wdt_alarm。只能在下一个溢出产生复位请求。报警状态通过寄 存器WDTSTS指示且通过寄存器WDTCLR清除。清除报警状态将使WDT回到正常状态。报警 信号发送请求到SCU,在那里上报到NMI。
STM8S系列单片机原理与应用(潘永雄)第6-11章章 (2)
第7章 STM8S系列MCU定时器
TIM1定时器功能完善,可实现下列操作: (1) 基本定时操作、计数操作。 (2) 利用输入捕获功能,测量脉冲信号时间参数(高、低 电平时间)。 (3) 利用输出比较功能,可产生单脉冲信号、PWM信号 等。 (4) 在PWM输出信号中,具有死区时间编程选择功能。 (5) 具有与其他定时器联动的功能。
第7章 STM8S系列MCU定时器
表7-1 STM8S定时器的主要功能
定时器 计数 计数 编号 方向 长度
分频系数
捕获 /比较 (CC) 通道数
向上
1~65 536 之间任意
TIM1
16
4
向下
整数
互 补
重 复 计
外部 刹车 与其他定时
计数脉冲可选
输 数 输入 器级联
出器
可选,有外部 3 8 位 1 TIM5、TIM6
第7章 STM8S系列MCU定时器 图7-1 高级控制定时器TIM1的内部结构
第7章 STM8S系列MCU定时器
7.2 TIM1时基单元
TIM1时基单元内部结构如图7-2所示。它由16位预分频 器TIM1_PSCR(TIM1_PSCRH, TIM1_PSCRL)、16位双向(向 上或向下)计数器TIM1_CNTR(TIM1_CNTRH, TIM1_CNTRL)、 16位自动重装寄存器TIM1_ARR(TIM1_ARRH,TIM1_ARRL) 及8位重复计数器TIM1_RCR组成。
看门狗定时器实训报告
本次实训旨在使学生了解看门狗定时器的基本原理、工作方式以及在嵌入式系统中的应用,通过实际操作,掌握看门狗定时器的配置、使用方法,并学会利用看门狗定时器解决嵌入式系统中的故障和异常。
二、实训内容1. 看门狗定时器原理- 看门狗定时器是一种监测硬件或软件故障的定时器,其工作原理是在程序运行过程中不断重装载,以防止溢出引发中断或复位。
- 看门狗定时器分为独立看门狗和窗口看门狗两种类型。
2. 独立看门狗(FWDGT)- 独立看门狗使用独立的32kHz内部时钟,适用于对计时精度要求不高的场合。
- 独立看门狗内部有一个12位的向下计数的定时器,当计数值达到0时,会产生一个系统复位。
3. 窗口看门狗(WWDGT)- 窗口看门狗使用PCLK分频而来的时钟,计数器位数较小,需要在窗口范围内重装载以防复位。
4. 看门狗定时器的配置与使用- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 看门狗定时器的实际应用- 利用看门狗定时器解决嵌入式系统中的故障和异常。
- 通过看门狗定时器监控程序运行状态,防止死锁。
- 作为系统安全特性的一部分,确保在检测到异常时能够安全地重启系统。
1. 准备工作- 准备好实训所需的硬件设备和软件环境,如单片机开发板、调试器、IDE等。
2. 环境搭建- 根据实际需求搭建实训环境,包括硬件电路连接和软件配置。
3. 看门狗定时器配置- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
4. 程序编写- 编写程序,实现看门狗定时器的初始化、重装载和监控功能。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 调试与验证- 使用调试器对程序进行调试,观察看门狗定时器的运行状态。
看门狗定时器的使用介绍
看门狗溢出时间
时钟来源
看门狗溢出周期
12kHz(WDTCLK) 32kHz(RTC)
System Frequency/4 注:System Frequency 为 480kHz
2.73066s 1.00000s 0.27306s
总共有三种方法会产生系统复位,如下所示: ·正常操作时由 RES引脚发生复位 ·在暂停模式由 RES引脚发生复位 ·正常操作时由看门狗定时器超时发生复位
但也有可能进入死循环状态。有了 CLR WDT1 和 CLR WDT2 交换使用的功能,就可以避免这种情
况的出现。当程序进入循环后,例如:
LOOP: ……
CLR ……
WDT1
;在 loop 中执行第一句清零 WDT 语句
SZ
……
HT47R20A-1 看门狗定时器(WDT)使用介绍
JMP LOOP
CLR WDT2
;在 loop 后执行第二句清零 WDT 语句
……
第一次执行 CLR WDT1 指令能够清除 WDT,若发生死循环,则循环过程中再次执行 CLR WDT1
指令都不能清除看门狗定时器,因此还是能够产生 WDT 溢出,实现系统复位,从而跳出死循环状
态。
……
wdt_ov:
……
说明
1.CLR WDT 指令和 CLR WDT1 指令的机器码是相同的,即这两条指令是等效的。 2.CLR WDT1 和 CLR WDT2 必须交互使用才能清除看门狗定时器,如果重复使用,则不能清除看
门狗定时器。如:
…… CLR WDT1
;可以清除看门狗定时器的内容
……
CLR WDT2
u
u
0
1
1
内部与外部看门狗定时器的比较
内部与外部看门狗定时器的比较摘要:本文对内部(集成在处理器内部)看门狗定时器(wtd)与外部(基于硬件)wdt的优势和劣势进行了对比。
内部看门狗便于设计,但容易失效。
maxq2000微控制器的wdt可以作为内部看门狗的一个例子。
基于硬件的看门狗定时器需要占用额外的电路板空间,但在对于可靠性要求较高的设计中确实不可或缺的。
本文给出了一个对照表,总结了每种wdt方案的优缺点。
引言看门狗定时器(wdt)在发生违宪的软件运转状态时用以私自登位(硬件登位)嵌入式微处理器或微控制器,失灵状态可以就是直观地引爆寄存器的某一位,或者就是射线阻碍或emi(电磁辐射)。
本文介绍了一些针对具体应用选择最佳定时器的考虑。
wdt的典型应用领域防止微处理器闭锁是wdt的一个典型应用,通常,嵌入式软件有一个“主循环”程序,用其调用子程序以实现不同的任务。
每次程序循环对wdt进行一次复位,如果任何原因造成程序循环操作失败,看门狗定时器则发生超时,对器件进行复位。
具备wdt功能的系统非常适合检测误码,中断(包含存储器故障,emi对存储器或USB振动)可能将引致临时性的误码。
这些误码可以引致处理器输出、输入数据的极性滑动,当误码没有导入至程序信息中时,微处理器将可以继续执行错误的代码。
很有可能导致处理器已经开始继续执行操作数,而非操作方式代码。
程序已经开始继续执行这种错误代码时,将导致程序运行不正常,无法提供更多看门狗清零信号,从而引致处理器登位。
合理的系统设计能在登位后恢复正常系统的正常运转。
需要注意的是,wdt不能检测瞬态故障,按照定义,只有在wdt计数器达到预定的时间间隔时才会复位处理器。
正是这一原因,需要选择一个最短超时周期,以便在系统失控之前由wdt产生复位,使系统恢复正常工作。
内部和外部wdtwdt可以内置于微处理器,例如:maxq2000微控制器;也可以是一个独立的ic(外部wdt),或作为支持asic的一部分。
无论是内部wdt,还是外部wdt,各有其优缺点。
如何设计看门狗(硬件看门狗与软件看门狗)
看门狗电路的概念和作用2007/08/05 15:26一般看门狗电路用来监视MCU内部程序运行状态,在程序跑飞或死锁情况下,可以自动复位。
不过由于厂家、型号不同可能有些差别。
看门狗电路的工作原理是:当系统工作正常时,CPU将每隔一定时间输出一个脉冲给看门狗,即“喂狗”,若程序运行出现问题或硬件出现故障时而无法按时“喂狗”时,看门狗电路将迫使系统自动复位而重新运行程序。
主要作用是防止程序跑飞或死锁看门狗电路其实是一个独立的定时器,有一个定时器控制寄存器,可以设定时间(开狗),到达时间后要置位(喂狗),如果没有的话,就认为是程序跑飞,就会发出RESET指令在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"看门狗电路电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位.看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
单片机看门狗
单片机看门狗简介单片机看门狗(Watchdog Timer,简称WDT),是一种常见于嵌入式系统中的硬件设备,用于监控系统的运行状态并在出现故障时采取相应措施。
该设备在单片机的内部,通过定时器和逻辑电路实现对系统的监控,一旦系统停止响应或发生意外情况,看门狗会自动执行预定义的操作,如复位系统等。
工作原理单片机看门狗的工作原理是基于定时器和逻辑电路的组合。
在系统正常运行时,定时器会周期性地进行倒计时,并通过逻辑电路的判断来确认系统是否正常。
如果系统一直能够及时喂狗(喂狗指的是定时器的计数周期内向看门狗喂入脉冲),看门狗认为系统处于正常状态,并在每次喂狗后重新计时。
如果在设定的时间内没有喂狗,看门狗会判断系统发生故障,进而执行相应的操作,如复位系统。
应用场景单片机看门狗在嵌入式系统中的应用场景非常广泛,特别是对于那些对系统可靠性要求较高的应用。
以下是几种常见的应用场景:1. 实时操作系统(RTOS)在实时操作系统中,单片机看门狗经常被用来监控任务的运行状态。
通过设定适当的看门狗定时器,并在每个任务执行的过程中定时喂狗,可以确保系统在出现任务堵塞或死循环等情况时得以及时恢复。
2. 工业控制系统在工业控制系统中,单片机看门狗常用于监控各个任务的运行状态,并保证系统的稳定性和可靠性。
例如,对于PLC (可编程逻辑控制器)等系统,单片机看门狗能够在检测到系统堵塞或故障时及时进行恢复,避免生产过程中的停机等问题。
3. 汽车电子领域在汽车电子领域,单片机看门狗被广泛应用于汽车电子控制模块(ECM)等关键系统。
通过监控系统的运行状态,单片机看门狗可以在检测到系统故障时进行自动恢复,并确保汽车电子系统的稳定性和可靠性。
优势与注意事项单片机看门狗作为嵌入式系统的重要组件,具有以下优势:1.提高系统可靠性:通过定期检测系统状态并自动执行相应操作,单片机看门狗可以在系统发生故障时迅速恢复系统的正常运行。
2.简化系统设计:单片机看门狗可以作为一个独立的硬件设备存在,与系统的其他部分相互独立,从而简化了系统设计和整合的复杂性。
PIC单片机看门狗定时器和上电延时定时器
寄存器 9-4:
WDTCONINV:看门狗定时器控制取反寄存器 写入时会将 WDTCON 中的选定位取反,读取时获得的值未定义
bit 31 bit 31-0
bit 0 将 WDTCON 中的选定位取反 在一个或多个位中写入 1 会将 WDTCON 寄存器中的相应位取反,但不会影响未实现位或只读位。写 入 0 不会影响该寄存器。 示例:WDTCONINV = 0x00008001 时,会将 WDTCON 寄存器中的 bit 15 和 bit 0 取反。
看门狗定时器和上电延时定时器 SFR 汇总
Bit 31/23/15/7 — — ON — Bit 30/22/14/6 — — — Bit 29/21/13/5 — — — Bit 28/20/12/4 — — — WDTPS<4:0> 写入时会将 WDTCON 中的选定位清零,读取时获得的值未定义 写入时会将 WDTCON 中的选定位置 1,读取时获得的值未定义 写入时会将 WDTCON 中的选定位取反,读取时获得的值未定义 — — — — — — — WDTO — — — SLEEP — — — IDLE — — CM BOR — — VREGS POR Bit 27/19/11/3 — — — Bit 26/18/10/2 — — — Bit 25/17/9/1 — — — — Bit 24/16/8/0 — — — WDTCLR
9
看门狗定时器 上电延时定时器
© 2010 Microchip Technology Inc.
初稿
DS61114D_CN 第 9-1 页
PIC32MX 系列参考手册
9.1 简介
本章介绍 PIC32MX 器件的看门狗定时器(Watchdog Timer,WDT)和上电延时定时器(Power-up Timer, PWRT)模块。 WDT 和 PWRT 的框图请参见图 9-1。 WDT 被使能时,工作于内部低功耗 RC (Low-Power RC, LPRC)振荡器时钟源。 WDT 可用于 检测系统软件故障,如果软件未定期清零 WDT 的话,器件将被复位。可使用 WDT 后分频器选 择各种 WDT 超时周期。 WDT 还可用于将器件从 SLEEP (休眠)或 IDLE (空闲)模式唤醒。 在 PWRT 有效时,它会在正常的上电复位 (Power-on Reset, POR)启动周期完成之后将器件保 持在复位状态 64 毫秒。这可以提供一段额外的时间,让主振荡器(Primary Oscillator,POSC)时 钟源和电源得以稳定。类似于 WDT, PWRT 也使用 LPRC 作为其时钟源。详情请参见图 9-1。 下面列出了 WDT 模块的部分主要特性: • 可配置或由软件控制 • 用户可配置的超时周期 • 可将器件从 SLEEP (休眠)或 IDLE (空闲)模式唤醒 图 9-1: 看门狗定时器和上电延时定时器框图
看门狗的作用
目前,在许多情况下,设计人员会用软件实现以往由硬件才能完成的电路功能,其中部分原因是低成本的微处理器(μP)为大家提供了广泛的选择。
软件常常是解决问题成本最低、灵活性最高的方案,但它也迫使设计人员进行一些额外的测试以确保系统的可靠性。
当然,如果程序没有代码错误也就不存在上述问题,细心的测试能够在1000条指令中减少1至10条错误。
而设计人员则希望在10,000条指令中出错率不要超过十处。
在台式机系统中出现导致系统瘫痪的软件错误并不可怕,因为用户只需重新启动系统即可,它只会造成少量数据的丢失。
然而,对于运行在工控系统的软件,系统则必须能够在没有人为干预的条件下恢复故障。
这一特性在两种情况下非常关键:一种是高有效性系统,如服务器、电话系统以及生产线等;另一种是高可靠性系统,因为这种系统一旦出现错误将造成伤害,如汽车、医疗设备、工业控制、机器人、自动门等。
即使不考虑这些要求严格的应用,系统在无需用户干预的条件下自动(按下复位键或重新上电)从故障状态下恢复也是很有益处的,这种设备的好处是显而易见的,因为用户不希望设备内部出现问题。
改善这类系统可靠性的一种简单、有效的措施是采用看门狗电路。
1看门狗看门狗实际上是一个计数器,它需要在一定的看门狗延时周期内被清零,如果没有清零动作,看门狗电路将产生一个复位信号以使系统重新启动或建立一个非屏蔽中断(NMI)并执行故障恢复子程序。
大多数看门狗电路是沿触发,这样,无论是上升沿还是下降沿触发看门狗的输入端(WDI)通常都能够清计数器。
WDI引脚一般连接在处理器的一个I/0口,这条口线可由软件触发。
图1所示是微处理器通过在WDl脚发送脉冲清除看门狗定时器以防止复位的连接方式,实际上,清看门狗计数器的命令必须在主程序内。
如果看门狗没有被清零,复位后软件将从地址为0000(启动程序)的子程序处开始运行。
计算主程序的运行时间往往很困难,因为在此期间可能需要多次调用子程序,这与系统输入有关。
软件看门狗
看门狗,又叫 watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超过,就回给出一个复位信号到MCU,是MCU复位.防止MCU死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以在使用有看门狗的芯片时要注意清看门狗。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。
那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等.软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。
我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。
对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1的定时中断就会使单片机复位。
在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。
而T1的中断正常与否我们再由T0定时中断子程序来监视。
这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。
看门狗的使用及妙用
-1-
广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax:38730925
3. 看门狗作为一个定时器
此时 WDTE 位为 0 看门狗定时器溢出时产生中断 WDCON 寄存器可以修改 这时可以通过 WDRUN 位控制它的运行和停止 WDCLK 可以选择它的时钟源 程序运行中 WDCON.2-0 可以被不断更改 此时 4 个按键和 5 个 LED 如图 1 所示 功能说明如下
EKB
EQU
0E9H
LED_WDS0
EQU
P1.7
;看门狗溢出周期指示灯.点亮时代表二进制 1,熄灭时 ;代表 0
LED_WDS1
EQU
P0.6
;全亮时周期最长 WDS2-0 为 111
LED_WDS2 LED_WDCLK
EQU
P0.0
EQU
P0.7
;全灭时周期最短 WDS2-0 为 000 ;看门狗时钟选择指示灯.点亮时为 CPU 时钟,熄灭时
;为 WDT 内部 RC 振荡器时钟
LED_WDRUN KEY_DIVM
EQU
P1.6
EQU
P0.1
;运行指示灯.点亮时为 0,熄灭时为 1 ;分频键,按此键 MCU 时钟被分频
KEY_LPD
EQU
P0.3
;低功耗键,按此键进入"低功耗"模式
KEY_CLK
EQU
P1.4
;亦可以按此键退出 ;看门狗禁能时时钟选择键. 在 CPU 时钟与 RC 振荡器
开
始
溢出次数减 1=0?
N 系统初始化
Y 溢出周期设为最长
N 看门狗使能否?
Y 喂狗子程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内部与外部看门狗定时器的比较
摘要:本文对内部(集成在处理器内部)看门狗定时器(WTD)与外部(基于硬件) WDT的优势和劣势进行了对比。
内部看门狗便于设计,但容易失效。
MAXQ2000微控制器的WDT可以作为内部看门狗的一个例子。
基于硬件的看门狗定时器需要占用额外的电路板空间,但在对于可靠性要求较高的设计中确实不可或缺的。
本文给出了一个对照表,总结了每种WDT方案的优缺点。
引言
看门狗定时器(WDT)在出现无效的软件运行状态时用来强行复位(硬件复位)嵌入式微处理器或微控制器,失效状态可以是简单地触发寄存器的某一位,或者是射线干扰或EMI (电磁辐射)。
本文介绍了一些针对具体应用选择最佳定时器的考虑。
WDT的典型应用
防止微处理器闭锁是WDT的一个典型应用,通常,嵌入式软件有一个“主循环”程序,用其调用子程序以实现不同的任务。
每次程序循环对WDT进行一次复位,如果任何原因造成程序循环操作失败,看门狗定时器则发生超时,对器件进行复位。
具有WDT功能的系统非常适合检测误码,中断(包括存储器故障,EMI对存储器或接口放电)可能导致临时性的误码。
这些误码会导致处理器输入、输出数据的极性翻转,当误码没引入到程序信息中时,微处理器将会执行错误的代码。
很有可能造成处理器开始执行操作数,而非操作代码。
程序开始执行这种错误代码时,将造成程序运行不正常,无法提供看门狗清零信号,从而导致处理器复位。
合理的系统设计能够在复位后恢复系统的正常运行。
需要注意的是,WDT不能检测瞬态故障,按照定义,只有在WDT计数器达到预定的时间间隔时才会复位处理器。
正是这一原因,需要选择一个最短超时周期,以便在系统失控之前由WDT产生复位,使系统恢复正常工作。
内部和外部WDT
WDT可以内置于微处理器,例如:MAXQ2000微控制器;也可以是一个独立的IC (外部WDT),或作为支持ASIC的一部分。
无论是内部WDT,还是外部WDT,各有其优缺点。
内部定时器有助于节省成本,但容易受程序运行失效的影响。
相对成本较高的外部WDT具有一个独立的时钟源,能够提供更高的可靠性;经过适当配置,外部WDT不会受程序失效的影响。
WDT的基本原理
WDT的核心电路是计数寄存器,时钟源连续递增计数寄存器的值,计数器发生溢出时,看门狗逻辑电路强制系统复位。
为防止复位,必须周期性地将计数寄存器清零,称其为“喂
狗”。
外部WDT IC具有一个数字输入引脚,该引脚从低到高或从高到低的跳变将计数寄存器清零。
内部WDT的“喂狗”操作则不同,例如,MAXQ2000的WDT,可以通过设置寄存器位(MOVE WDCN.0, #1)的方式复位看门狗。
PIC微控制器及其它微处理器则通过专用指令(CLRWDT)复位计数寄存器。
正确的软件操作能够在要求的期限内提供数字信号跳变,确保计数寄存器不会发生溢出。
但当程序进入一个无限循环或出现“死机”时,将无法清零计数寄存器。
发生这种情况时,看门狗将触发一次复位。
WDT周期是计数器溢出的时间,为避免复位,必须在短于超时周期的时间内清零看门狗定时器。
有些WDT在基本计数寄存器架构的基础上增添了更多功能,例如:“窗检测”WDT或“最小/最大"超时WDT,这一功能会在发生过慢或过快的看门狗定清零时产生复位。
如果在计数寄存器的数值低于某个门限时出现寄存器清零信号,器件将触发复位。
简单地说,是在发生看门狗清零过快时触发复位,可以避免处理器工作在晶体标称频率的谐波状态下。
另外一个功能是利用逻辑输入(外部看门狗)或寄存器位(内部看门狗)禁止WDT功能。
集成在微处理器内部的看门狗定时器
本文无法在有限的篇幅内列举各种微处理器(?P) WDT的案例,而是以MAXQ2000微控制器的内部WDT为例进行说明。
该定时器比上述基本的计数寄存器复杂一些,类似于多数商用化微控制器芯片的WDT功能。
没有看门狗清零操作时,MAXQ2000'的WDT溢出,由此触发中断,经过512个系统时钟周期后自行复位。
中断为保存调试信息提供了“最后一次机会”,大多数设计人员认为这一机会对于电路开发及故障排查至关重要。
除了存储调试信息外,中断还用于从故障状态下恢复工作,清除看门狗计数器。
后者会对系统的可靠性产生一定的影响。
与其它内部WDT类似,MAXQ2000的看门狗可以通过软件禁止。
值得注意的是,这一功能可能是一把双刃剑:在程序运行失效时会禁止看门狗,导致系统的进一步混乱。
有些处理器将它们的WDT连接到一个独立于系统时钟的内部振荡器。
虽然MAXQ2000的WDT时钟由系统时钟驱动,MAXQ2000的时钟电路可以在主时钟失效时切换到备份RC 振荡器。
看门狗定时器IC
专用的、外部WDT IC能够提供多项功能选择,许多厂商都可提供这种器件。
有些器件,例如; MAX6752,具有“窗检测看门狗”功能。
MAX6752还可通过外部电容调节看门狗的超时周期和复位脉冲宽度,以满足微处理器和具体应用的要求。
MAX6369 WDT的逻辑输入引脚可以禁止定时器工作,防止复位。
它通常连接到微处理器的一个逻辑引脚,这种方式对可靠性构成一定的威胁,因为在程序运行失效时可能会意外禁止看门狗功能。
大多数情况下,需要在上电过程中(处理器导入程序时)禁止看门狗功能。
MAX6369在复位后提供了一个额外的长周期看门狗超时。
看门狗第一次清零后恢复到常规
超时周期。
这种方式比从外部禁止看门狗功能或重新使能看门狗功能更加可靠。
外部看门狗定时器还可以监测VCC电源,在电压跌落到指定的门限以下时触发系统复位。
有些定时器还提供了具有去抖动电路和ESD保护的手动复位输入。
这种IC内部的电压检测器能够在整个工作温度范围内保持较高精度,优于集成在处于电源失效状态的微处理器内部的方案。
结论
表1列举了外部和内部WDT的优势和劣势,采用外部看门狗定时器IC相对成本较高,但可满足高可靠性系统的要求。
将WDT的禁止输入连接到微处理器(可以通过软件禁止看门狗复位),会影响内部看门狗定时器的可靠性。
集成在微处理器内部的看门狗定时器比较适合对可靠性要求不高的应用,好处是能够降低成本。
表1. 看门狗定时器比较。