实验八 看门狗实验_第1页
实验八 看门狗实验_第2页
实验八 看门狗实验_第3页
实验八 看门狗实验_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验八看门狗实验一、实验目的1、了解看门狗的作用;2、掌握看门狗的使用方法。二、实验内容1、编程实现看门狗功能,观察看门狗作用;2、编程实现看门狗喂狗。三、实验设备1、硬件:JX44B0实验板;PC机;JTAG仿真器;2、软件:PC机操作系统(WINDOWS2000);ARMDeveloperSuitev1.2;Multi-ICEV2.2.5(Build1319);四、基础知识1、用ADS集成开发环境,编写和调试程序的基本过程;2、应用程序的框架结构。五、实验说明1、看门狗的功能和工作原理嵌入式系统运行时受到外部干扰或者系统错误,程序有时会出现“跑飞”,导致整个系统瘫痪。为了防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗电路。看门狗的作用就是当系统“跑飞”而进入死循环时,恢复系统的运行。其基本原理为:当本系统程序完整运行一周期的时间为Tp,看门狗的定时周期时Ti,Ti>Tp,在程序运行一周期后,就修改定时器的计数值,(俗称“喂狗”),只要程序正常运行,定时器就不会溢出,若由于干扰等原因使系统不能在Tp时刻修改定时器的计数值,定时器将在Ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。在一个完整的嵌入式机系统或单片机最小系统中通常都有看门狗定时器。而且一般集成在处理芯片中,看门狗实际上就是一个定时器,只是它在期满后将自动引起系统复位。2、S3C44B0看门狗的控制S3C44B0的看门狗定时器有两个功能:1)为常规定时器使用,而且可以引发中断;2)为看门狗定时器使用,期满时,它可以产生128个时钟周期的复位信号。下图是S3C44B0看门狗的示意图。输入时钟为MCLK(该时钟频率等于系统的主频),它经过两级分频,最后将分频后的时钟作为该定时器的输入时钟,当计数器期满后可以产生中断或者复位信号。

S3C44B0看门狗电路示意图看门狗定时器计数值的计算公式如下:t_watchdog=1/(PCLK/(Prescalervalue+1)/Division_factor)看门狗的定时周期:T=WTCNT*t_watchdog看门狗定时器相关寄存器如下:控制寄存器(WTCON)通过该寄存器,可以使能/禁止看门狗、选择输入时钟源、使能/关闭中断、使能/关闭输出。该寄存器的地址以及各控制位的定义如下:控制寄存器RegisterAddressR/WDescriptionResetValue"CON0x01030000R/WwatchdogtimercontrolRegister0x8021WTCONBitDescriptionInitialStatePrescalervalue[15:8]theprescalervalueThevalidrangeisfrom0to(2e-1)0x80Resep/ed[7:6]Reserved.Thesetwobitsmustbe00innormaloperation.00watc:hdogtimerenable/ciisable[5]Enableordisablebitofwatchdogtimer.0=Disablewatchdogtimer1=Enablewatchdogtimer1Clockselect"]Thistwobitsdeterminestheclockdivisionfactor00:1/1601:1/3210:1/6411:1/12&00Interruptenable/ciisable[2]Enableordisablebitoftheinterrupt.0=Disableinterruptgeneration1=Enableinterruptgeneration0Resen/ed【1]Reserved.Thisbitmustbe0innormaloperation0Resetenable/ciisable[0]Enableordisablebitofwatchdogtimeroutputforresetsignal1:assertsresetsignaloftheS3C44B0Xatwatchdogtime-out0:disablestheresetfunctionofthewatc:hdc;gtimer.1数据寄存器(WTDAT)该数据寄存器用于设置看门狗定时器的超时值。在初始的操作中该值不会自动加载到定时器中,首次定时器超时值位期初始值0X8000,以后该寄存器的值会被自动加载到WTCNT寄存器中。一般时该定时器工作在通用定时器模式下时使用。数据寄存器RegisterAddressR/WDescriptionResetValueWTDAT0x01D30004R/WWatchdogtinierdataRegister0x8000WTDATBitDescriptionInitialStateCountreloadvalue[15:0]Watchdogtimercountvalueforreload.0x8000计数器寄存器(WTCNT)看门狗的定时器的计数器,它的值表示该寄存器的当前计数值,即到下一次期满还需要经历的时钟数,当该定时器工作在看门狗模式时使用该寄存器,每次期满前需要重新设置其值,以防止发生复位。计数器寄存器RegisterAddressR/WDescriptionResetValueWTCNT0x01D30008R/WWatchdogtimercountRegister0x8000WTCNTBitDescriptionInitialStateCountvalue[15:0]Thecurrentcountvalueofthewatclidogtimer0x80003、程序解析1)使能WATCHDOG的代码rWATCNT=0X1000;/*设置看门狗初始值*/rWATCON=BIT_WDT_ENABLE|BIT_WDT_RST_ENABLE|BIT_WDT_CLK_SEL|BIT_WDT_PRE_SCALER;/*打开看门狗*/其中WDT_CLK_SEL和WDT_PRE_SCALER的值如下:#defineWDT_CLK_SEL(0X3<<3)/*1/128*/#defineWDT_PRE_SCALER(0XFF<<8)/*255*/2)看门狗定时器的时钟周期为(工作主频为60MHZ)t_watchdog=1/(MCLK/(255+1)/128);3)将WDTCNT设置为0x1000,其超时时间为t=0x1000/(60M/(255+1)/128)^2秒4)喂狗使用程序定期的设置WTCNT寄存器,俗称''喂狗〃,继续修改上一次实验的程序,在TICK中断中每秒重置一次WDTCNT的值(使用同一个值0X1000),检查是否有复位发生if(tick_index%1==0)rWATCNT=0X1000;/*重新设置看门狗时间值*/5)在TICK中断中每3秒重置一次WDTCNT的值(使用同一个值0X1000),检查是否有复位发生if(tick_index%3==0)rWATCNT=0X1000;/*重新设置看门狗时间值*/六、实验步骤1、仔细阅读实验说明部分,熟悉WAT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论