看門狗是開發健壯且故障安全的嵌入式系統的關鍵和重要組件。在許多情況下,嵌入式開發團隊要么沒有充分考慮他們的看門狗策略,要么禁用了他們的看門狗。為了提高系統的健壯性,并確保看門狗可以檢測到系統故障,這里有十個簡單的技巧,開發人員可以遵循來改進他們的看門狗設計。
l 啟動時,確定系統啟動的原因。啟動是由于看門狗定時器復位嗎?掉電檢測?一個例外?用戶交互或者其他未知原因?記錄這些信息對于調試偶爾會以零星和不可預測的方式出現問題的系統至關重要。
l 選擇微控制器時,請選擇包含獨立看門狗的微控制器。獨立的看門狗擁有一個獨立于系統時鐘產生的時鐘,如果系統時鐘出現故障或鎖定,它可以提高檢測到故障的機會。
l 在初始化序列的早期啟用看門狗定時器。看門狗被禁用的時間越長,當出現問題時,看門狗檢測不到它的可能性就越大。
l 不要在中斷服務程序中盲目地清除或撫摸看門狗! 創建一個監視其他軟件任務的看門狗任務,并且可以在清除計時器之前確定系統運行狀況和健康狀況是否可接受。
l 對于連接到互聯網或需要在無人干預的情況下自行運行的系統,嵌入式開發人員可以考慮添加一個外部看門狗,它可以定期復位微控制器,以清除可能發生的任何故障或錯誤。
l 使用外部智能看門狗或監控處理器來監控微控制器是否正常工作。
l 使用智能看門狗時,提供足夠的智能,以便它可以監控外部通信通道,接收重啟命令并發送基本確認。
l 盡可能使用窗口看門狗。窗口式看門狗將確保通過嘗試持續清除看門狗而失敗的系統將觸發看門狗。如果系統因未在指定窗口內清除看門狗而失敗,看門狗將重置系統。
l 在外部監控器上設置一個特定的周期,并從微控制器設置一個心跳,該心跳僅在處理器的健康狀況可以接受時產生。
l 不要忘記,智能看門狗也是基于微控制器的系統,可能需要有自己的看門狗策略,例如啟用內部看門狗定時器和添加外部啞看門狗定時器,以確保它們正確運行。
這些只是嵌入式開發人員可以遵循的幾個簡單步驟,以確保他們的看門狗正確執行。你能想到開發人員應該遵循的其他技巧嗎?