從系統(tǒng)或軟件故障中恢復(fù)是一件不容易的任務(wù);要讓該故障不復(fù)存在更是困難,即使故障已可被辨識和修復(fù)。不過,外部看門狗(Watchdog)可幫助系統(tǒng)針對故障迅速做出反應(yīng)。
外部看門狗是嵌入式系統(tǒng)工程師工具箱里重要且關(guān)鍵的工具,然而為了捕捉到故障,且預(yù)防故障的發(fā)生,看們狗必須設(shè)計得當(dāng)。 因此設(shè)計一個看門狗系統(tǒng)時應(yīng)考慮以下5個秘訣。
技巧1—監(jiān)測心跳
一個外部看門狗須具備的最簡單功能是監(jiān)測由主應(yīng)用處理器產(chǎn)生的一個定期“心跳(Heartbeat)”信號,以及在心跳異常時發(fā)出一個錯誤信號。心跳監(jiān)測可做為兩種不同的用途:首先,在經(jīng)過已在軟件執(zhí)行的功能檢查之后,微控制器(MCU)應(yīng)該只是生成心跳,以確保軟件的正常工作。第二,如果系統(tǒng)的實時響應(yīng)已受到損害,心跳應(yīng)該要能顯示出來。
為軟件功能和實時響應(yīng)監(jiān)測心跳,可透過一個使用簡單,“啞巴(Dumb)”的外部看門狗。外部看門狗應(yīng)該有沿著一個心跳必須出現(xiàn)的窗口的能力調(diào)派一個心跳周期,心跳窗口的作用是當(dāng)系統(tǒng)的實時響應(yīng)受到損害時,允許看門狗進(jìn)行檢測。而在該功能或?qū)崟r檢查失敗的情況下,看門狗會試圖透過應(yīng)用處理器的重置來恢復(fù)系統(tǒng)。
技巧2—采用一個低效能MCU
簡易基于定時器的外部看門狗可在相對低成本的狀況下監(jiān)控心跳,但這會嚴(yán)重限制看門狗系統(tǒng)的能力和恢復(fù)的可能性。其實,低效能微控制器就可以做為外部看門狗的定時器,所以何不為看門狗增添一些智能且采用微控制器呢?微控制器的固件(Firmware)可被開發(fā)用來滿足增加許多功能的心跳監(jiān)測窗口所需。
一個“聰明”的看門狗有時被稱為監(jiān)督者或安全看門狗,且已在不同的產(chǎn)業(yè),如汽車領(lǐng)域?qū)嶋H使用了許多年;另外,通常基于微控制器的看門狗以被主要用于安全關(guān)鍵應(yīng)用。目前開發(fā)工具已相當(dāng)可用且硬件成本也低,這樣的設(shè)計具成本效益,且在其他的應(yīng)用中亦是如此。
技巧3—監(jiān)督關(guān)鍵的系統(tǒng)功能
使用一個小微控制器作為看門狗的決定,可開啟看門狗該如何使用的無限可能。其中可賦予智能看門狗的第一個角色通常是監(jiān)督的重要系統(tǒng)功能,如系統(tǒng)電流或傳感器狀態(tài)??撮T狗如何能監(jiān)督電流的一個例子是,采取一個電流的獨立測量,并提供監(jiān)測值給應(yīng)用處理器,之后,應(yīng)用處理器可比較看門狗與自身讀取到的數(shù)值。若是兩者之間有分歧,則系統(tǒng)將執(zhí)行故障樹(Fault Tree)此一被應(yīng)用程序視為適當(dāng)?shù)姆绞健?br />
技巧4—觀察一個信道
有時嵌入式系統(tǒng)可像個看門狗且應(yīng)用處理器也可以如期工作,但外部的檢查員是處于非響應(yīng)的狀態(tài)。在這樣的狀態(tài)下,綁定智能看門狗到一個信道如通用異步收發(fā)器(UART)是可行的。當(dāng)看門狗被連接到信道時,不僅可以監(jiān)控通道流量,還可以接收對看門狗而言的特定指令。
在這方面一個很好的例子是專為小型衛(wèi)星設(shè)計的看門狗,其可監(jiān)視飛行器計算機和地面基地臺間的無線電通信。如果飛行器計算機變得不響應(yīng)無線電,看門狗將接收到一個命令,然后執(zhí)行并重置飛行器計算機。
技巧5—考慮外部定時重置功能
采用一個微控制器執(zhí)行看門狗,會有額外功能增加其復(fù)雜性,以及一個新軟件單元到系統(tǒng)的設(shè)計,因此,系統(tǒng)中看門狗的問題無疑是由工程師的頭腦來監(jiān)看。在看門狗自行“放大假”的情況下,其將如何恢復(fù)?
選擇之一是使用前面討論的啞巴外部看門狗定時器。智能看門狗會由啞巴看門狗的定時器,使其從被重置的狀況下生成心跳;另一個選擇是讓應(yīng)用處理器的行為就像個看門狗。這里須小心思考,給予最佳的方式以確保兩個處理器如預(yù)期地保持正常狀態(tài)。
簡單設(shè)計確??撮T狗可行性
智能看門狗的目的是監(jiān)測系統(tǒng)和主微控制器,以確保它們依預(yù)期運作。在系統(tǒng)設(shè)計中,看門狗可允許其所支持的非常多功能,開發(fā)者需要牢記,增加智能看門狗復(fù)雜度的可能性,且看門狗本身須包含潛在的故障模式和錯誤。更重要的是,看門狗的設(shè)計應(yīng)保持簡單與采用最小的必要功能集,將可確保其可被徹底測試和驗證。
相關(guān)閱讀:
網(wǎng)友熱議話題:MCU同步boost電路移動電源方案
電容感應(yīng)系統(tǒng)更加高效的原因,只是添加了感應(yīng)MCU?
DSP技術(shù)遭遇MCU算法功能,誰是最后的贏家?