單片機(jī)的程序在運(yùn)行過(guò)程中,為了增加系統(tǒng)的可靠性,防止芯片受到外界干擾而程序跑飛等系統(tǒng)異常,我們引入看門狗功能,Watch Dog Timer,簡(jiǎn)稱為WDT。如圖1。
圖1 看門狗監(jiān)控單片機(jī)的程序
它本質(zhì)上是一個(gè)遞增定時(shí)器,它的工作原理很簡(jiǎn)單,當(dāng)程序開始運(yùn)行時(shí),看門狗定時(shí)器的值從零開始向上遞增,當(dāng)?shù)竭_(dá)預(yù)設(shè)值時(shí),就會(huì)強(qiáng)制單片機(jī)復(fù)位,使系統(tǒng)程序從頭開始運(yùn)行。如圖2.
圖2 看門狗本質(zhì)上是一個(gè)定時(shí)器
那么我們?nèi)绾问褂盟?我們的代碼中,當(dāng)看門狗定時(shí)器的值即將溢出時(shí)將其清零,使它重新從零開始計(jì)數(shù),那么只要程序正常運(yùn)行,看門狗就不會(huì)強(qiáng)制單片機(jī)復(fù)位。這樣就實(shí)現(xiàn)了看門狗對(duì)程序的監(jiān)控功能。如圖3.
圖3 清零看懵定時(shí)器
上述方法實(shí)現(xiàn)的是軟件看門狗功能,當(dāng)然,我們也可以搭建硬件看門狗電路,同樣實(shí)現(xiàn)超時(shí)強(qiáng)制單片機(jī)復(fù)位的功能。他的思路就是不斷的給一個(gè)電容充電,在電容從滿電狀態(tài)放電至閾值電壓前再次充電,就能保證電路不輸出復(fù)位信號(hào)。從而實(shí)現(xiàn)硬件看門狗功能。如圖4.
圖4 不斷給電容充電
圖5為電路原理圖,它由兩個(gè)與非門外加阻容器件串聯(lián)而成。
圖5 硬件看門狗電路
當(dāng)我們給第1引腳一個(gè)低電平,也就是喂狗的時(shí)候,A與非門輸出高電平,此時(shí)電容C兩端開始充電。同時(shí),與非門B的兩個(gè)輸入端電平為高,那么輸出端第4引腳就為低電平,不產(chǎn)生復(fù)位動(dòng)作。如圖6.
圖6 不產(chǎn)生復(fù)位信號(hào)
喂狗操作完畢之后,第1引腳為高電平,那么,A與非門輸出低電平,此時(shí)電容C開始放電,當(dāng)電容C的電量低于閾值時(shí),第五,六引腳電平為低,則第4引腳輸出高電平,產(chǎn)生復(fù)位。如圖7。圖8為產(chǎn)生復(fù)位時(shí)的時(shí)序圖。
圖7 產(chǎn)生復(fù)位信號(hào)
圖8 復(fù)位時(shí)序
我們需要操作的是在電容C放電至閾值的時(shí)間段內(nèi)給第1引腳一個(gè)低電平,也就是喂狗操作,保證第4引腳持續(xù)輸出低電平,這樣就實(shí)現(xiàn)了看門狗對(duì)電路的監(jiān)控功能。如圖9.
圖9 正常情況下不產(chǎn)生復(fù)位的時(shí)序圖
客服QQ1:63355785 客服QQ2:61303373 客服QQ3:67399965 客服QQ4:2656068273 產(chǎn)品分類地圖
版權(quán)所有:保定市禾邦電子有限公司 保定市禾邦電子有限公司營(yíng)業(yè)執(zhí)照 備案號(hào):冀ICP備12019441號(hào)-1
關(guān)鍵字:保定電子元器件 保定電子元件 電子元器件 電子元件