一種嵌入式系統監控及復位控制方法
2023-06-16 02:08:01
一種嵌入式系統監控及復位控制方法
【專利摘要】本發明涉及一種系統監控及復位控制方法,應用於各種嵌入式作業系統及設備,用以提高系統及設備運行的安全性、可靠性和穩定性。本發明方法利用系統軟體和CPLD邏輯代碼相結合的方式來產生餵狗信號,同時結合復位機制,可以使系統初始狀態更加確定,系統復位更加徹底。
【專利說明】一種嵌入式系統監控及復位控制方法
【技術領域】
[0001]本發明涉及一種系統監控及復位控制方法,應用於各種嵌入式作業系統及設備,用以提高系統及設備運行的安全性、可靠性和穩定性。
【背景技術】
[0002]WDT(watch dog timer)是最常見的系統異常監控方法,其中硬體電路一般採用MAX706等看門狗控制晶片,餵狗信號WDI —般有如下兩種產生方法。
[0003]第一種是直接利用系統軟體來產生周期性的餵狗信號。該方法的優點是實現簡單,餵狗信號是否正常直接反映了作業系統軟體是否正常工作。但是,它的缺點非常致命。因為MAX706等看門狗控制晶片的餵狗信號一般需要在1.6秒之內從高到低,或者從低到高產生跳變,一旦作業系統中的任務調度比較繁忙的話,經常會保證不了在1.6秒之內使餵狗信號產生跳變,從而會導致由於WDT定時器溢出而使系統復位的誤監控情況發生。
[0004]第二種是直接利用CPLD邏輯代碼來產生餵狗信號。該方法的優點是可以保證餵狗信號的精準,不會發生由於作業系統任務調度不及時而造成的餵狗信號產生不精準的問題,同時,用CPLD來產生餵狗信號也可以減輕作業系統的負擔。這一種方法的缺點是不能直接監控作業系統的運行狀況,它只能直接監控系統中CPLD邏輯代碼的運行狀況,因為作業系統和CPLD邏輯是各自獨立的,其中一種運行出問題,不代表另外一種也一定會出問題。
【發明內容】
[0005]本發明的目的是為了克服上述【背景技術】的不足之處,提供一種系統監控及復位控制方法,利用系統軟體和CPLD邏輯代碼相結合的方式來產生餵狗信號,同時結合復位機制,不但可以避免上述兩種方式中問題,同時還可以使系統初始狀態更加確定,系統復位更加徹底。
[0006]本發明的發明目的是通過如下技術手段實現的。
[0007]—種系統監控及復位控制方法,該方法使用的硬體部分包括CPLD晶片、CPU晶片、看門狗控制晶片及其他外圍硬體電路,該方法中看門狗控制晶片的餵狗信號WDI採用系統軟體和CPLD邏輯代碼相結合的方式來產生,包括以下步驟:
(I)CPLD邏輯代碼產生周期小於3.2秒的方波信號SI,SI通過一個看門狗使能控制位FLAGl和一個CPU餵狗信號是否正常標識位FLAG2共同控制以後,再經CPLD的一個I/O管腳Jl輸出給看門狗控制晶片的餵狗輸入管腳;其中,看門狗使能控制位FLAGl默認不使能,關閉看門狗,CPU作業系統初始化完成以後再由軟體動態使能該控制位FLAG1,打開看門狗。
[0008](2)按如下策略控制CPU餵狗信號是否正常標識位FLAG2:
作業系統軟體通過CPU的一個GP1管腳向CPLD的一個I/O管腳J2輸入周期為T的方波信號S2,在CPLD邏輯代碼中判斷S2是否在正常跳變,如果跳變正常,FLAG2置為正常,否則置為異常;考慮到CPU作業系統的調度工作量和系統監控效果,T 一般大於3.2S,小於6S為宜;
FLAGl使能,FLAG2正常時,SI正常輸出給看門狗控制晶片的餵狗輸入管腳;FLAG1不使能或者FLAGl使能,FLAG2異常時,SI停止輸出給看門狗控制晶片的餵狗輸入管腳;
這種嵌套產生餵狗信號的方法既監控了 CPLD邏輯代碼的實時運行狀態,也監控了作業系統軟體的實時運行狀態,同時S2的產生周期T可根據系統的實際負荷情況進行靈活調整,從而保證作業系統能夠調度及時。
[0009](3) CPU作業系統復位控制:
看門狗控制晶片的復位輸出管腳W_R接入CPLD的I/O管腳J3,設備的手動復位按鈕SW並聯接入看門狗控制晶片的手動復位管腳MR,這樣看門狗晶片因餵狗信號不正常而復位、手動按鈕復位和設備上電啟動時J3上都會輸入復位信號RST,RST的低電平寬度為200毫秒,之後會自行跳變到高電平;CPLD邏輯代碼利用RST信號給相應的寄存器賦予確定的初值,其中,CPLD的餵狗輸出管腳Jl上賦予高阻態初值,看門狗使能控制位FLAGl —定要不使能,否則會造成系統啟動過程中由於CPU還未來得及產生S2時,Jl上的餵狗信號不正常而造成系統不斷重啟。同時在CPLD邏輯代碼中定義寄存器REG用於系統軟體控制各硬體晶片的復位,各硬體晶片的復位信號RSTO,RSTl等由J3上的復位信號RST和系統軟體復位控制位REG共同控制,任意一種有效都會控制CPU晶片及作業系統和其他硬體晶片的復位。
[0010]此復位機制中由於手動復位按鈕SW並聯接入看門狗控制晶片的手動復位管腳MR,而不是直接接入CPLD的I/O管腳,這樣就可以利用看門狗控制晶片的防抖動特性,避免CPLD邏輯代碼錯誤的將SW上的抖動當成復位操作。同時利用看門狗晶片輸出的復位信號RST來賦予相應的CPLD寄存器初值,可以使相應的初始狀態更加確定,避免了由於沒有初始狀態而引發的一些異常問題發生。各硬體晶片的復位操作由看門狗晶片輸出的復位信號RST和軟體復位控制位REG共同控制,可以使復位操作更加徹底和更加靈活。
[0011]在上述技術方案中,發明方法硬體部分包括CPLD晶片、看門狗控制晶片MAX706、CPU晶片,所述CPU晶片通過一個GP1管腳與CPLD的一個I/O管腳J2相連,CPLD晶片的I/O管腳Jl與MAX706晶片的WDI輸入管腳相連,設備的手動復位按鈕SW通過4.7K的上拉電阻後並聯接入MAX706晶片的手動復位按鈕MR, MAX706晶片的RST管腳與CPLD的I/O管腳J3相連,CPLD的I/O管腳J4和I/O管腳J5別與CPU晶片及其他外圍硬體電路相連。
[0012]本發明一種系統監控及復位控制方法,該方法基於CPLD邏輯、硬體電路和軟體控制策略,可以實現對實時運行的系統是否正常運行進行監控,同時也提供一種系統上電及系統異常復位控制機制,可有效提高嵌入式系統及設備運行的安全性、可靠性和穩定性。
【專利附圖】
【附圖說明】
[0013]圖1為本發明中餵狗信號WDI及復位信號產生硬體連接示意圖。
[0014]圖2為本發明餵狗信號WDI產生流程圖。
【具體實施方式】
[0015]下面結合附圖及實施例對本發明作進一步描述。
[0016]如圖1所示,本實施例硬體部分包括CPLD晶片、看門狗控制晶片MAX706、CPU晶片,所述CPU晶片通過一個GP1管腳輸出周期為T的方波信號S2給CPLD的一個I/O管腳J2,CPLD邏輯產生的餵狗信號WDI通過I/O管腳Jl輸入到MAX706晶片的WDI輸入管腳,設備的手動復位按鈕SW通過4.7K的上拉電阻上拉後並聯接入MAX706晶片的手動復位按鈕MR, MAX706產生的復位信號RST通過I/O管腳J3輸入給CPLD,CPLD產生的復位信號RSTO和RSTl等分別通過I/O管腳J4和I/O管腳J5輸入給CPU晶片及其他外圍硬體電路晶片。其中,為了給復位信號一個確定的初始非復位狀態,電路中各復位信號均通過一個4.7K的電阻上拉,並且為了去抖動,各復位信號同時通過一個1nf左右的電容並聯到地,MAX706的定時器溢出管腳WD0_N直接和MR相連,這樣一旦WDI餵狗不及時,MAX706晶片內部的定時器溢出或者設備的手動復位按鈕SW按下時,MAX706的復位管腳RST_N均會輸出200ms左右的低電平復位號。
[0017]如圖2所示為由系統軟體和CPLD邏輯代碼相結合來產生WDI信號的流程圖。
[0018]第一步,系統啟動一個看門狗定時器來通過CPU的一個GP1管腳產生周期為T的方波信號S2:啟動看門狗定時器,通過CPU的GP1管腳8產生周期T=4秒的方波信號S2 ;
第二步,系統軟體設置CPLD中的看門狗使能控制位FLAGl為使能狀態;
第三步,CPLD邏輯代碼產生周期小於3.2秒的方波信號SI ;
第四步,判斷S2信號的高低跳變周期是否小於Τ/2,若為是則判斷CPU餵狗信號是否正常標識位FLAG2跳變正常,進入步驟五;若為否則判斷CPU餵狗信號是否正常標識位FLAG2跳變不正常,則SI停止輸出給看門狗控制晶片的WDI管腳;
第五步,判斷是否滿足看門狗使能控制位FLAGl使能,CPU餵狗信號是否正常標識位FLAG2正常,若為是SI正常輸出給看門狗控制晶片的WDI管腳,若為否則SI停止輸出給看門狗控制晶片的WDI管腳;
第六步,返回第四步。
[0019]本實施例中還提供一種CPU作業系統復位控制,具體實現方式如下:
看門狗控制晶片的復位輸出管腳W_R接入CPLD的I/O管腳J3,設備的手動復位按鈕SW並聯接入看門狗控制晶片的手動復位管腳MR,這樣看門狗晶片因餵狗信號不正常而復位、手動按鈕復位和設備上電啟動時J3上都會輸入復位信號RST,RST的低電平寬度為200毫秒,之後會自行跳變到高電平;CPLD邏輯代碼利用RST信號給相應的寄存器賦予確定的初值,其中,CPLD的餵狗輸出管腳Jl上賦予高阻態初值,看門狗使能控制位FLAGl —定要不使能,同時在CPLD邏輯代碼中定義寄存器REG用於系統軟體控制各硬體晶片的復位,各硬體晶片的復位信號由J3上的復位信號RST和系統軟體復位控制位REG共同控制,任意一種有效都會控制CPU晶片及作業系統和其他硬體晶片的復位。
[0020]以VxWorks作業系統為例,系統啟動一個看門狗定時器來通過CPU的一個GP1管腳產生周期為T的方波信號S2的實現過程如下:
/*啟動看門狗定時器,通過CPU的GP1管腳8產生周期T=4秒的方波信號S2*/ void Feed_ffdt_Start (void)
{
WdIdO =wdCreate ;//創建看門狗定時器
ffd_Ctrl_Low ;//啟動看門狗定時器產生周期為4秒的方波信號
}Void ffd_Ctrl_Low (void)
{
Gp18_direct1n_output (0) ; // 控制 CPU 的 GP108 對外輸出低電平 wdStart(ffdIdO, T/2, (FUNCPTR)ffd_Ctrl_High, NULL) ;// 啟動看門狗定時器
}
Void ffd_Ctrl_High (void)
{
Gp18_direct1n_output (I) ; // 控制 CPU 的 GP108 對外輸出高電平 wdStart(ffdIdO, T/2, (FUNCPTR)ffd_Ctrl_Low, NULL) ;// 啟動看門狗定時器
}
作業系統啟動完成以後,執行如下函數Init_WDT來開啟系統的監控功能。
[0021]void Init_WDT (void)
{
Feed_ffdt_Start ;//啟動看門狗定時器產生周期為4秒的方波信號 CPLD_ffd_En ;//使能CPLD中的看門狗使能控制為FLAGl
}
以Verilog可編程邏輯語言為例,CPLD邏輯中檢測S2信號是否在按周期T正常跳變, 產生WDI餵狗信號以及復位控制等的實現過程如下: input GP108, //J2 input RST, //J3 output WDI, //Jl output RSTO, //J4 output RSTI, //J5
wire FLAG2; //S2產生是否正常標識位 reg WDI_reg;
reg FLAGl;//看門狗使能控制位
regCLK_8K;//8KHz 的時鐘信號
reg S2_HIGH;//S2的高電平半周期跳變標識位
reg S2_L0ff;//S2的低電平半周期跳變標識位
reg run_per1d_2s; //周期為2秒的方波信號,用於輸出給WDI
reg soft_rst_ctl [7:0];系統軟體復位各晶片控制位
always (posedge CLK_8K or negedge RST)//WDI 產生模塊
begin
if (RST == I』 bO) // MAX706輸出低電平復位信號
begin
FLAGK=IJ bO; //初始化時把看門狗使能位置為不使能
ffDI_reg<=rbz; //復位過程中WDI給高阻態,不啟動MAX706內部的定時器,以免MAX706不斷輸出復位信號,使系統無法正常啟動end
【權利要求】
1.一種嵌入式系統監控及復位控制方法,該方法使用的硬體部分包括CPLD晶片、CPU晶片、看門狗控制晶片及其他外圍硬體電路,其特徵在於該方法包括以下步驟: (1)CPLD邏輯代碼產生周期小於3.2秒的方波信號SI,SI通過一個看門狗使能控制位FLAGl和一個CPU餵狗信號是否正常標識位FLAG2共同控制以後,再經CPLD晶片的一個I/O管腳Jl輸出給看門狗控制晶片的餵狗輸入管腳;其中,看門狗使能控制位FLAGl默認不使能,關閉看門狗,CPU作業系統初始化完成後再由軟體動態使能控制位FLAG1,打開看門狗; (2)按如下策略控制CPU餵狗信號是否正常標識位FLAG2: CPU作業系統通過CPU的一個GP1管腳向CPLD的一個I/O管腳J2輸入周期為T的方波信號S2,在CPLD邏輯代碼中判斷S2是否在正常跳變,如果跳變正常,FLAG2置為正常,否則置為異常;其中,T 一般大於3.2S,小於6S; (3)若FLAGl使能,FLAG2正常時,SI正常輸出給看門狗控制晶片的餵狗輸入管腳;FLAGl不使能或者FLAGl使能,FLAG2異常時,SI停止輸出給看門狗控制晶片的餵狗輸入管腳; (4)CPU作業系統復位控制: 看門狗控制晶片的復位輸出管腳W_R接入CPLD的I/O管腳J3,設備的手動復位按鈕SW並聯接入看門狗控制晶片的手動復位管腳MR,這樣看門狗晶片因餵狗信號不正常而復位、手動按鈕復位和設備上電啟動時J3上都會輸入復位信號RST,RST的低電平寬度為200毫秒,之後會自行跳變到高電平;CPLD邏輯代碼利用RST信號給相應的寄存器賦予確定的初值,其中,CPLD的餵狗輸出管腳Jl上賦予高阻態初值,看門狗使能控制位FLAGl —定要不使能,同時在CPLD邏輯代碼中定義寄存器REG用於系統軟體控制各硬體晶片的復位,各硬體晶片的復位信號由J3上的復位信號RST和系統軟體復位控制位REG共同控制,任意一種有效都會控制CPU晶片及作業系統和其他硬體晶片的復位。
2.根據權利要求1所述的嵌入式系統監控及復位控制方法,其特徵是:所述方法硬體部分包括CPLD晶片、看門狗控制晶片MAX706、CPU晶片,所述CPU晶片通過一個GP1管腳與CPLD的一個I/O管腳J2相連,CPLD晶片的I/O管腳Jl與MAX706晶片的WDI輸入管腳相連,設備的手動復位按鈕SW通過4.7K的上拉電阻後並聯接入MAX706晶片的手動復位按鈕MR, MAX706晶片的RST管腳與CPLD的I/O管腳J3相連,CPLD的I/O管腳J4和I/O管腳J5分別與CPU晶片及其他外圍硬體電路相連。
【文檔編號】G06F11/30GK104035536SQ201410269423
【公開日】2014年9月10日 申請日期:2014年6月18日 優先權日:2014年6月18日
【發明者】鄭霞, 郭浩, 陳鵬, 徐鵬飛, 淳增輝, 李三, 張翼, 陳昊, 鄧松, 何裕舒, 程曉, 蔡立安, 鄧玉華, 溫照柏, 徐翔, 湯靈 申請人:中國船舶重工集團公司第七二二研究所