看門狗的工作原理、應(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ī)。看門狗的作用就是防止程序發(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)
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 中微公司成功從美國國防部中國軍事企業(yè)清單中移除
- 華邦電子白皮書:滿足歐盟無線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
- 準(zhǔn) Z 源逆變器的設(shè)計(jì)
- 第12講:三菱電機(jī)高壓SiC芯片技術(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
熱門搜索
單向可控硅
刀開關(guān)
等離子顯示屏
低頻電感
低通濾波器
低音炮電路
滌綸電容
點(diǎn)膠設(shè)備
電池
電池管理系統(tǒng)
電磁蜂鳴器
電磁兼容
電磁爐危害
電動(dòng)車
電動(dòng)工具
電動(dòng)汽車
電感
電工電路
電機(jī)控制
電解電容
電纜連接器
電力電子
電力繼電器
電力線通信
電流保險(xiǎn)絲
電流表
電流傳感器
電流互感器
電路保護(hù)
電路圖