关于单片机看门狗技术的研究报告

合集下载

CC2530无线单片机看门狗定时器的看门狗模式应用

CC2530无线单片机看门狗定时器的看门狗模式应用

理论探索CC2530无线单片机看门狗定时器的看门狗模式应用徐小云摘要:随着计算机技术的快速发展,嵌入式技术、智能家居系统日趋成熟,并逐步发展成为比较关键的一门技术学科。

本文介绍的是一款无线单片机CC2530看门狗的应用及实现方案,通过将WDT(Watch Dog Timer)运行在看门狗模式中,实现软件在跑飞的情况下CPU自恢复的一种功能。

关键词:CC2530 嵌入式技术智能家居看门狗近年来,在高科技的引领下,人们的生活水平逐步提高,对生活质量的要求也在不断提升。

为了提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境,结合嵌入式技术、计算机技术发展起来的智能家居系统得到了广泛应用。

一、CC2530简介CC2530可作为智能家居系统中的主控芯片,是用于2.4-GHz IEEE 802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。

CC2530能以非常低的总材料成本建立强大的网络节点。

CC2530的片内资源有I/O、定时器、UART、ADC、看门狗等,看门狗定时器作为CC2530内部的一个重要部件,应用非常广泛重要。

二、看门狗定时器的看门狗模式应用对于电噪声、电源故障、静电8192和32768的计数值设置。

如果计数器达到选定定时器的间隔值,看门狗定时器就为系统产生一个复位信号。

如果在计数器达到选定定时器的间隔值前,执行了一个看门狗清除序列,计数器就复位到0,并继续递增。

看门狗清除的序列包括在一个看门狗时钟周期内,写入0xA到WDCTL.CLR[3:0],然后写入0x5到同一个寄存器位。

如果这个序列没有在看门狗周期结束之前执行完毕,看门狗定时器就为系统产生一个复位信号。

当看门狗模式下WDT使能,不能通过写入WDCTL.MODE[1:0]位改变这个模式,且定时器间隔值也不能改变。

2.硬件设计以最简单的点灯事件为例,说明WDT如何实现CPU的自恢复。

在硬件设计方面,采用的是图1所示的硬件结构图。

嵌入式系统看门狗实验报告

嵌入式系统看门狗实验报告

竭诚为您提供优质文档/双击可除嵌入式系统看门狗实验报告篇一:《嵌入式系统原理与应用》实验报告04-看门狗实验《嵌入式系统原理与接口技术》实验报告实验序号:4实验项目名称:看门狗实验1234篇二:嵌入式实验报告目录实验一跑马灯实验................................................. (1)实验二按键输入实验................................................. .. (3)实验三串口实验................................................. . (5)实验四外部中断实验................................................. .. (8)实验五独立看门狗实验................................................. (11)实验七定时器中断实验................................................. (13)实验十三ADc实验................................................. .. (15)实验十五DmA实验................................................. .. (17)实验十六I2c实验................................................. (21)实验十七spI实验................................................. .. (24)实验二十一红外遥控实验................................................. .. (27)实验二十二Ds18b20实验................................................. (30)实验一跑马灯实验一.实验简介我的第一个实验,跑马灯实验。

51单片机的看门狗

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”时,启动看门狗。

单片机实验看门狗实验

单片机实验看门狗实验

实验八 看门狗实验

/***************************************************************************** // Function name : rtc_get_date // Description : 获取实时时钟当前时间、日期 // Return type : void // Argument : p_date, 返回日期的指针 *****************************************************************************/ void rtc_get_date(st_date* p_date) { rRTCCON = 0x01; p_date->year = rBCDYEAR ; p_date->mon = rBCDMON ; p_date->day = rBCDDAY ; p_date->week_day= rBCDDATE ; p_date->hour = rBCDHOUR ; p_date->min = rBCDMIN ; p_date->sec = rBCDSEC ; rRTCCON = 0x00; } /***************************************************************************** // Function name : rtc_tick_init // Description : 初始化S3C2410的TICK定时器 // Return type : void // Argument : tick, 设置的TICK频率(时钟滴答的周期为 (1+tick)/128秒) *****************************************************************************/

