本文比較了內部(與微處理器集成)和外部(基于硬件)看門狗定時器(WDT)的優缺點。它解釋了內部看門狗定時器易于實現,但容易發生故障。MAXQ2000微控制器的WDT作為內部看門狗的一個例子。基于硬件的看門狗定時器需要額外的電路板空間,但在可靠性至關重要的情況下是必不可少的。本文最后提供了一個比較矩陣,重點介紹了每個 WDT 解決方案的主要優點和缺點。
介紹
看門狗定時器 (WDT) 強制嵌入式微處理器或微控制器復位(硬件復位),以響應無效的軟件狀態。這種狀態可以像由軟件錯誤、宇宙射線或 EMI(電磁干擾)等事件引起的切換寄存器位一樣簡單。
本文探討了為應用程序選擇最佳計時器的一些注意事項。
WDT 的典型應用
防止微處理器鎖定是WDT的典型應用。通常,嵌入式軟件有一個“主循環”,它調用幾個指導各種活動的子例程。然后,WDT 在循環頂部重置一次。如果循環因任何原因無法正確執行,則看門狗將觸發并重置設備。
具有WDT的系統特別適合檢測位錯誤。瞬時位錯誤是由中斷引起的,包括軟內存故障和 EMI 放電到存儲設備及其接口。這些位錯誤會導致數據臨時位極性翻轉進出嵌入式處理器。當在獲取程序信息時發生此位錯誤時,微處理器將開始執行錯誤的代碼。潛在地,處理器可以開始執行操作數而不是操作碼。當處理器開始執行此錯誤代碼時,它將無法正確執行為監視器提供服務的代碼。超時間隔后,看門狗將導致處理器重置。在正確設計的系統中,此重置將糾正原始錯誤。
另請注意,WDT 無法立即檢測到故障。根據定義,WDT 必須達到預定時間間隔的終點,然后才能重置處理器。這一事實解釋了為什么在 WDT 糾正失控條件之前應選擇盡可能短的超時間隔過期。
內部WDT與外部WDT
WDT可以作為微處理器的內部,如MAXQ2000微控制器,外部作為獨立的IC,或作為支持ASIC的一部分嵌入。無論 WDT 是內部還是外部,每種設備類型都有優點和缺點。內部定時器可以節省資金,但可能會受到失控代碼的影響。雖然實現成本較高,但外部WDT具有單獨的時鐘源,可提供更好的可靠性;如果配置正確,失控代碼無法繞過或禁用它。
基本 WDT 操作
每個WDT的核心都是一個計數器寄存器。時鐘源不斷遞增計數器寄存器,當計數器溢出時,看門狗邏輯會強制系統復位。要防止此重置,必須定期清除計數器寄存器,此過程稱為“維護監視器”。外部WDT IC具有一個數字輸入,可在每次低到高或從高到低轉換時清除計數器寄存器。對于內部 WDT,“服務”實現各不相同。例如,MAXQ2000的WDT可以通過設置寄存器位(MOVE WDCN.0,#1)來提供服務。PIC 微控制器和其他微處理器使用專用指令 (CLRWDT) 為計數器寄存器提供服務。
正常運行的軟件應提供具有足夠規律的數字信號轉換,以便計數器寄存器永遠不會溢出。但是軟件可能會陷入無限循環或開始失控執行,從而無法清除計數器寄存器。這種情況最終會觸發重置。WDT 周期是計數器溢出所需的時間。若要防止重置,監視器服務之間的間隔必須短于超時期限。
某些 WDT 包含比基本計數器寄存器體系結構更高級的功能。常見的變體是“窗口”或“最小/最大”WDT。此功能在看門狗維修太慢或過快時發出復位信號。如果清除計數器寄存器的信號到達,而計數器寄存器中的數字低于某個閾值,則器件將觸發系統復位。簡而言之,如果服務過快,看門狗會發出系統復位,從而在晶體振蕩器開始以晶體標稱頻率的諧波運行時阻止微處理器運行。另一個功能通過邏輯輸入(外部看門狗)或寄存器位(內部看門狗)禁用WDT。
微處理器內部的看門狗定時器
這篇簡短的文章不能涵蓋微處理器(μP)WDT的所有變化,而是介紹MAXQ2000微控制器內部的WDT。雖然該定時器比上述基本計數器寄存器 WDT 稍微復雜一些,但它類似于許多其他商用微控制器芯片上集成的 WDT。
如果不維修,MAXQ2000的WDT溢出,觸發中斷,額外計算512個系統時鐘周期,然后自行復位。這種中斷提供了保存調試信息的“最后機會”,大多數設計人員都認為這種機會在電路開發和故障排除期間很有用。此外,中斷可用于從錯誤中恢復并清除看門狗,而不是保存調試信息。但是,后一種方法可能會損害系統的可靠性。
與其他內部WDT一樣,MAXQ2000的看門狗可以通過軟件禁用。但是請注意,此功能是一把雙刃劍:失控的代碼可以禁用監視器,然后繼續其橫沖直撞。
某些微處理器將其 WDT 連接到獨立于系統時鐘的內部振蕩器。雖然MAXQ2000的WDT時鐘來自系統時鐘,但MAXQ2000的時鐘電路在主振蕩器發生故障時將切換到備用RC振蕩器。
看門狗定時器 IC
專用的外部WDT IC具有廣泛的功能,許多制造商都提供。有些器件,如MAX6752,具有“窗口看門狗”功能。MAX6752還可以使用外部電容調整看門狗超時周期和復位脈沖的寬度,從而滿足微處理器和應用的要求。
MAX6369 WDT上的邏輯輸入引腳可以禁用定時器并防止復位。盡管將邏輯引腳連接到微處理器很誘人,但這樣做可能會損害系統可靠性,因為失控的代碼可能會意外禁用看門狗。大多數情況下,在啟動期間需要禁用看門狗,而微處理器啟動。MAX6369在復位后提供超長的看門狗周期。然后,在首次為監視器提供服務后,將返回正常持續時間的超時。此方法比顯式禁用和重新啟用監視器計時器可靠得多。
外部看門狗定時器也可以監視 V抄送電源,并在該電壓降至指定閾值以下時置位系統復位。一些定時器提供去抖動和ESD保護復位開關輸入。此類IC中的電壓監視器在工作溫度范圍內通常比某些微處理器中包含的內置掉電電路更準確。
結論
表1列出了外部和內部WDT的優點和缺點。 外部看門狗定時器IC更昂貴,因此應該用于需要更高可靠性的關鍵系統。但是,將WDT的禁用輸入連接到微處理器(允許軟件禁用看門狗復位),會損害內部看門狗定時器的可靠性。因此,微處理器內部的看門狗定時器主要適用于非關鍵系統和降低成本。
外部 WDT | 內部 WDT | |
優點 |
如果設計正確,不會意外地從軟件中禁用。 時鐘源獨立于系統時鐘。 提供最小/最大看門狗超時周期。 復位輸出可以連接到需要復位的其他系統IC。 監視一個或多個電源軌(某些微處理器中的內部掉電電路不是很準確)。 超時周期可通過使用電容器完全調節。 |
成本基本上為零。 為了保存調試信息,它可以在重置之前觸發中斷。 使用方便。 有時,雙向復位引腳可以連接到需要復位的其他系統IC。 當處理器從高速更改為低速或睡眠模式時,可以修改超時。 看門狗超時周期隨溫度的變化較小。 |
缺點 |
實施需要一些成本。 溫度范圍內的超時期限可能會有很大差異。 需要一條微處理器 I/O 線。 由于微處理器省電功能,必須計算超時以匹配高速和低速時鐘模式。 |
幾乎所有都可以通過軟件禁用(因此,不那么可靠)。 |
審核編輯:郭婷
-
看門狗
+關注
關注
10文章
560瀏覽量
70790 -
微處理器
+關注
關注
11文章
2258瀏覽量
82405 -
定時器
+關注
關注
23文章
3246瀏覽量
114720
發布評論請先 登錄
相關推薦
評論