看門狗的工作原理、應(yīng)用和設(shè)計(jì)思路
發(fā)布時(shí)間:2019-11-15 責(zé)任編輯:wenwei
【導(dǎo)讀】看門狗(watchdog timer)是一個(gè)定時(shí)器電路。一般有一個(gè)輸入叫喂狗,一個(gè)輸出到MCU的RST端。MCU正常工作的時(shí)候,每隔一端時(shí)間輸出一個(gè)信號到喂狗端,給WDT清零。如果超過規(guī)定的時(shí)間不喂狗(一般在程序跑飛時(shí)),WDT定時(shí)超過,就會給出一個(gè)復(fù)位信號到MCU,使MCU復(fù)位,防止MCU死機(jī)??撮T狗的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。
工作原理:在系統(tǒng)運(yùn)行以后也就啟動(dòng)了看門狗的計(jì)數(shù)器,看門狗就開始自動(dòng)計(jì)數(shù),如果到了一定的時(shí)間還不去清看門狗,那么看門狗計(jì)數(shù)器就會溢出從而引起看門狗中斷,造成系統(tǒng)復(fù)位。所以在使用有看門狗的芯片時(shí)要注意清看門狗。
硬件看門狗是利用一個(gè)定時(shí)器來監(jiān)控主程序的運(yùn)行,也就是說在主程序的運(yùn)行過程中,要在定時(shí)時(shí)間到之前對定時(shí)器進(jìn)行復(fù)位。如果出現(xiàn)死循環(huán)或者說PC指針回不來,那么定時(shí)時(shí)間到了后就會使單片機(jī)復(fù)位。
軟件看門狗技術(shù)的原理也是類似的,只不過是用軟件的方法實(shí)現(xiàn)。還是以51系列為例,在51單片機(jī)中有兩個(gè)定時(shí)器,用來對主程序的運(yùn)行進(jìn)行監(jiān)控。我們可以對T0設(shè)定一定的定時(shí)時(shí)間,當(dāng)產(chǎn)生定時(shí)中斷的時(shí)候?qū)σ粋€(gè)變量進(jìn)行賦值,而這個(gè)變量在主程序運(yùn)行的開始已經(jīng)有了一個(gè)初值。這里設(shè)定的定時(shí)值要小于主程序的運(yùn)行時(shí)間,然后在主程序的尾部對變量的值進(jìn)行判斷。如果值發(fā)生了預(yù)期的變化,就說明T0中斷正常;如果沒有發(fā)生變化則使程序復(fù)位。
T1用來監(jiān)控主程序的運(yùn)行。我們給T1設(shè)定一定的定時(shí)時(shí)間,在主程序中對其進(jìn)行復(fù)位。如果不能在一定的時(shí)間里對其進(jìn)行復(fù)位,T1的定時(shí)中斷就會使單片機(jī)復(fù)位。在這里T1的定時(shí)時(shí)間的設(shè)置要大于主程序的運(yùn)行時(shí)間,給主程序留有一定的的裕量。而T1的中斷正常與否則是由T0定時(shí)中斷子程序來監(jiān)視。這樣就構(gòu)成了一個(gè)循環(huán):T0監(jiān)視T1、T1監(jiān)視主程序、主程序又監(jiān)視T0,從而保證系統(tǒng)穩(wěn)定運(yùn)行。
51系列有專門的看門狗定時(shí)器,對系統(tǒng)頻率進(jìn)行分頻計(jì)數(shù)。定時(shí)器溢出時(shí),將引起復(fù)位??撮T狗可設(shè)定溢出率,也可單獨(dú)用來作為定時(shí)器使用。
C8051Fxxx單片機(jī)內(nèi)部也有一個(gè)21位的使用系統(tǒng)時(shí)鐘的定時(shí)器,該定時(shí)器檢測對其控制寄存器的兩次特定寫操作的時(shí)間間隔。如果這個(gè)時(shí)間間隔超過了編程定義的極限值,將產(chǎn)生一個(gè)WDT復(fù)位。
看門狗使用注意:大多數(shù)51系列單片機(jī)都有看門狗。當(dāng)看門狗沒有被定時(shí)清零時(shí),將引起復(fù)位,這可防止程序跑飛。設(shè)計(jì)者必須清楚看門狗的溢出時(shí)間,來決定在合適的時(shí)候清看門狗。清看門狗也不能太過頻繁,否則會造成資源浪費(fèi)。程序正常運(yùn)行時(shí),軟件每隔一定的時(shí)間(小于定時(shí)器的溢出周期)給定時(shí)器置數(shù),即可預(yù)防溢出中斷而引起的誤復(fù)位。
看門狗運(yùn)用:看門狗可用來恢復(fù)系統(tǒng)的正常運(yùn)行,同時(shí)也是一種有效的監(jiān)視管理器(具有鎖定光驅(qū)、鎖定任何指定程序的作用,可用在家庭中防止小孩無節(jié)制地玩游戲、上網(wǎng)、看錄像等,具有很好的應(yīng)用價(jià)值)。
系統(tǒng)軟件“看門狗”的設(shè)計(jì)思路:
1、看門狗定時(shí)器T0的設(shè)置
在初始化程序塊中設(shè)置T0的工作方式,并開啟中斷和計(jì)數(shù)功能。系統(tǒng)Fosc=12MHz,T0為16位計(jì)數(shù)器,最大計(jì)數(shù)值為(2的16次方)-1=65535,T0輸入計(jì)數(shù)頻率是Fosc/12,溢出周期為(65535+1)/1=65536(μs)。
2、計(jì)算主控程序循環(huán)一次的耗時(shí)
考慮系統(tǒng)各功能模塊及其循環(huán)次數(shù),本系統(tǒng)主控制程序的運(yùn)行時(shí)間約為16.6ms。系統(tǒng)設(shè)置“看門狗”定時(shí)器T0定時(shí)30ms(T0的初值為65536-30000=35536)。主控程序的每次循環(huán)都將刷新T0的初值。如程序進(jìn)入“死循環(huán)”,而T0的初值在30ms內(nèi)未被刷新,這時(shí)“看門狗”定時(shí)器T0將溢出并申請中斷。
3、設(shè)計(jì)T0溢出所對應(yīng)的中斷服務(wù)程序
此子程序只須一條指令,即在T0對應(yīng)的中斷向量地址(000BH)寫入“無條件轉(zhuǎn)移”命令,把計(jì)算機(jī)拖回整個(gè)程序的第一行,對單片機(jī)重新進(jìn)行初始化并獲得正確的執(zhí)行順序。
推薦閱讀:
用有源鉗位正激轉(zhuǎn)換器閉環(huán)
特別推薦
- 兆易創(chuàng)新GD32F30x STL軟件測試庫獲得德國萊茵TüV IEC 61508功能安全認(rèn)證
- 芯科科技第三代無線開發(fā)平臺引領(lǐng)物聯(lián)網(wǎng)發(fā)展
- MSO 4B 示波器為工程師帶來更多臺式功率分析工具
- 艾為電子推出新一代高線性度GNSS低噪聲放大器——AW15745DNR
- 瑞薩發(fā)布四通道主站IC和傳感器信號調(diào)節(jié)器, 以推動(dòng)不斷增長的IO-Link市場
- e絡(luò)盟現(xiàn)貨供應(yīng) Abracon 新推出的 AOTA 系列微型鑄型電感器
- 加賀富儀艾電子推出支持Wi-Fi 6和藍(lán)牙的無線局域網(wǎng)/藍(lán)牙組合模塊
技術(shù)文章更多>>
- 羅德與施瓦茨中標(biāo)中國移動(dòng)RedCap以及Cat1bis一致性測試系統(tǒng)項(xiàng)目
- 【“源”察秋毫系列】柔性可穿戴電子設(shè)備材料的導(dǎo)電測試
- 低功耗藍(lán)牙賦能的太陽鏡為摩托車手提供免分心導(dǎo)航體驗(yàn)
- 讓汽車LED照明無死角,LED驅(qū)動(dòng)的全面進(jìn)化
- 開關(guān)模式電源問題分析及其糾正措施:晶體管時(shí)序和自舉電容問題
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
SPANSION
SRAM
SSD
ST
ST-ERICSSON
Sunlord
SynQor
s端子線
Taiyo Yuden
TDK-EPC
TD-SCDMA功放
TD-SCDMA基帶
TE
Tektronix
Thunderbolt
TI
TOREX
TTI
TVS
UPS電源
USB3.0
USB 3.0主控芯片
USB傳輸速度
usb存儲器
USB連接器
VGA連接器
Vishay
WCDMA功放
WCDMA基帶
Wi-Fi