目錄: 1.看門狗是什么? 2.硬件和軟件看門狗 3.硬件看門狗芯片電路 1.看門狗是什么?
看門狗,又叫watchdog timer,是一個定時器電路,一般有一個輸入,叫喂狗(kicking the dog/service the dog),一個輸出到MCU的RST端。
MCU正常工作的時候,每隔一段時間輸出一個信號到喂狗端,給 WDT清零,如果超過規定的時間不喂狗(一般在程序跑飛時),WDT定時超過,就會給出一個復位信號到MCU,使MCU復位,防止MCU死機。看門狗的作用就是防止程序發生死循環,或者說程序跑飛。
2.硬件和軟件看門狗
硬件看門狗
硬件看門狗是利用了一個定時器,來監控主程序的運行,也就是說在主程序的運行過程中,我們要在定時時間到之前對定時器進行復位。如果出現死循環,或者說PC指針不能回來,那么定時時間到后就會使單片機復位。常用的WDT芯片如MAX813,5045,IMP 813等。
軟件看門狗
而在某些情況下,也會采用純軟件的方法來設置看門狗,如在單片機系統中,利用閑置的定時器/計數器就可以設計一個軟件看門狗。具體實現步驟如下:
首先,在初始化程序中設置定時器/計數器的方式以控制寄存器(TMOD) 和定時時間的初值,并且打開中斷。
然后,根據定時器的時間,在主程序中按一定的時間間隔插入復位定時器的指令(喂狗), 兩條喂狗指令之間的時間間隔可以根據系統時鐘與指令周期計算出來,而且該時間周期應該小于定時器的定時時間。
最后,在定時器的中斷服務程序中,設置一條無條件轉移指令,將程序計數器PC轉移到初始化程序的入口。
軟件看門狗的優點是無需額外的硬件支持,但當系統存在嚴重的錯誤時(例如:中斷服務出錯),則有可能導致軟件看門狗失效。
3.硬件看門狗芯片電路
看門狗芯片與MCU的連接關系如下:其基本的原理就是MCU要在固定的時間內通過IO翻轉去控制看門狗芯片的WDI引腳,否則看門狗芯片就會將WDO拉低,進而使CPU復位。
以SP706為例,看門狗芯片的引腳定義和功能描述如下圖: (來自CSDN:heat.huang)
這個MR腳是手動復位,挺有用的,原理圖設計時注意下
當J2接上跳線帽時,開啟看門狗。反之,看門狗關閉。 芯片參數比較少,關注下最短喂狗時間Twd 即可:
-- End--
審核編輯黃宇
-
電路
+關注
關注
172文章
5846瀏覽量
171906 -
mcu
+關注
關注
146文章
16989瀏覽量
350306 -
看門狗
+關注
關注
10文章
559瀏覽量
70745 -
定時器
+關注
關注
23文章
3237瀏覽量
114467
發布評論請先 登錄
相關推薦
評論