單片機的看門狗(Watchdog Timer)是一種硬件電路,用于監控單片機的運行狀態,確保系統的穩定性和可靠性。當單片機由于軟件或硬件故障導致程序運行異常或停滯時,看門狗能夠檢測到這種情況,并采取措施使系統復位,從而恢復正常運行。看門狗的主要工作原理如下:
定時器:看門狗通常包含一個定時器,這個定時器會在單片機正常工作時被周期性地重置。如果單片機在設定的時間內沒有重置看門狗定時器,那么看門狗會認為單片機出現了異常。
超時復位:一旦看門狗定時器超時,它將觸發一個復位信號,將單片機復位到初始狀態,從而允許系統重新啟動并嘗試恢復正常操作。
中斷或處理程序:在某些設計中,看門狗超時可以觸發一個中斷,允許執行特定的錯誤處理程序,而不是立即復位。這樣可以在系統復位前進行一些日志記錄或清理操作。看門狗在那些對安全性和穩定性要求較高的應用中特別重要,如工業控制、汽車電子、醫療設備和航空航天等領域。通過使用看門狗,可以大大減少系統因軟件故障而導致的長時間不可用或錯誤操作的風險。CW32單片機有兩個看門狗:獨立看門狗IWDT和窗口看門狗WWDT。
獨立看門狗IWDT:獨立看門狗定時器 (IWDT),使用專門的內部 RC 時鐘源 RC10K,可避免運行時受到外部因素影響。一旦啟動 IWDT,用戶需要在規定時間間隔內對 IWDT 的計數器進行重載,否則計數器溢出會觸發復位或產生中斷信號。IWDT 啟動后,可停止計數。可選擇在深度休眠模式下 IWDT 保持運行或暫停計數。
IWDT的功能框圖如下:
IWDT 由一個 12 位可重載的向下計數器實現,其計數時鐘源為內部專用低速 RC 振蕩器 RC10K,通過控制寄存器IWDT_CR 的 PRS 位域可對其時鐘源 RC10K 信號進行 4 ~ 512 的預分頻。IWDT 計數器發生溢出時可選擇產生中斷和復位信號。
窗口看門狗WWDT:窗口看門狗定時器 (WWDT),用戶需要在設定的時間窗口內進行刷新,否則將觸發系統復位。WWDT 通常被用來監測有嚴格時間要求的程序執行流程,防止由外部干擾或未知條件造成應用程序的執行異常, 導致發生系統故障。
WWDT的功能框圖如下
WWDT 內含一個 7 位遞減計數器,計數時鐘源為內部系統時鐘 PCLK,通過控制寄存器 WWDT_CR1 的 PRS 位域 可對其時鐘源 PCLK 進行分頻,分頻后得到計數時鐘 WWDTCLK 用來驅動計數器計數。WWDT 在深度休眠模式下將停止計數,CPU 被喚醒后恢復正常工作。獨立看門狗更注重在極端情況下的系統恢復能力,而窗口看門狗則提供了更靈活的時間窗口管理,以便更精確地監控程序的執行。開發者需要根據具體的應用需求選擇合適的看門狗類型。
審核編輯 黃宇
-
看門狗
+關注
關注
10文章
565瀏覽量
70873 -
單片機
+關注
關注
0文章
216瀏覽量
16658
發布評論請先 登錄
相關推薦
評論