看門狗定時器可以集成在單片機(MCU)內(nèi)部,也可以作為單獨的芯片放在外部。看門狗芯片具有集成電路中重要的監(jiān)視功能,使你可以從內(nèi)部和外部監(jiān)視系統(tǒng)的故障,并在發(fā)生故障時采取措施。
看門狗定時器是什么?
簡而言之,看門狗定時器是一種在特定時間段內(nèi)未收到來自處理器的周期性脈沖信號的斷言復位輸出的設備。一種實現(xiàn)方式是通過處理器的數(shù)字信號輸出(GPIO)饋入外部看門狗定時器的看門狗輸入(WDI)。比如EN8F156是具有看門狗定時器功能的芯片。
處理器會定期向看門狗定時器發(fā)送一個脈沖,以指示系統(tǒng)軟件運行正常。如果看門狗定時器未在指定的時間范圍內(nèi)接收到該脈沖(稱為看門狗超時),則看門狗定時器將發(fā)出復位輸出。此重置輸出可用于通知系統(tǒng)處理器已掛起或凍結,或重置處理器本身。圖2說明了在看門狗超時內(nèi)接收到的脈沖以及在看門狗超時后到期后接收到的脈沖。
圖2:標準看門狗定時器的運行機制
看門狗計時器為何如此重要?
看門狗定時器提供了一種警告系統(tǒng)或重置其軟件已凍結或掛起的處理器的方法。盡管沒有人故意設計凍結的軟件,但是優(yōu)秀的系統(tǒng)設計人員無論如何都要為故障做計劃-因為總是為意外做好準備。沒有此監(jiān)視,處理器可能會無限期保持凍結狀態(tài),并導致進一步的系統(tǒng)故障。具有可調(diào)超時間隔的外部看門狗計時器可以在幾毫秒內(nèi)識別出這些軟件死機,并適當?shù)刂刂孟到y(tǒng)或處理器。在嵌入式系統(tǒng)或遠程系統(tǒng)中,手動復位系統(tǒng)不可行甚至無法實現(xiàn),該功能特別必要。
如何在嵌入式系統(tǒng)中實現(xiàn)看門狗定時器功能?
有兩種實現(xiàn)監(jiān)視計時器的主要方法:
1.使用具有集成看門狗功能的處理器。現(xiàn)在許多單片機(MCU)都集成了看門狗功能。這很有價值,因為它非常易于實現(xiàn),并且不需要其他IC。但是,它帶有一個主要警告:集成的看門狗可能無法始終按預期運行,因為導致MCU出現(xiàn)故障的代碼問題還可能無意中禁用了看門狗定時器。同樣,軟件的編寫方式應使內(nèi)部看門狗能夠檢測到任何凍結或掛起。但是,采取額外的步驟以冗余方式監(jiān)視看門狗輸入可以幫助解決代碼中無法預料的錯誤。
2.使用外部看門狗定時器。一些具有看門狗定時器功能的IC芯片(例如EN8P1111或EN8P2712)使你能夠以外部方式監(jiān)視電源電壓和看門狗信號。如果單片機(MCU)的內(nèi)部無法檢測,則外部看門狗定時器將起到監(jiān)測作用。
原則上,看門狗定時器的功能不會過于復雜。但是,它在維護系統(tǒng)可靠性方面的重要性不言而喻。如果無法或難以在故障情況下由人啟動的系統(tǒng)重置,則尤其如此。
以上就是英銳恩單片機開發(fā)工程師分享的有關看門狗定時器的看門狗芯片基礎知識。英銳恩專注單片機應用方案設計與開發(fā),提供8位單片機、16位單片機、32位單片機、運算放大器和模擬開關。