什么是看門狗定時器,以及看門狗定時器的應(yīng)用
看門狗定時器通常被認(rèn)為是不必要的或過多的。然而,將兩者等同起來,會對監(jiān)管機構(gòu)造成極大傷害。,看門狗添加了關(guān)鍵的監(jiān)控功能,允許我們在內(nèi)部和外部監(jiān)控系統(tǒng)故障并在發(fā)生故障時采取行動。
什么是看門狗定時器?
簡單地說,看門狗定時器是一種設(shè)備,如果它在特定時間范圍內(nèi)沒有從處理器接收到周期性脈沖信號,它就會斷言復(fù)位輸出。一種實現(xiàn)方式是通過處理器的數(shù)字信號輸出 (GPIO) 饋入外部看門狗定時器的看門狗輸入 (WDI),如圖 1 所示。TPS3851 是具有集成看門狗定時器的監(jiān)控器。這使得它既可以監(jiān)控微控制器的電源軌,又可以以外部方式監(jiān)控從 MCU 發(fā)出的數(shù)字脈沖。
圖 1:TPS3851提供的看門狗監(jiān)控
處理器周期性地向看門狗定時器發(fā)送一個脈沖,以指示系統(tǒng)軟件運行正常。如果看門狗定時器在指定的時間范圍內(nèi)(稱為看門狗超時)未收到該脈沖,則看門狗定時器將置位復(fù)位輸出。此重置輸出可用于通知系統(tǒng)處理器已掛起或凍結(jié),或重置處理器本身。圖 2 說明了在看門狗超時內(nèi)接收到的脈沖和在看門狗超時到期后接收到的脈沖。
圖 2:標(biāo)準(zhǔn)看門狗定時器的操作
為什么看門狗定時器如此重要?
看門狗定時器提供了一種方法來警告系統(tǒng)或重置其軟件遇到凍結(jié)或掛起的處理器。雖然沒有人故意將軟件設(shè)計為凍結(jié),但優(yōu)秀的系統(tǒng)設(shè)計人員無論如何都會為失敗做好準(zhǔn)備——因為為意外做好準(zhǔn)備總是更好。如果沒有這種監(jiān)控,處理器可能會無限期地保持凍結(jié)狀態(tài)并導(dǎo)致進一步的系統(tǒng)故障。具有可調(diào)超時間隔的外部看門狗定時器(例如TPS3851)可以在短短幾毫秒內(nèi)識別這些軟件凍結(jié)并適當(dāng)?shù)刂刂孟到y(tǒng)或處理器。此功能在嵌入式或遠程系統(tǒng)中尤其必要,在這些系統(tǒng)中手動重置系統(tǒng)是不切實際的,甚至是不可能的。
如何在嵌入式系統(tǒng)中實現(xiàn)看門狗定時器?
有兩種實現(xiàn)看門狗定時器的主要方法:
· 使用具有集成看門狗功能的處理器。許多微控制器(例如MSP430F5529系列)都集成了看門狗功能。這是很有價值的,因為它非常容易實現(xiàn)并且不需要其他 IC。然而,它有一個主要警告:集成看門狗可能并不總是按預(yù)期工作,因為導(dǎo)致 MCU 故障的代碼問題也可能無意中禁用看門狗定時器。同樣,軟件的編寫方式使得內(nèi)部看門狗應(yīng)該能夠檢測到任何凍結(jié)或掛起。但是,采取額外的步驟以冗余方式監(jiān)視看門狗輸入有助于解決代碼中無法預(yù)見的錯誤。
· 使用帶有看門狗定時器的電壓監(jiān)控器。具有看門狗定時器功能的監(jiān)控器(例如TPS3851或TPS3110)允許我們以外部冗余方式監(jiān)視電源電壓和看門狗信號。如果處理器的內(nèi)部看門狗未能檢測到錯誤或丟失的脈沖,外部看門狗定時器將增加一個否則無法實現(xiàn)的檢測級別。
原則上,看門狗定時器的功能并不過分復(fù)雜。然而,它在保持系統(tǒng)可靠性方面的重要性怎么強調(diào)都不為過。如果在發(fā)生故障時人為啟動的系統(tǒng)重置不可能或非常困難,則尤其如此。
為什么要在應(yīng)用程序中使用看門狗定時器?
看門狗定時器適用于各種應(yīng)用,從無人機和電網(wǎng)計量到電機控制等等。對于所有這些不同的應(yīng)用,看門狗定時器提供了相同的基本功能:監(jiān)控處理器的錯誤操作并發(fā)出相應(yīng)的信號。
但是,這種監(jiān)視的效用可能因應(yīng)用程序類型而異。例如,期望有人手動重置無人機,當(dāng)無人機在空中數(shù)百英尺時其處理器掛斷,這是不切實際的。在智能電表中,同樣的問題可能會導(dǎo)致設(shè)備無法讀取或記錄信息。遠程位置的儀表和傳感器也可能遇到軟件故障,導(dǎo)致系統(tǒng)無法讀取和記錄信息,也沒有人手動重置它。控制電機和其他機械部件的系統(tǒng)中的代碼故障尤其令人擔(dān)憂,因為這些系統(tǒng)的錯誤操作可能對操作員和附近人員造成人身傷害。幸運的是,使用看門狗定時器可以增加冗余以捕獲這些錯誤并有助于防止這些問題的發(fā)生。
窗口看門狗定時器如何工作?
窗口看門狗定時器,如圖 1 所示,是一種特殊類型的看門狗定時器,它不僅監(jiān)視來自處理器的信號是否在看門狗超時結(jié)束(即看門狗上限)之前發(fā)送失敗,而且還監(jiān)視處理器是否發(fā)送看門狗看門狗超時窗口開始前的輸入 (WDI) 信號(即看門狗下邊界)。此功能如圖 2 所示。
圖 1:監(jiān)控微控制器的窗口看門狗定時器 ( TPS3850 )
圖 2:窗口看門狗功能
這與標(biāo)準(zhǔn)看門狗定時器不同,后者只檢查脈沖是否在超時結(jié)束之前到來。能夠監(jiān)控早期的 WDI 信號很有用,因為它可以檢測和停止不受歡迎的超頻。
有哪些額外的看門狗定時器功能?
窗口看門狗定時器只是看門狗定時器中的一種附加功能。幾個附加功能可以確保系統(tǒng)的穩(wěn)健性和功能性:
· 可調(diào)看門狗超時——不同的系統(tǒng)和應(yīng)用程序需要不同的 WDI 信號超時時間。外部電容器和 SET 引腳可用于在幾毫秒到一分鐘以上的任何時間調(diào)整看門狗超時。
· 看門狗定時器禁用功能- 可以使用設(shè)備上的引腳禁用某些看門狗定時器。當(dāng)您不想重置處理器時,此功能在系統(tǒng)初始化和調(diào)試期間很有用。
TI 的TPS3850、TPS3851和TPS3852系列器件提供常規(guī)和窗口看門狗選項,并包含下面圖 3 中描述的所有功能。
表 1:TI 的TPS3850系列