實驗八 看門狗實驗_第1頁
實驗八 看門狗實驗_第2頁
實驗八 看門狗實驗_第3頁
實驗八 看門狗實驗_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

實驗八看門狗實驗一、實驗目的1、了解看門狗的作用;2、掌握看門狗的使用方法。二、實驗內(nèi)容1、編程實現(xiàn)看門狗功能,觀察看門狗作用;2、編程實現(xiàn)看門狗喂狗。三、實驗設(shè)備1、硬件:JX44B0實驗板;PC機;JTAG仿真器;2、軟件:PC機操作系統(tǒng)(WINDOWS2000);ARMDeveloperSuitev1.2;Multi-ICEV2.2.5(Build1319);四、基礎(chǔ)知識1、用ADS集成開發(fā)環(huán)境,編寫和調(diào)試程序的基本過程;2、應用程序的框架結(jié)構(gòu)。五、實驗說明1、看門狗的功能和工作原理嵌入式系統(tǒng)運行時受到外部干擾或者系統(tǒng)錯誤,程序有時會出現(xiàn)“跑飛”,導致整個系統(tǒng)癱瘓。為了防止這一現(xiàn)象的發(fā)生,在對系統(tǒng)穩(wěn)定性要求較高的場合往往要加入看門狗電路??撮T狗的作用就是當系統(tǒng)“跑飛”而進入死循環(huán)時,恢復系統(tǒng)的運行。其基本原理為:當本系統(tǒng)程序完整運行一周期的時間為Tp,看門狗的定時周期時Ti,Ti>Tp,在程序運行一周期后,就修改定時器的計數(shù)值,(俗稱“喂狗”),只要程序正常運行,定時器就不會溢出,若由于干擾等原因使系統(tǒng)不能在Tp時刻修改定時器的計數(shù)值,定時器將在Ti時刻溢出,引發(fā)系統(tǒng)復位,使系統(tǒng)得以重新運行,從而起到監(jiān)控作用。在一個完整的嵌入式機系統(tǒng)或單片機最小系統(tǒng)中通常都有看門狗定時器。而且一般集成在處理芯片中,看門狗實際上就是一個定時器,只是它在期滿后將自動引起系統(tǒng)復位。2、S3C44B0看門狗的控制S3C44B0的看門狗定時器有兩個功能:1)為常規(guī)定時器使用,而且可以引發(fā)中斷;2)為看門狗定時器使用,期滿時,它可以產(chǎn)生128個時鐘周期的復位信號。下圖是S3C44B0看門狗的示意圖。輸入時鐘為MCLK(該時鐘頻率等于系統(tǒng)的主頻),它經(jīng)過兩級分頻,最后將分頻后的時鐘作為該定時器的輸入時鐘,當計數(shù)器期滿后可以產(chǎn)生中斷或者復位信號。

S3C44B0看門狗電路示意圖看門狗定時器計數(shù)值的計算公式如下:t_watchdog=1/(PCLK/(Prescalervalue+1)/Division_factor)看門狗的定時周期:T=WTCNT*t_watchdog看門狗定時器相關(guān)寄存器如下:控制寄存器(WTCON)通過該寄存器,可以使能/禁止看門狗、選擇輸入時鐘源、使能/關(guān)閉中斷、使能/關(guān)閉輸出。該寄存器的地址以及各控制位的定義如下:控制寄存器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數(shù)據(jù)寄存器(WTDAT)該數(shù)據(jù)寄存器用于設(shè)置看門狗定時器的超時值。在初始的操作中該值不會自動加載到定時器中,首次定時器超時值位期初始值0X8000,以后該寄存器的值會被自動加載到WTCNT寄存器中。一般時該定時器工作在通用定時器模式下時使用。數(shù)據(jù)寄存器RegisterAddressR/WDescriptionResetValueWTDAT0x01D30004R/WWatchdogtinierdataRegister0x8000WTDATBitDescriptionInitialStateCountreloadvalue[15:0]Watchdogtimercountvalueforreload.0x8000計數(shù)器寄存器(WTCNT)看門狗的定時器的計數(shù)器,它的值表示該寄存器的當前計數(shù)值,即到下一次期滿還需要經(jīng)歷的時鐘數(shù),當該定時器工作在看門狗模式時使用該寄存器,每次期滿前需要重新設(shè)置其值,以防止發(fā)生復位。計數(shù)器寄存器RegisterAddressR/WDescriptionResetValueWTCNT0x01D30008R/WWatchdogtimercountRegister0x8000WTCNTBitDescriptionInitialStateCountvalue[15:0]Thecurrentcountvalueofthewatclidogtimer0x80003、程序解析1)使能WATCHDOG的代碼rWATCNT=0X1000;/*設(shè)置看門狗初始值*/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設(shè)置為0x1000,其超時時間為t=0x1000/(60M/(255+1)/128)^2秒4)喂狗使用程序定期的設(shè)置WTCNT寄存器,俗稱''喂狗〃,繼續(xù)修改上一次實驗的程序,在TICK中斷中每秒重置一次WDTCNT的值(使用同一個值0X1000),檢查是否有復位發(fā)生if(tick_index%1==0)rWATCNT=0X1000;/*重新設(shè)置看門狗時間值*/5)在TICK中斷中每3秒重置一次WDTCNT的值(使用同一個值0X1000),檢查是否有復位發(fā)生if(tick_index%3==0)rWATCNT=0X1000;/*重新設(shè)置看門狗時間值*/六、實驗步驟1、仔細閱讀實驗說明部分,熟悉WAT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論