必威电竞|足球世界杯竞猜平台

看門狗
來源:互聯網

監控定時器,即看門狗(WatchDog Timer,WDT),分外部看門狗和內部看門狗外部看門狗(亦稱硬件看門狗);具有獨立時鐘源的外部定時器電路,超時產生復位信號,內部看門狗(亦稱軟件看門狗);集成在處理器內部的可編程定時器,超時產生超時中斷。

當系統運行時受到外界干擾,例如電源電壓的波動、環境中的EMI干擾或系統設計中存在的缺陷等,有可能造成DSP程序發生死循環(俗稱“程序跑飛”),發出錯誤的指令使設備損壞甚至威脅人身安全,看門狗單元可以使系統自動復位,使系統可靠運行,提高安全性。

目前,在很多單片機和DSP芯片中都集成有看門狗單元,又稱為看門狗定時器。如果看門狗單元沒有被禁用,則在系統運行以后,看門狗定時器的計數器開始自動計數:如果到了一定的時間還不去清除看門狗計數器(俗稱“喂狗”,或“踢狗”Kick Dog),那么看門狗計數器就會溢出從而引起看門狗中斷,強行系統復位。利用這種機制,看門狗單元可以防止單片機或者DSP芯片的程序發生死循環,監測軟件和硬件的運行狀態,看門狗命令在程序的中斷中擁有最高的優先級,從而提高系統的可靠性。

定義

看門狗,又叫watchdog timer,是一個定時器電路,一般有一個輸入,叫喂狗(kicking the dog/service the dog),一個輸出到MCU的RST端,MCU正常工作的時候,每隔一段時間輸出一個信號到喂狗端,給WDT清零,如果超過規定的時間不喂狗(一般在程序跑飛時),WDT定時超過,就會給出一個復位信號到MCU,使MCU復位。防止MCU死機??撮T狗的作用就是防止程序發生死循環,或者說程序跑飛。

基本原理

看門狗是一種監控系統的運行狀況的手段,通過軟硬件結合的方式實現對系統運行狀況的監控。穩定運行的軟件會在執行完特定指令后進行喂狗,若在一定周期內看門狗沒有收到來自軟件的喂狗信號,則認為系統故障,會進入中斷處理程序或強制系統復位。系統上電后根據不同的工作模式可以選擇使能看門狗的時機,若看門狗被使能則計數器開始計數,如果在設定的時間內沒有及時喂狗則會發生看門狗超時??撮T狗主要由寄存器、計數器和狗叫模塊構成:通過寄存器對看門狗進行基本設置,計數器計算狗叫時間,狗叫模塊決定看門狗超時后發出的中斷或復位方式。

應用

看門狗電路的應用,使單片機可以在無人狀態下實現連續工作,其工作原理是:看門狗芯片和單片機的一個I/O引腳相連,該I/O引腳通過程序控制它定時地往看門狗的這個引腳上送入高電平(或低電平),這一程序語句是分散地放在單片機其他控制語句中間的,一旦單片機由于干擾造成程序跑飛后而陷入某一程序段進入死循環狀態時,寫看門狗引腳的程序便不能被執行,這個時候,看門狗電路就會由于得不到單片機送來的信號,便在它和單片機復位引腳相連的引腳上送出一個復位信號,使單片機發生復位。即程序從程序存儲器的起始位置開始執行,這樣便實現了單片機的自動復位。

分類

硬件看門狗

硬件看門狗是利用了一個定時器,來監控主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復位。如果出現死循環,或者說PC指針不能回來,那么定時時間到后就會使單片機復位。常用的WDT芯片如MAX813,5045,IMP 813等。

軟件看門狗

而在某些情況下,也會采用純軟件的方法來設置看門狗,如在單片機系統中,利用閑置的定時器/計數器就可以設計一個軟件看門狗。例如在51單片機中,可以用兩個定時器對主程序的運行進行監控。具體實現步驟如下:

首先,在初始化程序中設置定時器/計數器的方式以控制寄存器(TMOD)和定時時間的初值,并且打開中斷。

然后,根據定時器的時間,在主程序中按一定的時間間隔插人復位定時器的指令(喂狗),兩條喂狗指令之間的時間間隔可以根據系統時鐘與指令周期計算出來,而且該時間周期應該小于定時器的定時時間。

最后,在定時器的中斷服務程序中,設置一條無條件轉移指令,將程序計數器PC轉移到初始化程序的入口。

在非單片機系統,如PowerPC系統中,也可以采用多線程的方式來設置軟件狗,其主要的步驟如下所述:

首先,新建一個看門狗線程,該線程維護一個全局變量數組,該數組相當于每個工作線程的計數器??撮T狗線程為一一個死循環,每隔一段時間就會循環一次,并將全局變量數組的每一個值都加1后判斷是否超過預定義的上限值,若發現某個線程對應的變量數值超過最大值,則看門狗線程會重置該線程。

然后,每個工作線程中,每隔一段時間就會將對應的全局變量置0(喂狗)。

軟件看門狗的優點是無需額外的硬件支持,但當系統存在嚴重的錯誤時(例如:中斷服務出錯),則有可能導致軟件看門狗失效。

參考資料 >

看門狗定時器的設計與實施.中國知網.2019-06-09

一種采用FPGA實現的通用看門狗電路.中國知網.2019-06-09

單片機系統中的看門狗技術實現方法.中國知網.2019-06-09

生活家百科家居網