航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法及系統(tǒng),該方法包括:判斷控制軟件運(yùn)行過程是否出錯(cuò),若出錯(cuò)則調(diào)用復(fù)位指令以復(fù)位,其中,判斷控制軟件運(yùn)行過程是否出錯(cuò)包括:判斷控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則判定控制軟件出錯(cuò);接收到中斷請(qǐng)求時(shí),判斷中斷請(qǐng)求是否為異常中斷,若是,則清除中斷請(qǐng)求,若否則執(zhí)行中斷;在執(zhí)行中斷后,判斷在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到中斷的中斷返回指令,若否則控制軟件出現(xiàn)非正常跳轉(zhuǎn),設(shè)置控制軟件執(zhí)行陷阱程序以調(diào)用復(fù)位指令進(jìn)行復(fù)位。本發(fā)明恢復(fù)方法及系統(tǒng)實(shí)現(xiàn)了對(duì)控制軟件運(yùn)行出錯(cuò)的快速檢測(cè)及自動(dòng)復(fù)位,減少了發(fā)動(dòng)機(jī)短時(shí)失控的時(shí)長(zhǎng),保證了發(fā)動(dòng)機(jī)的平穩(wěn)可靠運(yùn)行。
【專利說明】航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及航空發(fā)動(dòng)機(jī)控制【技術(shù)領(lǐng)域】,特別地,涉及一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法及系統(tǒng)。
【背景技術(shù)】
[0002]航空發(fā)動(dòng)機(jī)電子控制器是發(fā)動(dòng)機(jī)的大腦,而航空發(fā)動(dòng)機(jī)的控制軟件則是電子控制器的核心。它通過電子控制器的硬件采集發(fā)動(dòng)機(jī)傳感器信號(hào),利用通訊接收來自飛機(jī)的指令,再通過控制算法,控制相應(yīng)的執(zhí)行機(jī)構(gòu)動(dòng)作(開關(guān)量輸出),以實(shí)現(xiàn)發(fā)動(dòng)機(jī)的狀態(tài)變換。
[0003]一方面,航空發(fā)動(dòng)機(jī)的電子控制器工作在一個(gè)惡劣的電磁環(huán)境中,盡管采用了電磁兼容設(shè)計(jì)方法,但其受干擾還是不可避免的。另一方面,電子控制器的CPU系統(tǒng)是一個(gè)非常精確的系統(tǒng),其數(shù)據(jù)/地址線及控制線(如讀寫、片選及取指等)的時(shí)序都是微秒級(jí)的,如果數(shù)據(jù)/地址線及控制線串入一個(gè)尖峰,或者由于干擾使數(shù)據(jù)/地址線及控制線某個(gè)波形發(fā)生微小變化(如電平信號(hào)垂直的上升/下降沿斜率變小),都會(huì)導(dǎo)致CPU系統(tǒng)的數(shù)據(jù)及指令出現(xiàn)錯(cuò)誤,從而使控制軟件運(yùn)行出錯(cuò)、軟件復(fù)位。例如,從某型號(hào)車臺(tái)試驗(yàn)時(shí)進(jìn)行的一次實(shí)時(shí)監(jiān)測(cè)過程中發(fā)現(xiàn),在不到一個(gè)小時(shí)試車過程中,控制軟件復(fù)位竟多達(dá)20多次。
[0004]為了解決此問題,目前,國(guó)內(nèi)外航空發(fā)動(dòng)機(jī)電子控制器通常是在硬件上采用了抗干擾措施,以盡量減少控制軟件運(yùn)行出錯(cuò)的機(jī)會(huì)。但是,一旦出現(xiàn)軟件復(fù)位,電子控制器還是會(huì)短時(shí)停止對(duì)發(fā)動(dòng)機(jī)的控制,使發(fā)動(dòng)機(jī)轉(zhuǎn)速大幅波動(dòng)。針對(duì)此情況,盡管某些型號(hào)電子控制器也采用了一些改進(jìn)措施(如減少初始化自檢時(shí)間、判斷區(qū)分復(fù)位情況等),但是發(fā)動(dòng)機(jī)的短時(shí)失控仍不可避免。如國(guó)外某發(fā)動(dòng)機(jī)電子控制器,其軟件復(fù)位會(huì)使發(fā)動(dòng)機(jī)短時(shí)失控達(dá)300多毫秒,發(fā)動(dòng)機(jī)轉(zhuǎn)速波動(dòng)達(dá)10%以上。因此,僅從硬件上采用抗干擾措施無法避免控制軟件運(yùn)行出錯(cuò),還是會(huì)出現(xiàn)因軟件復(fù)位造成的發(fā)動(dòng)機(jī)轉(zhuǎn)速大幅波動(dòng)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明目的在于提供一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法及系統(tǒng),以解決現(xiàn)有的航空發(fā)動(dòng)機(jī)因控制軟件運(yùn)行出錯(cuò)難以快速恢復(fù)導(dǎo)致的發(fā)動(dòng)機(jī)的短時(shí)失控和轉(zhuǎn)速波動(dòng)的技術(shù)問題。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0007]根據(jù)本發(fā)明的一個(gè)方面,提供一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法,該方法包括:
[0008]判斷控制軟件運(yùn)行過程是否出錯(cuò),若出錯(cuò)則調(diào)用復(fù)位指令以復(fù)位,其中,判斷控制軟件運(yùn)行過程是否出錯(cuò)包括:
[0009]判斷控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則判定控制軟件出錯(cuò);其中,非正常運(yùn)行通過控制軟件是否執(zhí)行清狗操作判斷;
[0010]接收到中斷請(qǐng)求時(shí),判斷中斷請(qǐng)求是否為異常中斷,若是,則清除中斷請(qǐng)求,若否則執(zhí)行中斷;在執(zhí)行中斷后,判斷在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到中斷的中斷返回指令,若否則控制軟件出現(xiàn)非正常跳轉(zhuǎn),設(shè)置控制軟件執(zhí)行陷阱程序以調(diào)用復(fù)位指令進(jìn)行復(fù)位。
[0011]進(jìn)一步地,調(diào)用復(fù)位指令進(jìn)行復(fù)位時(shí),判斷復(fù)位指令是否為運(yùn)行出錯(cuò)復(fù)位,若否則控制軟件執(zhí)行正常的自檢和數(shù)據(jù)初始化操作;若是則跳過自檢操作。
[0012]進(jìn)一步地,在復(fù)位指令為運(yùn)行出錯(cuò)復(fù)位時(shí),判斷控制軟件的當(dāng)前的狀態(tài)指令是否為停車狀態(tài)指令;
[0013]若是,則跳過自檢操作,進(jìn)入數(shù)據(jù)初始化操作;
[0014]若否,則跳過自檢操作,并采集復(fù)位前數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)進(jìn)行快速賦值,以恢復(fù)控制軟件的運(yùn)行。
[0015]進(jìn)一步地,控制軟件的當(dāng)前的狀態(tài)指令不為停車狀態(tài)指令時(shí),控制軟件輸出開關(guān)量使得發(fā)動(dòng)機(jī)的燃油供應(yīng)通路導(dǎo)通。
[0016]進(jìn)一步地,數(shù)據(jù)緩沖區(qū)采用堆棧結(jié)構(gòu)存儲(chǔ)復(fù)位前的數(shù)據(jù),數(shù)據(jù)經(jīng)過濾波處理。
[0017]根據(jù)本發(fā)明的另一方面,還提供一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)系統(tǒng),該系統(tǒng)包括:
[0018]出錯(cuò)檢測(cè)單元,用于判斷控制軟件運(yùn)行過程是否出錯(cuò),若出錯(cuò)則調(diào)用復(fù)位單元;其中,復(fù)位單元用于控制控制軟件調(diào)用復(fù)位指令以復(fù)位;
[0019]出錯(cuò)檢測(cè)單元包括:
[0020]非正常運(yùn)行檢測(cè)模塊,用于判斷控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則調(diào)用復(fù)位指令以復(fù)位;其中,非正常運(yùn)行通過控制軟件是否執(zhí)行清狗操作判斷;和/或
[0021]中斷異常檢測(cè)模塊,用于在接收到中斷請(qǐng)求時(shí),判斷中斷請(qǐng)求是否為異常中斷,若是,則清除中斷請(qǐng)求,否則執(zhí)行中斷;在執(zhí)行中斷后,判斷在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到中斷的中斷返回指令,若否則控制軟件出現(xiàn)非正常跳轉(zhuǎn),設(shè)置控制軟件執(zhí)行陷阱程序以調(diào)用復(fù)位指令進(jìn)行復(fù)位。
[0022]進(jìn)一步地,復(fù)位單元包括:
[0023]復(fù)位類型判斷模塊,用于判斷復(fù)位指令是否為運(yùn)行出錯(cuò)復(fù)位,若否則控制軟件執(zhí)行正常的自檢和數(shù)據(jù)初始化操作;若是則跳過自檢操作。
[0024]進(jìn)一步地,復(fù)位單元還包括:
[0025]停車狀態(tài)檢測(cè)模塊,用于判斷控制軟件的當(dāng)前的狀態(tài)指令是否為停車狀態(tài)指令;
[0026]若是,則跳過自檢操作,進(jìn)入數(shù)據(jù)初始化操作;
[0027]若否,則跳過自檢操作,并采集復(fù)位前數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)進(jìn)行快速賦值,以恢復(fù)控制軟件的運(yùn)行。
[0028]進(jìn)一步地,復(fù)位單元還包括:
[0029]開關(guān)量控制模塊,用于控制軟件的當(dāng)前的狀態(tài)指令不為停車狀態(tài)指令時(shí),控制軟件輸出開關(guān)量使得發(fā)動(dòng)機(jī)的燃油供應(yīng)通路導(dǎo)通。
[0030]進(jìn)一步地,復(fù)位單元還包括:
[0031]緩沖區(qū)存儲(chǔ)模塊,用于以堆棧結(jié)構(gòu)存儲(chǔ)復(fù)位前的數(shù)據(jù),該數(shù)據(jù)經(jīng)過濾波處理。
[0032]本發(fā)明具有以下有益效果:
[0033]本發(fā)明航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法及系統(tǒng),通過檢測(cè)控制軟件的運(yùn)行出錯(cuò)和及時(shí)對(duì)控制軟件進(jìn)行復(fù)位操作,避免程序跑飛,進(jìn)一步地,本發(fā)明包括對(duì)控制軟件的非正常運(yùn)行出錯(cuò)檢測(cè)、中斷請(qǐng)求時(shí)的異常中斷檢測(cè)及中斷后的非正常跳轉(zhuǎn)檢測(cè),實(shí)現(xiàn)了控制軟件運(yùn)行過程出錯(cuò)的及時(shí)檢測(cè)和復(fù)位,從而確保了控制軟件運(yùn)行出錯(cuò)后的快速恢復(fù),與傳統(tǒng)的采用硬件抗干擾措施相比,本發(fā)明恢復(fù)方法及系統(tǒng)實(shí)現(xiàn)了對(duì)控制軟件運(yùn)行出錯(cuò)的快速檢測(cè)及自動(dòng)復(fù)位,減少了發(fā)動(dòng)機(jī)短時(shí)失控的時(shí)長(zhǎng),保證了發(fā)動(dòng)機(jī)的平穩(wěn)可靠運(yùn)行。
[0034]除了上面所描述的目的、特征和優(yōu)點(diǎn)之外,本發(fā)明還有其它的目的、特征和優(yōu)點(diǎn)。下面將參照?qǐng)D,對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
【專利附圖】
【附圖說明】
[0035]構(gòu)成本申請(qǐng)的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0036]圖1是本發(fā)明優(yōu)選實(shí)施例一航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法的步驟流程示意圖;
[0037]圖2是本發(fā)明優(yōu)選實(shí)施例二航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法的步驟流程示意圖;
[0038]圖3是本發(fā)明優(yōu)選實(shí)施例三航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)系統(tǒng)的原理方框示意圖。
【具體實(shí)施方式】
[0039]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0040]本發(fā)明實(shí)施例通過對(duì)控制軟件的運(yùn)行出錯(cuò)進(jìn)行檢測(cè)并在控制軟件運(yùn)行出錯(cuò)后進(jìn)行快速恢復(fù),以減少發(fā)動(dòng)機(jī)的短時(shí)失控的時(shí)長(zhǎng),從而保證航空發(fā)動(dòng)機(jī)的平穩(wěn)運(yùn)行。
[0041]參照?qǐng)D1,本發(fā)明的優(yōu)選實(shí)施例一提供一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法,該方法包括:
[0042]步驟S101,判斷控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則執(zhí)行步驟S102,若否則控制軟件正常往下執(zhí)行;其中,非正常運(yùn)行通過控制軟件是否執(zhí)行清狗操作判斷。本實(shí)施例中,在控制軟件中設(shè)置軟件看門狗,處理器按照控制軟件的順序執(zhí)行的規(guī)律,每個(gè)循環(huán)周期(本實(shí)施例以IOus為例)都會(huì)執(zhí)行到清狗程序,即對(duì)軟件看門狗的計(jì)時(shí)器進(jìn)行清零操作,如果一旦控制軟件跑飛,則沒有按照順序執(zhí)行指令,當(dāng)處理器超過第一預(yù)設(shè)時(shí)間(本實(shí)施例以11.86ms為例)仍沒有執(zhí)行清狗程序,則軟件看門狗調(diào)用中斷請(qǐng)求,則表明控制軟件非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,執(zhí)行步驟S102,否則,控制軟件按順序往下執(zhí)行。
[0043]步驟S102,處理器調(diào)用復(fù)位指令以復(fù)位,即控制軟件從程序起點(diǎn)開始執(zhí)行程序,以對(duì)控制軟件出錯(cuò)快速恢復(fù)。
[0044]步驟S103,處理器接收到中斷請(qǐng)求時(shí),判斷中斷請(qǐng)求是否為異常中斷,若是,執(zhí)行步驟S104,若否則執(zhí)行步驟S105,此步驟中處理器根據(jù)I/O端口的異常請(qǐng)求指令執(zhí)行應(yīng)急處理程序,在處理器調(diào)用中斷請(qǐng)求時(shí),根據(jù)I/O端口的請(qǐng)求與中斷請(qǐng)求的比對(duì)來判斷該中斷請(qǐng)求是否為異常中斷,若為異常中斷,則清除該中斷請(qǐng)求及相關(guān)標(biāo)識(shí)位,按原順序繼續(xù)執(zhí)行主程序,若否,則調(diào)用并執(zhí)行中斷。
[0045]步驟S104,在中斷請(qǐng)求被判定為異常中斷時(shí),清除該中斷請(qǐng)求及相關(guān)標(biāo)識(shí)位,按原順序繼續(xù)執(zhí)行主程序,即控制軟件。
[0046]步驟S105,處理器暫??刂栖浖默F(xiàn)行程序,轉(zhuǎn)為執(zhí)行中斷請(qǐng)求,以確保處理器的實(shí)時(shí)控制能力。
[0047]步驟S106,判斷處理器在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到該中斷的中斷返回指令,若處理器在第二預(yù)設(shè)時(shí)間內(nèi)接收到中斷返回指令RETI,則執(zhí)行步驟S107 ;若處理器在第二預(yù)設(shè)時(shí)間內(nèi)未接收到中斷返回指令RETI,則表明控制軟件出現(xiàn)非正常跳轉(zhuǎn),此時(shí)執(zhí)行步驟S108。
[0048]步驟S107,處理器執(zhí)行完中斷程序,返回主程序,以繼續(xù)執(zhí)行控制軟件。
[0049]步驟S108,控制軟件執(zhí)行陷阱程序,即在控制軟件出現(xiàn)非正常跳轉(zhuǎn)的情形下進(jìn)入陷阱程序,陷阱程序?yàn)橐龑?dǎo)指令,強(qiáng)行將亂飛的程序引向一個(gè)指定的地址,本實(shí)施例中,陷阱程序指定存儲(chǔ)復(fù)位指令的地址,即處理器執(zhí)行步驟S102,處理器調(diào)用復(fù)位指令以復(fù)位。
[0050]本實(shí)施例通過檢測(cè)控制軟件的運(yùn)行出錯(cuò)和及時(shí)對(duì)控制軟件進(jìn)行復(fù)位操作,避免程序跑飛,進(jìn)一步地,本發(fā)明包括對(duì)控制軟件的非正常運(yùn)行出錯(cuò)檢測(cè)、中斷請(qǐng)求時(shí)的異常中斷檢測(cè)及中斷后的非正常跳轉(zhuǎn)檢測(cè),實(shí)現(xiàn)了控制軟件運(yùn)行過程出錯(cuò)的及時(shí)檢測(cè)和復(fù)位,從而確保了控制軟件運(yùn)行出錯(cuò)后的快速恢復(fù),與傳統(tǒng)的采用硬件抗干擾措施相比,本發(fā)明恢復(fù)方法及系統(tǒng)實(shí)現(xiàn)了對(duì)控制軟件運(yùn)行出錯(cuò)的快速檢測(cè)及自動(dòng)復(fù)位,減少了發(fā)動(dòng)機(jī)短時(shí)失控的時(shí)長(zhǎng),保證了發(fā)動(dòng)機(jī)的平穩(wěn)可靠運(yùn)行。
[0051]圖2給出了本發(fā)明優(yōu)選實(shí)施例二航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法的步驟流程示意圖,參照?qǐng)D2,實(shí)施例二的恢復(fù)方法與實(shí)施例一的恢復(fù)方法的區(qū)別在于,實(shí)施例二的恢復(fù)方法在實(shí)施例一的基礎(chǔ)上,對(duì)控制軟件的初始化和自檢程序進(jìn)行了區(qū)別對(duì)待,以滿足控制軟件出錯(cuò)后快速恢復(fù)的需求,特別是針對(duì)非停車狀態(tài)下的控制軟件的快速恢復(fù),本實(shí)施例采用了調(diào)用數(shù)據(jù)緩沖區(qū)存儲(chǔ)的數(shù)據(jù)快速恢復(fù)控制軟件的方法。
[0052]實(shí)施例二的恢復(fù)方法包括以下步驟:
[0053]步驟S201,判斷控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則執(zhí)行步驟S208,若否則控制軟件正常往下執(zhí)行;其中,非正常運(yùn)行通過控制軟件是否執(zhí)行清狗操作判斷。本實(shí)施例中,在控制軟件中設(shè)置軟件看門狗,處理器按照控制軟件的順序執(zhí)行的規(guī)律,每個(gè)循環(huán)周期(本實(shí)施例以IOus為例)都會(huì)執(zhí)行到清狗程序,即對(duì)軟件看門狗的計(jì)時(shí)器進(jìn)行清零操作,如果一旦控制軟件跑飛,則沒有按照順序執(zhí)行指令,當(dāng)處理器超過第一預(yù)設(shè)時(shí)間(本實(shí)施例以11.86ms為例)仍沒有執(zhí)行清狗程序,則軟件看門狗調(diào)用中斷請(qǐng)求,則表明控制軟件非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,執(zhí)行步驟S208,否則,控制軟件按順序往下執(zhí)行。
[0054]步驟S202,處理器接收到中斷請(qǐng)求時(shí),判斷中斷請(qǐng)求是否為異常中斷,若是,執(zhí)行步驟S203,若否則執(zhí)行步驟S204,此步驟中處理器根據(jù)I/O端口的異常請(qǐng)求指令執(zhí)行應(yīng)急處理程序,在處理器調(diào)用中斷請(qǐng)求時(shí),根據(jù)I/O端口的請(qǐng)求與中斷請(qǐng)求的比對(duì)來判斷該中斷請(qǐng)求是否為異常中斷,若為異常中斷,則清除該中斷請(qǐng)求及相關(guān)標(biāo)識(shí)位,按原順序繼續(xù)執(zhí)行主程序,若否,則調(diào)用并執(zhí)行中斷。
[0055]步驟S203,在中斷請(qǐng)求被判定為異常中斷時(shí),清除該中斷請(qǐng)求及相關(guān)標(biāo)識(shí)位,按原順序繼續(xù)執(zhí)行主程序,即控制軟件。[0056]步驟S204,處理器暫停控制軟件的現(xiàn)行程序,轉(zhuǎn)為執(zhí)行中斷請(qǐng)求,以確保處理器的實(shí)時(shí)控制能力。
[0057]步驟S205,判斷處理器在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到該中斷的中斷返回指令,若處理器在第二預(yù)設(shè)時(shí)間內(nèi)接收到中斷返回指令RETI,則執(zhí)行步驟S206 ;若處理器在第二預(yù)設(shè)時(shí)間內(nèi)未接收到中斷返回指令RETI,則表明控制軟件出現(xiàn)非正常跳轉(zhuǎn),此時(shí)執(zhí)行步驟S207。
[0058]步驟S206,處理器執(zhí)行完中斷程序,返回主程序,以繼續(xù)執(zhí)行控制軟件。
[0059]步驟S207,控制軟件執(zhí)行陷阱程序,即在控制軟件出現(xiàn)非正常跳轉(zhuǎn)的情形下進(jìn)入陷阱程序,陷阱程序?yàn)橐龑?dǎo)指令,強(qiáng)行將亂飛的程序引向一個(gè)指定的地址,本實(shí)施例中,陷阱程序指定存儲(chǔ)復(fù)位指令的地址,即處理器執(zhí)行步驟S208,處理器調(diào)用復(fù)位指令以復(fù)位。
[0060]步驟S208,處理器調(diào)用復(fù)位指令以復(fù)位,以對(duì)控制軟件出錯(cuò)快速恢復(fù),本實(shí)施例中,調(diào)用復(fù)位指令后,處理器執(zhí)行步驟S209。
[0061]步驟S209,判斷復(fù)位指令是否為運(yùn)行出錯(cuò)復(fù)位,系統(tǒng)復(fù)位后,控制軟件會(huì)從入口處開始運(yùn)行。根據(jù)設(shè)置的標(biāo)志位判斷復(fù)位指令是運(yùn)行出錯(cuò)復(fù)位還是初次上電復(fù)位。若為初次上電復(fù)位,則執(zhí)行步驟S210,若為運(yùn)行出錯(cuò)復(fù)位,則執(zhí)行步驟S211。
[0062]步驟S210,系統(tǒng)初次上電復(fù)位,則控制軟件進(jìn)行正常自檢和數(shù)據(jù)初始化,并且只有自檢正常后控制軟件才能設(shè)置上電復(fù)位正常標(biāo)志位。
[0063]步驟S211,若為運(yùn)行出錯(cuò)復(fù)位,則進(jìn)一步判斷發(fā)動(dòng)機(jī)的當(dāng)前狀態(tài)是否為停車狀態(tài),即處理器是否接收到飛機(jī)的停車指令,若控制軟件的當(dāng)前狀態(tài)指令為停車指令,則表明發(fā)動(dòng)機(jī)處于停車狀態(tài),若控制軟件的當(dāng)前狀態(tài)指令為非停車指令,則表明發(fā)動(dòng)機(jī)處于非停車狀態(tài)。由于發(fā)動(dòng)機(jī)處于非停車狀態(tài)時(shí),發(fā)動(dòng)機(jī)轉(zhuǎn)子還處于高速運(yùn)轉(zhuǎn)狀態(tài),此時(shí),發(fā)動(dòng)機(jī)的短時(shí)失控則會(huì)嚴(yán)重影響飛機(jī)的平穩(wěn)運(yùn)行,故本實(shí)施例中,當(dāng)判定發(fā)動(dòng)機(jī)處于停車狀態(tài)時(shí),執(zhí)行步驟S212 ;當(dāng)判定發(fā)動(dòng)機(jī)處于非停車狀態(tài)時(shí),則執(zhí)行步驟S213和步驟S214。
[0064]步驟S212,控制軟件跳過自檢操作,進(jìn)入數(shù)據(jù)初始化操作,由于控制軟件已通過上電復(fù)位,故可省去自檢操作,直接進(jìn)入數(shù)據(jù)初始化操作,以節(jié)省控制軟件的恢復(fù)時(shí)間。
[0065]步驟S213,控制軟件輸出開關(guān)量使得發(fā)動(dòng)機(jī)的燃油供應(yīng)通路導(dǎo)通。本實(shí)施例中,一旦判斷發(fā)動(dòng)機(jī)的控制軟件是非停車狀態(tài)下的運(yùn)行出錯(cuò)復(fù)位,則控制軟件馬上設(shè)置合理的開關(guān)量輸出,使得燃油電磁閥設(shè)置為“開”的狀態(tài),燃油泵電機(jī)驅(qū)動(dòng)器電源也設(shè)置為“開”的狀態(tài),以保證燃油供應(yīng)通路導(dǎo)通,不出現(xiàn)斷油情況,相應(yīng)地,其它的開關(guān)輸出及模擬量輸出也根據(jù)復(fù)位前的數(shù)據(jù)馬上恢復(fù)設(shè)置。這些設(shè)置能夠保證發(fā)動(dòng)機(jī)的供油等不會(huì)有突變,從而保證發(fā)動(dòng)機(jī)轉(zhuǎn)速相對(duì)平穩(wěn)。
[0066]步驟S214,控制軟件跳過自檢操作,并采集復(fù)位前數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)進(jìn)行快速賦值,以恢復(fù)控制軟件的運(yùn)行,以使得控制軟件最快速進(jìn)入循環(huán)等待程序。本實(shí)施例中,處理器對(duì)控制軟件進(jìn)行運(yùn)行出錯(cuò)復(fù)位時(shí),片內(nèi)RAM及片外RAM都能保持復(fù)位前的數(shù)據(jù),CPU寄存器會(huì)發(fā)生部分變化,具體為:作為數(shù)據(jù)緩沖區(qū)的CPU寄存器采用堆棧結(jié)構(gòu)存儲(chǔ)復(fù)位前的數(shù)據(jù),即采用先進(jìn)先出的方式存儲(chǔ)數(shù)據(jù),保證復(fù)位前的數(shù)據(jù)不會(huì)被清零。優(yōu)選地,供處理器采集的數(shù)據(jù)經(jīng)過濾波處理,本實(shí)施例中,對(duì)超限的數(shù)據(jù)直接剔除,不存入數(shù)據(jù)緩沖區(qū);采集數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)視情去掉若干極值后平均。由于軟件運(yùn)行中的復(fù)位會(huì)使個(gè)別輸入數(shù)據(jù)有較大變化,通過采用上述方法,能夠剔除因復(fù)位引起的個(gè)別變化較大的輸入數(shù)據(jù),從而保證數(shù)據(jù)采集平穩(wěn)。
[0067]根據(jù)本發(fā)明的另一方面,參照?qǐng)D3,還提供一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)系統(tǒng),該系統(tǒng)包括:
[0068]出錯(cuò)檢測(cè)單元310,用于判斷控制軟件運(yùn)行過程是否出錯(cuò),若出錯(cuò)則調(diào)用復(fù)位單元320 ;其中,復(fù)位單元320用于控制控制軟件調(diào)用復(fù)位指令以復(fù)位。
[0069]本實(shí)施例中,出錯(cuò)檢測(cè)單元包括:
[0070]非正常運(yùn)行檢測(cè)模塊311,用于判斷控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則調(diào)用復(fù)位指令以復(fù)位;其中,非正常運(yùn)行通過控制軟件是否執(zhí)行清狗操作判斷;本實(shí)施例中對(duì)控制軟件進(jìn)行非正常運(yùn)行檢測(cè)的步驟與實(shí)施例一和實(shí)施例二相同。
[0071]中斷異常檢測(cè)模塊312,用于在控制軟件接收到中斷請(qǐng)求時(shí),判斷中斷請(qǐng)求是否為異常中斷,若是,則清除中斷請(qǐng)求,否則執(zhí)行中斷,在執(zhí)行中斷后,判斷在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到中斷的中斷返回指令,若否則控制軟件出現(xiàn)非正常跳轉(zhuǎn),設(shè)置控制軟件執(zhí)行陷阱程序以調(diào)用復(fù)位指令進(jìn)行復(fù)位,檢測(cè)原理參見實(shí)施例一和實(shí)施例二。
[0072]優(yōu)選地,本實(shí)施例中,復(fù)位單元320包括:
[0073]復(fù)位類型判斷模塊321,用于判斷復(fù)位指令是否為運(yùn)行出錯(cuò)復(fù)位,若否則控制軟件執(zhí)行正常的自檢和數(shù)據(jù)初始化操作;若是則跳過自檢操作。
[0074]優(yōu)選地,該復(fù)位單元320還包括:
[0075]停車狀態(tài)檢測(cè)模塊322,用于判斷控制軟件的當(dāng)前的狀態(tài)指令是否為停車狀態(tài)指令;
[0076]若是,則跳過自檢操作,進(jìn)入數(shù)據(jù)初始化操作;
[0077]若否,則跳過自檢操作,并采集復(fù)位前數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)進(jìn)行快速賦值,以恢復(fù)控制軟件的運(yùn)行。
[0078]優(yōu)選地,該復(fù)位單元320還包括:
[0079]開關(guān)量控制模塊323,用于控制軟件的當(dāng)前的狀態(tài)指令不為停車狀態(tài)指令時(shí),控制軟件輸出開關(guān)量使得發(fā)動(dòng)機(jī)的燃油供應(yīng)通路導(dǎo)通。本實(shí)施例中,一旦判斷發(fā)動(dòng)機(jī)的控制軟件是非停車狀態(tài)下的運(yùn)行出錯(cuò)復(fù)位,則控制軟件馬上設(shè)置合理的開關(guān)量輸出,使得燃油電磁閥設(shè)置為“開”的狀態(tài),燃油泵電機(jī)驅(qū)動(dòng)器電源也設(shè)置為“開”的狀態(tài),以保證燃油供應(yīng)通路導(dǎo)通,不出現(xiàn)斷油情況,相應(yīng)地,其它的開關(guān)輸出及模擬量輸出也根據(jù)復(fù)位前的數(shù)據(jù)馬上恢復(fù)設(shè)置。這些設(shè)置能夠保證發(fā)動(dòng)機(jī)的供油等不會(huì)有突變,從而保證發(fā)動(dòng)機(jī)轉(zhuǎn)速相對(duì)平穩(wěn)。
[0080]優(yōu)選地,該復(fù)位單元320還包括:
[0081]緩沖區(qū)存儲(chǔ)模塊324,用于以堆棧結(jié)構(gòu)存儲(chǔ)復(fù)位前的數(shù)據(jù),該數(shù)據(jù)經(jīng)過濾波處理。本實(shí)施例中,處理器對(duì)控制軟件進(jìn)行運(yùn)行出錯(cuò)復(fù)位時(shí),片內(nèi)RAM及片外RAM都能保持復(fù)位前的數(shù)據(jù),CPU寄存器會(huì)發(fā)生部分變化,具體為:作為數(shù)據(jù)緩沖區(qū)的CPU寄存器采用堆棧結(jié)構(gòu)存儲(chǔ)復(fù)位前的數(shù)據(jù),即采用先進(jìn)先出的方式存儲(chǔ)數(shù)據(jù),保證復(fù)位前的數(shù)據(jù)不會(huì)被清零。優(yōu)選地,供處理器采集的數(shù)據(jù)經(jīng)過濾波處理,本實(shí)施例中,對(duì)超限的數(shù)據(jù)直接剔除,不存入數(shù)據(jù)緩沖區(qū);采集數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)視情去掉若干極值后平均。由于軟件運(yùn)行中的復(fù)位會(huì)使個(gè)別輸入數(shù)據(jù)有較大變化,通過采用上述方法,能夠剔除因復(fù)位引起的個(gè)別變化較大的輸入數(shù)據(jù),從而保證數(shù)據(jù)采集平穩(wěn)。
[0082]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0083]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0084]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)方法,其特征在于,包括: 判斷所述控制軟件運(yùn)行過程是否出錯(cuò),若出錯(cuò)則調(diào)用復(fù)位指令以復(fù)位,其中,所述判斷所述控制軟件運(yùn)行過程是否出錯(cuò)包括: 判斷所述控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則判定所述控制軟件出錯(cuò);其中,所述非正常運(yùn)行通過所述控制軟件是否執(zhí)行清狗操作判斷;和/或 接收到中斷請(qǐng)求時(shí),判斷所述中斷請(qǐng)求是否為異常中斷,若是,則清除所述中斷請(qǐng)求,若否則執(zhí)行中斷;在執(zhí)行所述中斷后,判斷在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到所述中斷的中斷返回指令,若否則所述控制軟件出現(xiàn)非正常跳轉(zhuǎn),設(shè)置所述控制軟件執(zhí)行陷阱程序以調(diào)用所述復(fù)位指令進(jìn)行復(fù)位。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 調(diào)用所述復(fù)位指令進(jìn)行復(fù)位時(shí),判斷所述復(fù)位指令是否為運(yùn)行出錯(cuò)復(fù)位,若否則所述控制軟件執(zhí)行正常的自檢和數(shù)據(jù)初始化操作;若是則跳過所述自檢操作。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 在所述復(fù)位指令為運(yùn)行出錯(cuò)復(fù)位時(shí),判斷所述控制軟件的當(dāng)前的狀態(tài)指令是否為停車狀態(tài)指令; 若是,則跳過所述自檢操作,進(jìn)入所述數(shù)據(jù)初始化操作; 若否,則跳過所述自檢 操作,并采集復(fù)位前數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)進(jìn)行快速賦值,以恢復(fù)所述控制軟件的運(yùn)行。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述控制軟件的當(dāng)前的狀態(tài)指令不為停車狀態(tài)指令時(shí),所述控制軟件輸出開關(guān)量使得發(fā)動(dòng)機(jī)的燃油供應(yīng)通路導(dǎo)通。
5.根據(jù)權(quán)利要求3或者4所述的方法,其特征在于, 所述數(shù)據(jù)緩沖區(qū)采用堆棧結(jié)構(gòu)存儲(chǔ)復(fù)位前的數(shù)據(jù),所述數(shù)據(jù)經(jīng)過濾波處理。
6.一種航空發(fā)動(dòng)機(jī)的控制軟件運(yùn)行出錯(cuò)的恢復(fù)系統(tǒng),其特征在于,包括: 出錯(cuò)檢測(cè)單元,用于判斷所述控制軟件運(yùn)行過程是否出錯(cuò),若出錯(cuò)則調(diào)用復(fù)位單元;其中,所述復(fù)位單元用于控制所述控制軟件調(diào)用復(fù)位指令以復(fù)位; 所述出錯(cuò)檢測(cè)單元包括: 非正常運(yùn)行檢測(cè)模塊,用于判斷所述控制軟件是否非正常運(yùn)行達(dá)到第一預(yù)設(shè)時(shí)間,若是則判定所述控制軟件出錯(cuò);其中,所述非正常運(yùn)行通過所述控制軟件是否執(zhí)行清狗操作判斷;和/或 中斷異常檢測(cè)模塊,用于在接收到中斷請(qǐng)求時(shí),判斷所述中斷請(qǐng)求是否為異常中斷,若是,則清除所述中斷請(qǐng)求,否則執(zhí)行中斷;在執(zhí)行所述中斷后,判斷在第二預(yù)設(shè)時(shí)間內(nèi)是否接收到所述中斷的中斷返回指令,若否則所述控制軟件出現(xiàn)非正常跳轉(zhuǎn),設(shè)置所述控制軟件執(zhí)行陷阱程序以調(diào)用所述復(fù)位指令進(jìn)行復(fù)位。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述復(fù)位單元包括: 復(fù)位類型判斷模塊,用于判斷所述復(fù)位指令是否為運(yùn)行出錯(cuò)復(fù)位,若否則所述控制軟件執(zhí)行正常的自檢和數(shù)據(jù)初始化操作;若是則跳過所述自檢操作。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述復(fù)位單元還包括: 停車狀態(tài)檢測(cè)模塊,用于判斷所述控制軟件的當(dāng)前的狀態(tài)指令是否為停車狀態(tài)指令;若是,則跳過所述自檢操作,進(jìn)入所述數(shù)據(jù)初始化操作; 若否,則跳過所述自檢操作,并采集復(fù)位前數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)進(jìn)行快速賦值,以恢復(fù)所述控制軟件的運(yùn)行。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述復(fù)位單元還包括: 開關(guān)量控制模塊,用于所述控制軟件的當(dāng)前的狀態(tài)指令不為停車狀態(tài)指令時(shí),所述控制軟件輸出開關(guān)量使得發(fā)動(dòng)機(jī)的燃油供應(yīng)通路導(dǎo)通。
10.根據(jù)權(quán)利要求8或者9所述的系統(tǒng),其特征在于,所述復(fù)位單元還包括: 緩沖區(qū)存儲(chǔ)模塊,用于 以堆棧結(jié)構(gòu)存儲(chǔ)復(fù)位前的數(shù)據(jù),所述數(shù)據(jù)經(jīng)過濾波處理。
【文檔編號(hào)】G06F11/07GK103970571SQ201410213231
【公開日】2014年8月6日 申請(qǐng)日期:2014年5月20日 優(yōu)先權(quán)日:2014年5月20日
【發(fā)明者】鄧文革, 宋云峰, 劉鐵庚, 高廣華, 張禮華, 盧圣濤 申請(qǐng)人:中國(guó)航空動(dòng)力機(jī)械研究所