李樂意,王蕓,王君陽,趙敏
(陜西千山航空電子有限責任公司,西安710065)
機載燃油管理計算機主要完成對飛機上燃油的測量、燃油數據的傳輸與加/放油控制等功能,是飛機燃油系統的核心[1]。隨著航空技術的不斷發展,燃油管理計算機功能日趨增強,重要性日益突出,但其設計復雜度也隨之大大提高,出現問題的可能性也隨之增高。為了保障飛行安全和飛行任務的完成,必須增強燃油管理計算機的可靠性和執行任務過程中的安全性。
雙余度熱備份技術是指采用兩個相同模塊執行相同的任務,提供相同的服務,當其中一個模塊出現故障時,另一模塊能夠承擔起相同的任務以保證系統持續運行[2-4]。這種技術大大提高了系統的可靠性與安全性。航空電子產品中某些關鍵產品采用余度備份技術如飛控計算機[3-6]、燃油控制計算機[7]、動力控制系統[8]等,通常由兩臺計算機互為備份實現雙余度技術[3-5],其體積較大、生產成本高。
本文通過在一臺計算機內部進行關鍵板卡的雙余度備份,設計了一種雙余度的機載燃油管理計算機系統,在提高可靠性和安全性的同時,有效控制了系統體積和成本。
雙余度燃油管理計算機中,關鍵板卡是具有數據管理和控制功能的管理模塊和具有控制功能的接口模塊,因此將它們進行雙余度設計。即計算機中含有管理模塊A、管理模塊B、接口模塊A、接口模塊B 和其他板卡,其他板卡未進行余度設計。雙余度板卡對外采集和輸出掛接到同一通道,由板卡內FPGA 控制輸出開關。
為了方便表述,以下稱相同功能的兩個板卡的組合稱之為模塊組,即管理模塊A 和管理模塊B 作為一個管理模塊組,接口模塊A 和接口模塊B 作為一個接口模塊組,組內相同功能板卡彼此之間稱對方為對等模塊。雙余度燃油管理計算機硬件總體設計如圖1 所示。

圖1 雙余度燃油管理計算機硬件總體設計
從圖1 可以看到,燃油管理計算機內部各板卡之間通過內部RS-422 總線通信,同時對等模塊之間通過檢測心跳線相互檢測對方的工作狀態。
通過RS-422 總線交互狀態信息,當板卡切換時能夠及時獲取全系統的狀態。同時也能夠提高系統狀態監控能力。例如本系統設計時,對外HB6096 總線接口接收不到數據時,板卡自身無法判斷是板卡芯片故障還是前端無數據。由于兩塊板卡具有相同功能,如果另一塊板卡也報出該條總線無數據,則認為芯片正常,反之認為芯片故障,須進行切換邏輯。
心跳線是模塊組內對等模塊之間的交聯硬線,輸出端輸出1000Hz 的方波,接收端以方波反轉的周期判斷板卡運行是否正常。
對等模塊之間采用主從模式,處于主狀態的板卡正常采集并輸出,處于從狀態的板卡正常采集和計算但不輸出。軟件在初始化時,通過母板上的槽位接口判斷自身板卡所處的位置,將管理模塊A、接口模塊A置于主狀態,而管理模塊B、接口模塊B 置于從狀態。
當發生故障或接收到切換命令時,板卡狀態進行切換,每個模塊組內狀態轉移關系相同。圖2 表示功能組內模塊的狀態轉移關系,其中大寫字母表示處于主狀態,小寫字母表示處于從狀態,'表示處于故障狀態。如A 表示模塊A 處于主狀態且無故障,b'表示模塊B 處于從狀態并有故障,虛線框內的狀態為中間狀態。

圖2 功能組內模塊狀態轉移關系
雙余度燃油管理計算機系統實現的功能較為復雜,包含了數據采集、數據輸出等接口,本節僅以描述與雙余度備份相關的硬件設計,對外圍接口不再詳細敘述。模塊實現雙余度的核心是采用CPU+FPGA+總線+心跳線的方式進行硬件設計。模塊組內板卡的數據采集來自于同一個數據源端,兩個板卡都進行采集。板卡對外輸出時,同一時間僅有一個對外輸出,FPGA 通過開關邏輯實現,硬件框圖如圖3 所示。
在圖3 中,含有3 個槽位引腳,上電時,當3 個I/O口中兩個以上為低時認為該板卡為B 板卡,該板卡初始狀態為從狀態;兩個以上I/O 為高時認為該板卡為A板卡,初始狀態為主狀態。FPGA 檢測這3 個I/O 將其值存入緩沖區共CPU 讀取。
在板卡內部,CPU 與FPGA 間通過FPGA 虛擬寄存器交互故障信息,FPGA 檢測到CPU 關鍵故障信息時,須關斷輸出。同時CPU 輸出的心跳線經過FPGA,當FPGA 檢測到CPU 心跳停止時,認為CPU 故障,須關斷輸出。

