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