李立哲,呂 偉,樊 丁
(1.西北工業大學,西安 710072;2.中航工業計算技術研究所,西安 710072)
VxWorks作為一個具有高性能、可裁減的嵌入式實時操作系統,與其他操作系統Linux、Unix等比較,具有高性能的微內核結構。這種高性能的微內核結構保證了VxWorks能夠勝任航空發動機控制和飛行控制等關鍵的復雜的設計任務。
本文最終目的是要構建一個在VxWorks操作系統支持下適用于某型航空發動機的控制應用軟件。該軟件包括數據采集、控制計算、任務調度、控制輸出、數據存儲及余度管理等功能。
VxWorks是專門為實時嵌入式系統而開發的操作系統,提供了高效的實時多任務調度、中斷管理,實時的系統資源以及實時的任務間通信等功能支持,并為應用于各種CPU平臺提供了統一的編程接口和一致的運行特性,為程序開發提供了方便[1]。
VxWorks操作功能強大而且比較復雜。圖1所示為VxWorks操作系統的基本結構圖,包括了進程管理、存儲管理、設備管理、文件系統管理、網絡協議及系統應用等幾個部分。
控制系統軟件采用VxWorks的集成開發環境TornadoⅡ開發,采用C++程序語言設計,TornadoⅡ開發系統配套了近兩千個API接口函數,可提供完善的源代碼編輯、編譯鏈接、源代碼級調試等諸多調試工具,可以充分發揮VxWorks系統的功能。

圖1 VxWorks操作系統的基本結構圖Fig.1 Basic construction of VxWorks operation system
發動機控制系統的軟件開發平臺采用了Power-PC860芯片、64位 SDRAM(32 Mb)、64 Mb User Flash存儲器、8位SYSTEM Flash(存儲器容量為2 Mb)、4個32位定時器、1個看門狗、2個RS422串行通信端口、1路10 M/100 M以太網端口和1個5 V/33 MHz PCI總線接口。
平臺采用雙通道設計,分別由3個模塊組成:信號調理模塊、數據處理模塊和電源管理模塊。信號調理模塊實現系統輸入輸出信號的調理以及轉換,包括A/D和D/A轉換,頻率信號和開關量的輸入輸出,RS422接口以及余度管理;數據處理模塊實現數據處理、控制計算等;電源模塊實現電源濾波、轉換和監控功能。系統的結構如圖2所示[2]。

圖2 控制系統硬件總體架構圖Fig.2 Control system hardware configuration
航空發動機控制系統軟件包括實時多任務操作系統、底層功能軟件和應用軟件3大部分,系統總體結構如圖3所示。
VxWorks操作系統主要負責任務調度、電子控制器的硬件接口操作及與底層功能軟件的連接,負責驅動、協調、管理電子控制器的硬件資源,其功能涉及模擬量、頻率量和開關量等輸入信號的采集,時間與任務調度管理,各種信號輸出、總線管理、I/O設備及中斷控制等。

圖3 系統控制軟件總體架構圖Fig.3 Structure of system control software
底層功能軟件負責基于VxWorks操作系統API函數集,提供與硬件環境的基本接口,為頂層應用軟件訪問硬件驅動程序和數據通信提供支持。
數控系統應用軟件是數控系統軟件的核心,通過對各種類型信號的數據采集、濾波處理,控制規律、邏輯和控制算法的運算處理,獲得并給出控制輸出,系統還具有應急處理、故障診斷等任務。各應用軟件模塊將在實時多任務操作系統的調度、管理下,以不同的優先級完成各項任務。
控制系統還設有系統參數配置功能,提供應用軟件運行時在線參數配置更新,負責端口定義、控制參數調整與調度、數采通道定義、數據存儲格式,用戶權限設定等參數配置,實現對計算機操作系統和硬件的訪問和控制。
軟件系統的功能結構設計如圖4所示。

