版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
項目十
看門狗的應(yīng)用目錄項目導(dǎo)入項目目標項目分析知識儲備01030204項目實施拓展訓(xùn)練0506項目導(dǎo)入01項目導(dǎo)入項目導(dǎo)入單片機的看門狗是一種硬件定時器,用于檢測系統(tǒng)是否處于假死狀態(tài),其作用非常重要。在溫度控制系統(tǒng)中,如果異常發(fā)生,可能會導(dǎo)致系統(tǒng)遇到停機或其它嚴重問題。這時通過使用看門狗可以避免這些問題的出現(xiàn)。當(dāng)系統(tǒng)正常工作時,程序會定時重置看門狗。如果程序在某些原因下停止運行,看門狗會自動重置系統(tǒng)并重新啟動。這將確保系統(tǒng)在異常情況下可以安全地退出,并在恢復(fù)正常運行之前進行必要的維護。在無人機控制器中,可以通過使用看門狗來確保無人機在遙控器連接斷開時協(xié)商停止工作,以防止無人機凌空失控。同樣,在一個遙控器控制的大型機器人上,使用看門狗來確保機器人在失去控制信號時停止和旋轉(zhuǎn),保留其當(dāng)前位置。在安防應(yīng)用中,警報系統(tǒng)可以使用看門狗來檢測是否失去電源或發(fā)生任何異常情況。如果某些異常情況發(fā)生,則看門狗可以向警報系統(tǒng)管理員發(fā)送通知,并啟動一個后備電源以確保系統(tǒng)可以在緊急情況下繼續(xù)運行。在醫(yī)療設(shè)備中故障的出現(xiàn)可能讓患者或操作者面臨生命威脅,確保設(shè)備的安全和可靠性非常重要。因而許多醫(yī)療設(shè)備都使用看門狗作為一種保護手段。例如,當(dāng)心臟起搏器的系統(tǒng)故障時,看門狗可以自動關(guān)閉其電源,以保護臟器。同樣,醫(yī)學(xué)成像設(shè)備也可以在檢測到任何異常時停止,并發(fā)出相應(yīng)的警報。本項目設(shè)計了一個看門狗實驗,比較了有喂狗和沒有喂狗兩種情況下,CC2530單片機的運行情況。通過實驗可以觀察到,沒有喂狗動作,看門狗產(chǎn)生溢出,從而導(dǎo)致單片機發(fā)生重啟。項目導(dǎo)入項目分析02項目分析:
在系統(tǒng)運行過程中,如果看門狗定時器未被重置,則會定期產(chǎn)生看門狗定時器中斷事件,如果系統(tǒng)程序未及時重置看門狗定時器,系統(tǒng)會被認為處于假死狀態(tài),并執(zhí)行看門狗定時器中斷處理函數(shù)??撮T狗定時器可幫助開發(fā)者提高系統(tǒng)的可靠性和穩(wěn)定性。開發(fā)者可通過CC2530的軟件編程接口,配置看門狗定時器的時間間隔和中斷處理函數(shù)等。在系統(tǒng)正常運行中,需要周期性地重置看門狗定時器,以保證系統(tǒng)正常運行并避免誤判為假死狀態(tài)。項目要求:
通電后,喂狗函數(shù)正常工作時,單片機正常工作,具體表現(xiàn)為兩個LED燈預(yù)期工作;將喂狗函數(shù)屏蔽掉,通過觀察兩個LED周期性閃爍,確認單片機正在反復(fù)重啟。1.熟練掌握CC2530單片機看門狗定時器的使用2.熟悉看門狗的特性和作用項目目標03
掌握CC2530看門狗定時器相關(guān)寄存器的配置
學(xué)會CC2530的喂狗操作知識儲備04知識儲備CC2530的看門狗(WatchDogTimer,WDT)是一種專門用于監(jiān)測單片機程序運行狀態(tài)的功能模塊。它實際上是一個計數(shù)器,單片機上電時會給看門狗一個較大的數(shù)值,程序開始運行后,看門狗從該數(shù)值開始倒計數(shù)。如果程序運行正常,每隔一段時間CPU應(yīng)發(fā)出指令讓看門狗復(fù)位,然后看門狗重新開始倒計數(shù),這個動作稱為喂狗。如果看門狗倒計數(shù)期間沒有產(chǎn)生喂狗動作,而是初始值一直減到0,單片機則認為程序沒有正常工作,將強制整個系統(tǒng)復(fù)位一、看門狗定時器
MCU在使用過程中可能由于某種原因產(chǎn)生死機等故障,在沒有監(jiān)視器的情況下人們很難發(fā)現(xiàn)問題,看門狗就是一種常用的恢復(fù)方法。啟用看門狗定時器(WDT)時,WDT開始計數(shù),軟件設(shè)計中定時清除WDT的數(shù)值,當(dāng)軟件在一定時間間隔內(nèi)不能清除看門狗定時器WDT時,WDT會自動復(fù)位系統(tǒng)??撮T狗可用于受到電氣噪音、電源故障、靜電放電等影響的應(yīng)用,或需要高可靠性的環(huán)境??撮T狗定時器的特性如下:1、四個可選的定時器間隔2、看門狗模式3、定時器模式4、在定時器模式下產(chǎn)生中斷請求CC2530單片機的看門狗喂狗模式有兩種,一種是軟件看門狗,它可以產(chǎn)生8位定時器的溢出中斷,用來模擬看門狗功能;另一種是外部看門狗,它可以把外部的看門狗的時鐘源送到內(nèi)部的定時器CLK1用來喂狗,也可以把CLK1的時鐘源輸出到外部看門狗芯片用來喂狗。本項目采用定時器軟件喂狗。WDT可以配置為一個看門狗定時器或一個通用的定時器。WDT模塊的運行由WDCTL寄存器控制??撮T狗定時器包括一個15位計數(shù)器,它的頻率由32kHz時鐘源規(guī)定。注意用戶不能獲得15位計數(shù)器的內(nèi)容。在所有供電模式下,15位計數(shù)器的內(nèi)容保留,且當(dāng)重新進入主動模式,看門狗定時器繼續(xù)計數(shù)。
在系統(tǒng)復(fù)位之后,看門狗定時器就被禁用。要設(shè)置WDT在看門狗模式,必須設(shè)置WDCTL.MODE[1:0]位為10。然后看門狗定時器的計數(shù)器從0開始遞增。在看門狗模式下,一旦定時器使能,就不可以禁用定時器,因此,如果WDT位已經(jīng)運行在看門狗模式下,再往WDCTL.MODE[1:0]寫入00或10就不起作用了。
WDT運行在一個頻率為32.768kHz(當(dāng)使用32kHzXOSC)的看門狗定時器時鐘上。這個時鐘頻率的超時期限等于1.9ms,15.625ms,0.25s和1s,分別對應(yīng)64,512,8192和32768的計數(shù)值設(shè)置。如果計數(shù)器達到選定定時器的間隔值,看門狗定時器就為系統(tǒng)產(chǎn)生一個復(fù)位信號。如果在計數(shù)器達到選定定時器的間隔值之前,執(zhí)行了一個看門狗清除序列,計數(shù)器就復(fù)位到0,并繼續(xù)遞增??撮T狗清除的序列包括在一個看門狗時鐘周期內(nèi),寫入0xA到WDCTL.CLR[3:0],然后寫入0x5到同一個寄存器位。如果這個序列沒有在看門狗周期結(jié)束之前執(zhí)行完畢,看門狗定時器就為系統(tǒng)產(chǎn)生一個復(fù)位信號。
當(dāng)看門狗模式下,WDT使能,就不能通過寫入WDCTL.MODE[1:0]位改變這個模式,且定時器間隔值也不能改變。
在看門狗模式下,WDT不會產(chǎn)生一個中斷請求。二、喂狗操作三、項目中用到的SFR本項目用到的SFR寄存器如表10-1所示。位名稱復(fù)位R/W描述7:4CLR[3:0]0000R0/W清除定時器。在1個看門狗時鐘周期內(nèi)連續(xù)寫入0x0A、0x05寫到這些位,定時器被清除。3:2MODE[1:0]00R/W模式選擇。式。當(dāng)處于定時器模式,設(shè)置這些位為IDLE將停止定時器。00:IDLE01:未使用10:看門狗模式11:定時器模式1:0INT[1:0]00R/W定時器時間選擇。定時器工作時鐘32kHz00:定時周期×32,768(1s)01:定時周期×8192(0.25s)10:定時周期×512(15.625ms)11:定時周期×64(1.9ms)表10-1WDCTL(0xC9)–看門狗定時
器控制項目實施05一、準備設(shè)備和資源
項目實施前必須先準備好相應(yīng)的設(shè)備和資源,見表10-2。序號設(shè)備/資源名稱數(shù)量單位是否準備到位(√)1CC2530模塊1個
2CCDebugger仿真器(帶下載線)1個
3MiniUSB供電線或5號電池1根/個表10-2設(shè)備和資源清單二、查閱實驗?zāi)K原理圖
看門狗定時器是CC2530單片機的內(nèi)置模塊,任意選擇
帶CC2530單片機的開發(fā)板模塊均可完成看門狗定時器實驗。由于實驗過程需要通過LED燈將單片機正常工作和看門狗復(fù)位時的狀態(tài)區(qū)分出來,因此選擇帶LED電路的實驗?zāi)K。LED電路如圖10-1所示。
圖10-1LED電路圖三、實施過程連接設(shè)備程序設(shè)計編寫代碼編譯運行1.連接設(shè)備
將CCDebugger仿真器的接口與CC2530實驗?zāi)K(實驗?zāi)K使用“求助按鈕V1.0”)相連,仿真器另一端用USB數(shù)據(jù)線連接到PC上,如圖10-2所示。
圖10-2實驗接線圖2.程序設(shè)計1)創(chuàng)建工程。
打開IAR新建一個CProject工程(具體步驟請參照項目二)2)實驗流程圖如圖10-3所示。
圖10-3程序流程圖(1)引用相應(yīng)頭文件#include<ioCC2530.h>(2)對IO口進行初始化:/*****************************************************函數(shù)名稱:IO_Init功能:完成IO口初始化voidIO_Init(void){P1DIR|=0x03;//P1_0,P1_1端口,定義為輸出,對應(yīng)LED1,LED2P1DIR|=0x04;//P1_2端口定義為輸出,對應(yīng)蜂鳴器LED1=1;//初始狀態(tài),熄滅LED1燈LED2=1;//初始狀態(tài),熄滅LED2燈Beeper=0;//關(guān)閉蜂鳴器3)編寫代碼。完整的程序源代碼,見課程資源。主要功能代碼如下:(1)引用相應(yīng)頭文件#include<ioCC2530.h>(2)對IO口進行初始化:/*****************************************************函數(shù)名稱:IO_Init功能:完成IO口初始化voidIO_Init(void){P1DIR|=0x03;//P1_0,P1_1端口,定義為輸出,對應(yīng)LED1,LED2P1DIR|=0x04;//P1_2端口定義為輸出,對應(yīng)蜂鳴器LED1=1;//初始狀態(tài),熄滅LED1燈LED2=1;//初始狀態(tài),熄滅LED2燈Beeper=0;//關(guān)閉蜂鳴器}(3)對看門狗進行初始化:/*****************************************************函數(shù)名稱:Init_Watchdog功能:完看門狗的初始化voidInit_Watchdog(void){
WDCTL=0x00;//打開IDLE才能設(shè)置看門狗
WDCTL|=0x08;//定時器間隔選擇,間隔一秒}(4)清除看門狗定時器,即進行喂狗:/*****************************************************函數(shù)名稱:FeedDog功能:清除定時器,完成喂狗動作voidFeedDog(void){
WDCTL=0xa0;//清除定時器。當(dāng)0xA跟隨0x5寫到這些位,定時器被清除WDCTL=0x50;
LED2=0;//系統(tǒng)不復(fù)位綠燈長亮}(5)主函數(shù)通過循環(huán)讓1個LED燈閃爍,另一個LED常亮,以觀察看門狗是否生效:/*****************************************************函數(shù)名稱:main功能:喂狗函數(shù)工作則程序正常運行,否則不斷復(fù)位voidmain(void){
IO_Init();//初始化LED燈控制IO口Init_Watchdog();while(1){
LED1=~LED1;//僅指示作用。Delayms(300);LED2=0;
FeedDog();//喂狗系統(tǒng)將不再主動復(fù)位,LED1閃爍,LED2長亮
//注釋FeedDog函數(shù)時系統(tǒng)不斷復(fù)位,LED2燈閃爍}}點擊工具欄中的“Compile”編譯按鈕,保存工作空間,當(dāng)下方信息框提示“0error(s)”時,說明代碼正確,再點擊“DownloadandDebug”按鈕就可以把生成的Hex文件燒寫進CC2530中,如圖10-4所示。4)編譯運行。項目成果06項目成果按仿真器或者CC2530實驗?zāi)K上的Reset復(fù)位鍵,啟動之后,D5閃爍,D6保持常亮,嘗試將FeetDog()注釋掉,你將會看到D5、D6閃爍,原因是沒有清除WDT,導(dǎo)致WDT溢出,使得CPU重啟。燒錄后板卡的運行情況如圖10-5。圖10-5燒錄成功效果圖項目成果按仿真器或者CC2530實驗?zāi)K上的Reset復(fù)位鍵,啟動之后,D5閃爍,D6保持常亮,嘗試將FeetDog()注釋掉,你將會看到D5、D6閃爍,原因是沒有清除WDT,導(dǎo)致WDT溢出,使得CPU重啟。燒錄后板卡的運行情況如圖10-5。
圖10-5燒錄成功效果圖拓展實訓(xùn)07拓展訓(xùn)練一、訓(xùn)練描述本實驗是對CC2530看門狗定時器的應(yīng)用,喂
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025租房協(xié)議書合同簡易版
- 洛陽文化旅游職業(yè)學(xué)院《航空攝影》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度商鋪物業(yè)管理及環(huán)境維護服務(wù)協(xié)議3篇
- 2024全新專業(yè)醫(yī)療護理機構(gòu)護工雇傭合同樣本下載3篇
- 退休設(shè)計師返聘協(xié)議范例
- 動物園水地暖施工合同
- 2024年度高端智能家居紗窗定制服務(wù)合同3篇
- 公園管理處聘用合同樣本
- 聯(lián)營項目管理質(zhì)量保證
- 化肥廠地磅租賃協(xié)議
- 中國標準文獻分類
- 剪叉式升降工作平臺升降車安全管理
- 正念減壓療法PPT培訓(xùn)課件
- 地鐵礦山法隧道施工技術(shù)
- 國家開放大學(xué)實驗學(xué)院生活中的法律第一單元測驗答案
- 平安個人信用貸款申請表
- 六年級語文課外閱讀(共20篇-含答案)
- 水利工程整體規(guī)劃及資源配置計劃
- 液氨使用與儲存安全技術(shù)規(guī)范
- 烤煙煙葉等級圖庫課件
- 純電動汽車整車控制器(VCU)設(shè)計方案
評論
0/150
提交評論