关于单片机看门狗技术的研究报告
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单片机的看门狗
“看门狗”概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”(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实验报告《看门狗》
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 看门狗实验
计算机科学与技术学院
实验报告
课程名称:无线传感器网络原理与应用
实验七 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 循环中,注释掉的是喂狗函数,如果即时喂狗,系统便不会重启,小灯也就不会闪烁。
看门狗实验
铜仁学院实验报告课程名称:单片机原理与接口技术专业:信息工程班级:2011级学生姓名: 王浩刘军铜仁学院实验报告课程名称:单片机原理与接口技术 实验时间:成绩评定: 实验地点:2602教室【实验名称】串行EEPROM 、看门狗接口实验【实验目的】学习掌握E2PROM 、看门狗接口电路X25045使用方法【实验内容】【实验内容】向E2PROM 的某一单元写入数据,然后读出送P1口输出在LED 上显示验证正确性。
实验电路如图所示。
实验接线:按图示电路将X25045与单片机相连(VCC 、GND 已连);P1口连LED 显示电路。
2、X25045看门狗实验①编程向X25045写入WRSR 指令,使状态寄存器的WD1、WD0=00,预置看门狗定时器的时间为1.4秒,程序运行后,用逻辑笔观察X25045的RESET 引脚,应看到每1.4秒输出一个复位信号。
②编程1.4秒内访问(喂狗)X25045一次,用逻辑笔观察X25045的RESET 引脚,应看到输出电平始终为低电平。
X25045CS SO WP V V RESET SCK SI 8 7 6 5 1 2 3 4 P2.3 P2.2 P2.1 P2.0 89C51【汇编程序代码】ORG 00H ;主程序XWRITE: MOV A, #06H ;发送写使能命令CLR CSACALL TRAN ;调用发送子程序SETB CS ;写使能命令发送结束MOV A, #02H ;发送写操作指令,A8=0,选择低256字节CLR CSACALL TRAN ;MOV A, #ADDR ;发送地址ACALL TRAN ;MOV A, #DAT ;发送数据ACALL TRANSETB CS ;ACALL DELAY ;调用延时子程序XREAD: MOV A, #03H ;发送读操作指令,A8=0 CLR CSACALL TRANMOV A, #ADDR ;发送地址ACALL TRANMOV R0, #08H ;R0为位数计数器READ1: SETB SCKCLR SCKSETB SOMOV C, SO ;读一位数据RLC A ;将读入的一位数据移入A中DJNZ R0, READ1 ;判断一字节的数据是否读完MOV P1, A ;将读出的数据送到P1口显示SJMP xwriteTRAN: MOV R0, #08H ;发送一字节数据子程序TRAN1: RLC A ;将A的最高位移入C中MOV SI, C ;将C中的数据输出到SICLR SCK ;SCK产生一个上跳变SETB SCKDJNZ R0, TRAN1 ;8位未发送完,转移CLR SI ;发送结束RETCS EQU P2.2 ;片选信号由P2.2产生SCK EQU P2.3 ;时钟信号由P2.3产生SI EQU P2.0 ;SI由P2.0产生SO EQU P2.1 ;SO由P2.1产生ADDR EQU 07FH ;使用X25045地址为7FH的单元DAT EQU 0AAH ;写入数据为0AAH;延时子程序DELAY: MOV R1, #10HLP1: MOV R0, #00HLP2: DJNZ R0, LP2DJNZ R1, LP1RETend【实验现象以及遇到的问题】①编程向X25045写入WRSR指令,使状态寄存器的WD1、WD0=00,预置看门狗定时器的时间为1.4秒,程序运行后,用逻辑笔观察X25045的RESET引脚,看到每1.4秒输出一个复位信号。
毕业设计52单片机看门狗
目录第一章概述 (3)1.1 单片机的发展 (3)1.2单片机的应用 (3)第二章多功能转速表硬件电路 (5)2.1 转速信号获取电路 (6)2.2 M/T法测速原理 (6)2.3转速计算及误差分析 (7)2.4转速测量 (9)第三章产生脉冲的硬件部分介绍 (10)3.1 光电转换电路 (10)3.1.1 光电探测器的介绍 (10)3.1.2 光检测器的设定 (11)3.2运算放大器基本特性 (11)3.2.1常用运算放大器类型 (11)3.2.2运算放大器的基本参数 (12)3.3 555施密特触发器结构图 (14)3.3.1 施密特触发器的电路特点 (16)3.3.2 施密特触工作原理 (16)3.3.3 施密特触发器的应用 (17)第四章单片机 (18)4.1 单片机AT89C51的了解 (18)4.2 AT89C51的硬件部分简述 (19)第五章显示部分 (21)5.1 键盘接口: (21)5.2 显示器接口: (23)5.3 LED显示器 (26)5.3.1 数码管结构 (26)5.3.2 数码管工作原理 (27)5.3.3 LED七段数码管显示方法 (27)第六章直流稳压电源的研制 (29)6.1+ 5V 直流稳压电路原理 (29)6.2+ 5V 直流稳压电路参数设计 (30)第七章看门狗电路 (32)7.1 抗干扰与看门狗 (32)7.2硬件方式和软件方式看门狗 (32)7.2.1硬件看门狗 (32)7.2.2软件看门狗 (33)7.3硬件方式看门狗MAX831L (33)7.3.1 MAX813L的封装及引脚功能 (33)7.3.2 MAX813L与单片机AT89C51接口电路图 (35)7.3.3 MAX813L对直流的监控作用 (35)第八章报警电路: (36)8.1声音报警电路 (36)第九章软件设计思路及方案 (37)9.1软件设计概述 (37)9.2 软件设计方案 (37)9.2.1 主程序框图及程序编程 (37)9.2.2 按键框图及程序编程 (46)9.2.3 显示程序框图及程序编程 (49)9.2.4、报警框图及程序编程 (52)第十章单片机软件和硬件抗干扰设计 (54)10.1抗干扰的设计原则 (54)10.1.1干扰的来源: (54)10.2 软件抗干扰设计 (54)10.3硬件抗干扰的设计 (55)第十一单片机应用系统调试和维护 (56)11.1 系统调试 (56)11.1.1硬件调试 (56)11.1.2软件调试 (56)11.1.3计算程序的调试方法 (57)11.1.4综合调试 (57)11.2系统维护和维修 (57)11.2.1 故障形成的原因 (57)11.2.2 系统自检程序 (58)第十二章打印机的设计 (59)12.1 P-μP-40/16A微型打印机的接口信号 (59)12.2 TP-μP-40/16A微型打印机与单片机的连接 (59)12.3 打印机程序编程 (60)总结 (62)参考文献: (63)致谢 (63)第一章概述1.1单片机的发展单片微型计算机(简称单片机)也叫做微型控制器,自从20世纪70年代问世以来,得到了快速发展,从早期的8位机到现在的32位机,其硬件资源和软件资源在不断丰富与完善。
看门狗功能应用实训报告
一、实训背景随着微电子技术的不断发展,单片机在各个领域的应用越来越广泛。
为了保证单片机系统在运行过程中不会因为软件错误、硬件故障或电磁干扰等原因导致系统崩溃,看门狗(Watchdog Timer,WDT)功能应运而生。
看门狗是一种用于监控程序运行状态的设备,当程序因错误而无法正常工作时,看门狗会自动复位系统,从而保证系统的稳定运行。
为了提高对看门狗功能的理解和应用能力,本次实训旨在通过实际操作,掌握看门狗功能的原理、设置方法以及在实际应用中的调试技巧。
二、实训目标1. 理解看门狗功能的原理及作用。
2. 掌握STM32单片机看门狗功能的配置方法。
3. 学会使用看门狗功能防止程序跑飞和死循环。
4. 掌握看门狗功能在实际应用中的调试技巧。
三、实训内容1. 看门狗功能原理及作用看门狗是一种定时器,用于监控程序运行状态。
当程序正常运行时,需要定期对看门狗进行喂狗操作,以防止看门狗超时。
如果看门狗超时,则认为程序出现错误,看门狗会自动复位系统,使程序重新开始执行。
2. STM32单片机看门狗功能配置(1)硬件电路:在STM32单片机中,看门狗功能主要由独立看门狗(IWDG)和窗口看门狗(WWDG)实现。
IWDG使用独立的RC振荡器工作,适用于对时间精度要求不高的场合;WWDG则要求在精确的计时窗口内起作用,主要用于需要精确控制时序的应用。
(2)软件配置:在STM32CubeMX中,可以通过以下步骤配置看门狗功能:① 打开STM32CubeMX软件,选择相应的STM32单片机型号。
② 在“System Core”选项卡中,勾选“IWDG”和“WWDG”选项。
③ 在“IWDG”选项卡中,设置预分频系数、重装值等参数。
④ 在“WWDG”选项卡中,设置预分频系数、重装值、窗口值等参数。
⑤ 生成代码,并在Keil uVision中编译、下载程序。
3. 使用看门狗功能防止程序跑飞和死循环(1)程序跑飞:当程序进入死循环时,看门狗会因未进行喂狗操作而超时,系统自动复位,从而避免程序跑飞。
STM32看门狗实验
看门狗原理:
看门狗又叫watchdog timer(WDT),是一个定时器电路。 一个输入端:叫喂狗引脚; 一个输出端:连接到MCU的RESET引脚;
在系统运行以后,启动了看门狗的计数器,看门狗就开始自动计数; MCU正常工作时,每隔一段时间输出一个信号到喂狗 端,将WDT清零;一旦单片机由于干扰造成程序跑飞后,而进入死循环状态时,在超过规定的时间内 “喂狗”程序不能被 执行,看门狗计数器就会溢出,从而引起看门狗中断,就会输出一个复位信号到MCU,造成系统复位。 在使用看门狗时,要注意适时喂狗。
注意:对此寄存器进行读操作,将从 VDD 电压域返回预分频值。如果写操作正在进行,则读回的值可能是无效的。因此,
只有当 IWDG_SR 寄存器的 PVU 位为 0 时,读出的值才有效。
预分频值的设定,在 stm32f10x.h 中有如下定义
#define IWDG_Prescaler_4
((uint8_t)0x00)
独立看门狗实验
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环, 程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于 对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"。 建议:看门狗是定时器的一种,学习看门狗对于理解定时器有着借鉴作用
位 31:12 保留,始终读为 0。 位 11:0 RL[11:0]: 看门狗计数器重装载值 (Watchdog counter reload value) 这些位具有写保护功能。 用于定义看门狗计数器的重装载值,每当向 IWDG_KR 寄存器写入 0xAAAA 时,重装载值会被传送到计数器中。随后计数 器从这个值开始递减计数。看门狗超时周期可通过此重装载值和时钟预分频值来计算 。只有当 IWDG_SR 寄存器中的 RVU 位为 0 时,才能对此寄存器进行修改。 注:对此寄存器进行读操作,将从 VDD 电压域返回预分频值。如果写操作正在进行,则读回的值可能是无效的。因此,只 有当 IWDG_SR 寄存器的 RVU 位为 0 时,读出的值才有效。
关于STC系列单片机的WatchDog使用心得
关于STC系列单片机的WatchDog使用心得WatchDog看门狗程序是一个我们经常会用到的程序。
这里基于自己的理解和查阅相关的资料来对其进行一下说明。
1、为什么要使用看门狗?由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果。
2、看门狗的大体原理(自己理解的)经过使用看门狗后,我说一下我对对看门狗的理解。
看门狗其实就类似一个计数器,启动看门狗后,它就开始自己计数,如果计数到了一个值或时间(这个可以自己设定)它就会溢出,溢出同时它就会给系统一个复位信号,这时系统程序就会从头开始运行。
为了不让看门狗的值溢出,我们需要在程序运行中喂狗(也就是手动把看门狗的计数值清零)确保它不会溢出。
如果你的程序中用了延时函数那请注意一下延时时间的设置不要和看门狗的溢出时间冲突了,这个我就不细说了需要大家动手练习才更容易理解。
最后在补充一句。
其实溢出的同时看门狗的溢出标志位也会置一,如果你设置了看门狗相关的中断,它就会进入中断程序。
(进入中断程序后别忘了手动清除看门狗的溢出标志位)3、看门狗的使用(基于STC15W204S单片机、Keil 5环境、C语言)在这里只给出整个程序的一部分,为了讲解使用。
void main(void){UART1_Init(); //这时串口1的初始化函数EA = 1; //开启总中断SendString("Ready! \r\n"); //通过串口1向计算机发送一个字符串WDT_CONTR = 0x36; //这一句里包含了启动看门狗、清零看门狗、设置其为128分频while(1){/*------------喂狗,也就是清零看门狗计数器------------*/WDT_CONTR = 0x36; //这一句里包含了启动看门狗、清零看门狗、设置其为128分频}}上图为STC官方手册截图通过STC-ISP程序烧写代码,这里要注意红框部分,选择自己的分频数(这里为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)中。
看门狗实验报告
看门狗实验报告看门狗实验报告引言:近年来,随着科技的不断进步,智能家居已经成为了人们生活中的一部分。
其中,看门狗作为智能家居的一种重要组成部分,不仅可以保障家庭安全,还能提供便利。
本文将对看门狗的实验进行报告,探讨其功能、优势以及未来的发展。
一、看门狗的功能看门狗是一种通过声音、图像等感知技术,能够自动识别陌生人和异常情况的智能设备。
其主要功能包括以下几个方面:1. 安全监控:看门狗能够通过高清摄像头实时监控家庭环境,一旦检测到异常情况,如入侵者或火灾等,会立即发出警报并通知家庭成员。
这种智能化的安全监控系统,为家庭带来了更高的安全保障。
2. 远程控制:通过手机APP或者智能音箱等设备,家庭成员可以随时随地远程控制看门狗。
比如,当家庭成员不在家时,可以通过手机APP查看家中的实时图像,了解家庭状况,确保家人的安全。
3. 语音交互:看门狗还具备智能语音交互功能,可以通过语音指令实现各种操作。
比如,家庭成员可以通过语音指令让看门狗打开门锁、关闭灯光等,提供了更加便捷的生活体验。
二、看门狗的优势相比传统的门禁系统,看门狗具有以下几个明显的优势:1. 智能化:看门狗采用了先进的人工智能技术,能够通过学习和分析,自主判断何为异常情况。
相比传统门禁系统,其具备更高的准确性和智能性,能够更好地保障家庭安全。
2. 便捷性:看门狗的远程控制功能,使得家庭成员可以随时随地掌握家庭状况,并进行相应的操作。
不再需要携带钥匙或者依赖其他人的帮助,大大提高了生活的便利性。
3. 可视化:通过高清摄像头,看门狗能够提供清晰的实时图像,让家庭成员可以随时了解家中的情况。
这种可视化的特点,不仅带来了安全感,还为家庭成员提供了更多的互动和娱乐方式。
三、看门狗的未来发展随着科技的不断进步,看门狗在未来将有更广阔的应用前景:1. 人脸识别技术:目前,看门狗主要通过声音和图像等感知技术进行识别,但是随着人脸识别技术的不断发展,未来的看门狗可能会具备更高的识别准确性和速度,能够更好地辨认家庭成员和陌生人。
利用单片机内部定时器实现软件看门狗
利用单片机内部定时器实现软件看门狗利用单片机内部定时器实现软件看门狗勤镐工控(05/09/04)软件看门狗(WATCH DOG)也叫做程序运行监视系统。
当程序运行受到干扰,程序飞到一个临时构成的死循环中时,系统将完全瘫痪,软件陷阱也无能为力了,这时就需要人工复位或硬件复位;如果没有人工操作和硬件复位系统,我们采用软件看门狗技术同样也能使系统复位,恢复正常。
这种程序监视系统就好比主人家养了一条狗,主人总要定时喂狗,如果主人忘了喂狗(程序受到干扰,跑飞掉了),狗就会大叫起来,提醒主人(程序重新运行)。
软件看门狗的特性如下:1、本身独立工作,基本上不依赖CPU;2、CPU在一个固定的时间间隔内和系统打一次交道(喂一次狗),以表明系统目前工作正常。
3、当CPU陷入死循环后,能及时发觉并使系统复位。
当系统陷入死循环后,怎样才能从死循环中跳出来呢?只有比这个死循环更高级的中断程序才能夺走CPU的控制权。
为此,可以用一个定时器来做软件看门狗,因为定时器在运行时不占用CPU资源,它是独立工作的,所以,将它的溢出中断设定为最高优先级中断,系统的其它中断均设为比它低级的中断优先级。
然后根据看门狗的定时时间来设定定时器初值。
软件看门狗启动后,系统工作程序必须经常“喂它”,且每两次之间的间隔不得大于定时器的定时时间。
程序中只要设立一个设置定时器初值的子程序,喂它时只要调用这个子程序即可。
当程序陷入死循环后,定时器溢出,产生高优先级中断,从而跳出死循环。
我们还可以在定时器中断服务程序中放置一条LJMP ERR 指令,即可使程序转向出错处理程序;由出错程序来完成以后的工作,并用软件的方法使系统复位。
以下是一个用定时/计数器T0作软件看门狗的完整程序:ORG 0000HAJMP MAINORG 000BHLJMP ERR MAIN :MOV SP , #60HMOV PSW , #00HMOV SCON , #00HMOV TMOD , #01H ;设置T0为16位定时器SETB ET0 ;允许T0中断SETB PT0 ;设置T0中断为高级中断MOV TL0, #00H ;设定T0的定时初值,定时时间约为16ms(6M 晶振)MOV TH0, #0B0HSETB EA ;开中断SETB TR0 ;启动T0 LOOP:...... ;主程序开始LCALL WATCH DOG ;调用喂狗子程序......LJMP LOOP WATCHDOG:MOV TL0, #00H ;喂狗子程序MOV TH0, #0B0HSETB TR0RET ERR:POP ACC ;定时器中断POP ACC ;看门狗软件复位程序CLR APUSH ACCPUSH ACC RETI在程序中,由于执行了中断服务程序后,PC 的指针已经指向0000H ,从而实现了软件复位的目的。
单片机系统中的看门狗技术
个领域,而单片机订:这些场合的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虚人于单片机程序的一个运行周期,且应保证些重要的程序段 不被打断,以免系统产生_【;{操作。
单片机实践-IAP15W4K58S4单片机的看门狗定时器
11 看门狗定时器作用
单片机的“看门狗定时器”遵循同样的基本方法。如果每隔一定间隔不刷新定时 器,它将溢出,定时器溢出将复位系统。即使经过仔细规划和设计,单片机系统也可 能由于出乎意外的问题而程序跑飞或者“死机”,这种看门狗就是用来处理此类情况 。看门狗可用于在特定的情况下从这种状态恢复。
2 看门狗定时器寄存器
(1)看门狗控制寄存器WDT_CONTR(Watch Dog Timer Control Register)
寄存器
地址
B7
B6
B5
B4
B3
B2 B1 B0
WDT_CONTR C1H WDT_FLAG — EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0
WDT溢出时间(ms)
IAP15W4K58S4单片 机的看门狗定时器
CONTENTS
看门狗定时器作用 看门狗定时器寄存器 看门狗定时器应用
11 看门狗定时器作用
假设有一只饥饿的狗正在看守着一所房子,而有人要闯入。如果这个强盗的同谋 以2分钟的间隔不停地向看门的狗扔肉块,那么这只狗将忙于吃食物而忽视保卫工作 ,因此将不会吠叫。然后,如果同谋扔完了或由于其它原因忘记喂狗,狗将开始吠叫 ,从而惊动邻居、房屋的主人。
39.3 78.6 157.3 314.6 629.1 1250 2500 5000
2 看门狗定时器寄存器
(1)看门狗控制寄存器WDT_CONTR(Watch Dog Timer Control Register)
寄存器
地址
B7
B6
B5
B4
B3
B2 B1 B0
WDT_CONTR C1H WDT_FLAG — EN_WDT CLR_WDT IDLE_WDT PS2 PS1 PS0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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年。