圖4 軟件系統功能結構圖Fig.4 Functional construction of the software system
數控系統軟件從功能角度劃分為系統模塊、發動機控制運算模塊和輔助模塊3個主要部分。
嵌入式實時多任務軟件的設計包括任務的劃分及任務優先級的設置、任務間通信機制的選擇和中斷處理程序的編寫等關鍵技術。
當詢問到是否考慮過外聘一些消防中介組織,或者與社會上消防中介組織合作的問題時,消防安全工作人員這樣說:
任務的合理劃分和優先級的合理設置,對系統的功能和性能至關重要。合理的任務劃分,不但會增強系統的穩定性和健壯性,而且可以簡化軟件設計的復雜性,為任務的及時執行奠定基礎。實時多任務軟件的開發一般要遵循H.Gomma原則,即I/O依賴性、時間關鍵性、周期性執行功能等。
在H.Gomma原則的基礎上對本控制系統的任務進行劃分,控制軟件的任務可劃分為數采任務、發動機控制任務、輔助單元任務等3大類。
1)數采任務:負責發動機系統的工作狀態參數采集。
2)發動機控制任務:完成發動機的起動控制、穩態燃油流量控制、過渡態燃油流量控制、壓氣機導葉角度控制、噴口喉道面積控制、工作參數控制、停車控制等全部功能。發動機控制任務屬于互斥任務,要根據相關狀態參數調用相應的功能。
3)輔助單元任務:完成數控系統狀態監控、故障檢測及系統重構等任務,保證數控系統的高可靠性。
該應用軟件選擇了二進制信號量、共享數據區兩種方式互相結合作為任務間的通信機制,二進制信號量能滿足任務間的同步和互斥,而且開銷小、速度快,能保證信號處理函數和主體任務同步的順利執行。任務的優先級是根據任務實時性要求和計算量大小來確定的。任務的調度方式在VxWorks中分為時間片輪詢和基于優先級的搶占方式。本系統采用了兩種方式相結合的方法[4-5]。
如圖5所示為主要任務的調度表,狀態監控任務用來對其他任務進行監控操作,優先級最高。數據采集任務定時,通過輸入信號接口,讀取傳感器中的數據并進行信號處理操作。為了保證系統的實時性,數據采集任務具有較高的優先級,隨后執行發動機控制計算及控制輸出任務。各任務之間采用了搶占式的調度方式。
本系統根據數采設備自身寄存器的使用特點,采用的是輪詢查詢的方法。輪詢可具體實現的方式一般有:驅動程序任務在系統空閑時進行設備輪詢;驅動程序任務周期性進行設備輪詢;驅動程序通過看門狗定時器進行設備輪詢;驅動程序通過輔助時鐘進行設備輪詢[6]。

圖5 數據傳遞流程圖Fig.5 Flow chart of data transmission
對于VxWorks嵌入式實時系統而言,一般很難找到合適的空閑時間來查詢設備狀態。同時這種空閑時間的出現也是不可確定的,將會導致輪詢設備的任務處于不可預測狀態。故本系統建立了一個中優先級的任務,采用周期性輪詢設備。數采任務按一定的時間間隔查詢設備狀態并進行相應處理,然后等待調用延遲并將自身掛起,輪詢定時周期定為5 ms。

圖6 數據采集輸入輸出流程圖Fig.6 Input/output flow chart for data acquisition
一般包含6個主要步驟。
1)對數采設備進行初始化。初始化的目的是使設備處于某種工作狀態,以便數據采集程序訪問該設備。
2)打開數采設備。打開設備操作實際是查詢用戶指定的設備,并查看用戶是否可以打開該設備。
3)數采設備控制。主要包括量程、增益、通道、緩沖區大小等參數設置。
4)從設備讀取數據。從設備緩沖區讀取采樣值,并進行采樣量-工程量之間的單位換算。換算公式為

其中:ymax和ymin代表傳感器最大、最小量程;xmax和xmin代表采樣值最大、最小量程;xcur代表當前采樣值,ycur代表當前工程量值。
5)從設備發送數據。進行工程量-采樣量之間的單位換算并將結果放入設備緩沖區或DMA區發送。換算公式為

其中變量定義如上。
6)關閉數采設備。關閉設備操作就是釋放設備資源。任務對設備完成操作后,必須進行關閉設備操作,否則設備總是處于被占用狀態,其他任務無法使用。
本系統軟件的核心代碼如下所示:

如圖7所示為程序運行結果在Windview中的局部圖,各任務按照優先級搶占式調度執行。為了保證控制程序的實時性和可靠性,狀態監控任務的優先級設置最高,在狀態監控任務啟動的基礎上執行數據采集,每5 ms進行一次采集,隨后執行發動機控制、數據存儲、與外部通訊任務。程序使用信號量將中斷與任務相聯系,中斷程序只產生信號量,保證了中斷服務程序盡快結束,以避免阻塞低優先級的中斷。

圖7 控制系統任務變換圖(WindView局部圖)Fig.7 Mission conversion of control system
航空發動機數控系統對軟件的實時性和可靠性有非常高的要求,本文對航空發動機控制系統的功能和模塊進行了劃分與設計,針對控制系統的要求對控制系統的實時多任務進行了優先級的設置。最終提出基于VxWorks嵌入式操作系統的航空發動機控制系統軟件總體設計方案。開發出了適用于某型航空發動機控制系統的各單元模塊。經驗證,該軟件滿足某型航空發動機的控制功能、性能及可靠性要求,并已經投入使用。
[1]RIVER W.VxWorks開發人員指南叢書[M].北京:清華大學出版社,2004.
[2]RIVER W.VxWorks programmer's guide[M].Wind River Systems Inc,1995.
[3]樊思齊,李華聰,樊丁,等.航空發動機控制(下)[M].西安:西北工業大學出版社,2008.
[4]EVANS A L,FOLLEN G,NAIMAN C,et al.Numerical propulsion system simulation's national cycle program[R].AIAA-98-3113,1998.
[5]江傳尚,樊丁.小波網絡在某型航空發動機故障診斷中的應用[J].航空動力學報,2009(4):182-185.
[6]AGRESTI M,CSMPOREALE S M,FORTUNATO B.An object-oriented program for the dynamic simulation of gas turbines[R].ASME 2000-GT-42,2000.
[7]呂偉.基于某硬件平臺的航空發動機FADEC系統設計[D].西安:西北工業大學,2010.