看门狗实验

看门狗实验

看门狗实验1. 为什么要看门狗?看门狗的原理是什么?外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)它的基本原理为,给看门狗设置一个时间周期,如果在这个周期内程序不能正常运行结束,定时器会自动益处,则系统会自动复位,使系统重新运行进而得到监控系统的作用。

假设程序运行的时间为Tp,定时器时间为Ti,Ti>Tp,在Ti时间内程序正常结束则不会发生益处的现象,如果受干扰等原因系统不能在Tp时刻内修改计数器的值,则在Ti时刻时系统会自动复位,引发系统重新运行。

一般情况下都是应用程序在运行结束后去喂狗,当应用程序出现异常而不能去喂狗时,在超过看门狗定时器的时间范围后,cpu会复位,起始喂狗的过程就是给看门狗的寄存器置位,当程序开始运行时,看门狗的计数器开始递减,在减到零之前必须喂狗,否则系统会复位,当减到零时还没有喂狗则系统复位。

2. 看门狗的功能1)作为常规功能可以产生中断,通用的中断用16bit定时器2)作为看门狗使用,当时钟计数器减为0时(超时),他将产生一个128个时(PCLK)钟的的复位信号我们常见的时钟有3个,FCLK,HCLK,PCLK,他们的工作频率分别是400MHz,400/3MHz,和400/6MHz,看门狗使用的是PCLK时钟。

下图为看门狗的电路示意图PCLK经过两次降频,prescaler的值从0到256-1,Division_factor的值为16,32,64,128。

看门狗定时器记数值的计算公式如下:t_watchdog的值是寄存计数器(WDTCNT)多长时间自减一次,他的单位是时间,一旦看门狗定时器被允许,看门狗定时器数据寄存器(WTDAT)的值不能被自动的装载到看门狗计数器(WTCNT)中,因此,看门狗启动前要将一个初始值写入看门狗计数器(WTCNT)中。

6Zigbee实验报告《看门狗》

6Zigbee实验报告《看门狗》
实验步骤:
1)打开鼎轩VSN实验箱,检查实验箱设备,确保实验箱设备完整、连接无误后,连接电源线,打开电源开关;
2)用烧录线连接汇聚网关上的烧录接口与电脑USB接口;
3)点击(\cC2530-simpledemo\cc2530-simple-demo\WATCHDOG)目录下的工程图标watchdog.eww打开工程;.
WDCTL = 0x50;
}
/***************************
//主函数
*************************itLed();//调用初始化函数
Init_Watchdog();
LED1=1;
while(1)
{
LED2=~LED2; //仅指示作用。
LED1 = 0; //LED1灯熄灭
LED2 = 0;//LED2灯熄灭
}
void Init_Watchdog(void)
{
WDCTL = 0x00; //这是必须的,打开IDLE才能设置看门狗
WDCTL |= 0x08;
//时间间隔一秒,看门狗模式
}
void FeetDog(void)
{
WDCTL = 0xa0;
for(j=587;j>0;j--);
}
第二页
实验内容与步骤
/****************************
//初始化程序
*****************************/
void InitLed(void)
{
P1DIR |= 0x03; //P1_0、P1_1定义为输出
P1INP |= 0X03; //打开下拉
Delayms(300);

单片机的看门狗

单片机的看门狗

引言概述:
单片机的看门狗(二)是在第一篇文章中讨论的单片机看门狗的延伸,本文将深入探讨单片机看门狗的使用场景、工作原理、设置参数、使用注意事项以及常见问题等方面的内容。

单片机看门狗是一种重要的硬件设备,在系统稳定性和可靠性方面起到关键作用,因此了解和掌握单片机看门狗的相关知识是非常有必要的。

正文内容:
一、单片机看门狗的使用场景
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看门狗定时器设置问题
总结:
单片机看门狗是一项重要的硬件设备,它在保证系统稳定性和可靠性方面起到关键作用。

本文从使用场景、工作原理、设置参数、使用注意事项以及常见问题等方面深入探讨了单片机看门狗的相关知识。

在实际应用中,我们应该根据具体情况,合理设置单片机看门狗的参数,避免错误的配置导致系统异常。

同时,我们也要注意单片机看门狗的溢出时间,不要设置过短或过长,以免影响系统的正常运行。

通过深入了解和掌握单片机看门狗的相关知识,我们可以更好地应用它,提高系统的稳定性和可靠性。

实验7:CC2530 看门狗实验

实验7:CC2530 看门狗实验

计算机科学与技术学院
实验报告
课程名称:无线传感器网络原理与应用
实验七 CC 2530看门狗实验
一、实验目的
有些稳定性要求高的应用中,需要使用看门狗(Watchdog)机制来重启系统。

本实验主要介绍看门狗看门狗模式的使用方法及作用。

CC250 芯片中已集成看门狗硬件模块,无需插入扩展板。

二、实验内容
利用看门狗重启系统,实现 LED 的闪烁。

三、实验环境
硬件:鼎轩 WSN 实验箱(汇聚网关、烧录线),PC 机;
软件:IAR 软件。

四、实验步骤
1)打开鼎轩 WSN 实验箱,检查实验箱设备,确保实验箱设备完整、连接无误后,连接电源线,打开电源开关;
2)用烧录线连接汇聚网关上的烧录接口与电脑 USB 接口;
3)点击(\CC2530_simple_demo\cc2530-simple-demo\WATCHDOG)目录下的工程图标 watchdog.eww 打开工程;
4)点击 IAR 中的图标按钮编译程序;
5)完成编译后若没有错误信息,将实验箱节点编程开关上汇聚网关开关拨上去,点击调试并下载按钮将程序下载到汇聚网关上;
6)调试运行程序,可以看到,红绿灯闪烁,这是看门狗重启系统的效果。

