看門狗介紹
看門狗突雪,又叫watchdog timer闪唆,從本質(zhì)上來說就是一個定時器電路碧库,一般有一個輸入和一個輸出柜与,其中的輸入叫做喂狗,輸出一般連接到另外一個部分的復(fù)位端嵌灰,另外一個部分就是所要處理的部分弄匕,暫且稱之為MCU。
在MCU正常工作的時候沽瞭,每隔一段時間輸出一個信號到喂狗端迁匠,給看門狗電路清零,如果在超過規(guī)定的時間不喂狗驹溃,WDT定時超時城丧,就會回給一個復(fù)位信號到達MCU,使MCU復(fù)位豌鹤,防止MCU死機亡哄。總的來說傍药,看門狗電路的作用就是防止程序發(fā)生死循環(huán)磺平,或者說程序跑飛。
WDT的基本工作原理如下:在整個系統(tǒng)運行以后就啟動了看門狗的計數(shù)器拐辽,此時看門狗就開始自動計時拣挪,如果到達了一定的時間還不去給它清零,看門狗計數(shù)器就會溢出從而引起看門狗中斷俱诸,造成系統(tǒng)的復(fù)位菠劝。
硬件和軟件的區(qū)別
硬件看門狗和軟件看門狗。硬件看門狗是利用一個定時器電路睁搭,其定時輸出連接到電路的復(fù)位端赶诊,程序在一定時間范圍內(nèi)對定時器清零(俗稱“喂狗”)笼平,因此程序正常工作時,定時器總不能溢出舔痪,也就不能產(chǎn)生復(fù)位信號寓调。如果程序出現(xiàn)故障,不在定時周期內(nèi)復(fù)位看門狗锄码,就使得看門狗定時器溢出產(chǎn)生復(fù)位信號并重啟系統(tǒng)夺英。軟件看門狗原理上一樣,只是將硬件電路上的定時器用處理器的內(nèi)部定時器代替滋捶,這樣可以簡化硬件電路設(shè)計痛悯,但在可靠性方面不如硬件定時器,比如系統(tǒng)內(nèi)部定時器自身發(fā)生故障就無法檢測到重窟。當(dāng)然也有通過雙定時器相互監(jiān)視载萌,這不僅加大系統(tǒng)開銷,也不能解決全部問題巡扇,比如中斷系統(tǒng)故障導(dǎo)致定時器中斷失效扭仁。
關(guān)鍵總結(jié)
類別 | 關(guān)鍵點 | 優(yōu)點 | 缺點 |
---|---|---|---|
硬件看門狗 | 外部專門定時器電路 | 可靠穩(wěn)定 | 增加成本 |
軟件看門狗 | 內(nèi)部定時器代替 | 簡化電路設(shè)計 | 穩(wěn)定性差 |