看門狗芯片工作原理:在系統(tǒng)運(yùn)行之后啟動(dòng)了看門狗的計(jì)數(shù)器,看門狗就開(kāi)始自動(dòng)計(jì)數(shù),如果到了一定的時(shí)間還不去清看門狗,那么看門狗計(jì)數(shù)器就會(huì)溢出從而引起看門狗中斷,造成系統(tǒng)復(fù)位。所以,在使用有看門狗的芯片時(shí)要注意清看門狗。
硬件看門狗則是利用了一個(gè)定時(shí)器,來(lái)監(jiān)控主程序的運(yùn)行,也就是說(shuō)在主程序的運(yùn)行過(guò)程中,我們要在看門狗定時(shí)器定時(shí)時(shí)間到之前對(duì)其進(jìn)行復(fù)位。如果出現(xiàn)死循環(huán),或者說(shuō)PC指針不能回來(lái),那么定時(shí)時(shí)間到后就會(huì)使單片機(jī)復(fù)位。
軟件看門狗技術(shù)的原理類似,只不過(guò)是用軟件的方法實(shí)現(xiàn),以51單片機(jī)系列來(lái)說(shuō),在51單片機(jī)中有兩個(gè)定時(shí)器,我們就可以用這兩個(gè)定時(shí)器來(lái)對(duì)主程序的運(yùn)行進(jìn)行監(jiān)控。對(duì)T0設(shè)定一定的定時(shí)時(shí)間,當(dāng)產(chǎn)生定時(shí)中斷的時(shí)候?qū)σ粋€(gè)變量進(jìn)行賦值,而這個(gè)變量在主程序運(yùn)行的開(kāi)始已經(jīng)有了一個(gè)初值,在這里我們要設(shè)定的定時(shí)值要小于主程序的運(yùn)行時(shí)間,這樣在主程序的尾部對(duì)變量的值進(jìn)行判斷,如果值發(fā)生了預(yù)期的變化,就說(shuō)明T0中斷正常,如果沒(méi)有發(fā)生變化則使程序復(fù)位。對(duì)于T1我們用來(lái)監(jiān)控主程序的運(yùn)行,我們給T1設(shè)定一定的定時(shí)時(shí)間,在主程序中對(duì)其進(jìn)行復(fù)位,如果不能在一定的時(shí)間里對(duì)其進(jìn)行復(fù)位,T1的定時(shí)中斷就會(huì)使單片機(jī)復(fù)位。在這里T1的定時(shí)時(shí)間要設(shè)的大于主程序的運(yùn)行時(shí)間,給主程序留有一定的裕量。而T1的中斷正常與否我們?cè)儆蒚0定時(shí)中斷子程序來(lái)監(jiān)視。這樣就構(gòu)成了一個(gè)循環(huán),T0監(jiān)視T1,T1監(jiān)視主程序,主程序又來(lái)監(jiān)視T0,從而保證系統(tǒng)的穩(wěn)定運(yùn)行。
拓展閱讀:看門狗芯片有哪些?
現(xiàn)如今嵌入式系統(tǒng)中主要可以分為兩種看門狗芯片,一種是CPU內(nèi)部自帶的看門狗,這類看門狗一般是將一個(gè)芯片中的定時(shí)器來(lái)作為看門狗,通過(guò)程序的初始化,寫入初值,設(shè)定溢出時(shí)間,并啟動(dòng)定時(shí)器,程序按時(shí)對(duì)定時(shí)器賦初值,以免被咬。這種看門狗是可以被禁用的。還有一種是獨(dú)立的看門狗芯片,這種主要有一個(gè)用于喂狗的引腳和一個(gè)復(fù)位引腳,如果沒(méi)有在一定時(shí)間內(nèi)改變喂狗腳的電平,復(fù)位引腳就會(huì)改變狀態(tài)復(fù)位cpu。此類看門狗一上電就開(kāi)始工作,而且不能被禁用。現(xiàn)在常用的看門狗芯片有:CAT705系列、CAT706系列以及IMP706等等。
ALL RIGHT RESERVED 2022. 粵ICP備17095549號(hào) 技術(shù)支持: 牛商股份 百度統(tǒng)計(jì) 粵公網(wǎng)安備 44030402004503號(hào)