就像一只住在名媛手提包中叫不停的小狗,看門狗定時器(watchdog timer)也時常被認為是不必要的多此一舉。然而,若將兩者一視同仁,是對看門狗的極大侮辱。不同于「手提包小狗」,看門狗具有關(guān)鍵的監(jiān)控功能,能夠幫助您監(jiān)控系統(tǒng)里外的故障情形,并在故障發(fā)生時采取行動。
什么是看門狗定時器?
簡單來說,看門狗定時器是一種若在特定時間范圍內(nèi)未從處理器接收到周期性脈沖訊號,就會發(fā)出重設(shè)輸出訊號的裝置。其中一種應(yīng)用這種裝置的方法,是透過來自處理器的數(shù)字訊號輸出(GPIO)回饋給外部看門狗定時器的看門狗輸入(WDI),如圖1所示。TPS3851便是具有整合看門狗定時器的監(jiān)控器,能夠監(jiān)控微控制器的電源軌,并透過外部方式監(jiān)控從微控制器(MCU)發(fā)出的數(shù)字脈沖。
圖1 TPS3851所提供的看門狗監(jiān)控。
處理器周期性地向看門狗定時器發(fā)送一個脈沖,以表示系統(tǒng)軟件的正常運作。若看門狗定時器在規(guī)定的時間范圍(稱為看門狗超時)內(nèi)未接收到此脈沖,看門狗定時器將發(fā)出重設(shè)輸出訊號。該重設(shè)輸出訊號可以用于通知系統(tǒng)處理器出現(xiàn)了停機或凍結(jié)的情況,或重設(shè)處理器本身。圖2所示為在看門狗超時期間內(nèi)接收的脈沖,以及在超過看門狗超時之后所接收的脈沖。
圖2 標準看門狗定時器的運作。
為何看門狗定時器如此重要?
看門狗定時器提供一種警報系統(tǒng)的機制,或重設(shè)一個軟件歷經(jīng)凍結(jié)或停機的處理器。盡管沒有人會刻意設(shè)計會凍結(jié)的軟件,但優(yōu)秀的系統(tǒng)設(shè)計人員還是會為故障做準備——因為未雨綢繆總是好的。若缺少這種監(jiān)控,處理器可能會無限期地凍結(jié),并導(dǎo)致更多的系統(tǒng)故障。像是TPS3851具有可調(diào)整超時間間隔的外部看門狗定時器,能夠在幾毫秒內(nèi)辨識這些軟件凍結(jié),并適當?shù)刂卦O(shè)系統(tǒng)或處理器。因為要手動重設(shè)這些系統(tǒng)是不實際、甚至幾乎是不可能的,因此這項功能在嵌入式或遠程系統(tǒng)中更有其必要性。
如何在嵌入式系統(tǒng)運用看門狗定時器?
有兩種主要的方式能夠來實作看門狗定時器:
---使用具有整合看門狗功能的處理器。許多微控制器如MSP430F5529系列具有整合看門狗的功能。它的價值在于非常容易實作,且不需要使用其他IC。然而,有一個重要的告誡:由于程序代碼問題而導(dǎo)致的MCU故障可能無意中使看門狗定時器喪失功用,因此整合看門狗可能不會總是按預(yù)期的方式運作。同樣地,雖然軟件以內(nèi)部看門狗能夠偵測所有凍結(jié)或停機的方式編寫,但是,采取額外的步驟以冗余方式監(jiān)控看門狗輸入可以幫助解決程序代碼中不可預(yù)見的錯誤。
---使用具有看門狗定時器的電壓監(jiān)控器。像是TPS3851或TPS3110具有看門狗定時器功能的監(jiān)控器能夠以外部冗余方式監(jiān)控電源電壓和看門狗訊號。若處理器的內(nèi)部看門狗未能偵測到錯誤或缺失的脈沖,外部看門狗定時器將能發(fā)揮其他方式無法達到的偵測層級。
原則上,看門狗定時器的功能不會過于復(fù)雜;然而,其在維持系統(tǒng)可靠性的重要性也不容小覷,尤其是在系統(tǒng)發(fā)生錯誤、但是人為的系統(tǒng)重設(shè)是困難甚至是不能實現(xiàn)的情況下。
探索看門狗定時器的應(yīng)用
接下來,本文將說明為什么應(yīng)該在應(yīng)用中使用看門狗定時器、窗口式看門狗定時器如何運作,以及看門狗定時器的一些特性,如何讓它們成為許多不同應(yīng)用的絕佳附加功能。
為什么要應(yīng)用中使用看門狗定時器?
看門狗定時器在許多應(yīng)用中都占有一席之地,如無人機、電網(wǎng)計量、馬達控制…等。對于這些不同的應(yīng)用,看門狗定時器提供相同的基本功能:透過對處理器的監(jiān)控偵測出錯誤運作并發(fā)出相應(yīng)的訊號。
然而,監(jiān)控的使用可能依據(jù)應(yīng)用類型而有所不同。例如,期望有人能夠在距離地表幾百英呎的無人機中手動重設(shè)其處理器是不切實際的。在智慧儀表中,同樣的問題可能導(dǎo)致裝置無法讀取或記錄信息,位于遠程位置的儀表和傳感器也會遇到軟件故障的狀況,導(dǎo)致系統(tǒng)無法讀取和記錄信息,并且也沒有人能夠手動重設(shè)的情形??刂岂R達和其他機械零組件的系統(tǒng)中的程序代碼故障尤其令人緊張,因為這些系統(tǒng)的故障可能對正在操作和在附近的人員造成身體上的傷害。好在使用看門狗定時器可以增加冗余來攔截這些錯誤,有助于防止這些問題的發(fā)生。
窗口式看門狗定時器如何運作?
圖3所示的窗口式看門狗定時器是一種特殊的看門狗定時器,其不僅監(jiān)控在看門狗超時結(jié)束(即看門狗上部邊界)前處理器所發(fā)送的訊號是否失敗,它還能監(jiān)控處理器是否在看門狗超時窗口開始前發(fā)送看門狗輸入端(WDI)訊號(即看門狗下部邊界)。此功能如圖4所示。
圖3 監(jiān)控微控制器的窗口式看門狗定時器。
圖4 窗口式看門狗功能。
不同于只檢查脈沖是否在超時結(jié)束前抵達的標準看門狗定時器。監(jiān)控早期WDI訊號能夠偵測并制止不理想的超頻,是相當有用的功能。
看門狗定時器的附加功能有哪些?
窗口式看門狗定時器只是看門狗定時器眾多功能中的一種附加功能。幾個其他附加功能能夠確保系統(tǒng)的穩(wěn)健性和功能性:
---可調(diào)整式看門狗超時:不同的系統(tǒng)和應(yīng)用對于其WDI訊號需要不同的超時周期。外部電容和SET接腳可以用在看門狗超時中幾毫秒到1分鐘不等的調(diào)整。
---看門狗定時器的關(guān)閉功能:有些看門狗定時器能夠透過接腳在裝置上的使用而被關(guān)閉。這在系統(tǒng)初始化和除錯的過程中,不想重設(shè)處理器時非常實用。
-
看門狗
+關(guān)注
關(guān)注
10文章
576瀏覽量
71425 -
定時器
+關(guān)注
關(guān)注
23文章
3271瀏覽量
116528
原文標題:解析看門狗定時器的重要性
文章出處:【微信號:Mouser-Community,微信公眾號:貿(mào)澤電子設(shè)計圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
一文詳解看門狗定時器

STM32看門狗定時器的工作原理和作用 看門狗定時器的特性

內(nèi)部與外部看門狗定時器的比較
看門狗定時器的設(shè)計、工作原理及看門狗定時器的操作

看門狗定時器的作用
dsp看門狗定時器的作用解析

基于VxWorks的看門狗定高效定時機制設(shè)計實現(xiàn)

TB3123 - PIC?單片機的窗口看門狗定時器

看門狗定時器是什么_如何在嵌入式系統(tǒng)中實現(xiàn)看門狗定時器功能

LPC2294看門狗定時器

使用高速微型看門狗定時器
內(nèi)部和外部看門狗定時器的比較
抄作業(yè)!看門狗定時器必備知識

評論