" />
watchdog即Linux看門狗,是一個計算機程序,Linux自帶系統(tǒng),用于監(jiān)視系統(tǒng)的運行。在由單片機構(gòu)成的微型計算機系統(tǒng)中,由于單片機的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運行被打斷,由單片機控制的系統(tǒng)無法繼續(xù)工作,會造成整個系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果。所以出于對單片機運行狀態(tài)進行實時監(jiān)測的考慮,便產(chǎn)生了watchdog,專門用于監(jiān)測單片機程序運行狀態(tài)的芯片。
WatchDog 可以記錄您使用計算機的時間數(shù), 而且當用戶在指定時間內(nèi)沒有繼續(xù)使用計算機的時候, WatchDog 可以關(guān)機、重啟動或顯示登錄菜單。
可以監(jiān)視誰連接或斷開國際互連網(wǎng)連接,玩游戲,收發(fā)e-mail等等..提供聯(lián)機監(jiān)聽局域網(wǎng)上任何工作站。觀察工作站桌面,可以隱藏或全屏顯示。
1.看門狗定時器T0的設(shè)置。在初始化程序塊中設(shè)置T0的工作方式,并開啟中斷和計數(shù)功能。系統(tǒng)Fosc=12 MHz,T0為16位計數(shù)器,最大計數(shù)值為(2的16次方)-1=65 535,T0輸入計數(shù)頻率是.Fosc/12,溢出周期為(65 535+1)/1=65 536(μs)。
2.計算主控程序循環(huán)一次的耗時。考慮系統(tǒng)各功能模塊及其循環(huán)次數(shù),本系統(tǒng)主控制程序的運行時間約為16.6 ms。系統(tǒng)設(shè)置"看門狗"定時器T0定時30 ms(T0的初值為65 536-30 000=35 536)。主控程序的每次循環(huán)都將刷新T0的初值。如程序進入"死循環(huán)"而T0的初值在30 ms內(nèi)未被刷新,這時"看門狗"定時器T0將溢出并申請中斷。
3.設(shè)計T0溢出所對應(yīng)的中斷服務(wù)程序。此子程序只須一條指令,即在T0對應(yīng)的中斷向量地址(000BH)寫入"無條件轉(zhuǎn)移"命令,把計算機拖回整個程序的第一行,對單片機重新進行初始化并獲得正確的執(zhí)行順序。
大多數(shù)51 系列單片機都有看門狗,當看門狗沒有被定時清零時,將引起復(fù)位。這可防止程序跑飛。設(shè)計者必須清楚看門狗的溢出時間以決定在合適的時候,清看門狗。清看門狗也不能太過頻繁否則會造成資源浪費。程序正常運行時,軟件每隔一定的時間(小于定時器的溢出周期)給定時器置數(shù),即可預(yù)防溢出中斷而引起的誤復(fù)位。