3.2 看门狗中断实验
- 格式:ppt
- 大小:574.00 KB
- 文档页数:9
电子计数式频率计原理看门狗端口中断实现计数电
路功能
频率是单位时间内周期性过程重复、循环或震动的次数,记为f。
因此,某一信号在T秒内变化了N次,可知该信号的频率为:f=N/T。
下图是电子计数式频率计的原理框图,它主要由四部分组成。
计数脉冲形成电路:该部分的作用是将被测的周期信号经过放大、整形后转换成可计数的脉冲。
时间基准T产生电路:这部分的作用是提供准确的计数时间T,又称为闸门(时间)脉冲。
计数电路:这部分的作用是计数被测周期信号的重复次数。
时间基准产生电路产生闸门脉冲,只有在闸门脉冲持续的时间T内,才允许被测信号输入到计数电路进行计数。
波形图
显示电路:该部分的作用是将测量的结果直观的显示出来。
看门狗定时器实验1.实验目的(1)掌握LM3S8962中的看门狗定时器(WDT)的功能和使用方法(2)掌握正确使用看门狗的方法2.实验内容(1)ARM的初始化配置(2)WDT的初始化和中断/复位设置(3)编程演示使用看门狗对系统进行监控3.WDT的功能图1 WDT模块结构图嵌入式控制系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。
为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(Watchdog)电路。
看门狗电路的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。
在Stellaris 系列ARM里集成有硬件的看门狗定时器模块。
该模块有两个功能:当看门狗定时器的复位功能禁能时,可以把看门狗作为一个普通定时器来使用;当看门狗定时器的复位功能使能时,用作看门狗定时器,一旦产生了“二次超时”事件,将引起处理器复位。
看门狗定时器具有“二次超时”特性。
当32位计数器在使能后递减计数到0 状态时,看门狗定时器模块产生第一个超时信号,并产生中断触发信号。
在发生了第一个超时事件后,32 位计数器自动重装看门狗定时器装载寄存器(WDTLOAD)的值并重新递减计数。
如果没有清除第一个超时中断状态,则当计数器再次递减到0 时,且复位功能已使能,则看门狗定时器会向处理器发出复位信号。
如果中断状态在32位计数器到达其第二次超时之前被清除,则自动重装32位计数器,并重新开始计数,从而可以避免处理器被复位。
为了防止在程序跑飞时意外修改看门狗模块的配置,特意引入了一个锁定寄存器。
在配置看门狗定时器之后,只要写入锁定寄存器一个不是十六进制0x1ACCE551的任何数值,看门狗模块的所有配置都会被锁定,拒绝软件修改。
因此以后要修改看门狗模块的配置,包括清除中断状态(即喂狗操作),都必须要首先解锁。
解锁方法是向锁定寄存器写入十六进制数值0x1ACCE551 。
如果在看门狗定时器计数器正在计数时把新的值写入WDTLOAD,则计数器将装入新的值并继续计数。
实验报告
班级学号姓名同组人
实验日期室温大气压成绩
实验题目:看门狗错误喂狗产生中断实验
一、实验目的:
1、通过本实验进一步掌握对ARM7.0软件和EasyJTAG仿真器的使用,以及进一步熟悉EasyARM2131开发板硬件结构,掌握各引脚功能和接线。
2、通过实验,进一步掌握看门狗的相关原理及方框图。
3、通过实验,进一步了解看门狗出现错误或者是不完整的喂狗时产生复位或使能的功能,并且掌握看门狗的喂狗过程及其错误喂狗产生的中断的功能。
二、实验仪器:
装有ADS1.2及EasyJTAG仿真器的计算机一台、ARM7开发板一块
三、实验原理
(一)具有如下特性:
(二)结构如下:
(三)寄存器描述:。
华清远见嵌入式系统实训报告(2017—2018学年第一学期)姓名:******专业班级:************学号:**************学院:电气工程与自动化学院带队教师: 乔美英,胡伟2017年9月25日华清远见嵌入式系统实训报告一、实习时间2017.9.25--2017.9.29二、实习的性质、目的2.1 实习性质虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了。
从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。
从嵌入式系统的构成上看,嵌入式系统是集软硬件于一体的、可独立工作的计算机系统。
从外观上看,嵌入式系统像是一个“可编程”的电子“器件”从功能上看。
它是对宿主对象进行控制,使其具有“智能”的控制器。
从应用的角度看,嵌入式系统与通用计算机系统相比,有如下一些特点:(1)专用性强由于嵌入式系统通常是面向某个特定应用的,所以嵌入式系统的硬件和软件,尤其是软件,都是为特定用户群来设计的,它通常都具有某种专用性的特点。
(2)实时性好目前,嵌入式系统广泛应用于生产过程控制、数据采集、传输通信等场合,主要用来对宿主对象进行控制。
所以都对嵌入式系统有或多或少的实时性。
例如,对嵌入在武器装各中的嵌入式系统、在火箭中的嵌入式系统、一些工业控制装置中的控制系统等应用中的实时性要求就极高。
也正因为这种要求,在硬件上嵌入式系统极少使用存取速度慢的磁盘等存储器。
在软件上更是加以精心设计,从而可使嵌入式系统快速地响应外部事件。
当然,随着嵌入式系统应用的扩展,有些系统对实时性要求也并不是很高,例如近年来发展速度比较快的手持式计算机、掌上电脑等。
但总体来说,实时性是对嵌入式系统的普遍要求,是设计者和用户重点考虑的一个重要指标。
(3)可裁剪性好从嵌入式系统专用性的特点来看,作为嵌入式系统的供应者,理应提供各式各样的硬件和软件以各选用。
《DSP技术与实验》实验报告姓名:学号:学期:实验名:看门狗实验一、实验目的1.了解VC5509内部WDT的工作基本原理2.了解如何通过软件正确的使用WDT3.了解WDT的正确操作过程二、实验设备1.一台装有CCS4的电脑2.HX5509 dsp 开发板3.XDS100-USB V1仿真器三、实验原理硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。
那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等.软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,用DSP的片上外设资源定时器timer来对主程序的运行进行监控。
HX5509的看门狗包括一个16bit的预定标计数器和一个16bit 的主计数器。
从而提供一个32bit的动态范围计数器。
当主计数器减为0时,产生超时事件,引发以下可编程事件1.00b,一个看门狗定时器中断2.01b,看门狗复位3.10b,产生一个非屏蔽中断(NMI)4.11b,不发生任何事件.所产生的超时事件,用过编程控制寄存器WDTCR中的WDOUT域来控制。
四、实验步骤1.打开CCS4,打开watchdog工程,编译工程2.连接好DSP,连接好仿真器3.设置目标configurationa.点击target 下的new target configuration选项b.Connection选择Texas Instruments XDS100V1-USBEmulatorc.Device选择TMS320C5509Ad.点击Save配置,如图五、实验结果及分析六、参考文献所有实验说明.pdfTMS320C55x DSP原理及应用汪春梅,孙洪波,电子工业出版社附件:程序及说明#include <csl.h>#include <csl_wdtim.h>#include <stdio.h>int i, pscVal;WDTIM_Config getConfig;WDTIM_Config myConfig = {0x1000, /* WDPRD */0x0000, /* WDTCR */0x1000 /* WDTCR2 */};main(){CSL_init();#if (_WDTIM_SUPPORT)WDTIM_config(&myConfig);WDTIM_FSET(WDTCR, WDOUT, 1); /* Connect to NMI */WDTIM_FSET(WDTCR, TDDR, 0xF); /* Value to load PSC field */ WDTIM_FSET(WDTCR2, PREMD, 0); /* Set direct mode */WDTIM_service(); /* enable watchdog *///for (i = 0; i < 100; i++)for (;;){WDTIM_getConfig(&getConfig);pscVal = WDTIM_FGET(WDTCR,PSC);printf("pscVal: %x, wdtcr: %x\n",pscVal, getConfig.wdtcr);/* write periodically to WDTIMER - when this line is commented out,the watchdog times out, WDFLAG set to 1, indicatingthat a Watchdog time-out occurred.*/WDTIM_service();} //end for loop#endif}/******************************************************************** **********\* End of wdt.c\******************************************************************** **********/。
看门狗实验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. 独立看门狗(FWDGT)- 独立看门狗使用独立的32kHz内部时钟,适用于对计时精度要求不高的场合。
- 独立看门狗内部有一个12位的向下计数的定时器,当计数值达到0时,会产生一个系统复位。
3. 窗口看门狗(WWDGT)- 窗口看门狗使用PCLK分频而来的时钟,计数器位数较小,需要在窗口范围内重装载以防复位。
4. 看门狗定时器的配置与使用- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 看门狗定时器的实际应用- 利用看门狗定时器解决嵌入式系统中的故障和异常。
- 通过看门狗定时器监控程序运行状态,防止死锁。
- 作为系统安全特性的一部分,确保在检测到异常时能够安全地重启系统。
1. 准备工作- 准备好实训所需的硬件设备和软件环境,如单片机开发板、调试器、IDE等。
2. 环境搭建- 根据实际需求搭建实训环境,包括硬件电路连接和软件配置。
3. 看门狗定时器配置- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。
- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。
4. 程序编写- 编写程序,实现看门狗定时器的初始化、重装载和监控功能。
- 在程序中定期重装载看门狗定时器,以防止系统复位。
5. 调试与验证- 使用调试器对程序进行调试,观察看门狗定时器的运行状态。
看门狗实验一、实验目的1.掌握“看门狗”(MAX 813L )复位控制的硬件接口技术2.掌握“看门狗”(MAX 813L )复位控制驱动程序的设计方法二、实验说明为了控制系统不受外界干扰而出现死机现象,可采用MAX813L 复位监控芯片,该芯片具备复位及监视跟踪两大功能。
主要功能:·精密电源电压、监控4.65V ·200ms 复位脉冲宽度·V1=1V 时保证复位RESET 有效。
·TTL/CMOS 兼容的防抖动人工复位输入·独立的监视跟踪定时器1.6S 溢出时间。
·电源故障或欠电压报警的电压监控 ·加电,掉电有电压降低时输出复位信号。
·低电平有效的人工复位输入 。
各引脚的功能和意义如图:(1)MR :人工复位输入、当输入降至0.8V 时产生复位脉冲,低电平有效的输入可用开关短路 到地或TTL/CMOS 逻辑驱动,不用时浮空。
(2)VCC :+5V 输入。
(3)GND :地。
(4)PFI :电源故障比较器输入,高PFI 低于1.25V 时PFO 输出低电平吸收电流;否则PFO 输出保持高电平,如果不用将PFI 接地或VCC 。
(5)PFO :电源故障比较器输出,高PFI 低于1.25V 时,输出低电平且吸收电流;否则PFO 输出 保持高电平。
(6)WDI :监视跟踪定时器输入,WDI 保持高或低电平时间长达1.6S ,WDI 输出低电平,WDI 浮空或接高阻三态门将禁止监控跟踪定时器功能,只要发生复位,内部监视跟踪定时的清零。
(7)RESET :复位输出(低电平有效)。
(8)WDO :监视跟踪定时器输出,当内部监视跟踪定时器完成1.6S 计数后,本脚输出低电平,直到下一次监视跟踪定时器清零, 才再变为高电平,在低电源或VCC 低于复位门限电压时,WDO 就保持低电平,只要VCC 上升到复位门跟电压以上后 WDO 就变为高电平而没有滞后。
实验5 S3C2410 看门狗定时器中断实验一、实验目的掌握S3C2410 看门狗定时器的工作原理和定时时间的计算方法,会在MDK中可视化配置看门狗,理解看门狗中断的触发过程,熟练掌握和中断相关寄存器的使用以及中断服务函数的编程方法。
二、实验预备知识熟悉UP-NETARM2410实验箱的结构,S3C2410的外设接口电路,熟悉MDK编程软件的使用方法,熟悉C语言程序设计的一般方法。
三、实验内容在MDK的配置向导中配置WDT,使其定时一秒,定时时间到后触发WDT中断,控制三个LED每隔一秒循环闪烁,编写C语言程序编译并下载到UP-NETARM2410实验箱,可以看到GPC5/GPC6/GPC7上所接的三个LED循环闪烁,实现精确定时一秒。
图1 MDK中看门狗定时器的配置四、参考程序本工程中包括三个文件:S3C2410A.s、ledflash.c和cvectaddr.c主程序文件ledflash.c的内容如下:1 extern void openDog(void);23 extern void c_Wdt_ISR(void);45 int main()6 {7 // 0x010FFF20+0x24 is the address of Watchdog jumper8 *(volatile unsigned int *)(0x010FFF20+4*9)=(unsigned)c_Wdt_ISR;9 openDog();10 while(1)11 {1213 }14 }文件cvectaddr.c的内容如下:1 #define LED1_MASK 0x202 #define LED2_MASK 0x403 #define LED3_MASK 0x8045 #define GPCDAT_ADDR (*(volatile unsigned int *)0x56000024)67 #define SRCPND (*(volatile unsigned int *)0x4A000000)8 #define INTMOD (*(volatile unsigned int *)0x4A000004)9 #define INTMSK (*(volatile unsigned int *)0x4A000008)10 #define PRIORITY (*(volatile unsigned int *)0x4A00000C)11 #define INTPND (*(volatile unsigned int *)0x4A000010)12 #define INTOFFSET (*(volatile unsigned int *)0x4A0000141314 // enable watchdog timer intterupt15 void openDog(void)16 {17 INTMOD = 0x0; // set as IRQ18 INTMSK &= ~(0x200); //open Dog19 PRIORITY = 0x7F;20 }21 int number=0;22 int nLED=0;23 __irq void c_Wdt_ISR()24 {2526 int iReg=0;27 if(SRCPND | 0x200)28 SRCPND = 0x200;29 if(INTPND | 0x200)30 INTPND = 0x200;31 //INTMSK |= 0xFFFFFFFF; //close all, include Dog32 nLED = 0;33 switch(number)34 {35 case 0: // SWI number 0 code36 nLED ^=(LED2_MASK | LED3_MASK);// LED1 light37 break;38 case 1:39 nLED ^=(LED1_MASK | LED3_MASK);// LED2 light40 break;41 case 2:42 nLED ^=(LED1_MASK | LED2_MASK);// LED3 light43 break;44 }45 number++;46 if(number>2)47 number=0;48 GPCDAT_ADDR = nLED; // Led shine in turn4950 __asm // open IRQ51 {52 MRS iReg, CPSR53 BIC iReg, iReg, #0x8054 MSR CPSR_c, iReg55 }56 //INTMSK &= ~(0x200); // open Dog57 }五、实验结果请自己作答。
看门狗实验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)中。
广州大学学生实验报告开课学院及实验室:机电学院电子楼618 2014年 5 月 16 日图5.1 Watchdog定时器框图八、实验内容与步骤2410init.s2410lib.c2410slib.s拷贝到本工程的目录里,并添加到本工程。
(5)如实验1的图1.9~图1.12,修改本工程的工程设置;(6)创建Main.c文件,并加入到本工程中;(7)为Main.c 文件添加如下的语句:#include "def.h"#include "2410addr.h"#include "2410lib.h"void watchdog_test(void);void __irq watchdog_int(void);int f_ucSencondNo=0; //复位次数void watchdog_reset_test(void);void Main(void){ ChangeClockDivider(1,1); // 1:2:4ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHzUart_Init(0,115200);Uart_Select(0);Uart_Printf("WatchDog 定时器测试\n");watchdog_test();while(1);}void watchdog_test(void){ ClearPending(BIT_WDT);pISR_WDT=(unsigned)watchdog_int; //建立WatchDog中断rWTCON=((100<<8)|(3<<3));rWTDA T=15000;rWTCNT=15000;rWTCON|=((1<<5)|(1<<2));//enable Watchdog timer ang watchdog interruptrWTCON|=(1<<5)|(1<<2); //每4S watchdog 一次中断。
⽆线通信技术综合训练实验指导书I(CC2530基础)实验⼋实验⼋外部中断实验实验⼋外部中断实验CPU 有 18 个中断源。
每个中断源有它⾃⼰的、位于⼀系列特殊功能寄存器中的中断请求标志。
每个中断通过相应的标志请求可以单独使能或禁⽌。
通⽤ I/O 引脚设置为输⼊后,可以⽤于产⽣通⽤ I/O 中断(外部中断)。
⼀、实验⽬的通过本实验的学习,熟悉 CC2530 芯⽚通⽤ I/O 中断相关寄存器的配置和使⽤⽅法。
1. 2. 3. 4. 熟悉 CC2530 芯⽚通⽤ I/O 中断相关寄存器配置和使⽤⽅法;掌握 CC2530 芯⽚通⽤ I/O 中断响应处理⽅法;掌握 CC2530 芯⽚中断基本原理;了解CC2530 芯⽚中断优先级。
⼆、实验内容1. 2. 在 CC2530 节点开发板上,启⽤通⽤ I/O 中断配置,由查询控制 LED 闪烁;在 CC2530 节点开发板上,启⽤通⽤ I/O 中断配置,由中断控制 LED 闪烁。
三、实验条件1. 2. 3. 4. 5. 6. 7. ⽤户 PC 机(装有 Microsoft Windows XP 系统)正确安装 IAR Embedded Workbench for 8051 集成开发环境; CC2530 节点开发板(插有 CC2530 模块,带 LCD 模块)1 块; CC Debugger 多功能调试器 1 个; USB 连接线 1根;串⼝连接线 1 根;杜邦线若⼲; 5V 电源 1 个。
四、实验原理1. 中断屏蔽每个中断可以通过中断使能特殊功能寄存器中的中断使能位 IEN0、IEN1 或 IEN2 使能或禁⽌。
图 3-8-1 给出了所有中断源和相关控制以及状态寄存器的完整概况。
当调⽤中断服务程序时阴影框中的中断标志将被硬件⾃动清除。
表⽰触发,可能是因为电平源也可能是因为边沿形成。
中断失去了它,它们将被当作⼀个电平触发(适⽤于端⼝ 0,端⼝ 1 和端⼝2),转换器显⽰为默认和表⽰上升或下降沿检测,即在什么时候中断产⽣。