王海斌,錢 偉,丁發(fā)軍
(中國民航飛行學院 飛機修理廠,四川 廣漢 618307)
?
基于Android的綜合航電數(shù)據(jù)監(jiān)控平臺的研制
王海斌,錢 偉,丁發(fā)軍
(中國民航飛行學院 飛機修理廠,四川 廣漢 618307)
分析了通航領域中綜合航電系統(tǒng)數(shù)據(jù)傳輸?shù)默F(xiàn)狀,討論了針對航電系統(tǒng)數(shù)據(jù)傳輸進行地面在線監(jiān)控的必要性;并根據(jù)航電系統(tǒng)的工作原理和數(shù)據(jù)監(jiān)控的研發(fā)流程,研制了一款基于嵌入式操作系統(tǒng)的數(shù)據(jù)監(jiān)控平臺;監(jiān)控平臺硬件部分在Arm處理器基礎上,設計并實現(xiàn)了數(shù)據(jù)采集、處理和電源管理等一系列功能模塊;平臺軟件的開發(fā)基于嵌入式Android系統(tǒng),在該系統(tǒng)環(huán)境下設計了監(jiān)控平臺軟件構架;并開發(fā)了測試資源的底層驅(qū)動層、硬件抽象層(HAL) 、本地調(diào)用層(JNI)和應用程序;通過多部被測航電系統(tǒng)進行驗證,該監(jiān)控平臺運行穩(wěn)定,系統(tǒng)誤差可忽略,滿足了航電系統(tǒng)數(shù)據(jù)監(jiān)控的實際需求;從工程應用結果表明,該綜合航電系統(tǒng)數(shù)據(jù)監(jiān)控平臺已通過民航局地面測試項目認證,并應用于實際生產(chǎn)中。
航電系統(tǒng);數(shù)據(jù)監(jiān)控; Android
隨著通航產(chǎn)業(yè)的發(fā)展,新置通用飛機已全部安裝綜合航電系統(tǒng)。綜合航電系統(tǒng)功能先進、操作便捷,但整個系統(tǒng)運行依賴于高速數(shù)據(jù)傳輸模式,若數(shù)據(jù)傳輸通道出現(xiàn)異常,將會嚴重影響飛機安全飛行[1-3]。為確保航電系統(tǒng)數(shù)據(jù)傳輸?shù)陌踩?,對傳輸通道進行定期檢測顯得十分重要[4]。如何在地面構建一個數(shù)據(jù)監(jiān)控平臺,實現(xiàn)對航電系統(tǒng)數(shù)據(jù)傳輸高效地檢測成為本文研究的重點。便捷高效地實現(xiàn)數(shù)據(jù)通道檢測不但能夠確保系統(tǒng)安全運行,還能夠提前發(fā)現(xiàn)系統(tǒng)潛在故障,并且能夠通過檢測平臺確認故障子部件,為技術人員維修排故提供重要的依據(jù)[5]。
本文針對某型綜合航電系統(tǒng)進行數(shù)據(jù)監(jiān)控平臺開發(fā),該型綜合航電系統(tǒng)為目前通航應用最為廣泛的型號,其數(shù)據(jù)傳輸采用高速以太總線完成[6-7]。本文在搭建相關硬件平臺的基礎上,應用了嵌入式開發(fā)技術,并在Android系統(tǒng)下開發(fā)了相關驅(qū)動及應用程序。下面結合數(shù)據(jù)監(jiān)控平臺的研制過程,詳細闡述其系統(tǒng)組成構架、軟硬件關鍵技術及其工程應用結果。
綜合航電系統(tǒng)主要由顯示組件、核心組件、航姿組件、音頻組件、大氣參數(shù)組件、發(fā)動機參數(shù)組件和應答機組件等7個組件組成[8-9]。其中,核心組件是交聯(lián)綜合航電系統(tǒng)的樞紐,各組件的傳輸數(shù)據(jù)經(jīng)過核心組件統(tǒng)一轉(zhuǎn)換為高速以太數(shù)據(jù)格式,傳輸給顯示組件。系統(tǒng)控制指令也是通過該高速以太數(shù)據(jù)經(jīng)核心組件,傳輸給各功能組件[10]。因此,實現(xiàn)對高速以太數(shù)據(jù)的監(jiān)控和測試成為本監(jiān)控平臺研究的重點。數(shù)據(jù)監(jiān)控平臺作為一個節(jié)點嵌入到綜合航電系統(tǒng)中,處于實時接收和數(shù)據(jù)處理的位置,如圖1所示。
圖1 監(jiān)控平臺與航電系統(tǒng)連接圖
監(jiān)控平臺硬件結構主要由數(shù)據(jù)處理模塊、數(shù)據(jù)采集模塊、電源模塊、存儲模塊等組成。數(shù)據(jù)采集模塊利用以太總線與航電系統(tǒng)實現(xiàn)連接,該模塊實現(xiàn)了數(shù)據(jù)接收。平臺通過數(shù)據(jù)處理模塊進行算法處理,并通過用戶界面實現(xiàn)系統(tǒng)控制,其系統(tǒng)組成如圖2所示。
數(shù)據(jù)處理模塊中CPU處理器采用TI AM3358BZ,其主頻可支持1 GHz,可輕松實現(xiàn)對以太總線數(shù)據(jù)進行一系列處理[11]。在總線傳輸數(shù)據(jù)協(xié)議方面采用IEEE 802.3標準網(wǎng)絡協(xié)議,與航電系統(tǒng)以太協(xié)議保持一致。數(shù)據(jù)采集模塊以太網(wǎng)收發(fā)器采用RTL8211E網(wǎng)絡芯片,該芯片是瑞昱最新推出,并支持1000Base-T。電源管理芯片采用TPS65910電源管理芯片,該芯片是TI推出的針對CPU供電的電源管理IC,內(nèi)部集成了3個降壓,1個升壓以及8個差分電壓,滿足了平臺所有特定的電源需求。顯示模塊采用三菱GT1275-VB 10.4寸觸摸屏,功耗較低且操作便捷。平臺的采集數(shù)據(jù)以及處理結果可自動至外部存儲模塊,該模塊是由SD卡存儲模式實現(xiàn)。
3.1 監(jiān)控平臺Android系統(tǒng)架構
Android是Google開發(fā)的基于Linux開源手機平臺,它包括操作系統(tǒng)、應用程序和用戶界面。雖然Android最初作為手機軟件平臺的操作系統(tǒng),但其本質(zhì)確是一款非常優(yōu)秀的嵌入式開發(fā)平臺[12]??紤]到Android比傳統(tǒng)Linux系統(tǒng)更加強大,在設計開發(fā)航電系統(tǒng)監(jiān)控平臺時采用Android4.0作為操作系統(tǒng)。
但由于Android在系統(tǒng)構架很大程度上為實現(xiàn)手機功能進行設計,因此,在針對監(jiān)控平臺開發(fā)時,就必須對Android系統(tǒng)構架進行一系列修改。將通話、通訊錄以及短信等模塊刪除,僅留下平臺所需模塊—Android核心模塊,主要包括Package Manager 、System Service、Hardware Service和System Server等。經(jīng)過定制和修改過的Android系統(tǒng)架構如圖3所示。
圖3 平臺Android系統(tǒng)架構
監(jiān)控平臺軟件系統(tǒng)共分4層:最底層為Linux核心及驅(qū)動層,該層封裝了相關硬件設備,為上層提供了統(tǒng)一接口,可移植性極強;第2層為系統(tǒng)運行庫層,提供系統(tǒng)函數(shù)庫組件;第3層為應用程序框架層,包含所有開發(fā)所用各類庫;頂層為應用程序?qū)?,包括系統(tǒng)應用程序模塊的開發(fā)。
3.2 監(jiān)控平臺驅(qū)動開發(fā)
Android系統(tǒng)驅(qū)動程序開發(fā)基于Linux內(nèi)核基礎上進行的,其應用程序使用Java開發(fā),所以應用程序在調(diào)用設備驅(qū)動時并不能像直接調(diào)用,必須通過Java虛擬機的本地調(diào)用方法(JNI)實現(xiàn)。另一方面,為增強驅(qū)動程序可移植性,在Android架構添加一個硬件抽象層(HAL),從而為硬件設備的調(diào)用提供一個高級封裝[13]。
監(jiān)控平臺功能運行最終通過應用程序來實現(xiàn),在應用層中系統(tǒng)控制程序調(diào)用平臺控制服務。平臺控制服務通過JNI方法使得虛擬機加載本地庫,然后向HAL層獲取共享庫文件(*.so),由共享庫文件調(diào)用在Linux內(nèi)核中的設備驅(qū)動。圖4為監(jiān)控平臺Android驅(qū)動程序架構設計。從驅(qū)動程序架構來分,整個驅(qū)動程序設計可分為:底層驅(qū)動設計、硬件抽象層(HAL)設計、本地調(diào)用層(JNI)設計、平臺控制服務層設計4個層次。
圖4 Android驅(qū)動程序架構
3.2.1 底層驅(qū)動設計
驅(qū)動程序的最終目的,是為使上層應用程序能夠使用這些硬件提供的服務來為用戶提供軟件功能。其處理過程是,驅(qū)動程序?qū)⒂布O備抽象成文件,應用程序?qū)⑦@些文件來進行處理[14]。
對于Linux標準設備驅(qū)動程序可直接使用,只需針對具體設備參數(shù)修改相應內(nèi)核驅(qū)動程序,然后再進行配置及編譯,并增加應用層JNI接口。此類驅(qū)動包括以太總線驅(qū)動、顯示驅(qū)動、音頻驅(qū)動以及存儲驅(qū)動。
本文以以太總線驅(qū)動為例進行說明,在Linux內(nèi)核中已具備基本網(wǎng)卡驅(qū)動,但針對平臺采用的DM9000E網(wǎng)卡芯片需要進行一定的修改。
步驟1:需在頭文件加入#include
Static struct platform_device TI3358_device_dm9k={
.name = “dm9000”,
.id = 0,
.num_resources = ARRAY_SIZE(TI3358_dm9k_resource),
.resource = TI3358_dm9k_resource,
.dev = { .platform_data = &TI3358_dm9k_platdata,}
};
步驟2:對相應的MAC地址進行修改:
#if defined(CONFIG_ARCH_ TI3358)
Printk(“Now use the default MAC address:10:22:45:67:ad/n”);
步驟3:配置并編譯內(nèi)核;
利用配置菜單對DM9000E網(wǎng)卡進行配置,主要在Networking support和Device Drivers兩項進行配置,具體實現(xiàn)如下:
[*]Networking support→
[*]TCP/IP networking
[*]Device Drivers→
[*]Ethernet(10 or 100Mbit)→
<*> DM9000 support
菜單配置完畢,保存并編譯出鏡像,按此方式依次完成平臺所需其余驅(qū)動模塊的開發(fā)。將修改后內(nèi)核驅(qū)動進行重新編譯生成zImage.bin文件,移植到嵌入式系統(tǒng)并運行,以便軟件系統(tǒng)上層進行調(diào)用開發(fā)。
3.2.2 硬件抽象層(HAL)設計
硬件抽象層是通過HAL Stub方法實現(xiàn),HAL Stub是一種代理方法,Stub以共享庫(*.so)格式存在。HAL Stub方法訪問底層驅(qū)動一種間接調(diào)用方式,Stub向硬件抽象層提供操作的回調(diào)函數(shù)。
JNI層訪問HAL層時,通過函數(shù)hw_get_module ( )獲取設備模塊ID,并向HAL層申請設備Stub,JNI層獲得Stub對象后,即可把Stub作為一個抽象硬件進行操作。圖5為平臺硬件抽象層(HAL)實現(xiàn)過程。
圖5 平臺硬件抽象層(HAL)實現(xiàn)過程
下面程序為以太總線Stub的HAL結構體:
struct ethernet_module_t {struct hw_module_t common;}
struct ethernet_module_t {struct hw_module_t common;
int id;
int(*ns_set)(struct ethernet_control_device_t*dev,int32_t ethernet);}
將結構體ethernet_module_t初始化,該結構體包含了Stub的模塊信息,主要包括:
Id:Stub的模塊ID,通過id查找相關設備;
methods:定義回調(diào)函數(shù)open(),負責申請結構體ethernet_control_device_t的空間,注冊回調(diào)函數(shù)接口,并打開相關設備驅(qū)動。
3.2.3 本地調(diào)用層(JNI)設計
硬件抽象層編譯后生成“*.so”文件,保存文件系統(tǒng) “/sysem/lib/”目錄下。平臺控制服務層運行后,由JNI虛擬機裝載本地庫函數(shù),具體實現(xiàn)過程如圖6所示。
圖6 平臺本地調(diào)用層(JNI)實現(xiàn)過程
平臺控制服務層通過調(diào)用System.load ()函數(shù),使得JNI虛擬機加載本地庫函數(shù),這一過程是虛擬機通過調(diào)用JNI_OnLoad()函數(shù)來實現(xiàn):
1)把虛擬機信息保存到硬件抽象層結構體中;
2)建立平臺控制服務層與硬件抽象層JNI函數(shù)表;
3)返回虛擬機、硬件抽象層使用的JNI信息。
加載完后,平臺控制服務層就可以通過JNI函數(shù)表把Java函數(shù)轉(zhuǎn)換為本地函數(shù)執(zhí)行。
在本地調(diào)用層中定義JNI函數(shù)方式代碼段如下:
public final class Service extends Service.Stub {
static {System.load(“/system/lib/libled.so”); }
private static native boolean as_init();
private static native boolean as_set(int ***);}
3.3 應用程序設計
監(jiān)控平臺應用程序設計方面考慮進行模塊化設計,主要分為界面模塊、測試模塊、故障診斷模塊和告警模塊4個模塊,如圖7所示。
圖7 系統(tǒng)應用程序架構
測試參數(shù)單位理論值(允許誤差)被測系統(tǒng)1被測系統(tǒng)2被測系統(tǒng)3被測系統(tǒng)4通道1通道2通道1通道2通道1通道2通道1通道2最大誤差RPMr/min2500(±10)25012500249924982501250224992500+2EGT℉1600(±20)16021596160516011597160416051601+5OILPRESpsi115.0(±0.5)115.1115.0115.0115.0115.1114.8115.0115.0-0.2FFLOWGPHgph15(±2)1514151515141515-1ALTFt1500(±20)15021496150315001500150115021500-4HDG°45.0(±2.0)45.045.145.045.045.249.745.045.1-0.3
界面模塊采用Activity方式實現(xiàn),由主界面、模塊選擇、用戶設置和幫助組成。模塊選擇用于選擇測試部件、測試模式以及告警事件的顯示和查詢等。用戶設置用于密碼管理、語言切換、時區(qū)和時間的設置、網(wǎng)絡地址的設置。幫助模塊用于為使用者提供在線幫助。
測試模塊采用Service方式實現(xiàn),主要包括數(shù)據(jù)接收和處理模塊,用于數(shù)據(jù)的采集和處理。數(shù)據(jù)接收實現(xiàn)監(jiān)控平臺與被測系統(tǒng)的數(shù)據(jù)通信,并將數(shù)據(jù)進行存儲。數(shù)據(jù)處理模塊針對采集的以太數(shù)據(jù)進行一系列算法處理,并與標準數(shù)據(jù)庫數(shù)據(jù)進行參數(shù)比對,最終實現(xiàn)傳輸數(shù)據(jù)的監(jiān)控。
故障診斷模塊通過操作數(shù)據(jù)實現(xiàn)的,是在對測試數(shù)據(jù)分析、評估基礎上實現(xiàn)的。針對數(shù)據(jù)異常情況進行處理,將故障進行定位,最終為用戶提供排故指導策略。
告警模塊利用Broadcast Receiver方式實現(xiàn),負責數(shù)據(jù)通信異常的告警事件,同時調(diào)用告警顯示界面顯示對應的信息。
利用綜合航電數(shù)據(jù)監(jiān)控平臺針對4部被測系統(tǒng)全部性能參數(shù)進行自動測試,提取測試結果,并進行分析和比對,最終驗證監(jiān)控平臺系統(tǒng)誤差??紤]到被測系統(tǒng)性能參數(shù)較多,本文僅列舉了部分較重要參數(shù),實測情況如表1所示。
根據(jù)表1列舉的測試參數(shù)實測情況可知,測試參數(shù)誤差均在理論允許誤差范圍內(nèi)。針對實測參數(shù)誤差進行分析可知,其誤差來源為監(jiān)控平臺和被測系統(tǒng)兩部分,而對于監(jiān)控平臺而言,其誤差來源于平臺軟件和硬件資源。
1)誤差源1:平臺軟件方面。
軟件方面誤差源主要指傳輸數(shù)據(jù)處理的實現(xiàn),即監(jiān)控平臺針對被測系統(tǒng)的傳輸數(shù)據(jù)進行一系列處理過程是否產(chǎn)生誤差。
被測系統(tǒng)傳輸數(shù)據(jù)總線為Ethernet協(xié)議,該總線協(xié)議為國際通用標準格式,監(jiān)控平臺的數(shù)據(jù)處理基于標準協(xié)議基礎上,實現(xiàn)Ethernet數(shù)據(jù)的編解碼算法。因此,數(shù)據(jù)處理分析不產(chǎn)生誤差。
2)誤差源2:平臺硬件方面。
硬件方面誤差源主要指數(shù)據(jù)傳輸線路。數(shù)據(jù)轉(zhuǎn)換電路在轉(zhuǎn)換瞬間會產(chǎn)生瞬時脈沖信號,對系統(tǒng)Ethernet信號會造成瞬時干擾,存在產(chǎn)生誤碼的可能性。根據(jù)被測系統(tǒng)Ethernet總線通信協(xié)議規(guī)定,傳輸數(shù)據(jù)具有自校、奇偶檢驗功能。經(jīng)驗證,瞬時干擾誤碼不會對傳輸信號產(chǎn)生附加誤差。
綜上分析,監(jiān)控平臺對測試結果產(chǎn)生的附加誤差可忽略。并通過表1中4部被測系統(tǒng)實測數(shù)據(jù)驗證,測試誤差均在性能指標要求范圍內(nèi),且誤差來源為被測部件本身。
基于Android系統(tǒng)的航電數(shù)據(jù)監(jiān)控平臺作為綜合航電系統(tǒng)上的一個關鍵節(jié)點,通過以太總線與系統(tǒng)進行通信,對航電系統(tǒng)的航姿、大氣數(shù)據(jù)、發(fā)動機參數(shù)等組件進行地面在線監(jiān)測。最終實現(xiàn)了對綜合航電系統(tǒng)傳輸數(shù)據(jù)測試,以及各飛行參數(shù)組件的功能測試。經(jīng)實測,監(jiān)控平臺以10 Mbps的通信速率運行,且保持測試狀態(tài)穩(wěn)定。目前,該項目已通過民航局地面測試項目認證,已應用于綜合航電系統(tǒng)定檢達20余套,取得了良好的應用效果。
[1] 趙 明.通用飛機綜合航電技術發(fā)展綜述[J].電訊技術,2014,54(3):374-378.
[2] 鄭 瀾,王運盛.適用于民機IMA的通用機載軟件開發(fā)平臺[J].電訊技術,2012,52(6):1027-1029.
[3] 周 慶,劉 斌,余正偉,等.綜合模塊化航電軟件仿真測試環(huán)境研究[J].航空學報,2012,33(4):722-733.
[4] 孫 兵,何 瑾,陳廣廈.基于DSP的CAN總線與以太網(wǎng)互聯(lián)系統(tǒng)研制[J].儀器儀表學報,2008,29(2):377-380.
[5] 滕秋琴.ARM嵌入式系統(tǒng)網(wǎng)絡接口設計[J].電訊技術,2008,48(10):84-86.
[6] Littlefield-Lawwill J,Viswanathan R.Advancing open standards in integrated Modular avionics:An industry analysis[A].AIAA/IEEE Digital Avionics Systems Conference-Proceedings.Piscataway[C].NJ:IEEE,2007:2B11-2B114.
[7] 梁永生,張基宏,張乃通.IEEE標準容限內(nèi)以太網(wǎng)轉(zhuǎn)發(fā)時延的測試與分析[J].電子學報,2008,36(1):46-50.
[8] Steve Gorshe, Jeff Mandin.Introduction to IEEE 802.3 av 10Gbit/s Ethernet Passive Optical Networks(10G EPON) [J].China Communications,2009,6(4):136-147.
[9] 熊華鋼,周貴榮,李 峭.機載總線網(wǎng)絡及其發(fā)展[J].航空學報,2006,27(6):1135-1144.
[10] 汪健甄,許宗澤. 航空電子高速數(shù)據(jù)總線性能分析及其實時性仿真[J].南京航空航天大學學報, 2008,40(3):345-347.
[11] 曾祥文,宋樹祥,賓相邦.嵌入式Linux下波特率自適應的CAN總線驅(qū)動的實現(xiàn)[J].測控技術, 2015,34(8):104-107.
[12] 詹成國,朱 偉,徐 敏.基于Android的測控裝置人機界面的設計與開發(fā)[J].電力自動化設備, 2012,32(1):119-122.
[13] 農(nóng)麗萍,王力虎,黃一平. Android在嵌入式車載導航系統(tǒng)的應用研究[J].計算機工程與設計, 2010,31(11):2473-2475.
[14] 韓 迪,潘志宏.基于Android移動設備傳感器的體感應用[J].華南理工大學學報(自然科學版), 2012,40(9):75-77.
Development of Comprehensive Avionics Data Monitoring Platform Based on Android
Wang Haibin, Qian Wei,Ding Fajun
(Aircraft Maintenance Factory of CAFUC,Guanghan 618307, China)
The paper analyzes the current situation of data transmission of the integrated avionic system in the field of general aviation and discusses the necessity to conduct ground on-line monitoring of data transmission of the integrated avionic system. Besides, the paper develops a data monitoring platform based on the embedded operating system according to the working principle of the avionic system and the R&D procedures of data monitoring. The hardware part of the monitoring platform is mounted on the ARM microprocessor, which realizes a series of functional modules like data collection, data processing, power management etc. The platform software is developed based on the embedded Android system, under the environment of which the software architecture of this monitoring platform is designed. Moreover, the paper has also developed the bottom driver layer, hardware abstraction layer (HAL), java native interface (JNI) and application programs of the test resources. Verified by several tested avionic systems, this monitoring platform runs stably and the systemic errors can be ignored, which satisfies the practical needs of data monitoring of the avionic system. As indicated by the engineering application results, this data monitoring platform for integrated avionic system has passed the ground test project certification of the Civil Aviation Administration and has been applied in practical production.
avionics system; data monitoring; Android
2015-11-30;
2015-12-29。
國家民航局科技項目(MHRDZ201003)。
王海斌 (1984-),男,內(nèi)蒙古赤峰市人,碩士研究生,工程師,主要從事機載航電設備的維修與飛機維修工程方面的工作。
1671-4598(2016)06-0098-04
10.16526/j.cnki.11-4762/tp.2016.06.027
TP277
A