專利名稱:一種看門(mén)狗電路的控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種看門(mén)狗電路的控制方法,具體說(shuō)是涉及一種具有電源管理功能的看門(mén)狗電路控制方法。
背景技術(shù):
電子設(shè)備的可靠性一直以來(lái)是工程師追求的目標(biāo),尤其是在野外應(yīng)用中,常常由于雷電干擾、電壓不穩(wěn)等原因造成微處理器程序跑飛或死機(jī)等問(wèn)題,導(dǎo)致了設(shè)備工作異常。為了保證微處理器在受到干擾后能夠自動(dòng)恢復(fù)正常,一般在電路中會(huì)增加看門(mén)狗電路或在程序中增加看門(mén)狗軟件,以期檢測(cè)到系統(tǒng)工作異常時(shí),對(duì)微處理器執(zhí)行復(fù)位,使其能夠盡快·恢復(fù),對(duì)無(wú)人值守的設(shè)備尤為重要。為此,國(guó)內(nèi)專家進(jìn)行了深入研究,發(fā)明了各種新型的看門(mén)狗電路。ZL200510000229. 6公開(kāi)了一種看門(mén)狗電路,可實(shí)現(xiàn)看門(mén)狗電路的定時(shí)復(fù)位時(shí)間可調(diào),同時(shí)降低邏輯器件實(shí)現(xiàn)成本。ZL200810225504. 8發(fā)明了一種實(shí)現(xiàn)看門(mén)狗功能的可編程邏輯電路,在無(wú)人值守的情況下,實(shí)現(xiàn)系統(tǒng)在發(fā)生異?;蛩罊C(jī)時(shí)能自動(dòng)恢復(fù),達(dá)到保護(hù)系統(tǒng)的目的。ZL200810066973. X提出了一種嵌入式設(shè)備中監(jiān)控看門(mén)狗的實(shí)現(xiàn)方法,通過(guò)軟件硬件相互結(jié)合上電握手和監(jiān)控方式,在同一個(gè)系統(tǒng)中FPGA與CPU相互監(jiān)控,出異常后互相能夠復(fù)位對(duì)方。ZL200910111130. I發(fā)明了一種嵌入式系統(tǒng)中看門(mén)狗的控制電路,能有效地實(shí)現(xiàn)看門(mén)狗電路的控制,在需要屏蔽看門(mén)狗電路時(shí)屏蔽其功能,在需要激活看門(mén)狗時(shí)激活其功能,但該電路在屏蔽看門(mén)狗時(shí)僅采用單一電平,在上電復(fù)位及工作異常時(shí)容易出現(xiàn)誤屏蔽情況,應(yīng)用系統(tǒng)無(wú)法正常啟動(dòng)的風(fēng)險(xiǎn)較大。通常,通過(guò)微處理器的復(fù)位引腳實(shí)現(xiàn)的復(fù)位重啟,稱為熱啟動(dòng);通過(guò)對(duì)微處理器的電源進(jìn)行斷電和上電的操作實(shí)現(xiàn)復(fù)位重啟,成為冷啟動(dòng)。由于微處理器的啟動(dòng)過(guò)程受多種因素影響,熱啟動(dòng)的復(fù)位操作有時(shí)會(huì)失效,此時(shí),就需要采用冷啟動(dòng)方式進(jìn)行復(fù)位操作,但現(xiàn)有的看門(mén)狗電路對(duì)微處理器的復(fù)位操作以熱啟動(dòng)為主,因此,急需一種既有熱啟動(dòng)復(fù)位、又有冷啟動(dòng)控制的看門(mén)狗系統(tǒng),以滿足日益增長(zhǎng)的現(xiàn)實(shí)應(yīng)用需求。本案申請(qǐng)人提出了“一種具有電源管理功能的看門(mén)狗電路”(已同日提出發(fā)明專利申請(qǐng))。具有電源管理功能的看門(mén)狗電路,通過(guò)VDD3、WDI、EN和nRST和被監(jiān)控的微處理器相連?!耙环N具有電源管理功能的看門(mén)狗電路”由有8個(gè)引腳的可編程器件U1、P溝道場(chǎng)效應(yīng)管Ql、PNP三極管Q2、NPN三極管Q3、按鈕開(kāi)關(guān)SI、電阻R1、電阻R2、電阻R3、電阻R4、電阻R5、電阻R6、電阻R7、電容Cl組成,其中
可編程器件Ul的引腳I與按鈕開(kāi)關(guān)SI的一端相連;
可編程器件Ul的引腳2與電阻R4相連后,再與看門(mén)狗電路使能控制輸入端EN相連;可編程器件Ul的引腳3通過(guò)與電阻R6相連后,再與看門(mén)狗電路的喂狗信號(hào)輸入端WDI相連;
可編程器件Ul的引腳4接地;
可編程器件Ul的引腳5與復(fù)位信號(hào)輸出端nRST相連;可編程器件Ul的引腳6 PCON端為控制輸出端,控制被監(jiān)控的微處理器的電源開(kāi)或關(guān)狀態(tài),通過(guò)與電阻R5相連后與再與NPN三極管Q3的基極相連;
可編程器件Ul的引腳8與電容Cl相連后接地,引腳8與電容Cl相連的接點(diǎn)上連接有看門(mén)狗電路的工作電源VDDl ;
NPN三極管Q3發(fā)射極接地,集電極通過(guò)與電阻R3相連后再與PNP三極管Q2基極相連,電阻R3與PNP三極管Q2基極相連的節(jié)點(diǎn)上連接電阻R2后再連接電源輸入端VDD2 ;
PNP三極管Q2的集電極分別與P溝道場(chǎng)效應(yīng)管Ql柵極相連,同時(shí)PNP三極管Q2的集電極與P溝道場(chǎng)效應(yīng)管Ql柵極相連的節(jié)點(diǎn)上連接電阻R7接地;PNP三極管Q2發(fā)射極與電源輸入端VDD2相連;
P溝道場(chǎng)效應(yīng)管Ql源極與電源輸入端VDD2相連;P溝道場(chǎng)效應(yīng)管Ql漏極與電源VDD3相連; 可編程器件Ul的引腳I與按鈕開(kāi)關(guān)SI的節(jié)點(diǎn)以及可編程器件Ul的引腳8與電容Cl相連的節(jié)點(diǎn)之間,連接有電阻Rl。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于電源管理功能的看門(mén)狗電路的控制方法。為了達(dá)到上述目的,本發(fā)明具體的控制方法是對(duì)復(fù)位鍵SI、WDI和EN的狀態(tài)進(jìn)行監(jiān)測(cè),當(dāng)被監(jiān)控的微處理器工作正常,會(huì)連續(xù)不斷地向WDI輸出喂狗信號(hào),本看門(mén)狗電路不產(chǎn)生復(fù)位信號(hào);當(dāng)被監(jiān)控的微處理器工作異常,未及時(shí)向WDI端輸出喂狗信號(hào),且EN端使能本電路時(shí),本電路將輸出一個(gè)復(fù)位脈沖,強(qiáng)制被監(jiān)控的微處理器熱啟動(dòng);當(dāng)EN端禁用本電路時(shí),禁用時(shí)間超過(guò)設(shè)定時(shí)長(zhǎng),本電路將輸出一個(gè)復(fù)位脈沖,強(qiáng)制被監(jiān)控的微處理器熱啟動(dòng);若被監(jiān)控的微處理器熱啟動(dòng)后的一段時(shí)間內(nèi),仍未向W)I端輸出喂狗信號(hào),本看門(mén)狗電路將控制被監(jiān)控的微處理器工作電源,將其斷電一段時(shí)間,然后再控制上電,完成一次冷啟動(dòng)的過(guò)程。本發(fā)明的具體方法是
(1)采用一個(gè)獨(dú)立標(biāo)志位,指示復(fù)位鍵SI是否異常,S卩[MR標(biāo)志];
(2)設(shè)計(jì)了一個(gè)獨(dú)立計(jì)時(shí)單元,記錄復(fù)位鍵SI連續(xù)按下的時(shí)長(zhǎng),即[復(fù)位鍵連續(xù)按下時(shí)長(zhǎng)];
(3)設(shè)計(jì)了一個(gè)獨(dú)立計(jì)時(shí)單元,記錄使能端EN禁用本電路的連續(xù)時(shí)長(zhǎng),S卩[禁用時(shí)長(zhǎng)];
(4)設(shè)計(jì)了一個(gè)獨(dú)立單元,記錄連續(xù)輸出RST復(fù)位脈沖的次數(shù),S卩[RST復(fù)位次數(shù)];
(5)設(shè)計(jì)了一個(gè)獨(dú)立單元,記錄WDI脈沖時(shí)間間隔,S卩[WDI脈沖時(shí)間間隔];
本方法的特征在于,包含如下步驟
(1)[MR標(biāo)志]指示復(fù)位鍵SI是否失效,如果SI未按下時(shí),[MR標(biāo)志]設(shè)置為正常,如果[復(fù)位鍵連續(xù)按下時(shí)長(zhǎng)]記錄的時(shí)長(zhǎng)超過(guò)T3時(shí),則設(shè)置[MR標(biāo)志]異常,則判定復(fù)位鍵SI失效,其中T3時(shí)長(zhǎng)可設(shè)定,通常設(shè)定T3 > O. 2秒;
(2)使能端EN控制本電路的功能是否啟用,如果未啟用即禁用時(shí),[禁用時(shí)長(zhǎng)]記錄連續(xù)禁用的時(shí)長(zhǎng),如果[禁用時(shí)長(zhǎng)]記錄的時(shí)間大于Tl時(shí),則判定使能端EN異常,本電路將在nRST端輸出一次復(fù)位脈沖,同時(shí)[RST復(fù)位次數(shù)]計(jì)數(shù)加一,其中,Tl時(shí)長(zhǎng)可設(shè)定;(3)如果[RST復(fù)位次數(shù)]記錄的復(fù)位次數(shù)大于Cl時(shí),本電路將在PCON端輸出時(shí)長(zhǎng)T4的脈沖,即將被監(jiān)控的微處理器的電源斷開(kāi)T4時(shí)長(zhǎng),再對(duì)其上電,被監(jiān)控的微處理器完成一次冷啟動(dòng)過(guò)程,其中Cl、T4均可設(shè)定,通常Cl彡2,T4范圍為O. I秒 10秒;
(4)如果本電路功能未被禁用時(shí)即使能端EN使能,當(dāng)[WDI脈沖時(shí)間間隔]記錄的時(shí)長(zhǎng)大于T2,即在指定T2時(shí)長(zhǎng)內(nèi)未WDI端未有喂狗信號(hào)到來(lái),本電路將在nRST端輸出一次復(fù)位脈沖,同時(shí)[RST復(fù)位次數(shù)]計(jì)數(shù)加一,其中,T2時(shí)長(zhǎng)可設(shè)定;
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是不僅對(duì)復(fù)位鍵SI、使能端EN具有監(jiān)控功能,指示其是否工作正常,而且提供了對(duì)被監(jiān)控的微處理器2種啟動(dòng)方式,即熱啟動(dòng)和冷啟動(dòng)操作,有助于此類嵌入式應(yīng)用系統(tǒng)的長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。本發(fā)明的目的、特征及優(yōu)點(diǎn)將通過(guò)實(shí)施例并結(jié)合附圖進(jìn)行詳細(xì)說(shuō)明。本發(fā)明中的所有元件均可采用具有相同或相似功能的其他型號(hào)代替,代替后的電路也屬于本專利保護(hù)范圍。
圖I是本發(fā)明的一個(gè)原理框圖。圖2是本發(fā)明應(yīng)用實(shí)例的電路圖。圖3是本發(fā)明應(yīng)用實(shí)例的控制流程圖。圖4是本發(fā)明應(yīng)用實(shí)例的定時(shí)中斷服務(wù)流程圖。圖5是本發(fā)明應(yīng)用實(shí)例的WDI中斷服務(wù)流程圖。
具體實(shí)施例方式圖I中,Ul為看門(mén)狗電路,U2為被監(jiān)控的微處理器,Ul和U2通過(guò)VDD3、WDI、EN和nRST相連,其中VDD3為電源輸出端,為被監(jiān)控的微處理器提供工作電源,WDI為喂狗信號(hào)端,EN為使能控制端,nRST為復(fù)位信號(hào)輸出端。圖2中,Ul為可編程器件如單片機(jī),Ql為P溝道場(chǎng)效應(yīng)管,Q2為PNP三極管,Q3為NPN三極管,SI為復(fù)位鍵按鈕開(kāi)關(guān),町、1 2、1 3、1 4、1 5、1 6、1 7為電阻、Cl為電容。WDI為看門(mén)狗喂狗信號(hào)輸入端,EN為看門(mén)狗使能控制輸入端,nRST為復(fù)位信號(hào)輸出端,VDDl為Ul的工作電源,VDD2為電源輸入端,VDD3為電源輸出端。圖2中,Ul引腳I分別與按鈕開(kāi)關(guān)SI、電阻Rl —端相連,作為手動(dòng)復(fù)位輸入端;U1引腳2與電阻R4 —端相連,電阻R4另一端作為看門(mén)狗使能控制輸入端EN ;U1引腳3與電阻R6 —端相連,電阻R6另一端作為看門(mén)狗喂狗信號(hào)輸入端WDI ;U1引腳4接地;U1引腳5為復(fù)位信號(hào)輸出端nRST ;U1引腳6與電阻R5 —端相連;U1引腳8與工作電源VDDl相連;電阻R5另一端與NPN三極管Q3基極相連;NPN三極管Q3發(fā)射極接地,集電極與電阻R3 —端相連;電阻R3另一端分別與電阻R2 —端、PNP三極管Q2基極相連;PNP三極管Q2集電極分別與P溝道場(chǎng)效應(yīng)管Ql柵極、電阻R7 —端相連;PNP三極管Q2發(fā)射極與電源輸入端VDD2相連;P溝道場(chǎng)效應(yīng)管Ql源極與電源輸入端VDD2相連;P溝道場(chǎng)效應(yīng)管Ql漏極與電源輸出端VDD3相連。為了進(jìn)一步說(shuō)明本發(fā)明的具體實(shí)施,結(jié)合圖3、圖4、和圖5所示的流程圖,作具體實(shí)施過(guò)程描述,包括以下步驟步驟301 :程序開(kāi)始,執(zhí)行步驟302 ;
步驟302 :初始化10,初始化定時(shí)器,初始化中斷,初始化重要變量;執(zhí)行步驟303 ; 步驟303 :判斷復(fù)位鍵SI是否按下,如果按下,則執(zhí)行步驟304,否則執(zhí)行步驟305 ; 步驟304 :判斷[MR標(biāo)志]是否正常,如果正常,則執(zhí)行步驟314,否則執(zhí)行步驟306 ; 步驟305 :設(shè)置[MR標(biāo)志]正常,執(zhí)行步驟306 ;
步驟306 :判斷使能端EN使能否,如果是,則執(zhí)行步驟307,否則執(zhí)行步驟309 ;
步驟307 :判斷[WDI脈沖時(shí)間間隔]是否大于T2,如果是,則執(zhí)行步驟311,否則執(zhí)行步驟308 ;
步驟308 :將[RST復(fù)位次數(shù)]清零,然后執(zhí)行步驟303 ; 步驟309 :判斷[禁用時(shí)長(zhǎng)]大于Tl否,如果是,則執(zhí)行步驟310,否則執(zhí)行步驟303 ; 步驟310 :[禁用時(shí)長(zhǎng)]清零,執(zhí)行步驟311 ;
步驟311 nRST端復(fù)位輸出脈沖,[RST復(fù)位次數(shù)]加一操作,執(zhí)行步驟312 ;
步驟312:判斷[RST復(fù)位次數(shù)]是否大于Cl,如果大于,則執(zhí)行步驟313,否則執(zhí)行步驟 303 ;
步驟313 :PC0N端輸出時(shí)長(zhǎng)T4的脈沖,執(zhí)行步驟308 ;
步驟314 :判斷[復(fù)位鍵連續(xù)按下時(shí)長(zhǎng)]是否大于T3,如果是,則執(zhí)行步驟315,否則執(zhí)行步驟311 ;
步驟315 [MR標(biāo)志]為異常,執(zhí)行步驟303 ;
其中,T1、T2、T3、T4和Cl可以設(shè)定。
步驟401 :定時(shí)中斷服務(wù)開(kāi)始,執(zhí)行步驟402 ;
步驟402 :判斷復(fù)位鍵SI是否按下,如果未按下執(zhí)行步驟403,否則執(zhí)行步驟404 ; 步驟403 [復(fù)位鍵連續(xù)按下時(shí)長(zhǎng)]清零,執(zhí)行步驟405 ;
步驟404 [復(fù)位鍵連續(xù)按下時(shí)長(zhǎng)]時(shí)間累加一次,執(zhí)行步驟405 ;
步驟405 :判斷使能端EN使能否,如果是,則執(zhí)行步驟406,否則執(zhí)行步驟407 ;
步驟406 [禁用時(shí)長(zhǎng)]清零,執(zhí)行步驟408 ;
步驟407 :[禁用時(shí)長(zhǎng)]時(shí)間累加一次,執(zhí)行步驟408 ;
步驟408 [WDI脈沖時(shí)間間隔]累加一次,執(zhí)行步驟409 ;
步驟409 :退出本中斷服務(wù)程序。
步驟501 =WDI中斷服務(wù)開(kāi)始,執(zhí)行步驟502 ;
步驟502 [WDI脈沖時(shí)間間隔]清零,執(zhí)行步驟503 ;
步驟503 :退出本中斷服務(wù)。
權(quán)利要求
1.一種看門(mén)狗電路的控制方法,看門(mén)狗電路和被監(jiān)控的微處理器之間通過(guò)VDD3、WDI、EN和nRST相連,其特征是 設(shè)計(jì)了一個(gè)獨(dú)立計(jì)時(shí)單元[復(fù)位鍵連續(xù)按下時(shí)長(zhǎng)],記錄復(fù)位鍵SI連續(xù)按下的時(shí)長(zhǎng);設(shè)計(jì)了一個(gè)獨(dú)立計(jì)時(shí)單元[禁用時(shí)長(zhǎng)],記錄使能端EN禁用本電路的連續(xù)時(shí)長(zhǎng);設(shè)計(jì)了一個(gè)獨(dú)立單元[RST復(fù)位次數(shù)],記錄連續(xù)輸出RST復(fù)位脈沖的次數(shù); 如果[復(fù)位鍵連續(xù)按下時(shí)長(zhǎng)]記錄的時(shí)長(zhǎng)超過(guò)T3時(shí),則判定復(fù)位鍵SI失效; 如果[禁用時(shí)長(zhǎng)]記錄的時(shí)間大于Tl時(shí),則判定使能端EN異常,本電路將輸出一次復(fù)位脈沖,其中,Tl時(shí)長(zhǎng)可設(shè)定; 如果[RST復(fù)位次數(shù)]記錄的復(fù)位次數(shù)大于Cl時(shí),本電路將在PCON端輸出時(shí)長(zhǎng)T4的脈沖,被監(jiān)控的微處理器完成一次冷啟動(dòng)過(guò)程。
2.根據(jù)權(quán)利要求I所述的一種看門(mén)狗電路的控制方法,其特征是所述的T3時(shí)長(zhǎng)設(shè)定在T3彡O. 2秒。
3.根據(jù)權(quán)利要求I所述的一種看門(mén)狗電路的控制方法,其特征是所述的Cl設(shè)定在Cl彡2,T4設(shè)定在O. I秒 10秒。
全文摘要
本發(fā)明涉及一種看門(mén)狗電路的控制方法。方法是對(duì)復(fù)位鍵S1、WDI和EN進(jìn)行監(jiān)測(cè),當(dāng)微處理器工作正常,會(huì)連續(xù)不斷地向WDI輸出喂狗信號(hào),電路不產(chǎn)生復(fù)位信號(hào);當(dāng)微處理器工作異常,未及時(shí)向WDI端輸出喂狗信號(hào)且EN端使能本電路時(shí),本電路將輸出一個(gè)復(fù)位脈沖,強(qiáng)制微處理器熱啟動(dòng);當(dāng)EN端禁用時(shí)間超過(guò)設(shè)定時(shí)長(zhǎng),本電路將輸出一個(gè)復(fù)位脈沖,強(qiáng)制微處理器熱啟動(dòng);若被監(jiān)控的微處理器熱啟動(dòng)后的一段時(shí)間內(nèi),仍未向WDI端輸出喂狗信號(hào),本電路將控制微處理器工作電源,將其斷電,然后再控制上電。本發(fā)明的有益效果是提供了對(duì)被監(jiān)控的微處理器2種啟動(dòng)方式,即熱啟動(dòng)和冷啟動(dòng)操作,有助于此類嵌入式應(yīng)用系統(tǒng)的長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。
文檔編號(hào)G06F11/00GK102915258SQ20121038593
公開(kāi)日2013年2月6日 申請(qǐng)日期2012年11月30日 優(yōu)先權(quán)日2012年11月30日
發(fā)明者吳允平, 蘇偉達(dá), 李汪彪, 蔡聲鎮(zhèn), 劉華松, 汪培, 胡文倩 申請(qǐng)人:福建師范大學(xué)