您當前的位置:檢測資訊 > 科研開發
嘉峪檢測網 2025-06-04 08:18
在由單片機構成的微型計算機系統中,由于單片機的工作常常會受到來自外界電磁場的干擾,造成各種寄存器和內存的數據混亂,會導致程序指針錯誤,不在程序區,取出錯誤的程序指令,都有可能會陷入死循環。程序的正常運行被打斷,由單片機控制的系統無法繼續正常工作,導致整個系統的陷入停滯狀態,發生不可預料的后果。
看門狗,又叫 watchdog,從本質上來說就是一個定時器電路,一般有一個輸入和一個輸出,其中輸入叫做喂狗,輸出一般連接到另外一個部分的復位端,一般是連接到單片機。 看門狗的功能是定期的查看芯片內部的情況,一旦發生錯誤就向芯片發出重啟信號??撮T狗命令在程序的中斷中擁有最高的優先級。
軟件看門狗的定義:
WDT(Watch Dog Timer)表示看門狗定時器重新啟動系統。WDT是個特殊定時器,軟件在預訂時間內會去清WDT標志位。當軟件死掉后,沒有辦法及時清除標志,WDT就會自動重新復位系統進行重啟。
WDT(Watch Dog Timer)是一個定時電路,一個輸入叫喂狗(Kicking The Dog),一個輸出連接到控制器的RST信號,系統正常工作的時候,每隔一段時間輸出一個信號到喂狗端,給標志位清零,如果超過規定的時間不喂狗(一般是程序跑飛)WDT定時超過,會給出一個復位信號給控制芯片,使系統重新啟動,防止控制芯片宕機、死機,系統進入死循環,或系統程序跑飛。
軟件看門狗的基本原理:
系統運行時計數器開始計數,未及時清零則溢出觸發復位。一旦系統開始運行,看門狗的計數器也隨之啟動,并自動開始計數。若在一定時間內未對看門狗進行清零操作,其計數器將發生溢出,進而觸發看門狗中斷,導致系統復位。因此,在使用具備看門狗功能的芯片時,需格外留意清零看門狗的時機。
硬件看門狗的實現:
硬件看門狗通過芯片內部的定時器監控主程序,防止死循環。硬件看門狗通過定時器來監控主程序的運行狀態。在主程序執行過程中,我們必須在定時時間到期前對定時器進行復位,以防止死循環或PC指針無法回溯的情況發生。若出現這些情況,定時時間一到,單片機將自動復位。
軟件看門狗的實現:
利用軟件設置定時器監控主程序,通過中斷進行狀態確認和復位操作。軟件看門狗技術的原理與硬件看門狗相似,但它是通過軟件方式來實現的。以51系列單片機為例,我們可以利用其中的兩個定時器T0和T1來監控主程序的運行狀態。具體來說,我們可以為T0設定一個特定的定時時間,并在定時中斷時對某個變量進行賦值。這個變量在主程序開始時已被賦予一個初始值。我們設定的定時時間應小于主程序的運行時間。這樣,在主程序結束時,我們可以通過判斷該變量的值是否按預期改變來確認T0中斷是否正常。若未發生變化,則觸發程序復位。
看門狗的應用價值:
看門狗技術幫助恢復系統運行,用于權限管理等領域。看門狗技術在實際應用中具有廣泛價值。它不僅能幫助恢復系統的正常運行,還能作為有效的監視管理器使用,如鎖定光驅、指定程序等,非常適合家庭中使用,能有效防止小孩無節制地玩游戲、上網或觀看錄像。
在EMC問題調試過程中,尤其是抗擾度測試(EFT、ESD、雷擊浪涌、RS、CS)過程中系統受到噪聲出現宕機、死機可以通過看門狗(WDT)來系統的重新復位。
看門狗的應用注意事項:
使用看門狗需注意溢出時間設置,并定期清零以防止誤復位。在嵌入式系統開發中,確保系統的穩定性和可靠性至關重要。而"看門狗"技術,作為一種有效的系統監控與恢復機制,正日益受到開發者的青睞。其設計思路在于通過專門的硬件定時器或軟件監控模塊,對系統狀態進行持續檢測。一旦發現系統出現異?;蛩梨i,便觸發復位或重啟操作,從而恢復系統的正常運行。此外,"看門狗"技術還可廣泛應用于權限管理、資源保護等領域,為家庭和工業控制提供了強有力的支持。
來源:風陵渡口話EMC