目錄:1.看門狗是什么?2.硬件和軟件看門狗3.硬件看門狗芯片電路
1.看門狗是什么?
看門狗,又叫watchdog timer,是一個(gè)定時(shí)器電路,一般有一個(gè)輸入,叫喂狗(kicking the dog/service the dog),一個(gè)輸出到MCU的RST端。
MCU正常工作的時(shí)候,每隔一段時(shí)間輸出一個(gè)信號(hào)到喂狗端,給 WDT清零,如果超過規(guī)定的時(shí)間不喂狗(一般在程序跑飛時(shí)),WDT定時(shí)超過,就會(huì)給出一個(gè)復(fù)位信號(hào)到MCU,使MCU復(fù)位,防止MCU死機(jī)??撮T狗的作用就是防止程序發(fā)生死循環(huán),或者說程序跑飛。
2.硬件和軟件看門狗
? 硬件看門狗
硬件看門狗是利用了一個(gè)定時(shí)器,來監(jiān)控主程序的運(yùn)行,也就是說在主程序的運(yùn)行過程中,我們要在定時(shí)時(shí)間到之前對(duì)定時(shí)器進(jìn)行復(fù)位。如果出現(xiàn)死循環(huán),或者說PC指針不能回來,那么定時(shí)時(shí)間到后就會(huì)使單片機(jī)復(fù)位。常用的WDT芯片如MAX813,5045,IMP 813等。
? 軟件看門狗
而在某些情況下,也會(huì)采用純軟件的方法來設(shè)置看門狗,如在單片機(jī)系統(tǒng)中,利用閑置的定時(shí)器/計(jì)數(shù)器就可以設(shè)計(jì)一個(gè)軟件看門狗。具體實(shí)現(xiàn)步驟如下:
首先,在初始化程序中設(shè)置定時(shí)器/計(jì)數(shù)器的方式以控制寄存器(TMOD) 和定時(shí)時(shí)間的初值,并且打開中斷。
然后,根據(jù)定時(shí)器的時(shí)間,在主程序中按一定的時(shí)間間隔插入復(fù)位定時(shí)器的指令(喂狗), 兩條喂狗指令之間的時(shí)間間隔可以根據(jù)系統(tǒng)時(shí)鐘與指令周期計(jì)算出來,而且該時(shí)間周期應(yīng)該小于定時(shí)器的定時(shí)時(shí)間。
最后,在定時(shí)器的中斷服務(wù)程序中,設(shè)置一條無條件轉(zhuǎn)移指令,將程序計(jì)數(shù)器PC轉(zhuǎn)移到初始化程序的入口。
軟件看門狗的優(yōu)點(diǎn)是無需額外的硬件支持,但當(dāng)系統(tǒng)存在嚴(yán)重的錯(cuò)誤時(shí)(例如:中斷服務(wù)出錯(cuò)),則有可能導(dǎo)致軟件看門狗失效。
3.硬件看門狗芯片電路
看門狗芯片與MCU的連接關(guān)系如下:其基本的原理就是MCU要在固定的時(shí)間內(nèi)通過IO翻轉(zhuǎn)去控制看門狗芯片的WDI引腳,否則看門狗芯片就會(huì)將WDO拉低,進(jìn)而使CPU復(fù)位。
以SP706為例,看門狗芯片的引腳定義和功能描述如下圖:
這個(gè)MR腳是手動(dòng)復(fù)位,挺有用的,原理圖設(shè)計(jì)時(shí)注意下
當(dāng)J2接上跳線帽時(shí),開啟看門狗。反之,看門狗關(guān)閉。
芯片參數(shù)比較少,關(guān)注下最短喂狗時(shí)間Twd 即可:
責(zé)任編輯:彭菁
-
芯片
+關(guān)注
關(guān)注
456文章
50889瀏覽量
424245 -
看門狗
+關(guān)注
關(guān)注
10文章
565瀏覽量
70838 -
硬件
+關(guān)注
關(guān)注
11文章
3341瀏覽量
66262
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論