看門狗(WDT)是壹個定時器,開啟看門狗定時器之後(比如定時200ms),在單片機程序中每隔壹定的時間(小於200ms)要“餵狗”壹次,即將看門狗定時器清零。
看門狗分硬件看門狗和軟件看門狗。硬件看門狗是利用壹個定時器電路,其定時輸出連接到電路的復位端,程序在壹定時間範圍內對定時器清零(俗稱“餵狗”),因此程序正常工作時,定時器總不能溢出,也就不能產生復位信號。
如果程序出現故障,不在定時周期內復位看門狗,就使得看門狗定時器溢出產生復位信號並重啟系統。軟件看門狗原理上壹樣,只是將硬件電路上的定時器用處理器的內部定時器代替,這樣可以簡化硬件電路設計,但在可靠性方面不如硬件定時器。
比如系統內部定時器自身發生故障就無法檢測到。當然也有通過雙定時器相互監視,這不僅加大系統開銷,也不能解決全部問題,比如中斷系統故障導致定時器中斷失效。?
擴展資料:
應用:
看門狗電路的應用,使單片機可以在無人狀態下實現連續工作,其工作原理是:看門狗芯片和單片機的壹個I/O引腳相連,該I/O引腳通過程序控制它定時地往看門狗的這個引腳上送入高電平(或低電平),這壹程序語句是分散地放在單片機其他控制語句中間的。
壹旦單片機由於幹擾造成程序跑飛後而陷入某壹程序段進入死循環狀態時,寫看門狗引腳的程序便不能被執行,這個時候,看門狗電路就會由於得不到單片機送來的信號,便在它和單片機復位引腳相連的引腳上送出壹個復位信號。
使單片機發生復位。即程序從程序存儲器的起始位置開始執行,這樣便實現了單片機的自動復位。
百度百科-看門狗