单片机应用系统中的看门狗技术
- 格式:pdf
- 大小:134.49 KB
- 文档页数:4
“看门狗”技术在单片机应用系统中的应用[摘要] 在单片机应用系统中,系统往往受到外界干扰而影响工作可靠性。
“看门狗”是提高系统可靠性的非常重要的技术,因为它既可以由硬件实现,又可以由软件实现。
本文主要从硬件看门狗和软件看门狗两个方面阐明其工作原理并给出应用实例。
[关键词] 单片机应用系统;硬件看门狗;软件看门狗[Abstract] This paper introduces MCU application system can acquire noises from environment an d influnce it’s reliability during the practical work, the methods to involve noises can from hardware and software 。
Watch-dog is a importent technology in system reliability,because it can be achived from not only hadware but also software.It priefly explains the watch-dog’s principle and application through hardware watch-dog and software watch-dog and gives some examples in practical application.[Keywords] MCU application system hardware watch-dog software watch-dog1.概述单片机应用系统是由单片机系统配以相应的软件组成的用于完成某种控制功能的系统。
在实际工作中,单片机应用系统会受到外界干扰而影响其可靠性,减小干扰提高可靠性在单片机应用系统中十分重要,相应的措施有硬件措施和软件措施,因为看门狗既可以通过硬件来实现也可以通过软件来实现,所以它是解决系统抗干扰的非常重要的技术。
STM32 单片机中的独立看门狗与窗口看门狗有哪些
不同之处
1.关于看门狗的解释不再说明,窗口看门狗简而言之即只能看某个窗口期即某段时间内才能够喂狗。
32 的独立看门狗是没有中断的,而窗口看门狗可根据需要配置中断
2.关于独立看门狗和窗口看门狗的应用,手册p316 即17.1 节讲的非常清楚。
首先独立看门狗和窗口看门狗都可用来监视软件程序是否正常运行,而
具体而言,因为独立看门狗独立于系统时钟单独运行,因此其可用来监视是
否发生了硬件错误,比如说系统时钟故障,看门狗仍然能够起到重启的作
用,但是独立看门狗的计时精度比较差,更多的应用在独立系统运行之外的
对计时要求低的地方。
而窗口看门狗是由系统时钟提供的,因此其计时也会
很准确,当然其也就只能用来检测软件故障,比如硬件故障系统时钟坏了,
自身也就不动了,也就没有检测硬件故障的作用,因此窗口看门狗是用在检
测应用软件是否准确运行时使用的。
当然我们用系统情况下其实完全可以不使用32 提供的看门狗,我们自己某个任务的一个变量即实现看门狗的功能了。
3.另外注意,看门狗只是解决软件异常,独立看门狗称为硬件看门狗是其。
引言概述:
单片机的看门狗(二)是在第一篇文章中讨论的单片机看门狗的延伸,本文将深入探讨单片机看门狗的使用场景、工作原理、设置参数、使用注意事项以及常见问题等方面的内容。
单片机看门狗是一种重要的硬件设备,在系统稳定性和可靠性方面起到关键作用,因此了解和掌握单片机看门狗的相关知识是非常有必要的。
正文内容:
一、单片机看门狗的使用场景
1.1实时系统
1.2长时间运行的设备
1.3类似于操作系统的应用
二、单片机看门狗的工作原理
2.1看门狗定时器
2.2看门狗计数器
2.3看门狗复位信号
三、单片机看门狗的设置参数
3.1看门狗定时器的预分频和计数器
3.2看门狗复位信号的触发条件
3.3看门狗溢出时间的设置
四、单片机看门狗的使用注意事项
4.1错误的看门狗设置
4.2看门狗溢出时间过短
4.3看门狗溢出时间过长
五、单片机看门狗的常见问题及解决方法
5.1看门狗复位问题
5.2看门狗延时问题
5.3看门狗定时器设置问题
总结:
单片机看门狗是一项重要的硬件设备,它在保证系统稳定性和可靠性方面起到关键作用。
本文从使用场景、工作原理、设置参数、使用注意事项以及常见问题等方面深入探讨了单片机看门狗的相关知识。
在实际应用中,我们应该根据具体情况,合理设置单片机看门狗的参数,避免错误的配置导致系统异常。
同时,我们也要注意单片机看门狗的溢出时间,不要设置过短或过长,以免影响系统的正常运行。
通过深入了解和掌握单片机看门狗的相关知识,我们可以更好地应用它,提高系统的稳定性和可靠性。
STC89系列单片机看门狗的使用及应用程序“看门狗”概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(watch dog)。
加入看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过单片机的程序控制,使它定时地往看门狗芯片的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时,看门狗电路就会由于得不到单片机送来的信号,便将它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,从而单片机将从程序存储器的起始位置重新开始执行程序,这样便实现了单片机的自动复位。
通常看门狗电路需要一个专门的看门狗芯片连接单片机来实现,这在我们的单片机教程网http://www.51hei. com以前做过相关的电路介绍。
不过这样会给电路设计带来复杂,STC单片机内部自带有看门狗,通过对相应特殊功能寄存器的设置就可实现看门狗的应用,STC89系列单片机内部有一个专门的看门狗定时器寄存器,Watch Dog Timer 寄存器,其相应功能见下个知识点。
看门狗定时器寄存器(WDT_CONTR)STC单片机看门狗定时器寄存器在特殊功能寄存器中的字节地址为E1H,不能位寻址,该寄存器用来管理STC单片机的看门狗控制部分,包括启停看门狗、设置看门狗溢出时间等。
单片机复位时该寄存器不一定全部被清0,在STC下载程序软件界面上可设置复位关看门狗或只有停电关看门狗的选择,大家根据需要可做出适合自己设计系统的选择。
单片机看门狗(Watchdog)的工作原理及其应用2010年05月16日星期日 23:00在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环。
程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。
所以,出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。
看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行。
这个时候,看门狗电路就会由于得不到单片机送来的信号。
便在它和单片机复位引脚相连的引脚上送出一个复位信号。
使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
看门狗,又叫 watchdog timer,是一个定时器电路。
一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU 正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零。
如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,是MCU复位,防止MCU死机。
看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以,在使用有看门狗的芯片时要注意清看门狗。
“看门狗”概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(watch dog)。
加入看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过单片机的程序控制,使它定时地往看门狗芯片的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时,看门狗电路就会由于得不到单片机送来的信号,便将它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,从而单片机将从程序存储器的起始位置重新开始执行程序,这样便实现了单片机的自动复位。
通常看门狗电路需要一个专门的看门狗芯片连接单片机来实现,不过这样会给电路设计带来复杂,STC单片机内部自带有看门狗,通过对相应特殊功能寄存器的设置就可实现看门狗的应用,STC89系列单片机内部有一个专门的看门狗定时器寄存器,Watch Dog Timer 寄存器,其相应功能见下个知识点。
看门狗定时器寄存器(WDT_CONTR)STC单片机看门狗定时器寄存器在特殊功能寄存器中的字节地址为E1H,不能位寻址,该寄存器用来管理STC单片机的看门狗控制部分,包括启停看门狗、设置看门狗溢出时间等。
单片机复位时该寄存器不一定全部被清0,在STC下载程序软件界面上可设置复位关看门狗或只有停电关看门狗的选择,大家根据需要可做出适合自己设计系统的选择。
其各位的定义如表4.2.1所示。
表1看门狗定时器寄存器(WDT_CONTR)EN_WDT:看门狗允许位,当设置为“1”时,启动看门狗。
MSP430单片机看门狗的使用
1、看门狗有三种工作模式:停止模式,计时器模式,看门狗模式。
2、其中后两种模式可以选择的时钟源有:SMCLK 和ACLK。
3、使用后两种模式时要注意单片机所处的状态下看门狗能否工作,如单片
机处在LPM3 时只有ACLK 时钟,处在LPM4 下,没有时钟可以使用。
4、看门狗模式的使用方法
当看门狗计数溢出时,程序复位。
在程序中开启看门狗,在计数溢出前清空看门狗,或重置看门狗,以使其重新计数。
若程序跑飞,看门狗可能没有被清空或重置,就会溢出,使程序复位。
5、MSP430F2274 中,看门狗模式下可以计时最长为1s,若需要以更长的时间复位,可采取的方法,使用其他计数器,计数满后执行((void(*)())
RESET_VECTOR)();或计数满后往看门狗控制寄存器写个错误值或执行一条无效命令:如((void(*)())0x170)();0x170 是外围模块的一个地址,不可能是一个函数地址,所以执行此句将使程序复位。
6、看门狗的具体使用
6.1、停止模式:关闭看门狗
C 语言实现:WDTCTL = WDTPW + WDTHOLD
6.2、计时器模式:作为一个计时器使用,计数器满产生中断时执行看门狗中断函数。
C 语言实现:
主程序中开启看门狗计时器,如:WDTCTL = WDT_MDLY_8;
看门狗中断函数为:
#pragmavector=WDT_VECTOR。
第21卷第2期 吉林大学学报(信息科学版) V ol.21 N o.2 2003年5月 JOURNAL OF JILIN UNIVERS ITY(IN FORM AT ION SCIENC E EDITION) M ay2003文章编号:1671-5896(2003)02-0205-04单片机应用系统中的看门狗技术胡 屏1,柏 军2(1.哈尔滨工业大学威海分校信息与控制工程系,山东威海 264209;2.哈尔滨工业大学威海分校计算机科学与工程系,山东威海 264209)摘要:分析研究了单片机应用系统中软件看门狗、单/双时限和强制复位看门狗等几种常见的看门狗技术及具体的实现方法,从提高看门狗工作可靠性的角度,分析了各种看门狗方案的优缺点,给出了基本的硬件电路和软件控制策略,指出了在设计和应用过程中需注意的一些问题。
关键词:单片机;看门狗;抗干扰;X5045看门狗定时器中图分类号:T P39 文献标识码:A引 言随着单片机技术的发展和制造工艺的日益成熟,单片机的应用领域不断拓宽,但由于单片机自身的抗干扰能力较差,尤其是在一些条件比较恶劣,噪声大的场合,常会出现单片机因受外界干扰而导致死机的现象,造成系统不能正常工作。
设置看门狗是防止单片机死机、提高单片机系统抗干扰性的一种重要途径,笔者研究分析了几种较为实用的看门狗技术,供读者参考。
1 软件看门狗软件看门狗是利用单片机片内闲置的定时器/计数器单元作为看门狗,在单片机程序中适当地插入“喂狗”指令,当程序运行出现异常或进入死循环时,利用软件将程序计数器PC赋予初始值,强制性地使程序重新开始运行。
具体实现方法如下。
1)首先在初始化程序中设置好定时器/计数器的方式控制寄存器(T MOD)和定时时间的初值,并开中断。
2)根据定时器的定时时间,在主程序中按一定的间隔插入复位定时器的指令,即插入“喂狗”指令,两条“喂狗”指令间的时间间隔(可由系统时钟和指令周期计算出来)应小于定时时间,否则看门狗将发生误动作。
3)在定时器的中断服务程序中设置一条无条件转移指令,将程序计数器PC转移到初始化程序的入口。
以M CS-51系列单片机为例,晶振频率为12MHz,定时器T0工作在方式1,定时时间为20ms,则定时器T0的初值应设为T H0=B1H、T L0=E0H,具体程序段如下。
ORG 0000H AJMP INITORG000BHSERVT0:AJMP INIT;定时器T0溢出中断服务ORG0100HINIT:M OV TM OD,#01H;定时器T0工作在方式1a收稿日期:2002-11-04作者简介:胡屏(1969— )女,吉林长春人,哈尔滨工业大学讲师,工学硕士,主要从事应用电子研究,E-mail:h uping111 @。
吉林大学学报(信息科学版)第21卷M OV TH0,#0B1HM OV TL0,#0E0H;设置定时器T0的初值SET B ET0;定时器T0中断允许SETB EA;CPU开中断SET B TR0;启动定时器T0M OV SP,#10H;设置栈底M OV A,#00HPUSH AM OV A,#02HPUSH A;在堆栈中存放主程序入口地址RETI;PC指向主程序入口并恢复中断设置ORG0200HM AIN:…CLR TROM OV TH0,#0B1HM OV TL0,#0E0HSET B TR0;重置定时器T0的初值并启动,即“喂狗”…当程序正常运行时,定时器不会发生溢出;而程序运行异常时,定时器超时溢出并产生中断,通过中断服务程序强行使PC回到起始位置,从而恢复程序的正常运行。
但这里必须注意一点,由于定时器溢出产生中断时,CPU所执行的中断服务程序是一条无条件转移指令,PC被强行从中断服务程序中拉出,而中断服务程序并未真正结束,即未执行中断返回指令RETI。
此时片内的中断优先级触发器仍处于置位状态,这将使同级的其他中断请求被屏蔽,为此应在初始化程序结束前放置一条RETI指令,并对堆栈和堆栈指针SP作相应的处理(在堆栈的栈顶预留两个字节单元,用来存放主程序的入口地址),以保证初始化程序结束后,优先级触发器被复位,使中断系统正常工作,并开始顺序执行主程序。
软件看门狗的最大特点是无需外加硬件电路,经济性好。
当然,如果片内的定时器/计数器被占用时,就需寻求其他的设计方式了。
2 专用硬件看门狗专用硬件看门狗是指一些集成化的或集成在单片机内的专用看门狗电路,它实际上是一个特殊的定时器,当定时时间到时,发出溢出脉冲。
从实现角度上看,该方式是一种软件与片外专用电路相结合的技术,硬件电路连接好以后,在程序中适当地插入一些看门狗复位的指令(即“喂狗”指令),保证程序正常运行时看门狗不溢出;而当程序运行异常时,看门狗超时发出溢出脉冲,通过单片机的RESET引脚使单片机复位。
在这种方式中,看门狗能否可靠有效地工作,与硬件组成及软件的控制策略都有密切的关系。
目前常用的集成看门狗电路很多,如M AX705~708、M AX791、MAX813L、X5043/5045等。
X5045是XICOR公司的产品,它是一种可编程的专用看门狗定时器,定时时间可通过软件进行选择(200ms, 600m s, 1.4s),内部包含看门狗电路、电压监控电路和4KB E2PROM等。
X5045的工作时序如图1所示,图中T CS T是定时器触发脉冲(负脉冲)的宽度,T WDO是定时器的溢出周期(可编程),T RS T是定时器溢出脉冲的宽度。
下面以X5045为例介绍两种硬件看门狗的实现方法。
2.1 单时限看门狗硬件电路如图2所示,图中单片机的P1.0为X5045提供片选信号和看门狗复位信号,P1.1接收X5045的串行数据,P1.2提供串行时钟,P1.3向X5045发送串行数据,X5045的RST引脚(漏极开路)输出看门狗溢出信号,与单片机的RESET引脚相连,用于复位单片机。
单片机程序中,每隔一定的时间间隔放置一条“喂狗”指令(即在P1.0输出一个下降沿),该时206图1 X 5045触发和溢出时序图F ig.1X5045T r ig ger and o uttiming 图2 单时限看门狗电路Fig.2Sing le per io d w atch-dog circuit间间隔应小于X5045预制的定时时间,以保证程序正常运行时X5045不会溢出;而一旦程序出现异常,X 5045将超时溢出,并通过RST 引脚送出一个复位信号使单片机复位,重新开始运行程序。
该方法硬件电路简单、控制方便,因此最为常用。
在大多数情况下,由于某种干扰使程序计数器PC 跳出有效的程序区,造成死机现象,此时看门狗是起作用的。
但有一种情况,如果程序进入了某个死循环,而这个死循环中又含有“喂狗”指令,此时单片机将无法复位,看门狗也就失效了。
也就是说,采用此种方法并不能保证看门狗百分之百可靠有效。
2.2 双时限看门狗图3 双时门看门狗电路F ig.3D ouble period w atch-do gcircuit 为弥补单时限看门狗的缺陷,可采用图3所示的双时限看门狗。
硬件上采用两个独立的看门狗电路WD1和WD2,利用单片机的P1.0~P1.3控制W D1,用P1.4~P 1.7控制WD 2,每片看门狗超时溢出均可导致单片机复位。
单片机程序中将WD1和WD2的定时时间设置为两个不同的时限:一个短定时,一个长定时。
例如将WD1和WD 2的定时时间分别设为200ms 和1.4s 。
其中短时限看门狗WD1的控制方式与前述的单时限看门狗相同,即在程序中每隔一段时间(应小于200ms)插入一条“喂狗”指令,循环程序中也可以包含“喂狗”指令。
对于长时限看门狗WD 2,在整个程序中只插入一条喂狗指令,但不要放在循环程序中,且保证其定时时间大于整个程序的运行周期。
当出现一般异常情况时,短时限看门狗WD 1能够有效工作,且具有较快的反应速度,而当程序进入含有WD1的“喂狗”指令的死循环时,W D1将失效,而长时限看门狗WD2终将超时溢出使单片机复位。
此种方式以增加硬件投入为代价来提高看门狗工作的可靠性。
3 强制复位看门狗要保证硬件看门狗有效地工作,在硬件电路可靠工作的前提下,还要在单片机程序中合理地放置“喂狗”指令,也就是说,被保护者能否得到有效的保护,还要依赖其本身的行为。
引起单片机死机的因素往往很多,情况也比较复杂,设计者在编程时难免有考虑不周的地方,即使加了专用硬件看门狗,也不能完全杜绝单片机死机的现象。
在一些绝对不允许死机的单片机应用场合,可采用一种不依赖于单片机程序控制的定时复位看门狗。
如图4所示,在单片机外放置一个以NE555为核心的振荡器,每隔一定时间间隔从NE555的OUT 引脚输出一个正脉冲,无论系统是否死机,都强行使单片机复位。
该看门狗电路的工作时序如图5所示,其中NE555输出信号的高、低电平维持时间分别为:T H =207第2期胡屏,等:单片机应用系统中的看门狗技术0.7(R 1+R 3)C 1,T L =0.7(R 2+R 4)C 1。
图4 强制复位看门狗电路Fig .4Fo rced reset w atch -dog circuit 图5 强制复位看门狗工作时序图Fig .5Fo rced reset w atch -dog w or k timing通过调节电位器R3的值R 3,可以调整T H ,使之满足单片机复位信号RESET 的时间要求;调节电位器R4的值R 4,可以改变T L ,T L 至少应大于单片机程序的一个运行周期,且应保证一些重要的程序段不被打断,以免系统产生误操作。
4 结束语为了提高单片机系统的抗干扰能力,看门狗已经成为系统中不可缺少的一员,在具体实施方面,设计者应综合考虑系统资源、经济性、可靠性等多方面因素,合理制定看门狗的控制方案,提高系统的性能价格比。
参考文献:[1]陈粤初,窦振中(CHEN Y ue-chu,DOU Z hen-zho ng ).单片机应用系统设计与实践(Desig n and P ractice o f Sing le-chip M icr oco mputer A pplication Sy stems )[M ].北京:北京航空航天大学出版社(Beijing:A viatio n and Spaceflig ht Colleg e Pr ess ),1991.[2]潘新民,王燕芳(PA N Xin-min,WA N G Y an-fang ).单片微型计算机实用系统设计(P ractical Sy st em Desig n ofSingle -chip M icr ocomputer )[M ].北京:人民邮电出版社(Beijing :P eople's P ress of P ost T elepho ne andT elegr aph),1992.[3]李勋,刘源(L I X un ,LI U Yuan ).单片机实用教程(P ra ct ical Co ur se of Sing le -chip M icr oco mputer )[M ].北京:北京航空航天大学出版社(Beijing :A v iation and Spaceflight Co llege P ress ),2000.[4]李维国,俞晓红(LI W ei-guo ,YU X iao -hong ).一种新的单片机“看门狗"电路软件设计方法(A n N ew Soft war eDesig n M et ho d of W atch -dog Cir cuit in Single -chip M icro co mput er )[J ].国外电子元器件(O ver seas Electr onic Components).2000,10.[5]王大海(W A NG D a -hai ).基于CP L D 技术的看门狗电路的设计(Design o f W atch -dog Cir cuit Based on CPL DT echnolog y)[J].电子工程师(Electr onic Engineer ).2002,8.Watch-dog technologies in single-chip microcomput er application systemsHU Ping 1,BAI Jun2(1.Department of Inform ation Control,Harb in Ins titu te of Tech nology (W eihai),W eihai 264209Ch ina;2.Department of C om puter Science ,Harbin In stitute of T echnology (Weihai ),W eih ai 264209C hina )Abstract :Sever al W atch-Dog T echno logies(WDT ),such as Software WDT,Sing le/Double period and Fo rced reset WDT ,in sing le-chip m icrocom puter applicatio n sy stem s and their implem entation metho ds are intr oduced .Basic har dw are cir cuits ,softw are control methods are propo sed ,and co rresponding merits ar e r espectively analyzed .T o improve the reliability of w atch -dog s ,it is po inted out that som e pr ecautions ar e needed during design and applicatio n.Key words :Sing le -chip micro com puter ;Watch -dog ;Anti -jam ming ;X 5045w atch -do g tim er 208吉林大学学报(信息科学版)第21卷。