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