看門狗分硬體看門狗和軟體看門狗。硬體看門狗是利用一個定時器電路,其定時輸出連線到電路的復位端,程式在一定時間範圍內對定時器清零(俗稱“餵狗”),因此程式正常工作時,定時器總不能溢位,也就不能產生復位訊號。如果程式出現故障,不在定時週期內復位看門狗,就使得看門狗定時器溢位產生復位訊號並重啟系統。軟體看門狗原理上一樣,只是將硬體電路上的定時器用處理器的內部定時器代替,這樣可以簡化硬體電路設計,但在可靠性方面不如硬體定時器,比如系統內部定時器自身發生故障就無法檢測到。當然也有透過雙定時器相互監視,這不僅加大系統開銷,也不能解決全部問題,比如中斷系統故障導致定時器中斷失效。 看門狗本身不是用來解決系統出現的問題,在除錯過程中發現的故障應該要查改設計本身的錯誤。加入看門狗目的是對一些程式潛在錯誤和惡劣環境干擾等因素導致系統宕機而在無人干預情況下自動恢復系統正常工作狀態。看門狗也不能完全避免故障造成的損失,畢竟從發現故障到系統復位恢復正常這段時間內怠工。同時一些系統也需要復位前保護現場資料,重啟後恢復現場資料,這可能也需要一筆軟硬體的開銷。
看門狗分硬體看門狗和軟體看門狗。硬體看門狗是利用一個定時器電路,其定時輸出連線到電路的復位端,程式在一定時間範圍內對定時器清零(俗稱“餵狗”),因此程式正常工作時,定時器總不能溢位,也就不能產生復位訊號。如果程式出現故障,不在定時週期內復位看門狗,就使得看門狗定時器溢位產生復位訊號並重啟系統。軟體看門狗原理上一樣,只是將硬體電路上的定時器用處理器的內部定時器代替,這樣可以簡化硬體電路設計,但在可靠性方面不如硬體定時器,比如系統內部定時器自身發生故障就無法檢測到。當然也有透過雙定時器相互監視,這不僅加大系統開銷,也不能解決全部問題,比如中斷系統故障導致定時器中斷失效。 看門狗本身不是用來解決系統出現的問題,在除錯過程中發現的故障應該要查改設計本身的錯誤。加入看門狗目的是對一些程式潛在錯誤和惡劣環境干擾等因素導致系統宕機而在無人干預情況下自動恢復系統正常工作狀態。看門狗也不能完全避免故障造成的損失,畢竟從發現故障到系統復位恢復正常這段時間內怠工。同時一些系統也需要復位前保護現場資料,重啟後恢復現場資料,這可能也需要一筆軟硬體的開銷。