魏璐達,宣曉剛,楊 飛,張美仙,賈少龍
(航空工業(yè)太原航空儀表有限公司,山西 太原 030006)
飛機失速是飛機迎角(angle of attack,AOA)超過臨界AOA,機翼升力面出現(xiàn)嚴重的氣流分離,導(dǎo)致飛機阻力急劇增大、升力驟然下降的現(xiàn)象。飛機失速會導(dǎo)致飛機失控,引發(fā)飛行事故。為保證飛行安全,民航局適航司規(guī)定,要在民用飛機上加裝失速告警系統(tǒng)(stall warning system,SWS)[1-2]。飛行員通過SWS獲得飛機運行時的失速告警、保護信息,以及相應(yīng)的控制指令,從而執(zhí)行相應(yīng)的操作,以確保飛機不進入失速危險狀態(tài)。
目前,歐美、俄羅斯等國家和地區(qū)的軍用和民用飛機加裝的SWS大多是基于單核處理器,或者采用多處理器同步時鐘的方法構(gòu)建余度告警計算機,并采用雙余度失速告警計算機(stall warning computer,SWC)的方法來滿足適航法規(guī)對安全性的要求。隨著技術(shù)的發(fā)展,失速判斷已經(jīng)從根據(jù)飛機AOA和空速等參數(shù)來判斷飛機是否進入失速狀態(tài),發(fā)展到利用AOA、側(cè)滑角、法向過載、空速、突風(fēng)影響到地效應(yīng)影響等多種飛行參數(shù)進行綜合分析和處理。采用單核處理器的雙余度SWS,在同一處理器上對解算數(shù)據(jù)進行數(shù)據(jù)一致性檢查將產(chǎn)生可信度的問題,使輸出指令的誤判率增加。采用多處理器同步時鐘的方法明顯增加了計算機系統(tǒng)的復(fù)雜度和成本,且設(shè)備的基本可靠性平均無故障工作時間(mean time between failure,MTBF)顯著降低,難以滿足適航安全性要求。
針對以上問題,本文提出了一種基于異構(gòu)雙核處理器的SWS設(shè)計方案。該方案在SWS功能的基礎(chǔ)上,采用異構(gòu)雙核處理器對解算數(shù)據(jù)進行監(jiān)測比對,僅在雙核解算的數(shù)據(jù)一致時才會輸出失速告警指令等信息。這樣的設(shè)計提高了輸出指令的準確性,可防止因單核處理器無法在同一處理器上進行數(shù)據(jù)比對而產(chǎn)生的誤操作。這提高了SWS的可靠性和安全性,同時降低了設(shè)備的復(fù)雜度和成本。
SWS通過在飛機接近失速時向飛行員發(fā)送告警和控制信息,確保飛行員及時操縱飛機,使飛機迅速恢復(fù)到正常狀態(tài)來保證飛行安全[2]。SWS一般由AOA傳感器、SWC、告警裝置等組成[1]。
典型的SWS架構(gòu)如圖1所示。
圖1 典型的SWS架構(gòu)
為了避免飛機側(cè)滑時AOA傳感器進入氣流遮蔽區(qū),造成AOA傳感器測量AOA失真,AOA傳感器一般安裝于機頭兩側(cè)的飛機蒙皮表面。AOA傳感器采集飛機的AOA信號,在SWC中將修正后的AOA信號與失速告警AOA預(yù)設(shè)值進行比較。當AOA大于失速告警AOA時,SWC接通告警裝置,即振桿器(stick shaker actuator,SSA)。SSA會令駕駛桿抖動,并伴有燈光告警和語音告警來提醒飛行員采取措施,以免飛機進入失速狀態(tài)。當AOA大于發(fā)動機點火預(yù)設(shè)值時,SWC向發(fā)動機控制系統(tǒng)發(fā)出點火指令[1,3]。
為滿足SWS的功能,本文設(shè)計的SWS由2只AOA傳感器、2臺SWC和2只SSA組成。其中,AOA傳感器用于采集飛機AOA信號并發(fā)送給SWC。SWC作為系統(tǒng)核心設(shè)備,對采集的AOA信號數(shù)據(jù)作修正處理,并將機上其他設(shè)備(如航電系統(tǒng)、結(jié)冰探測系統(tǒng)等)發(fā)送的數(shù)據(jù)進行邏輯運算和分析,以判斷飛機是否接近失速。在接近失速時,SWC對外發(fā)出告警和保護指令。SSA作為告警裝置,根據(jù)失速告警指令進行抖振以提醒駕駛員進行操作,避免飛機進入失速狀態(tài)。本文設(shè)計的SWS架構(gòu)如圖2所示。
SWS中的核心控制部件為SWC。SWC通過AOA傳感器采集飛機AOA信息,并將采集的信息進行修正從而得到真實AOA。SWC除了接收飛機AOA信息,還需接收飛機上其他系統(tǒng)發(fā)送的信息,如馬赫數(shù)、高度、姿態(tài)、襟縫翼構(gòu)型、結(jié)冰等。SWC對接收到的數(shù)據(jù)進行解算,并根據(jù)解算結(jié)果判斷飛機真實AOA是否接近氣動失速。當解算結(jié)果得出飛機處于接近氣動失速狀態(tài)時,SWC會發(fā)出失速告警、自動點火和失速保護指令,向飛行員提供告警指示,從而保護飛機不進入失速危險狀態(tài)。
本文設(shè)計的SWC具有以下功能。
①SWC向AOA傳感器提供激勵信號,并接收AOA傳感器輸出的2路AOA信號。采集到的2路AOA信號作為原始數(shù)據(jù)用于計算飛機局部AOA。此外,AOA傳感器具有加熱功能。SWC會監(jiān)控AOA傳感器的加熱狀態(tài)。
②SWC通過數(shù)據(jù)總線接收外部輸入數(shù)據(jù);根據(jù)接收的數(shù)據(jù)信息解算AOA、臨界AOA和失速速度。
③當真實AOA接近臨界AOA或空速接近失速速度時,SWC輸出告警驅(qū)動信號給同側(cè)SSA和燈光告警、語音告警系統(tǒng),以提醒飛行員采取措施;同時,向機組告警系統(tǒng)輸出告警狀態(tài)。
④當真實AOA繼續(xù)增大到失速保護控制AOA,SWC發(fā)出保護指令給SSA,同時發(fā)出保護狀態(tài)給機組告警系統(tǒng)。當真實AOA小于失速保護控制AOA一定數(shù)值時,SWC停止發(fā)出保護指令。
⑤當真實AOA繼續(xù)增大至點火AOA,SWC持續(xù)發(fā)出點火指令給左、右發(fā)動機;同時發(fā)出點火狀態(tài)給機組告警系統(tǒng)。若真實AOA小于點火AOA一定數(shù)值時,SWC停止發(fā)出點火指令。
此外,本文設(shè)計的SWC還需遵循適航規(guī)章、標準和指南。針對運輸類飛機,與失速相關(guān)的專用條款有《運輸類飛機適航標準》(CCAR25-R4)中第25.207條款和《Safety Assessment of Transport Airplanes in Commercial Service》(SAE ARP5150A-2019)附錄A表A2等。基于以上描述,提高SWC設(shè)計的安全性、降低失速告警指令的誤導(dǎo)/無告警的錯誤率尤為重要。為提高設(shè)計的可靠性和安全性,SWC會對解算結(jié)果進行監(jiān)控并對數(shù)據(jù)一致性進行判斷,將AOA信號等關(guān)鍵信息和輸出的失速告警指令等信息數(shù)據(jù)作一致性比較,以輸出告警指令、保護指令和點火指令等信息。因此,本文設(shè)計的關(guān)鍵是處理器的選擇。本文設(shè)計采用2個單核處理器或1個雙核處理器,以滿足對運算結(jié)果監(jiān)測的需求。
2.2.1 處理器選擇
傳統(tǒng)SWS的設(shè)計采用2個單核中央處理器(entral processing unit,CPU)構(gòu)建雙余度SWC,以滿足系統(tǒng)對于安全性的要求。假設(shè)的雙CPU機載計算機設(shè)備如圖3所示。
上述設(shè)計對系統(tǒng)的復(fù)雜度和成本要求較高,且2個單核CPU的使用給數(shù)據(jù)一致性的比對帶來了困難。此外,在CPU的選擇上,單核處理器有其局限性。
這些局限性在于:單核CPU主頻的提升已達到工藝加工的極限;在單核CPU中,單一線程不能提高系統(tǒng)的并行性,處理速度相較于雙核CPU慢很多;CPU主頻的提升帶來了功耗的增加,使散熱量加大,且目前沒有保證CPU正常穩(wěn)定工作較好匹配的散熱系統(tǒng)來更好地處理散熱;對于大型功能需求的處理,單核CPU表現(xiàn)出了缺陷和不足[4]。
異構(gòu)雙核CPU將2個不同的CPU內(nèi)核集成在1個CPU芯片中。典型的異構(gòu)雙核CPU架構(gòu)如圖4所示。
圖4 典型的異構(gòu)雙核CPU架構(gòu)
異構(gòu)雙核CPU具有不同結(jié)構(gòu)的CPU內(nèi)核。2個內(nèi)核有獨自的內(nèi)存和外設(shè),且擁有各自的系統(tǒng)時鐘。雙核間通常使用CPU通信接口和共享內(nèi)存進行數(shù)據(jù)交互。比較常見的異構(gòu)雙核CPU架構(gòu)有進階精簡指令集計算機機器(advanced reduced instruction set computer machine,ARM)+數(shù)字信息處理器(digital signal processing,DSP)相結(jié)合的非對稱雙核架構(gòu)[5-6]。異構(gòu)雙核CPU可以大幅提升計算能力,改善性能。將所要執(zhí)行的任務(wù)劃分到2個內(nèi)核中,可在較短的時間內(nèi)完成任務(wù)。這樣就能在特定時間內(nèi)處理更多的任務(wù)[4]。同時,異構(gòu)雙核CPU所帶來的余度設(shè)計提高了系統(tǒng)的可靠性,適用于復(fù)雜度高的可靠性系統(tǒng)[7]。
將上述單核CPU局限性和雙核CPU優(yōu)勢進行比較,結(jié)合SWC對解算結(jié)果需要監(jiān)測和比較的需求,本文選擇采用異構(gòu)雙核CPU。其能更高效地實現(xiàn)SWC的功能。相較于采用2片單核CPU,使用1片雙核CPU的成本更低。
2.2.2 雙核CPU核間通信機制選擇
CPU核間通信(inter-processor communication,IPC)用于在2個CPU子系統(tǒng)間進行通信。其原理是2個CPU核之間通過全局共享內(nèi)存、消息內(nèi)存、IPC標志和中斷,對各內(nèi)核工作狀態(tài)和信息進行傳遞[8]。
常見的雙核CPU核間通信機制有信號量、共享內(nèi)存和消息隊列。
信號量是用于解決進程間同步和互斥問題的1種通信機制[4]。而基于共享內(nèi)存的通信機制則為數(shù)據(jù)傳遞提供了1種更為有效的方式,是常用的核間通信機制。
共享內(nèi)存通信機制的原理是CPU核間共享1塊內(nèi)存。2個內(nèi)核都可以申請使用這塊共享內(nèi)存進行讀寫操作。共享內(nèi)存是數(shù)據(jù)傳遞媒介。共享內(nèi)存通信機制如圖5所示。
圖5 共享內(nèi)存通信機制
圖5中:CPU核A向共享內(nèi)存寫入數(shù)據(jù);CPU核B從共享內(nèi)存中讀取這些數(shù)據(jù)。這樣便可完成核A到核B的核間通信[9]。
核間通信機制為消息隊列。它的實質(zhì)是消息列表。用戶可以從消息隊列中添加和讀取消息,實現(xiàn)2個進程間的數(shù)據(jù)交換,且發(fā)送和接收進程均獨立進行。核間通信機制的不足是消息隊列中所含數(shù)據(jù)塊總長度有上限[4,10]。
3種核間通信機制中,共享內(nèi)存是較高效的核間通信方式。共享內(nèi)存無需對數(shù)據(jù)進行拷貝,而是直接讀寫。這在很大程度上提高了通信效率。對比3種雙核CPU核間通信機制可知:共享內(nèi)存方式更為高效、便捷,能提高雙核間數(shù)據(jù)傳輸速率。因此,本文采用共享內(nèi)存方式實現(xiàn)SWC中異構(gòu)雙核間的數(shù)據(jù)交互。
2.2.3 異構(gòu)雙核設(shè)計任務(wù)分配與實現(xiàn)
SWC中,異構(gòu)雙核CPU執(zhí)行的所有任務(wù)為數(shù)據(jù)采集和接收。其包含AOA信號采集、ARINC429總線數(shù)據(jù)接收、離散量信號接收等;接收的數(shù)據(jù)解析、整理和解算;將接收的原始數(shù)據(jù)傳輸給CPU的另一個核;監(jiān)測數(shù)據(jù)解算結(jié)果的一致性;數(shù)據(jù)和指令的輸出。
通過對CPU所執(zhí)行的任務(wù)進行合理分配,可以在保證滿足雙核設(shè)計需求的前提下最大程度提升雙核間通信速率。在任務(wù)的分配上,令CPU核A為主CPU、CPU核B為數(shù)據(jù)監(jiān)測CPU。雙核之間采用共享內(nèi)存方式進行核間通信,以實現(xiàn)數(shù)據(jù)傳輸和監(jiān)測。核A負責(zé)數(shù)據(jù)的采集和接收;對接收到的數(shù)據(jù)進行解析、整理和解算;將接收的原始數(shù)據(jù)寫入共享內(nèi)存中供核B讀取,并相應(yīng)地從共享內(nèi)存中讀取核B解算后的數(shù)據(jù)。在核A中對核A和核B解算的數(shù)據(jù)進行一致性判斷,如果所比較的解算結(jié)果一致,則對外輸出解算后的數(shù)據(jù)和指令。核B負責(zé)從共享內(nèi)存讀取核A寫入的原始數(shù)據(jù)并對數(shù)據(jù)解算,將解算后的數(shù)據(jù)寫入共享內(nèi)存供核A讀取。將任務(wù)進行上述分配,并通過使用共享內(nèi)存進行數(shù)據(jù)讀寫操作,從而盡可能實現(xiàn)對程序執(zhí)行過程的優(yōu)化。異構(gòu)雙核設(shè)計任務(wù)分配如圖6所示。
圖6 異構(gòu)雙核設(shè)計任務(wù)分配
另外,設(shè)計時還需注意保持核A和核B的數(shù)據(jù)來自同一周期。對于輸出的失速保護指令,只有2個內(nèi)核間解算結(jié)果一致且有效時,才可對外輸出。整個共享內(nèi)存機制數(shù)據(jù)傳輸過程如圖7所示。
圖7 共享內(nèi)存機制數(shù)據(jù)傳輸過程
SWC對航電系統(tǒng)、航資系統(tǒng)等采用ARINC429總線數(shù)據(jù)的接收方式,對其他系統(tǒng)(如輪載系統(tǒng))采用離散量總線的接收方式,并根據(jù)SWC數(shù)據(jù)接收方式的不同選擇合適的芯片進行外圍電路和程序的設(shè)計。此外,SWC需要對AOA傳感器輸出激勵信號,在選擇好的旋變傳感器芯片基礎(chǔ)上設(shè)計外圍電路,通過CPU控制來輸出傳感器所需的激勵信號。
本文基于異構(gòu)雙核CPU,設(shè)計了具有共享內(nèi)存通信機制的SWC。SWC作為整個系統(tǒng)的核心設(shè)備,在設(shè)計時充分考慮安全性能等方面,實現(xiàn)了在同一CPU上對解算結(jié)果監(jiān)控和數(shù)據(jù)一致性判斷的功能。經(jīng)測試,共享內(nèi)存通信機制使得數(shù)據(jù)間交互更加方便、快捷。結(jié)合系統(tǒng)設(shè)計要求,SWS宜采用共享內(nèi)存通信機制進行雙核間數(shù)據(jù)監(jiān)測和數(shù)據(jù)傳輸。在其他系統(tǒng)對于余度設(shè)計有要求時,可采用異構(gòu)雙核CPU進行雙余度設(shè)計,以滿足系統(tǒng)可靠性、安全性、低成本的設(shè)計需求。