看門狗,又叫watchdog timer,從本質(zhì)上來說就是一個定時器電路,一般有一個輸入和一個輸出,其中的輸入叫做喂狗,輸出一般連接到另外一個部分的復(fù)位端,另外一個部分就是所要處理的部分,暫且稱之為MCU。
在MCU正常工作的時候,每隔一段時間輸出一個信號到喂狗端,給看門狗電路清零,如果在超過規(guī)定的時間不喂狗,WDT定時超時,就會回給一個復(fù)位信號到達(dá)MCU,使MCU復(fù)位,防止MCU死機(jī)??偟膩碚f,看門狗電路的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。
WDT的基本工作原理如下:在整個系統(tǒng)運行以后就啟動了看門狗的計數(shù)器,此時看門狗就開始自動計時,如果到達(dá)了一定的時間還不去給它清零,看門狗計數(shù)器就會溢出從而引起看門狗中斷,造成系統(tǒng)的復(fù)位。
硬件看門狗就是利用了一個定時電路,來監(jiān)控主程序的運行。在主程序的運行中,我們要在定時時間到達(dá)之前對定時器進(jìn)行復(fù)位。
看門狗的作用就是防止程序無限制的運行,造成死循環(huán)。它可以用在接收和發(fā)送數(shù)據(jù)時對接受和發(fā)送超時的處理,起到保護(hù)數(shù)據(jù),保護(hù)電路的作用。
擴(kuò)展閱讀:看門狗--喂狗