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