圖3 板卡硬件設計框圖
在雙余度燃油管理計算機設計中主要由軟件實現邏輯的切換,工作狀態轉移過程遵守圖2 所示的狀態轉移圖。板卡故障狀態的判定主要通過RS-422 總線周期通信和心跳線完成。板卡所遵循的基本切換原則如下:
(1)心跳線是模塊組內對等模塊之間通過硬線相連,輸出1000Hz 的方波。組內主狀態板卡和從狀態板卡之間通過心跳線判斷對等板卡是否正常活動,如果處于主狀態的模塊板卡失效則切換工作狀態;
(2)模塊組內通過RS-422 總線周期性通信接收對等模塊狀態字并發送自身狀態字,判斷出當前板卡和對等模塊的狀態,如果處于主狀態的模塊板卡失效則切換工作狀態;模塊組間也是通過RS-422 總線進行周期通信發送自身狀態接收對應的其他模塊的狀態信息,綜合狀態信息數據判斷系統狀態,在需要切換工作時通過發送切換命令。
(3)當檢測到自身故障時,停止進行心跳反轉,以通知對等模塊。同時發送RS-422 狀態信息給其他接口模塊。
綜上,故障檢測方式主要有心跳線故障、通信鏈路故障、接收到切換信息、自身檢測故障這4 種故障檢測方式,其軟件設計流程如下:
(1)一端輸出1000Hz 的方波,另一端通過檢測方波電平變化判斷是否正常。如果沒有輸出,則認為輸出端故障。檢測對等模塊心跳線時,為了避免誤判,采用連續10 次不反轉則認為模塊故障的判斷邏輯。因此如果對等模塊故障,模塊能夠在5ms 的時間內獲得信息并開始切換操作,其軟件設計流程如圖4 所示;

圖4 心跳線檢測流程
(2)內總線采用RS-422 總線,模塊間也通過該總線發送測量和控制信息,通信異常時,系統接收關鍵數據可能出錯,導致災難性的后果。為確保相互之間數據交互和鏈路正常,設計了周期發送自身的狀態信息的任務。該任務周期性向其他模塊發送信息,信息中包含確定的包格式,當格式正確并且能夠周期收到數據時認為正常。當連續多次接收不到或接收到錯誤的其他模塊數據,認為其他模塊故障,周期通信的周期設置為30ms,因此當模塊通信鏈路異常時,被發現的時間約為300ms,其軟件設計流程如圖5 所示;
(3)接收到切換信息時,根據圖2 的方式進行狀態切換;
(4)模塊本身檢測到故障以后,可根據當前工作狀態以及故障源進行工作狀態切換,自身故障后通過關閉心跳線的方式將狀態告知對等模塊。
檢測到故障以后,應當切換工作狀態,軟件設計流程圖如圖6 所示。管理模塊切換工作狀態時,須給接口模塊發送切換信息,以確保所有板卡間狀態相互透明。接口模塊接收到命令后,應回復狀態信息給管理模塊。當接口模塊因模塊內板卡失效而切換工作狀態時,須給管理模塊發送切換信息。管理模塊接收到命令后,應響應模塊工作狀態給接口模塊。

圖5 通信故障檢測流程圖

圖6 系統狀態切換流程
另外,在燃油管理計算機工作工程中,周期發送狀態信息。如果遇到外部接口無數據的情況,應當對比對等板卡的故障字,如果發現對等模塊采集數據正常則認為本模塊采集芯片故障。該故障邏輯能夠判斷采集芯片是否故障,提高了系統的可靠性。
經過實驗室測量分別模擬自身故障、主狀態模塊心跳故障、通信鏈路故障、發送故障切換信息測量到產品進行狀態切換。切換時間大約為500ms 以內,響應速度快,實時性強。在外場試驗也取得良好的效果。
在一臺計算機內部,采用關鍵板卡互為備份的方式,設計了雙余度燃油管理計算機系統。當系統正常工作時,互為備份的兩塊板卡通過總線相互監控,提高了產品的狀態檢測能力;當主狀態板卡故障時,備份板卡能夠通過心跳線檢測,迅速切換工作狀態,保障系統持續正常工作;與傳統的雙機備份方式相比,由于只采用一臺計算機,因此體積更小、生產成本更低;多型關鍵板卡的備份使得產品有多種重構方式,提高了產品的容錯能力;由于采用硬件心跳線檢測故障的方式,因此響應更快。該雙余度燃油管理計算機系統試驗和使用過程中取得了良好的效果。