本發(fā)明涉及一種機載防撞系統(tǒng)的軟硬件死機檢測及復(fù)位方法,特別是涉及一種適用于TCASII機載防撞系統(tǒng)的軟硬件死機檢測及復(fù)位方法。
背景技術(shù):
TCASII是一個綜合化機載防撞系統(tǒng),主要用于為飛機提供空中安全分隔保證,達到防碰撞的目的。通過詢問、接收、處理其他飛機應(yīng)答機的回答信號,對周圍的其他飛機進行監(jiān)視,并計算監(jiān)視范圍內(nèi)其他飛機相對本機的飛行趨勢,給出交通告警和決斷告警建議。
TCASII機載防撞系統(tǒng)本身的功能很多,數(shù)據(jù)處理極其復(fù)雜,因此保證TCASII機載防撞系統(tǒng)的穩(wěn)定性和正確性,是關(guān)系到機載防撞系統(tǒng)能否正常工作的關(guān)鍵。因此當(dāng)TCASII機載防撞系統(tǒng)由于各種情況出現(xiàn)軟件死循環(huán)或者硬件出現(xiàn)CPU死機等情況時,整個TCASII機載防撞系統(tǒng)將失效,直接影響整個防撞系統(tǒng)的使用,影響飛機的安全。
現(xiàn)有的技術(shù)中,TCASII機載防撞系統(tǒng)缺少看門狗系統(tǒng),致使當(dāng)飛機在復(fù)雜電磁環(huán)境或者惡劣氣候條件下,由于電磁干擾或者單粒子反轉(zhuǎn),引起軟件進入死循環(huán)或者CPU進入死機狀態(tài),無法恢復(fù)的情況下,沒有有效的檢測和恢復(fù)機制,進而造成TCASII機載防撞系統(tǒng)失效。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種機載防撞系統(tǒng)因軟件死循環(huán)或硬件出現(xiàn)CPU死機等情況所引起的整個系統(tǒng)失效時,能夠在短時間內(nèi)對其進行檢測和恢復(fù)的軟硬件檢測及復(fù)位方法。
本發(fā)明采用的技術(shù)方案如下:
一種機載防撞系統(tǒng)的硬件死機檢測及復(fù)位方法,具體方法步驟為:
一、機載防撞系統(tǒng)啟動;
二、判斷在T1秒時間內(nèi)CPU模塊是否有對硬件看門狗模塊的喂狗動作,如果是,則進入下一步;如果否,則硬件看門狗模塊給CPU模塊復(fù)位信號使CPU模塊進入復(fù)位,進入上一步;
三、當(dāng)CPU模塊給出第一次喂狗信號后,硬件看門狗模塊開啟喂狗檢測定時器,CPU模塊按照設(shè)置的喂狗定時周期時間閾值T2秒開始周期性喂狗動作,每T2秒進行一次喂狗動作,如果硬件看門狗模塊在規(guī)定周期時間閾值T3秒內(nèi)都能收到喂狗信號,則硬件看門狗模塊持續(xù)運行;否則,如果硬件看門狗模塊在某個規(guī)定周期時間閾值T3秒內(nèi)未能收到喂狗信號,則進入下一步;
四、硬件看門狗模塊對CPU模塊給出復(fù)位信號,使CPU模塊復(fù)位,進入步驟一;
所述T3大于等于T2。
在機載防撞系統(tǒng)中設(shè)置硬件看門狗模塊,將機載防撞系統(tǒng)中每個獨立的CPU模塊的復(fù)位線連接到硬件看門狗模塊。CPU模塊與硬件看門狗模塊之間為一對一的關(guān)系或者多對一的關(guān)系。對CPU模塊設(shè)計喂狗機制,當(dāng)CPU模塊在規(guī)定閾值內(nèi)沒有喂狗動作,采取復(fù)位措施。
在步驟二中,如果在T1秒內(nèi)CPU模塊有對硬件看門狗模塊的喂狗動作(第一次喂狗動作),則說明CPU模塊已經(jīng)正常啟動完成,同時正式啟動硬件看門狗模塊,則CPU模塊能夠以該喂狗動作為時間基準統(tǒng)一硬件看門狗模塊和CPU模塊的時間基準,從而開始以喂狗周期T2秒周期性喂狗動作。
在步驟三中,如果硬件看門狗模塊在規(guī)定周期時間內(nèi)收到CPU模塊的喂狗動作,則說明CPU模塊現(xiàn)在正常,則繼續(xù)監(jiān)測。如果硬件看門狗模塊在某個喂狗周期時間閾值T2內(nèi)未收到喂狗動作,并且再超過最大周期時間閾值T3秒后仍然沒有收到喂狗動作,則說明出現(xiàn)CPU異常。該T3時間可以為T2,也就是說同周期閾值時間T2相同,也可以取大于T2的任意值,根據(jù)實際情況而定。
如果在規(guī)定條件閾值T3或者T1內(nèi),硬件看門狗模塊未收到CPU模塊的喂狗動作,則對CPU模塊進行復(fù)位。
所述方法還包括,在步驟二中,設(shè)置硬件看門狗模塊給CPU模塊進行復(fù)位的復(fù)位次數(shù)閾值M,當(dāng)CPU模塊的復(fù)位次數(shù)達到該閾值M時,CPU模塊還是未對硬件看門狗模塊給出喂狗動作,則硬件看門狗模塊給出最后一次CPU模塊復(fù)位信號,進入異常處理機制;所述M為大于等于1的自然數(shù)。
所述異常處理機制為:硬件看門狗模塊不再給出復(fù)位信號,不再檢測CPU模塊的喂狗動作,不再給出復(fù)位信號,記錄故障到指定位置。待其他共用CPU模塊讀取記錄到看門狗日志中。
所述方法還包括,當(dāng)看門狗硬件模塊完成每次對CPU模塊的復(fù)位信號觸發(fā)后,進行復(fù)位信號記錄,CPU模塊啟動后,讀取該記錄,并將該情況記錄到看門狗監(jiān)控日志中。
所述方法還包括,至少有兩個CPU模塊共用一個硬件看門狗模塊,兩個CPU模塊之間通過雙端口RAM或者其他方式進行通信;第一CPU模塊定時檢測第二CPU模塊發(fā)送來的特定數(shù)據(jù),并進行數(shù)據(jù)統(tǒng)計,當(dāng)?shù)谝籆PU模塊連續(xù)N個數(shù)據(jù)發(fā)送周期收不到第二CPU模塊的數(shù)據(jù)信號后,第一CPU模塊獲取硬件看門狗模塊關(guān)于第二CPU模塊的記錄數(shù)據(jù),將該記錄數(shù)據(jù)以及該故障發(fā)生時間寫入故障記錄文件,并向硬件看門狗發(fā)送復(fù)位第二CPU模塊的復(fù)位命令;反之,亦然;
硬件看門狗模塊根據(jù)第一CPU模塊發(fā)送的復(fù)位命令,給第二CPU模塊復(fù)位信號;第二CPU模塊接收到硬件看門狗發(fā)送的復(fù)位信號后,自動復(fù)位;第一CPU模塊繼續(xù)監(jiān)視第二CPU模塊信號,如果接收到第二CPU模塊數(shù)據(jù)信號,則恢復(fù)正常工作,將特殊數(shù)據(jù)標志位置位,記錄CPU間通信恢復(fù)正常;如果收不到第二CPU模塊數(shù)據(jù)信號,則說明故障,流程結(jié)束;第一CPU讀取硬件看門狗相關(guān)記錄,并記錄到看門狗日志中;
所述N為大于等于2的自然數(shù)。反之,第二CPU模塊能夠?qū)Φ谝籆PU模塊采取同樣的措施。
一種機載防撞系統(tǒng)的軟件死機檢測及復(fù)位方法,設(shè)置軟件看門狗程序,具體方法步驟為,
A、軟件看門狗程序周期性檢測所關(guān)注軟件進程的喂狗情況,當(dāng)連續(xù)K個周期未監(jiān)測到所關(guān)注的某個軟件進程的喂狗動作,則進入下一步;
B、刪除該軟件進程,重新創(chuàng)建該軟件進程并初始化該軟件進程的相關(guān)變量,并進入步驟A。
所述方法還包括,在步驟B中,同時將此故障記錄及發(fā)生時間記錄到故障記錄文件。
所述方法還包括,在步驟B中,檢測重新創(chuàng)建的軟件進程是否創(chuàng)建成功,如果創(chuàng)建成功再進入步驟A,否則再重新創(chuàng)建該任務(wù)進程并初始化相關(guān)變量,并繼續(xù)檢測該創(chuàng)建的任務(wù)進程是否成功,如果創(chuàng)建成功則進入步驟A,如果重新創(chuàng)建L次后仍然未創(chuàng)建成功,則報機載防撞系統(tǒng)故障,不再繼續(xù)創(chuàng)建;所述L為大于等于1的自然數(shù)。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:針對TCASII機載防撞系統(tǒng)采取硬件看門狗技術(shù)與軟件看門狗技術(shù),以及軟硬件結(jié)合的看門狗技術(shù),進行實時監(jiān)控以及及時復(fù)位,能夠及時監(jiān)控到TCASII機載防撞系統(tǒng)故障,能及時在線復(fù)位,使故障在線解除,增強機載防撞設(shè)備的可靠性。
附圖說明
圖1為本發(fā)明其中一實施例的硬件看門狗方案示意圖。
圖2為本發(fā)明其中一實施例的硬件看門狗方法流程圖。
圖3為本發(fā)明其中一實施例的兩個CPU模塊對應(yīng)一個硬件看門狗方案示意圖。
圖4為本發(fā)明其中一實施例的兩個CPU模塊對應(yīng)一個硬件看門狗方法流程圖。
圖5為本發(fā)明其中一實施例的軟件看門狗方案示意圖。
圖6為本發(fā)明其中一實施例的軟件看門狗方法流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本說明書(包括摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
具體實施例1
如圖1和圖2所示,在本具體實施例中,以TCASII機載防撞系統(tǒng)為例,采用FPGA復(fù)位CPU的方式實現(xiàn)硬件看門狗模塊。
一種機載防撞系統(tǒng)的硬件死機檢測及復(fù)位方法,具體方法步驟為:
一、機載防撞系統(tǒng)啟動;
二、判斷在T1秒時間內(nèi)CPU模塊是否有對硬件看門狗模塊的喂狗動作,如果是,則進入下一步;如果否,則硬件看門狗模塊給CPU模塊復(fù)位信號使CPU模塊進入復(fù)位,進入上一步;
三、當(dāng)CPU模塊給出第一次喂狗信號后,硬件看門狗模塊開啟喂狗檢測定時器,CPU模塊按照設(shè)置的喂狗定時周期時間閾值T2秒開始周期性喂狗動作,每T2秒進行一次喂狗動作,如果硬件看門狗模塊在規(guī)定周期時間閾值T3秒內(nèi)都能收到喂狗信號,則硬件看門狗模塊持續(xù)運行;否則,如果硬件看門狗模塊在某個規(guī)定周期時間閾值T3秒內(nèi)未能收到喂狗信號,則進入下一步;
四、硬件看門狗模塊對CPU模塊給出復(fù)位信號,使CPU模塊復(fù)位,進入步驟一;
在本具體實施例中,所述T3為T2的4倍,T1=30,T2=1,T3=4。
具體實施例2
在具體實施例1的基礎(chǔ)上,所述方法還包括,在步驟二中,設(shè)置硬件看門狗模塊給CPU模塊進行復(fù)位的復(fù)位次數(shù)閾值M,當(dāng)CPU模塊的復(fù)位次數(shù)達到該閾值M時,CPU模塊還是未對硬件看門狗模塊給出喂狗動作,則硬件看門狗模塊給出最后一次CPU模塊復(fù)位信號,進入異常處理機制;所述M為大于等于1的自然數(shù)。在本具體實施例中,M=1,也就是說,如果第二個T1秒后,CPU模塊仍然沒有任何喂狗動作,則給出最后一次CPU模塊復(fù)位信號,進入異常處理。
所述異常處理機制為:硬件看門狗模塊不再檢測CPU模塊的喂狗動作,即不再給出復(fù)位信號,記錄故障到指定位置。在多CPU模塊共用看門狗模塊中,正常的CPU模塊可以完成對該記錄的讀取工作,并將該記錄記錄到看門狗監(jiān)控日志中。
具體實施例3
在具體實施例1或2的基礎(chǔ)上,所述方法還包括,當(dāng)看門狗硬件模塊完成每次對CPU模塊的復(fù)位信號觸發(fā)后,進行復(fù)位信號記錄,CPU模塊啟動后,讀取該記錄,并將該情況記錄到看門狗監(jiān)控日志中。
具體實施例4
如圖3和圖4所示,所述方法還包括,至少有兩個CPU模塊共用一個硬件看門狗模塊,兩個CPU模塊之間通過雙端口RAM或者其他方法進行通信;第一CPU模塊(在本具體實施例中為CPUA)定時檢測第二CPU模塊(在本具體實施例中為CPUB)發(fā)送來的特定數(shù)據(jù),并進行數(shù)據(jù)統(tǒng)計,當(dāng)?shù)谝籆PU模塊連續(xù)N個數(shù)據(jù)發(fā)送周期收不到第二CPU模塊的數(shù)據(jù)信號后,第一CPU模塊獲取硬件看門狗模塊關(guān)于第二CPU模塊的記錄數(shù)據(jù),將該記錄數(shù)據(jù)以及該故障發(fā)生時間寫入故障記錄文件,并向硬件看門狗發(fā)送復(fù)位第二CPU模塊的復(fù)位命令;
硬件看門狗模塊根據(jù)第一CPU模塊發(fā)送的復(fù)位命令,給第二CPU模塊復(fù)位信號;第二CPU模塊接收到硬件看門狗發(fā)送的復(fù)位信號后,自動復(fù)位;第一CPU模塊繼續(xù)監(jiān)視第二CPU模塊信號,如果接收到第二CPU模塊數(shù)據(jù)信號,則恢復(fù)正常工作,將特殊數(shù)據(jù)標志位置位,記錄CPU間通信恢復(fù)正常;如果收不到第二CPU模塊數(shù)據(jù)信號,則說明故障,流程結(jié)束;CPU1讀取硬件看門狗相關(guān)記錄,并記錄到看門狗日志中。
所述N為大于等于2的自然數(shù)。在本具體實施例中,N=3。
具體實施例5
如圖5和圖6所示的機載防撞系統(tǒng)的軟件死機檢測及復(fù)位方法,設(shè)置軟件看門狗程序,具體方法步驟為,
A、軟件看門狗程序周期性檢測所關(guān)注軟件進程的喂狗情況,當(dāng)連續(xù)K個周期未監(jiān)測到所關(guān)注的某個軟件進程的喂狗動作,則進入下一步;
B、刪除該軟件進程,重新創(chuàng)建該軟件進程并初始化該軟件進程的相關(guān)變量,并進入步驟A。
在本具體實施中,K=3。
具體實施例6
在具體實施例5的基礎(chǔ)上,所述方法還包括,在步驟B中,同時將此故障記錄已經(jīng)發(fā)生時間記錄到故障記錄文件。
具體實施例7
在具體實施例5或者6的基礎(chǔ)上,所述方法還包括,在步驟B中,檢測重新創(chuàng)建的軟件進程是否創(chuàng)建成功,如果創(chuàng)建成功再進入步驟A,否則再重新創(chuàng)建該任務(wù)進程并初始化相關(guān)變量,并繼續(xù)檢測該創(chuàng)建的任務(wù)進程是否成功,如果創(chuàng)建成功則進入步驟A,如果重新創(chuàng)建L次后仍然未創(chuàng)建成功,則報機載防撞系統(tǒng)故障,不再繼續(xù)創(chuàng)建;所述L為大于等于1的自然數(shù)。在本具體實施例中,L=1。