7)加入喂狗函数,查看实验现象,验证看门狗的看门狗模式的工作原理,学生还可以配置 WDCTL 使看门狗工作与定时器模式。

程序代码
程序源文件路径为/cc2530-simple-demo/ DMA_Test/ watchdog.c
实验总结
本实验验证了看门狗重启系统的效果,while 循环中,注释掉的是喂狗函数,如果即时喂狗,系统便不会重启,小灯也就不会闪烁。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.看门狗技术的的简介摘要:在实验中开发出来的各种控制小系统经常会出现运行不稳定、死机或停不了机即程序跑飞等现象,这是由于恶劣的工业现场环境如大功率感性负载的干扰所至。

基于单片机的“看门狗”技术能解决这个问题。

B本文分别介绍用软件和硬件来实现“看门狗”技术。

关键词:;单片机抗干扰;“看门狗”技术运用目前,单片机有8位和16位之分,其型号非常多,有PIC、MSP430等微功耗型,也有MCS 一51/98、A—Duc812、Motorola、EPSON等非低微功耗型。

单片机广泛应用于长度、温度、力学、流量、电学、化学等专业的各种智能仪表中,这些仪表有些应用在有强磁场、电源尖峰、电火花等外界干扰的场合中,这些干扰有可能造成仪表中单片机的程序运行出现“跑飞”现象,引起程序混乱,输出或显示不正确,甚至“死机”。

为了提高仪表可靠性及抗外界干扰能力,通常在智能仪表中采用“看门狗”技术。

所谓的看门狗技术实际上是一个监视定时器,它的定时时间为固定不变,一旦定时时间到,电路就产生复位信号或中断信号。

当程序正常运行时,在小于定时时间隔内,单片机输出一信号刷新定时器,定时器处于不断的重新定时过程,因此看门狗电路就不会产生复位信号或中断信号,反之,当程序因出现干扰而“跑飞”时,单片机不能刷新定时器,产生复位信号或产生中断信号使单片机复位或中断,在中断程序中使其返回到起始程序,恢复正常。

一般来说,很多智能仪表采用外部硬件看门狗来确保程序因出现干扰而“跑飞”时能正常运行。

