单片机-系统复位与看门狗
基于单片机按键控制看门狗仿真设计
基于单片机按键控制看门狗仿真设计本文档旨在介绍《基于单片机按键控制看门狗仿真设计》的主题,并提供写作大纲的目的概述。
该文档将深入探讨如何利用单片机按键控制看门狗的仿真设计。
我们将详细介绍看门狗的概念和原理,并提供一个基于单片机按键的仿真设计案例。
通过本文档的阅读,读者将了解如何使用单片机按键来控制看门狗,在系统遇到异常情况时采取适当的措施来保护系统的稳定性和可靠性。
接下来,将按照以下大纲扩写内容,详细介绍《基于单片机按键控制看门狗仿真设计》的相关内容。
在介绍基于单片机按键控制看门狗的仿真设计之前,我们需要先了解单片机和看门狗的概念,并探讨为什么使用单片机按键控制看门狗是有意义的。
单片机是一种集成了微处理器核心、内存、输入/输出设备和其他功能模块的微型计算机系统。
它具有体积小、功耗低、成本低等特点,因而广泛应用于各种电子设备中。
看门狗(Watchdog)是一种用于检测和处理系统故障的硬件或软件机制。
它监视系统运行状态,并在系统发生故障时自动执行预定的纠错操作。
看门狗的主要作用是保障系统的稳定性和可靠性。
基于单片机按键控制看门狗的仿真设计就是利用单片机上的按键来控制看门狗的功能。
通过按下特定的按键,我们可以触发或关闭看门狗的工作,以解决系统故障或异常情况。
使用单片机按键控制看门狗具有以下意义:提高系统的稳定性:通过按键控制看门狗,可以及时检测和处理系统故障,保障系统的稳定运行。
简化系统调试过程:按键控制看门狗可以方便地触发系统故障模式,便于调试和定位问题。
提升系统的可靠性:看门狗机制可以在系统故障时自动执行纠错操作,提高系统的可靠性和容错能力。
综上所述,基于单片机按键控制看门狗的仿真设计是一种有效的解决方案,可以提高系统的稳定性、简化系统调试过程并提升系统的可靠性。
本文将阐述按键控制看门狗的仿真设计步骤,包括硬件和软件方面的具体要点。
硬件设计步骤准备所需材料和器件,包括单片机、按键、继电器等。
按照电路原理图连接各个器件,确保电路的正确性和稳定性。
C51单片机看门狗电路及程序设计方案
C51单片机看门狗电路及程序设计案院系:信息工程学院年级:2010级电子一班禹豪电子一班训虎电子二班邓启新一、引言在由单片机构成的微型计算机系统中,程序的正常运行常常会因为来自外界的电磁场干扰等原因而被打断,从而造成程序的跑飞,而陷入死循环。
由此导致单片机控制的系统无法继续工作,造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片或程序,俗称"看门狗"(watchdog)(1)看门狗电路基本原理看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连**,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
*此处设计原理实际上为下文中硬件看门狗设计思路。
(2)看门狗电路一般设计式“看门狗”电路一般分为硬件看门狗与软件看门狗两种设计式。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。
如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813,5045,IMP 813等,价格4~10元不等.软件看门狗技术的原理和硬件看门狗类似,只不过是用软件的法实现(即利用单片机部定时器资源,通过编程模拟硬件看门狗工作式),以51系列为例:因在51单片机中有两个定时器,在利用部定时器资源来对主程序的运行进行监控时。
软件看门狗是利用单片机片内闲置的定时器
第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)根据定时器的定时时间,在主程序中按一定的间隔插入复位定时器的指令,即插入“喂狗”指令,两条“喂狗”指令间的时间间隔(可由系统时钟和指令周期计算出来)应小于定时时间,否则看门狗将发生误动作。
8051单片机看门狗原理C语言演示程序(以STC89C52RC单片机为例包含最简单的程序只有三条)
***************************************************************************/
#include <Reg52.H>
sfr WDT_CONTR=0xE1;
//定义特殊功能寄存器:STC 单片机看门狗控制寄存器
#define uchar unsigned char
//初始化时两盏灯都熄灭 LED=1; LED_busy=1;
TMOD=0x21; 为串行口波特率发生器
TH0=0x4C; TL0=0x00; IE=0x82; TR0=1;
//定时器 0 工作在方式 1,作为 16 位定时器;定时器 1 工作在方式 2,作
//定时器 0 装初值:每隔 50ms 溢出一次
#define true 1
#define false 0
#define WEIGOU WDT_CONTR=0x34
//看门狗启动设置和“喂狗”操作
sbit LED=P1^6; sbit LED_busy=P1^7;
//信号灯,系统正常工作就一闪一闪的 //工作灯,上电灭一会儿(约 800ms),然后正常工作的时
注解:这里顺便说一下,一般教材上叫“看门狗定时器”,其实定时器原理 还是计数器,只是计的是时钟周期,所以我为了初学者好理解叫统一叫“计数 器”,这里阐明一下。
明白了上面的原理,我们在设计程序时,先根据看门狗计数器的位数和系统 的时钟周期算一下计数器计满数需要的时间,就是说在这个时间内“看门狗”计 数器是丌会装满的,然后在这个时间内告诉它重新开始计数,就是把计数器清零,
由于现在 AT89S52 用的很广泛,所以我先说说 ATMEL 的看门狗;再说说本次试验用的 STC89C52RC 的看 门狗;注意两个不一样!!!
STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处
STM32 单片机中的独立看门狗与窗口看门狗有哪些
不同之处
1.关于看门狗的解释不再说明,窗口看门狗简而言之即只能看某个窗口期即某段时间内才能够喂狗。
32 的独立看门狗是没有中断的,而窗口看门狗可根据需要配置中断
2.关于独立看门狗和窗口看门狗的应用,手册p316 即17.1 节讲的非常清楚。
首先独立看门狗和窗口看门狗都可用来监视软件程序是否正常运行,而
具体而言,因为独立看门狗独立于系统时钟单独运行,因此其可用来监视是
否发生了硬件错误,比如说系统时钟故障,看门狗仍然能够起到重启的作
用,但是独立看门狗的计时精度比较差,更多的应用在独立系统运行之外的
对计时要求低的地方。
而窗口看门狗是由系统时钟提供的,因此其计时也会
很准确,当然其也就只能用来检测软件故障,比如硬件故障系统时钟坏了,
自身也就不动了,也就没有检测硬件故障的作用,因此窗口看门狗是用在检
测应用软件是否准确运行时使用的。
当然我们用系统情况下其实完全可以不使用32 提供的看门狗,我们自己某个任务的一个变量即实现看门狗的功能了。
3.另外注意,看门狗只是解决软件异常,独立看门狗称为硬件看门狗是其。
单片机看门狗的描述
单片机看门狗的描述下面是关于STC89C5XX-51 单片机看门狗的描述WDT_CONTR 位置0xE1; [-] [-] [EN_WDT] [CLR_WDT] [IDLE_WDT] [PS2] [PS1] [PS0]EN_WDT: 看门狗允许位,置1 启动看门狗,看门狗不能自动启动,需要设置该位后启动,一旦启动不能关闭(只能系统重新上电和看门狗复位可以关闭)CLR_WDT: 看门狗计数器清零位,置1 清零看门狗计数器,当计数器开始重新计数,硬件清零该位。
IDLE_WDT: 单片机IDLE 模式看门狗允许位,当IDLE_WDT=1 时,单片机在IDLE 模式(空闲模式)依然启用看门狗PS2~PS0: 看门狗定时器预分频器,下表中Prescale 表示预分频数PS2 PS1 PS0 Prescale0 0 0 20 0 1 40 1 0 80 1 1 161 0 0 321 0 1 641 1 0 1281 1 1256看门狗溢出时间:(N*Prescale*32768)/晶振频率,其中N 表示指令周期数N=12 表示12 时钟周期模式;N=6 表示6 时钟周期模式。
如N=12,晶振频率为12MHz,PS2~PS0 为100 时,溢出时间=(12*32*32768)/12=1048576us,差不多是1s。
例如:给WDT_CONTR 写入0 乘以34,即是激活看门狗,同时预分频数设为32。
喂狗过程也是一样的。
顺便说一下ATMEL-51 单片机的看门狗下面是关于ATMEL-51 单片机看门狗的描述【看门狗计数器】(watchdog timer)是一个14 位的计数器,它以机器周期(晶振频率/12)增加,当计数值计满(16383/0 乘以3FFF)了就使单片机软复位;当启动了【看门狗计数器】之后,我们需要在它计数没有满之前复位计数器强制。
单片机看门狗(Watchdog)的工作原理及其应用
单片机看门狗(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死机。
看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以,在使用有看门狗的芯片时要注意清看门狗。
单片机看门狗程序
门狗”WDT的功能;此单片机看门狗由51hei独家提供LISTP=18F458INCLUDE”
P18F458.INC”
DEYHEQU0X20DEYLEQUDEYH+1
ORG0X00GOTOMAINORG0X30
;*************初始化子程序*****************INITIALCLRFTRISD;D口
;************单片机看门狗主程序
****************************MAINNOPCALLINITIAL;系统初始化
MOVLW0X00MOVWFPORTD;D口送00H,发光二极管亮
CALLDELAYMOVLW0XFFMOVWFPORTD;D口送FFH,发光二极管灭
LOOPGOTOLOOP;死循环,等待看门狗复位END
/*主程序*/main(){initial();/*初始化,设定看门狗的相关寄存器*/PORTD=
0X00;/*D口送00H,发光二极管亮*/DELAY();/*给予一定时间的延时*/PORTD
=0XFF;/*D口送FFH,发光二极管灭*/while(1){;}/*死循环,等待看门狗溢出
复位*/}
-------------------汇编语言版本的单片机看门狗程序----------------;此程序实现”看
单片机看门狗程序
/*此程序实现单片机”看门狗”WDT的功能*/
#include”p18f458.h”
unsignedlongi;
/*系统初始化子程序*/voidinitial(){TRISD = 0X00;/*D口设为输出*/}
/*延时子程序*/voue;}
看门狗复位的应用技巧
看门狗复位的应用技巧
说起看门狗这个名字还是蛮有趣的,它的作用就是在主人走神的时候咬他一口,把他咬醒。
实际点来说,就是当MCU运行过程中,在某处进入了死循环,或者受到干扰造成PC指针指向了无程序区,都会导致程序没反应,按键失效,屏幕内容不变等问题。
这时如果正确使用了看门狗,就会让PC
指针复位,从头开始执行程序。
看门狗复位的应用技巧包括三个方面:
一: 判断是否需要使用。
如果要使用看门狗的话,需要做一些寄存器的配置,在程序区的某些地方也要加入喂狗指令来防止看门狗复位,有一定的工作量,所以用与不用需要考虑一下。
能不使用看门狗的场合,要求是系统即使死机也问题不大,等待人过来断电复位即可的情况。
但是这种情况已经很少了,所以绝大多数情况下看门狗都要加上。
比如有温控功能的电热水器,假如电加热已经启动,但是系统死机了,温控失效,电加热也不会关闭,这时水温就会一直升高,直到水被蒸干,然后电加热损坏或引发火灾,或者人被开水烫伤。
这时有看门狗复位,系统就会恢复正常,检测到温度够了,就会关闭电加热的。
二、保证看门狗工作正常。
看门狗除了进行寄存器配置之外,喂狗函数的位置也很重要,没处理好就会发生不该复位时复位了,或改复位的时候没有复位,可能的原因是在可能出现的死循环里喂狗了。
51单片机的看门狗
“看门狗”概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(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”时,启动看门狗。
STC89系列单片机看门狗的使用及应用程序
STC89 系列单片机看门狗的使用及应用程序
看门狗概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称看门狗(watch dog)。
加入看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:看门狗芯片和单片机的一个I/O 引脚相连,该I/O 引脚通过单
片机的程序控制,使它定时地往看门狗芯片的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时,看门狗电路就会由于得不到单片机送来的信号,便将它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,从而单片机将从程序存储器的起始位置重新开始执行程序,这样便实现了单片机的自动复位。
通常看门狗电路需要一个专门的看门狗芯片连接单片机来实现,这在我们的单片机教程网51hei 以前做过相关的电路介绍。
不过这样会给电路设计带
来复杂,STC 单片机内部自带有看门狗,通过对相应特殊功能寄存器的设置
就可实现看门狗的应用,STC89 系列单片机内部有一个专门的看门狗定时器
寄存器,Watch Dog Timer 寄存器,其相应功能见下个知识点。
单片机汇编语言实现看门狗
CS=0; if(bRegion==0) //write the page addr else WriteByte(cAddress); WriteByte(cData); SCK=0; // CS=1; } uchar ReadEpm(uchar cAddress,bit bRegion) /* 读入一个字节,cAddress 为读入地址,bRegion 为页 */ { uchar cData; while((ReadReg()&0x01)==1);//the device is busy CS=0; if(bRegion==0) else WriteByte(cAddress); cData=ReadByte(); CS=1; return cData; } main() { WriteReg(0x00);//set the watchdog time as 1.4s CS=1; CS=0; } //reset the watchdog
SCK=0; SCK=1; ucData<<=1; } } uchar ReadReg() { uchar ucData; CS=0; WriteByte(RDSR); ucData=ReadByte(); CS=1; return ucData; } uchar WriteReg(uchar ucData) { uchar ucTemp; ucTemp=ReadReg(); if((ucTemp&0x01)==1) //the device is busy return 0; CS=0; WriteByte(WREN);//when write the WREN, the cs must have a high level CS=1; CS=0; WriteByte(WRSR); WriteByte(ucData); CS=1; return 1; } void WriteEpm(uchar cData,uchar cAddress,bit bRegion) /* 写入一个字节,cData 为写入的数,cAddress 为写入地址,bRegion 为页 */ { while((ReadReg()&0x01)==1); //the device is busy CS=0; WriteByte(WREN); //when write the wren , the cs must have a high level CS=1; //write register //read register
单片机应用系统设计中的看门狗技术探究
・
工 程 技 术 ・
单 片机 应 用 系统设 计 中
的 看 门 狗 技 术 探 究
彭 芬
( 武汉职业技术学院 电子信息工程 系,湖北 武汉 407 ) 304
.
、
、
, பைடு நூலகம்
■
t {
。 h " t} , ¨ - 啦 - , ¨
{
』
‘
-
-
{
摘 要 :针对单片机应用系统可能出现的受干扰而发生程序陷于死循环的现象, 探讨 了对其进
行监视 的方法 ,提 出了用软 、硬件 看门狗技术对其改进的措施。
关键词:单片机 ;看门狗技术
中图分类号 :T 3 81 文献标识码 :A 文章编号 :17 — 3X (06 1 0 8 — 3 P 6. 6 1 9 1 2 0 )0 - 0 7 0
M X 9 、MA 7 1 54 /0 5 A 62 X 9 、X 0 3 4 等等 。 5 由专用 芯 片M X 1 L 成 的看 门狗 电路 如图3 A 83构 所 示 。 M X 1L C S 控 芯 片 , 喂 狗 信 号 C U 一 A 8 3 是 MO 监 P 的 个I / O日 ( 由软件定 时发送一定信 号)接看 门狗检测输
学 院 学 报 二 O O
根是 由看 门狗发 出的复位信 号线 ,通过 前者c u 自 P 将 其 中最典 型 的故障 是破 坏程 序计 数 器P 的状态 身正 常工作的状态指示信号传递 给看 门狗 ,处于监视 C 值, 程序在地址空间内 “ 飞” 导致 乱 ,从 而 陷入 死 循 环 。 状 态 的 看 门 狗 如 果 能 够 在 一 定 时 间 内收 到 有 效 的 喂 狗 设置看 门狗是为 了防止单 片机死 机 、提高单 片机 系统 信号 ,就会确认计算机工作正 常 ,并继续监 视而不发
看门狗
端口初始化程序如下:
片不带喂狗端口
方式1中所采用的是带WDI端口的看门狗芯片,但有些芯片是不带WDI端口的,这时看门狗用于电源检测,当低于设定电压时,输出复位信号,使系统复位。第二种方法也采用2812的引脚配合方式,但不需要时时刻刻喂狗。图3为所采用的看门狗芯片MAX708。图4为MAX708与2812的接口电路。
{
EALLOW;
SysCtrlRegs.WDCR= 0x0068;//0110 1000
EDIS;
}//使看门狗无效
void KickDog(void)
{
EALLOW;
SysCtrlRegs.WDKEY = 0x0055;
SysCtrlRegs.WDKEY = 0x00AA;
这里利用while(1)的死循环等待看门狗的计数器超过设定值,然后WDRST信号输出低电平;而WDRST接到XRS上,所以整个系统复位,重新开始执行程序。
看门狗程序如下:
结 语
第一种和第二种方式基于硬件的实现,更加可靠些,第三种方式则可以节约电路板的空间和成本。需要注意的是,采用软件看门狗时调用喂狗程序的间隔不能大于设定值。
TMS320F2812(以下简称2812)是TI公司2000系列的新型DSP芯片,具有32位低功耗定点处理器,最高主频150 MHz,有强大的操作能力和快速的中断响应处理能力。片内有18 K字高速RAM,128 K字的可加密Flash ROM。片上还集成了丰富的片内外设.有SPI、SCI、eCAN和McB—SP等多个串口外围设备,16通道的12位模数转换器(ADC),2个事件管理器(EVA、EVB),56个独立的可编程、多用途通用I/O口(GPIO)。该DSP芯片集成了大量工业控制领域应用的外设接口,能大大简化电路设计,同时它也具有足够的处理能力,是应用于控制领域的一款高性能DSP处理器。
STM32F103系列单片机最实用看门狗的详细资料概述
STM32F103系列单片机最实用看门狗的详细资料概述为什么使用看门狗事情很简单先前做的一款采集数据的产品不知道为何异常,陷入死循环然后“死机”,分析了很多次,没发现原因,但是每次重新上点后就能正常采集到数据。
后来找到了解决方法:看门狗!目的是当程序走入死循环或者硬件异常时,可以自动复位,这样就可以得到跟重新上电后差不多的效果了。
使用的平台:stm32f103系列单片机使用的烧写调试模式:Jlink SWD 模式。
使用STM32官方模板库。
ST系列单片机看门狗分为两种:1.独立看门狗,2.窗口看门狗。
独立看门狗:可参看RM(reference Manual)的Independent watchdog (IWDG)当然,只是简要查看下RM中的介绍(至于寄存器的操作,我们可以略过,因为我们使用库的开发,但是基本流程一定要了解!)。
在这里我们要抓住几个关键点:a、stm32f10x系列有两个看门狗,看门狗主要用于检测由于软件出错的问题,并触发系统自动复位,或者触发一个中断(窗口看门狗才有)。
b、独立看门狗的时钟源为LSI,尽管主时钟出错,它还是能保持激活状态。
窗口看门狗的时钟源为APB1时钟,并且可以修改分频值。
c、独立看门狗:有独立时钟(内部低速时钟LSI),所以不受系统硬件影响的系统故障探测器。
主要用于监视硬件错误。
精确度要求比较低。
d、窗口看门狗:时钟与系统相同。
如果系统时钟不走了,这个狗也就失去作用了,主要用于监视软件错误。
精确度要求更高。
看门狗原理简介:有某个寄存器按照时钟源不断的递减(有只狗,不断的消耗能量),当该。
单片机系统中的看门狗技术
个领域,而单片机订:这些场合的T作可靠性以及抗干扰能力也显得 越来越重要。环境幽素对此有蘑人的影响,有时会导致单片机不能 正常T作.尤其足n 些条件比较恶劣、噪声大的场合,甚至经常 收藕日期:2004—02—22
出现单片机崮受外界干扰而导致死机的现象。 由于偶然的干扰,使得单片机的程序跑飞,脱离了用户程序,
薰墼=敬一~≥{|
文章编号:1671-1041(2004)04-0083·03
神·EJB容器封装之后,通过远程接u和home接u.供用户和 其它的sessionbean调用。scdybean(素材调用sessionbean)表示 读取素材这样一个过程,可以被反复调用,在这个bean咀面访问 scbean(素材enfitybean),经EJB容器封装后由用户调用.这样做 的目的是为了将客户端需蓐复做的一些繁杂任务封装到一个bean 里面。以实现事务、并发性、持久性的自动管理。
“看门狗”电路原理如图3所示。其中.Vi是单片机系统向 “看门狗”电路提供的输入脉冲信号;V。是“看门狗”电路向单 片机系统送出的系统故障信号,可供计算机复位使用。在这种情况 F.CPU通过程序周期性地向电路送入脉冲,作为“看门狗”电 路的触茇输入。设输入脉冲周期时间T略小“看门狗”的动作时间 T’,即T<T’,则电路就不会动作。而当单片机由十干扰等原因.使 程序跑飞,脱离正常循环.导致触发脉冲丢失,经过一段时间T’ 后. “看门狗”电路的输出vn产生跳变,这一跳变送至计算机进 行中断处理或进行复位操作,重新将程序纳入正常循环。
复位
域
圈5强制复位。看门摘”电路
通过调节可变电阻R3的值,可以调整TH,使之满足单片机复 位信号RESET的时间要求:调节可变电阻R4舶值,可以改变T L’ TL虚人于单片机程序的一个运行周期,且应保证些重要的程序段 不被打断,以免系统产生_【;{操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
真实案例:
• 一湖南女孩(大专生)到广东东莞找工作; • 联系好了一家企业,确定面试时间; • 面试时,被这假企业的人员绑架,并逼迫她 向家人要钱,此女孩死活不从; • 四小时后,警察突然出现,人获救。为什么 警察会在这时出现? • 因为女孩出门前与朋友约好了,若四小时内 没有电话,就报警。 • 看门狗电路在实际中的应用 12
15
三、看门狗技术
• 监控实现:看门狗需要通过两根信号线与 CPU联系,一根由CPU发出的喂狗信号,另 一根是由看门狗发出的复位信号。 • 看门狗是一个相对独立的特殊的定时器,启 用它后,喂狗就是让定时器清零、重新计数 ,使其无法加到最大值而溢出产生复位信号 • 所以要在程序里适当位置加入清看门狗指令 (喂狗) • 此技术只对瞬间干扰造成的问题有效
8
二、复位系统
• 为什么要复位?
– 上电时电压不稳定(有波动),单片机不能正 常工作,需要延时一小段时间; – 开始工作后,要初始化各寄存器的初值,从特 定的地方开始执行程序,也需要一点时间;
• 复位源有哪几个?
– 上电复位,外部复位,掉电检测复位,看门狗 复位
9
10
二、复位系统
PORF—上电复位标志,写0可清除 EXTRF—RESET复位标志,上电或写0可清除 BORF—掉电检测复位标志,上电或写0可清除 WDRF—看门狗复位标志,上电或写0可清除
低功耗晶振
满振幅晶振 低频晶振
1111 – 1000
011熔丝
位已经被编程,故系
内部128KHz RC振荡器 校准的内部 RC振荡器
外部时钟
0011 0010
0000
7
统默认主频:1MHz
(见手册P27)
一、AVR时钟系统—主频调整
1、熔丝位CKDIV8----/8或/1 2、用特殊的写时序,修改时钟预分频寄存 器CLKPR(手册P30)
4
一、AVR的时钟系统—外晶
芯片 时钟选项 熔丝位 CKSEL3~0
低功耗晶振
满振幅晶振 低频晶振
1111 – 1000
0111 – 0110 0101 – 0100
内部128KHz RC振荡器 校准的内部 RC振荡器
外部时钟
0011 0010
0000
5
一、AVR的时钟系统—外部时钟
芯片 时钟选项 熔丝位 CKSEL3~0
一、AVR时钟系统—时钟信号
• CLKcpu—CPU时钟 • CLKI/O—I/O时钟(I/O、定时器、SPI、外 部中断、 UASRT) • CLKFlash—Flash时钟 • CLKASY—异步定时器时钟 • CLKADC—ADC时钟 • 上述时钟无需同时工作,通过使用不同的 睡眠模式来降低功耗
21
课后复习
• 数据手册:P36~46
• 教材:P176~182
22
下一讲的主要内容
• AVR
23
16
17
四、ATmega48看门狗的应用
• 作用:
– 产生复位信号 – 产生中断信号(可用于节电模式的唤醒)
• 内部结构:
– 独立128KHz的时钟 – 10项复位时间间隔(通过设置预分频器) – 2个安全等级
18
四、ATmega48看门狗的应用
WDIF —看门狗超时中断标志 WDIE —看门狗超时中断使能 WDCE—看门狗修改使能 WDE —使能看门狗 WDP3..0—看门狗定时器预分频器
单片机原理与 接口技术
广州大学自动化系 肖忠
1
思考题
1、ATmega48有几种时钟源,如何选择?
2、ATmega48的主时钟控制单元会产生几种时 钟信号,他们的作用是什么?
3、 ATmega48有几种复位源,它们在什么情 况下产生复位信号? 4、 ATmega48看门狗有什么作用?如何使用 ?
2
3
低功耗晶振
满振幅晶振 低频晶振
1111 – 1000
0111 – 0110 0101 – 0100
内部128KHz RC振荡器 校准的内部 RC振荡器
外部时钟
0011 0010
0000
6
一、AVR的时钟系统—片内RC
片内RC振荡器提供了 固定的8.0MHz的时钟,
芯片 时钟选项 熔丝位 CKSEL3~0
• 上述解决方法难以完全消除干扰,因此引入 一种程序监视技术,即看门狗技术
14
三、看门狗技术
• 是一种亡羊补牢的办法 • 是在其他抗干扰方法失效后一补救方法 • 基本功能:在单片机运行时,独立于CPU之 外的看门狗通过检测单片机的状态,监视 CPU的运行;当发现CPU运行不正常(程序 跑飞、死循环等),它就会发出复位信号, 强制单片机重新启动 • 看门狗除具基本功能外,还可以完成电源监 测,后备电源切换、数据存在等。
三、看门狗技术
• 起源
– 单片机成为测控系统的核心,要求工作稳定 – 电磁干扰、静电干扰、放电与浪涌等
• 干扰的危害
– PC受扰跳变,程序跑飞 – RAM数据被改被覆盖 – 发出错误指令、误动作 – SFR的内容被改,工作失常
13
三、看门狗技术
• 解决方法
– 隔离(变压器、光电耦合) – 屏蔽(双绞线+屏蔽层) – 接地
19
20
四、ATmega48看门狗的应用
WDTON熔丝位 WDTON熔丝位 (未编程) (已编程) 安全等级1 安全等级2 WDE=0 ,关闭看门狗 WDE 恒= 1 WDE=1 ,打开看门狗 关闭方法: 看门狗不可关闭 1、WDRF清0 2、WDCE与WDE置1 3、WDE清0 喂狗: 喂狗: asm("WDR"); asm("WDR");