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