因为如果用软件方法来实现这种功能,在有有干扰的情况下,程序可能因为无法读取而失败。

2 硬件“看门狗”技术的实现硬件“看门狗”技术实施起来则显得更为简单、可靠。

特别是对于硬件工程师来讲最为方便。

下面就通过自行设计的“生物组织自动脱水机的智能控制系统”中的抗干扰复位口,介绍硬件“看门狗”技术的实现方法。

生物组织脱水机智能控制系统硬件由89C51单片机、2864EEPROM、27512EPROM、6264SRAM、ADC0809、MGLS240128T液晶显示模块、键盘输入电路和CD4060硬件“看门狗”电路等组成。

其电路示意图如图1所示。

图1 硬件电路示意图主控单片机选用ATMEL公司AT89C51系列单片机中结构最紧凑、体积最小的AT89C2051,外接一片2864作为程序存储器,再选用一片27512和一片6264作为存放调试程序和运行程序的中间数据及最后结果。

液晶屏选用内藏T6963C控制器型MGLS240128T液晶显示模块,支持图形和文本两种显示方式,有8位数据总线、10位控制线和电源线,连接时,单片机利用数据总线和控制信号,直接采用I/O设备访问形式控制液晶屏。

抗干扰复位口的工作原理:为了提高系统的抗干扰能力.防止程序进入死循环,采用了14位二进制串行计数/定时器CD4060构成了“看门狗”。

在正常工作时,安插在循环程序中的清除脉冲信号能够周期性地消除“看门狗”定时器的定时时间,换句话说就是用硬件“喂狗”,使“看门狗”定时器不会溢出。

当系统受到干扰使程序“跑飞”时,循环程序中的清除脉冲的周期性信号则消失,则停止了“喂狗”。

此时“看门狗”定时器中的定时时间由于得不到及时消除而产生溢出,立即通过14位二进制串行计数/定时器CD4060的Q14端、二极管D2给单片机AT89C2051的RST端发出一个复位信号(正脉冲) ,使系统复位并重新开始启动。

其电路图如图2所示。

此外,在程序中,我们把RAM分成两部分:运行存储器和备份存储器。

备份存储器再分为二个区,存放数据时,将它们存放在三个相对远离分散的区域内,建立双重备份数据。

在CPU受到干扰而造成程序“乱飞”时,即使RAM中保存的原始数据、标志、变量等遭到破坏,在系统复位后,也可立即利用备份RAM进行自检和恢复,保证了系统的正常运行。

图23 软件看门狗原理软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。

我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。

对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。

在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。

而T1的中断正常与否我们再由T0定时中断子程序来监视。

这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。

51 系列有专门的看门狗定时器,对系统频率进行分频计数,定时器溢出时,将引起复位.看门狗可设定溢出率,也可单独用来作为定时器使用.凌阳61的看门狗比较单一,一个是时间单一,第二是功能在实际的使用中只需在循环当中加入清狗的指令就OK了。

C8051Fxxx单片机内部也有一个21位的使用系统时钟的定时器,该定时器检测对其控制寄存器的两次特定写操作的时间间隔。

如果这个时间间隔超过了编程的极限值,将产生一个WDT复位。

看门狗使用注意:大多数51 系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。

这可防止程序跑飞。

设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。

清看门狗也不能太过频繁否则会造成资源浪费。

程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位。

看门狗运用:看门狗是恢复系统的正常运行及有效的监视管理器(具有锁定光驱,锁定任何指定程序的作用,可用在家庭中防止小孩无节制地玩游戏、上网、看录像)等具有很好的应用价值.系统软件"看门狗"的设计思路1.看门狗定时器T0的设置。

在初始化程序块中设置T0的工作方式,并开启中断和计数功能。

系统Fosc=12 MHz,T0为16位计数器,最大计数值为(2的10次方)-1=65 535,T0输入计数频率是.Fosc/12,溢出周期为(65 535+1)/1=65 536(μs)。

2.计算主控程序循环一次的耗时。

考虑系统各功能模块及其循环次数,本系统主控制程序的运行时间约为16.6 ms。

