工作原理:在系統(tǒng)運(yùn)行以后也就啟動(dòng)了看門狗的計(jì)數(shù)器,看門狗就開(kāi)始自動(dòng)計(jì)數(shù),如果到了一定的時(shí)間還不去清看門狗,那么看門狗計(jì)數(shù)器就會(huì)溢出從而引起看門狗中斷,造成系統(tǒng)復(fù)位,所以在使用有看門狗的芯片時(shí)要注意清看門狗。
看門狗電路的應(yīng)用:它可以使單片機(jī)可以在無(wú)人狀態(tài)下實(shí)現(xiàn)連續(xù)工作。
看門狗,又叫 watchdog timer,是一個(gè)定時(shí)器電路,一般有一個(gè)輸入,叫喂狗(kicking the dog or service the dog),一個(gè)輸出到MCU的RST端,MCU正常工作的時(shí)候,每隔一段時(shí)間輸出一個(gè)信號(hào)到喂狗端,給 WDT 清零。
如果超過(guò)規(guī)定的時(shí)間不喂狗,(一般在程序跑飛時(shí)),WDT 定時(shí)超過(guò),就會(huì)給出一個(gè)復(fù)位信號(hào)到MCU,使MCU復(fù)位. 防止MCU死機(jī). 看門狗的作用就是防止程序發(fā)生死循環(huán),或者說(shuō)程序跑飛。
擴(kuò)展資料:
看門狗分硬件看門狗和軟件看門狗。硬件看門狗是利用一個(gè)定時(shí)器電路,其定時(shí)輸出連接到電路的復(fù)位端,程序在一定時(shí)間范圍內(nèi)對(duì)定時(shí)器清零(俗稱“喂狗”),因此程序正常工作時(shí),定時(shí)器總不能溢出,也就不能產(chǎn)生復(fù)位信號(hào)。
如果程序出現(xiàn)故障,不在定時(shí)周期內(nèi)復(fù)位看門狗,就使得看門狗定時(shí)器溢出產(chǎn)生復(fù)位信號(hào)并重啟系統(tǒng)。軟件看門狗原理上一樣,只是將硬件電路上的定時(shí)器用處理器的內(nèi)部定時(shí)器代替,這樣可以簡(jiǎn)化硬件電路設(shè)計(jì),但在可靠性方面不如硬件定時(shí)器,比如系統(tǒng)內(nèi)部定時(shí)器自身發(fā)生故障就無(wú)法檢測(cè)到。
當(dāng)然也有通過(guò)雙定時(shí)器相互監(jiān)視,這不僅加大系統(tǒng)開(kāi)銷,也不能解決全部問(wèn)題,比如中斷系統(tǒng)故障導(dǎo)致定時(shí)器中斷失效。 看門狗本身不是用來(lái)解決系統(tǒng)出現(xiàn)的問(wèn)題,在調(diào)試過(guò)程中發(fā)現(xiàn)的故障應(yīng)該要查改設(shè)計(jì)本身的錯(cuò)誤。加入看門狗目的是對(duì)一些程序潛在錯(cuò)誤和惡劣環(huán)境干擾等因素導(dǎo)致系統(tǒng)死機(jī)而在無(wú)人干預(yù)情況下自動(dòng)恢復(fù)系統(tǒng)正常工作狀態(tài)。
上一篇:honor是什么牌子?主打什么?
責(zé)任編輯: