當你在家工作時,有一些工作的好處。您可以自己做飯,在午餐時洗一些衣物,然后喝所有你想要的茶。我用一個爐頂水壺為我的茶煮水,所以當我進入書寫區時,我依靠它的高音哨聲告訴我它什么時候完成。
除非有時候我在不小心,我蓋不好蓋子。結果,盡管其內部的液態水迅速變成氣體,但水壺保持沉默。在這種情況下,我的粗心行為只意味著我會少喝茶,在嵌入式系統中,如果你不知道如何操作看門狗定時器(WDT),后果會更高。當您的WDT無法運行時,停滯的微控制器將保持停滯狀態并導致嵌入式系統保持關閉狀態。讓我們看一下如何讓它們在第一次嘗試時正常運行,以便您可以避免這種情況。
為什么嵌入式系統盡管有WDT仍然無法恢復
WDT是電子設備中的一種簡單故障安全功能,可在硬件或軟件崩潰時幫助重啟微控制器。 WDT可作為單獨的集成(IC)或微控制器內部的內置功能提供。不使用WDT在嵌入式系統中,設計通常是不可原諒的罪。
WDT的操作方式很簡單。它被編程為在設定的時間間隔內倒計時。在正常操作下,微控制器會定期刷新WDT的倒數計時器,以防止它過期。如果微控制器沒有響應,則不會刷新WDT。結果,當WDT到期時,它將觸發脈沖或信號以復位微控制器。這個簡單的功能可以補償可能導致微控制器崩潰的設計錯誤或環境因素。
然而,如果您的WDT出現故障,那么您的嵌入式系統不太可能從其錯誤狀態中恢復。這就是為什么重要的是要找出WDT可能無法復位微控制器的原因。最明顯的答案是WDT有問題。但是,如果您反復使用多個單元中的嵌入式系統無法恢復,那么您的設計就會出現問題。
實際上,在我設計和部署數百個基于微控制器的設備的多年中,我從來沒有遇到過一次WDT失敗的案例。根本原因通常只是人為錯誤。
當WDT無法恢復停滯的微控制器時所見到的
為什么WDT可能無法正常運行
對于使用內部WDT的嵌入式系統,如果無意中覆蓋了配置位,則運行代碼可以取消激活WDT。外部WDT遇到完全不同的問題。在這種情況下,當固件工程師開發和調試程序時,它有一個跳線引腳可以斷開外部WDT的復位信號。這些跳線通常需要在現場部署單元之前手動連接。如果不是,那么WDT復位信號將保持斷開狀態,無法復位微控制器。
WDT無法正常工作的另一個原因是編碼錯誤。如果刷新WDT定時器的功能放在程序的錯誤部分,它們將無法運行。當實時操作系統(RTOS)中存在多個具有不同優先級的任務時,微控制器的固件變得復雜。即使較低優先級的任務處于異常無限循環中,優先級較高的任務也可能繼續執行。如果刷新WDT定時器是最高優先級的任務,那么當微控制器不能正常工作時,它將不會刷新。
確保這樣做是好的做法WDT正確刷新
如何確保WDT可靠運行
確保WDT完成其工作涉及固件開發人員,系統安裝程序和硬件。固件開發人員應該在編程中應用最佳實踐,以避免關閉內部WDT的代碼溢出。固件開發人員必須很好地理解微控制器的存儲器架構以及如何在代碼中正確使用存儲器指針和分配。
除此之外,應該起草程序的結構以便WDT在程序的適當位置刷新。這意味著如果在程序中的任何一點產生無限循環,程序將觸發復位。您還可以開發一個測試實用程序來檢查現場WDT的功能。這也消除了在外部WDT和微控制器之間丟失任何斷開的跳線引腳的風險。
最后但并非最不重要的是,需要正確的PCB設計以確保WDT可靠地運行。使用外部WDT進行設計時,您需要確保刷新信號遠離其他高速信號。這是為了防止交叉耦合電干擾刷新WDT。您可以使用Altium的CircuitStudio?等PCB設計軟件設置精確的間隙規則,以確保WDT的信號完整性。
對WDT設計有疑問嗎?和Altium的專家交談。
檢查Altium的運行情況......
強大的PCB設計
-
pcb
+關注
關注
4406文章
23883瀏覽量
424430 -
電路設計
+關注
關注
6742文章
2703瀏覽量
219542
發布評論請先 登錄
PCB設計 | AI如何顛覆PCB設計?從手動布線到智能自動化的30年演進
PCB設計師必看!這些‘反常識’操作正在毀掉你的電路板
PCB設計中單點接地與多點接地的區別與設計要點
深度解讀PCB設計布局準則
上海圖元軟件國產高端PCB設計解決方案
PCB設計,輕松歸檔,效率倍增!
有哪些基本PCB設計技巧?
評論