系统设置"看门狗"定时器T0定时30 ms(T0的初值为65 536-30 000=35 536)。

主控程序的每次循环都将刷新T0的初值。

如程序进入"死循环"而T0的初值在30 ms内未被刷新,这时"看门狗"定时器T0将溢出并申请中断。

3.设计T0溢出所对应的中断服务程序。

此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入"无条件转移"命令,把计算机拖回整个程序的第一行,对单片机重新进行初始化并获得正确的执行顺序。

4.实现看门狗技术的几种类型1 uP监视器构成看门狗电路在非低微功耗智能仪表中,可用uP监视器(如MAX7 X×、X2504 X等1设计硬件看门狗电路,以MAX706P为例(具体电路如图1)看门狗电路。

该电路具有手动复位、看门狗、电压监视功能。

看门狗工作原理:MAX706的内部看门狗定时器定时时间为1.6秒,如果在1.6秒内,看门狗输入脚WDI保持为规定电平(高电平或低电平),看门狗输出端丽变为低电平,二极管D导通,使低电平加到复位端,MAX706产生复位信号RESET使单片机复位,直到复位后看门狗被清零,丽才变为高电平。

当WDI有一个跳变沿(上升沿或下降沿)信号时,看门狗定时器被清零。

如图I所示,将WDI端与单片机某I/0输出端相连,程序只要在小于1.6秒内将该I/0端取反一次,使定时器清零而重新计数,不产生超时溢出,程序正常运行。

当程序“跑飞”时,不能执行产生跳变指令,到1.6秒时,丽因超时溢出而变为低电平,产生复位信号使单片机复位。

由于uP监视器构成看门狗电路的工作静态电流大,因此,只能用于对功耗要求不高的智能仪表中。

2 TTL型看门狗电路根据看门狗工作原理,看门狗电路至少包括脉冲产生电路和定时计数器电路。

由CD4060和32.768Hz石英晶振组成脉冲产生电路,产生4Hz脉冲源。

74LS293计数器对4Hz脉冲源进行计数,其输出端Q与单片机复位端RESET相连,单片机的某I/O端与74LS293的清零端R相连,程序在1.5秒之内输出一次由低到高且又由高到低的窄脉冲,输出端Q 一直为低电平,否则将输出为高电平,其工作原理同上。

实际电路如图2,该电路可用于低功耗的智能仪表中。

如采用MCS51/98单片机,用P1.2脚输出窄脉冲,可以在应用软件中适当处加入以下程序:ROCLK BIT P1.2 ;定义P1.2脚CLR ROCLK ;P1.2为低电平CLRSTART:SETB ROCLK ;P1.2为高电平NOP ;延时,输出窄脉冲CLR ROCLK ;P1.2为低电平CLREND:⋯.;复位结束3 CoMS型看门狗电路工作原理与rIfI'L型看门狗电路相似。

将74LS293计数器换成CD4024计数器,实际电路如图3。

由于该电路采用工作静态电流极小的CMOS集成电路,因此可用于微功耗的智能仪表特别是便携式、一体化仪表中。

经过现场实际使用,证明该电路是可靠的,仪表未出现程序无法运行和“死机”现象。

如采用MSP430F1IX单片机,用P1.0输出输出窄脉冲,可以在应用软件中适当处加入以下程序:BIS.B #001H,&P1DIR;P1.0为I/O输出,初始化MOV.B#000H,&P1OUT ;P1.0输出低电平CLRSTART:XOR.B#001H,&P1OUT ;P1.0输出求反,输出高电平NOP ;延时,输出窄脉冲XOR.B#001H,&P1OUT ;P1.0输出求反,输出低电平CLREND:⋯.;复位结束-参考文献:1:李群芳.单片微型计算机与接口技术.北京:电子工业示版社 1998 2:何立民. 单片机应用系统设计. 北京:北京航空航天大学出版社 1995 3. 周越主《单片机应用技术》·中国水利水电出版社·2009年4.李全利编·《单片机原理及应用技术》·高等教育出版社·2004年。

相关文档
最新文档