内部与外部看门狗定时器的比较
- 格式:doc
- 大小:209.50 KB
- 文档页数:3
看门狗分硬件看门狗和软件看门狗。
硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。
如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。
软件看门狗原理上一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。
当然也有通过双定时器相互监视,这不仅加大系统开销,也不能解决全部问题,比如中断系统故障导致定时器中断失效。
看门狗本身不是用来解决系统出现的问题,在调试过程中发现的故障应该要查改设计本身的错误。
加入看门狗目的是对一些程序潜在错误和恶劣环境干扰等因素导致系统死机而在无人干预情况下自动恢复系统正常工作状态。
看门狗也不能完全避免故障造成的损失,毕竟从发现故障到系统复位恢复正常这段时间内怠工。
同时一些系统也需要复位前保护现场数据,重启后恢复现场数据,这可能也需要一笔软硬件的开销。
图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单片机的区别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/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)根据定时器的定时时间,在主程序中按一定的间隔插入复位定时器的指令,即插入“喂狗”指令,两条“喂狗”指令间的时间间隔(可由系统时钟和指令周期计算出来)应小于定时时间,否则看门狗将发生误动作。
本次实训旨在使学生了解看门狗定时器的基本原理、工作方式以及在嵌入式系统中的应用,通过实际操作,掌握看门狗定时器的配置、使用方法,并学会利用看门狗定时器解决嵌入式系统中的故障和异常。
二、实训内容1. 看门狗定时器原理- 看门狗定时器是一种监测硬件或软件故障的定时器,其工作原理是在程序运行过程中不断重装载,以防止溢出引发中断或复位。
- 看门狗定时器分为独立看门狗和窗口看门狗两种类型。
2. 独立看门狗(FWDGT)- 独立看门狗使用独立的32kHz内部时钟,适用于对计时精度要求不高的场合。
- 独立看门狗内部有一个12位的向下计数的定时器,当计数值达到0时,会产生一个系统复位。
3. 窗口看门狗(WWDGT)- 窗口看门狗使用PCLK分频而来的时钟,计数器位数较小,需要在窗口范围内重装载以防复位。
4. 看门狗定时器的配置与使用- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 看门狗定时器的实际应用- 利用看门狗定时器解决嵌入式系统中的故障和异常。
- 通过看门狗定时器监控程序运行状态,防止死锁。
- 作为系统安全特性的一部分,确保在检测到异常时能够安全地重启系统。
1. 准备工作- 准备好实训所需的硬件设备和软件环境,如单片机开发板、调试器、IDE等。
2. 环境搭建- 根据实际需求搭建实训环境,包括硬件电路连接和软件配置。
3. 看门狗定时器配置- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
4. 程序编写- 编写程序,实现看门狗定时器的初始化、重装载和监控功能。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 调试与验证- 使用调试器对程序进行调试,观察看门狗定时器的运行状态。
内部与外部看门狗定时器的比较摘要:本文对内部(集成在处理器内部)看门狗定时器(wtd)与外部(基于硬件)wdt的优势和劣势进行了对比。
内部看门狗便于设计,但容易失效。
maxq2000微控制器的wdt可以作为内部看门狗的一个例子。
基于硬件的看门狗定时器需要占用额外的电路板空间,但在对于可靠性要求较高的设计中确实不可或缺的。
本文给出了一个对照表,总结了每种wdt方案的优缺点。
引言看门狗定时器(wdt)在发生违宪的软件运转状态时用以私自登位(硬件登位)嵌入式微处理器或微控制器,失灵状态可以就是直观地引爆寄存器的某一位,或者就是射线阻碍或emi(电磁辐射)。
本文介绍了一些针对具体应用选择最佳定时器的考虑。
wdt的典型应用领域防止微处理器闭锁是wdt的一个典型应用,通常,嵌入式软件有一个“主循环”程序,用其调用子程序以实现不同的任务。
每次程序循环对wdt进行一次复位,如果任何原因造成程序循环操作失败,看门狗定时器则发生超时,对器件进行复位。
具备wdt功能的系统非常适合检测误码,中断(包含存储器故障,emi对存储器或USB振动)可能将引致临时性的误码。
这些误码可以引致处理器输出、输入数据的极性滑动,当误码没有导入至程序信息中时,微处理器将可以继续执行错误的代码。
很有可能导致处理器已经开始继续执行操作数,而非操作方式代码。
程序已经开始继续执行这种错误代码时,将导致程序运行不正常,无法提供更多看门狗清零信号,从而引致处理器登位。
合理的系统设计能在登位后恢复正常系统的正常运转。
需要注意的是,wdt不能检测瞬态故障,按照定义,只有在wdt计数器达到预定的时间间隔时才会复位处理器。
正是这一原因,需要选择一个最短超时周期,以便在系统失控之前由wdt产生复位,使系统恢复正常工作。
内部和外部wdtwdt可以内置于微处理器,例如:maxq2000微控制器;也可以是一个独立的ic(外部wdt),或作为支持asic的一部分。
无论是内部wdt,还是外部wdt,各有其优缺点。
内部与外部看门狗定时器的比较
摘要:本文对内部(集成在处理器内部)看门狗定时器(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. 看门狗定时器比较。