什么是看門狗型復(fù)位電路
看門狗型復(fù)位電路(Watchdog Timer Reset Circuit),簡稱看門狗電路,是一種常見的復(fù)位電路類型,用于監(jiān)控和恢復(fù)嵌入式系統(tǒng)的異常狀態(tài)。
看門狗電路的作用是在系統(tǒng)出現(xiàn)故障或停機時,能夠自動檢測并觸發(fā)系統(tǒng)復(fù)位操作,使系統(tǒng)恢復(fù)到可控的初始狀態(tài)。它通過定期喂狗信號來確認系統(tǒng)正常運行,如果系統(tǒng)未能在規(guī)定的時間內(nèi)正常喂狗,看門狗電路將產(chǎn)生復(fù)位信號,將系統(tǒng)重新啟動。
看門狗電路通常由兩部分組成:
1. 看門狗定時器(Watchdog Timer):看門狗定時器是一個可編程的定時器,它設(shè)置了一個特定的時間間隔,稱為看門狗超時時間。定時器在每次啟動后開始倒計時,如果在超時時間內(nèi)未接收到喂狗信號,定時器會溢出,觸發(fā)復(fù)位信號。
2. 喂狗信號源(WDT Feed Signal Source):喂狗信號源是一個周期性產(chǎn)生喂狗信號的源頭。通常是由系統(tǒng)軟件定期發(fā)送一個特定的信號,告訴看門狗定時器系統(tǒng)正常運行。喂狗信號可以是一個特定的數(shù)據(jù)或命令,也可以是一個定時器中斷信號。
看門狗型復(fù)位電路廣泛應(yīng)用于嵌入式系統(tǒng)、工控系統(tǒng)、自動化設(shè)備等對穩(wěn)定性和可靠性要求較高的場景。它可以監(jiān)測系統(tǒng)死鎖、軟件異常、硬件故障等問題,并能夠自動恢復(fù)系統(tǒng),保障系統(tǒng)的可靠運行。
上電復(fù)位時看門狗模塊默認工作在什么模式?
對于上電復(fù)位時的看門狗模塊,默認情況下,它通常處于使能模式。也就是說,當(dāng)系統(tǒng)上電時,看門狗模塊會默認開始工作,并開始監(jiān)控系統(tǒng)的運行狀態(tài)。
在使能模式下,看門狗模塊會按照預(yù)設(shè)的定時器設(shè)置開始計時,在每個定時器周期內(nèi)需要接收到喂狗信號來確認系統(tǒng)正常運行。如果在設(shè)定的時間間隔內(nèi)未接收到喂狗信號(也就是系統(tǒng)未能定期“喂狗”),看門狗模塊會產(chǎn)生復(fù)位信號,將系統(tǒng)重新啟動。
上電時的看門狗模塊行為可能取決于具體的實現(xiàn)和配置。有些看門狗模塊可能具有可配置的工作模式,可以根據(jù)需求進行設(shè)置。
看門狗型復(fù)位電路
看門狗型復(fù)位電路主要利用CPU正常工作時,定時復(fù)位計數(shù)器,使得計數(shù)器的值不超過某一值;當(dāng)CPU不能正常工作時,由于計數(shù)器不能被復(fù)位,因此其計數(shù)會超過某一值,從而產(chǎn)生復(fù)位脈沖,使得CPU恢復(fù)正常工作狀態(tài)。
典型應(yīng)用的Watchdog復(fù)位電路如圖7所示。此復(fù)位電路的可靠性主要取決于軟件設(shè)計,即將定時向復(fù)位電路發(fā)出脈沖的程序放在何處。
一般設(shè)計,將此段程序放在定時器中斷服務(wù)子程序中。然而,有時這種設(shè)計仍然會引起程序走飛或工作不正常。原因主要是:當(dāng)程序“走飛”發(fā)生時定時器初始化以及開中斷之后的話,這種“走飛”情況就有可能不能由Watchdog復(fù)位電路校正回來。因為定時器中斷一真在產(chǎn)生,即使程序不正常,Watchdog也能被正常復(fù)位。為此提出定時器加預(yù)設(shè)的設(shè)計方法。即在初始化時壓入堆棧一個地址,在此地址內(nèi)執(zhí)行的是一條關(guān)中斷和一條死循環(huán)語句。
在所有不被程序代碼占用的地址盡可能地用子程序返回指令RET代替。這樣,當(dāng)程序走飛后,其進入陷阱的可能性將大大增加。而一旦進入陷阱,定時器停止工作并且關(guān)閉中斷,從而使Watchdog復(fù)位電路會產(chǎn)生一個復(fù)位脈沖將CPU復(fù)位。當(dāng)然這種技術(shù)用于實時性較強的控制或處理軟件中有一定的困難。
看門狗復(fù)位是硬件復(fù)位還是軟件復(fù)位
看門狗復(fù)位既可以是硬件復(fù)位,也可以是軟件復(fù)位,具體取決于系統(tǒng)設(shè)計和實現(xiàn)。
硬件復(fù)位:在硬件上實現(xiàn)看門狗復(fù)位意味著看門狗電路在硬件層面上監(jiān)控系統(tǒng)狀態(tài)并觸發(fā)復(fù)位操作。當(dāng)看門狗定時器檢測到系統(tǒng)未能及時喂狗或發(fā)現(xiàn)其他異常情況時,它會生成一個復(fù)位信號,將系統(tǒng)重新啟動。硬件復(fù)位通常是由一個特定的電路(如看門狗定時器)直接控制復(fù)位引腳,從而重置整個系統(tǒng)。
軟件復(fù)位:軟件復(fù)位是通過系統(tǒng)軟件來實現(xiàn)的復(fù)位操作。當(dāng)系統(tǒng)檢測到需要復(fù)位時,它會在軟件層面上執(zhí)行相應(yīng)的復(fù)位程序或代碼,進行系統(tǒng)的重新初始化和重啟。
在某些系統(tǒng)中,硬件復(fù)位和軟件復(fù)位可以同時使用。例如,看門狗電路可能會在硬件上監(jiān)控系統(tǒng)狀態(tài),并在檢測到故障時觸發(fā)硬件復(fù)位。而軟件可以通過定期喂狗信號來防止硬件復(fù)位的發(fā)生,從而保持系統(tǒng)正常運行。
審核編輯:黃飛
-
看門狗
+關(guān)注
關(guān)注
10文章
560瀏覽量
70789 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3587瀏覽量
129435 -
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211578 -
定時器
+關(guān)注
關(guān)注
23文章
3246瀏覽量
114719 -
復(fù)位電路
+關(guān)注
關(guān)注
13文章
322瀏覽量
44586
發(fā)布評論請先 登錄
相關(guān)推薦
評論