单片机-系统复位与看门狗

合集下载

基于单片机按键控制看门狗仿真设计

基于单片机按键控制看门狗仿真设计

基于单片机按键控制看门狗仿真设计本文档旨在介绍《基于单片机按键控制看门狗仿真设计》的主题,并提供写作大纲的目的概述。

该文档将深入探讨如何利用单片机按键控制看门狗的仿真设计。

我们将详细介绍看门狗的概念和原理,并提供一个基于单片机按键的仿真设计案例。

通过本文档的阅读,读者将了解如何使用单片机按键来控制看门狗,在系统遇到异常情况时采取适当的措施来保护系统的稳定性和可靠性。

接下来,将按照以下大纲扩写内容,详细介绍《基于单片机按键控制看门狗仿真设计》的相关内容。

在介绍基于单片机按键控制看门狗的仿真设计之前,我们需要先了解单片机和看门狗的概念,并探讨为什么使用单片机按键控制看门狗是有意义的。

单片机是一种集成了微处理器核心、内存、输入/输出设备和其他功能模块的微型计算机系统。

它具有体积小、功耗低、成本低等特点,因而广泛应用于各种电子设备中。

看门狗(Watchdog)是一种用于检测和处理系统故障的硬件或软件机制。

它监视系统运行状态,并在系统发生故障时自动执行预定的纠错操作。

看门狗的主要作用是保障系统的稳定性和可靠性。

基于单片机按键控制看门狗的仿真设计就是利用单片机上的按键来控制看门狗的功能。

通过按下特定的按键,我们可以触发或关闭看门狗的工作,以解决系统故障或异常情况。

使用单片机按键控制看门狗具有以下意义:提高系统的稳定性:通过按键控制看门狗,可以及时检测和处理系统故障,保障系统的稳定运行。

简化系统调试过程:按键控制看门狗可以方便地触发系统故障模式,便于调试和定位问题。

提升系统的可靠性:看门狗机制可以在系统故障时自动执行纠错操作,提高系统的可靠性和容错能力。

综上所述,基于单片机按键控制看门狗的仿真设计是一种有效的解决方案,可以提高系统的稳定性、简化系统调试过程并提升系统的可靠性。

本文将阐述按键控制看门狗的仿真设计步骤,包括硬件和软件方面的具体要点。

硬件设计步骤准备所需材料和器件,包括单片机、按键、继电器等。

按照电路原理图连接各个器件,确保电路的正确性和稳定性。

C51单片机看门狗电路及程序设计方案

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单片机为例包含最简单的程序只有三条)

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单片机中的独立看门狗与窗口看门狗有哪些不同之处

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)的工作原理及其应用

单片机看门狗(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死机。

看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。

所以,在使用有看门狗的芯片时要注意清看门狗。

单片机看门狗程序

单片机看门狗程序
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
门狗”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;}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
真实案例:
• 一湖南女孩(大专生)到广东东莞找工作; • 联系好了一家企业,确定面试时间; • 面试时,被这假企业的人员绑架,并逼迫她 向家人要钱,此女孩死活不从; • 四小时后,警察突然出现,人获救。为什么 警察会在这时出现? • 因为女孩出门前与朋友约好了,若四小时内 没有电话,就报警。 • 看门狗电路在实际中的应用 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");
相关文档
最新文档