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