物聯網的設計非常重視安全性,但往往忽略了另一個方面的重要性,即開發足夠穩健的系統,不需要人工干預,也能從故障中自動恢復。為了確保這種穩健性,設計師應該仔細研究普通的看門狗定時器(WDT),它不同于簡單的智能。
本文首先回顧了內部和外部看門狗的基本原理,然后介紹了一些最新的定時器裝置和如何使用它們來保證系統的穩健性。
為什么看門狗定時器對物聯網至關重要
當系統中部署了數以十億計的物聯網設備時,如果發生故障,技術人員無法及時修復。因此,物聯網系統必須能夠在沒有任何人工干預的情況下自動檢測和恢復故障。
看門狗有許多不同的形狀和大小,但它可以分為三種類型:簡單計時器,窗口定時器和智能電子狗。監管機構可以作為微控制器的硬件和軟件,或作為微控制器的外部應用程序的硬件,甚至集成的硬件和軟件組件,作為獨立的微控制器。總之,無論采用哪種看門狗解決方案,唯一的目的就是監視和恢復系統。為此,設計者需要考慮的獨特性能和各監管機構的設計挑戰,以確保一個強大的物聯網系統設計。
內部看門狗的基本原理
看門狗定時器屬于硬件外設。它幾乎是所有單片微控制器的組成部分。它可以與機載外圍設備和系統時鐘交互(圖1)。默認情況下,內部看門狗定時器被設置為禁用。在啟用看門狗之前,開發人員需要設置一個預定義的周期。如果軟件被鎖定,或影響軟件運行的硬件故障,看門狗定時器將退出并迫使微控制器復位。在這個過程中,看門狗定時器將清除錯誤,并允許微控制器重新初始化系統。
MSP430G2210,可以重置處理器當軟件被鎖定。
雖然內部看門狗定時器很簡單,但是要正確執行它需要很多的思考。例如,為看門狗開發的軟件不能簡單地成為看門狗定時器的盲零。在清除看門狗之前,軟件應該檢查系統,以確保所有的任務和硬件正常工作。
開發內部看門狗解決方案時,開發人員應嘗試采納以下建議:
不要因為任何原因禁用看門狗。事實上,在選擇微控制器時,您應該確??撮T狗在啟用后不被禁止。
在周期性中斷期間不檢查軟件功能,請勿清洗看門狗。
確??撮T狗定時器是獨立的看門狗。獨立看門狗有一個單獨的時鐘來檢查系統時鐘是否已停止。
具有看門狗功能的看門狗。這種看門狗需要等待很短的時間才能被清除。如果您試圖在窗口啟動前清理,看門狗將使系統重新設置。這可以防止失控的軟件覆蓋看門狗定時器。
內部看門狗在構建健壯的嵌入式系統方面邁出了重要的一步,但它并沒有提供一個非??煽康慕鉀Q方案。要真正提高穩健性,開發者需要考慮外部看門狗。
使用外部看門狗增強穩健性
無論開發者在內部看門狗的執行過程中有多細心和細致,內部看門狗也不可能總是丟失。許多實現都有缺陷,共享系統時鐘和禁用選項是兩個例子。
當系統需要在現場工作時,使用外部看門狗可以帶來許多好處,如:
硬件系統復位,以確保微控制器電源重新啟動,并重新啟動內部外設電源。
將看門狗與單片機振蕩電路分開。
它為監控系統提供了一個完全獨立的過程。
所有這些優點有助于實現系統的穩健性,但仍有點缺乏利用外部看門狗。它包括增加集成電路所帶來的硬件成本和系統復雜性的提高。然而,正如我們所看到的,當所有的考慮因素都集成在一起時,這些缺陷是微不足道的。現在,讓我們看看如何設計一個簡單而可靠的外部看門狗電路。