
看門狗的工作原理、應(yīng)用和設(shè)計思路
發(fā)布時間:2019-11-15 責(zé)任編輯:wenwei
【導(dǎo)讀】看門狗(watchdog timer)是一個定時器電路。一般有一個輸入叫喂狗,一個輸出到MCU的RST端。MCU正常工作的時候,每隔一端時間輸出一個信號到喂狗端,給WDT清零。如果超過規(guī)定的時間不喂狗(一般在程序跑飛時),WDT定時超過,就會給出一個復(fù)位信號到MCU,使MCU復(fù)位,防止MCU死機(jī)。看門狗的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。

工作原理:在系統(tǒng)運(yùn)行以后也就啟動了看門狗的計數(shù)器,看門狗就開始自動計數(shù),如果到了一定的時間還不去清看門狗,那么看門狗計數(shù)器就會溢出從而引起看門狗中斷,造成系統(tǒng)復(fù)位。所以在使用有看門狗的芯片時要注意清看門狗。
硬件看門狗是利用一個定時器來監(jiān)控主程序的運(yùn)行,也就是說在主程序的運(yùn)行過程中,要在定時時間到之前對定時器進(jìn)行復(fù)位。如果出現(xiàn)死循環(huán)或者說PC指針回不來,那么定時時間到了后就會使單片機(jī)復(fù)位。
軟件看門狗技術(shù)的原理也是類似的,只不過是用軟件的方法實(shí)現(xiàn)。還是以51系列為例,在51單片機(jī)中有兩個定時器,用來對主程序的運(yùn)行進(jìn)行監(jiān)控。我們可以對T0設(shè)定一定的定時時間,當(dāng)產(chǎn)生定時中斷的時候?qū)σ粋€變量進(jìn)行賦值,而這個變量在主程序運(yùn)行的開始已經(jīng)有了一個初值。這里設(shè)定的定時值要小于主程序的運(yùn)行時間,然后在主程序的尾部對變量的值進(jìn)行判斷。如果值發(fā)生了預(yù)期的變化,就說明T0中斷正常;如果沒有發(fā)生變化則使程序復(fù)位。
T1用來監(jiān)控主程序的運(yùn)行。我們給T1設(shè)定一定的定時時間,在主程序中對其進(jìn)行復(fù)位。如果不能在一定的時間里對其進(jìn)行復(fù)位,T1的定時中斷就會使單片機(jī)復(fù)位。在這里T1的定時時間的設(shè)置要大于主程序的運(yùn)行時間,給主程序留有一定的的裕量。而T1的中斷正常與否則是由T0定時中斷子程序來監(jiān)視。這樣就構(gòu)成了一個循環(huán):T0監(jiān)視T1、T1監(jiān)視主程序、主程序又監(jiān)視T0,從而保證系統(tǒng)穩(wěn)定運(yùn)行。
51系列有專門的看門狗定時器,對系統(tǒng)頻率進(jìn)行分頻計數(shù)。定時器溢出時,將引起復(fù)位。看門狗可設(shè)定溢出率,也可單獨(dú)用來作為定時器使用。
C8051Fxxx單片機(jī)內(nèi)部也有一個21位的使用系統(tǒng)時鐘的定時器,該定時器檢測對其控制寄存器的兩次特定寫操作的時間間隔。如果這個時間間隔超過了編程定義的極限值,將產(chǎn)生一個WDT復(fù)位。
看門狗使用注意:大多數(shù)51系列單片機(jī)都有看門狗。當(dāng)看門狗沒有被定時清零時,將引起復(fù)位,這可防止程序跑飛。設(shè)計者必須清楚看門狗的溢出時間,來決定在合適的時候清看門狗。清看門狗也不能太過頻繁,否則會造成資源浪費(fèi)。程序正常運(yùn)行時,軟件每隔一定的時間(小于定時器的溢出周期)給定時器置數(shù),即可預(yù)防溢出中斷而引起的誤復(fù)位。
看門狗運(yùn)用:看門狗可用來恢復(fù)系統(tǒng)的正常運(yùn)行,同時也是一種有效的監(jiān)視管理器(具有鎖定光驅(qū)、鎖定任何指定程序的作用,可用在家庭中防止小孩無節(jié)制地玩游戲、上網(wǎng)、看錄像等,具有很好的應(yīng)用價值)。
系統(tǒng)軟件“看門狗”的設(shè)計思路:
1、看門狗定時器T0的設(shè)置
在初始化程序塊中設(shè)置T0的工作方式,并開啟中斷和計數(shù)功能。系統(tǒng)Fosc=12MHz,T0為16位計數(shù)器,最大計數(shù)值為(2的16次方)-1=65535,T0輸入計數(shù)頻率是Fosc/12,溢出周期為(65535+1)/1=65536(μs)。
2、計算主控程序循環(huán)一次的耗時
考慮系統(tǒng)各功能模塊及其循環(huán)次數(shù),本系統(tǒng)主控制程序的運(yùn)行時間約為16.6ms。系統(tǒng)設(shè)置“看門狗”定時器T0定時30ms(T0的初值為65536-30000=35536)。主控程序的每次循環(huán)都將刷新T0的初值。如程序進(jìn)入“死循環(huán)”,而T0的初值在30ms內(nèi)未被刷新,這時“看門狗”定時器T0將溢出并申請中斷。
3、設(shè)計T0溢出所對應(yīng)的中斷服務(wù)程序
此子程序只須一條指令,即在T0對應(yīng)的中斷向量地址(000BH)寫入“無條件轉(zhuǎn)移”命令,把計算機(jī)拖回整個程序的第一行,對單片機(jī)重新進(jìn)行初始化并獲得正確的執(zhí)行順序。
推薦閱讀:
用有源鉗位正激轉(zhuǎn)換器閉環(huán)
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運(yùn)行!氮矽科技發(fā)布集成驅(qū)動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內(nèi)阻、超低失真4PST模擬開關(guān)
- 一“芯”雙電!圣邦微電子發(fā)布雙輸出電源芯片,簡化AFE與音頻設(shè)計
- 一機(jī)適配萬端:金升陽推出1200W可編程電源,賦能高端裝備制造
技術(shù)文章更多>>
- 海信在2026世界杯賽場展示標(biāo)語"有愛,科技也動情"
- TITAN Haptics啟動限時觸覺評估計劃, 助力硬件團(tuán)隊定位并優(yōu)化觸覺性能
- 芯科科技借助由200個節(jié)點(diǎn)組成的Matter-over-Thread驗證網(wǎng)絡(luò) 來推動Matter的大規(guī)模部署
- 對話TI BMS總經(jīng)理Wenjia Liu:EIS如何增強(qiáng)電池的感知能力
- 英特爾攜手火山引擎:奔赴產(chǎn)業(yè)實(shí)景,讓AI落地實(shí)處
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
光電二極管
光電開關(guān)
光電模塊
光電耦合器
光電器件
光電顯示
光繼電器
光控可控硅
光敏電阻
光敏器件
光敏三極管
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國防航空
過流保護(hù)器
過熱保護(hù)
過壓保護(hù)
焊接設(shè)備
焊錫焊膏
恒溫振蕩器
恒壓變壓器
恒壓穩(wěn)壓器
紅外收發(fā)器
紅外線加熱
厚膜電阻
互連技術(shù)
滑動分壓器
滑動開關(guān)


