劉一波,郭玉潔,高怡寒,石 杰,李卓航
(航空工業西安航空計算技術研究所,陜西 西安 710068)
民用飛機機載信息系統負責航電核心網絡域和機載信息系統網絡域之間的接口和網關功能,對實時性要求高,因此采用適合強實時應用場景的天脈1嵌入式實時操作系統[1-5]。為了實現駐留可加載項的快速更新及維護數據的上傳下載,需要設計一種天脈1操作系統上的專用數據加載代理軟件。ARINC 615A-3協議是航空電子系統專用的文件加載代理協議,可以實現高確定性、高安全性以及高可靠性的航電數據加載服務。ARINC 665-3是定義了航空電子系統可加載應用和軟件傳輸介質標準的協議,對外場可加載軟件FLS做出了定義[6,7]。本文通過深入研究ARINC 615A-3和ARINC 665-3協議,設計了一種基于天脈1操作系統的航電專用數據加載代理軟件,實現對符合ARINC 665-3標準的外場可加載軟件的加載,以此提高天脈1操作系統上可加載項更新和上傳下載的可靠性及安全性[8]。
數據加載代理軟件主要用于加載符合ARINC 665-3標準的外場可加載軟件,其應用場景如圖1所示。

圖1 數據加載代理軟件應用場景
數據加載代理軟件與數據加載應用間通過以太網進行通信,它們之間的通信符合ARINC 615A-3協議。通過研究兩個標準,整理出數據加載代理軟件的主要需求為以下4點。
一是數據加載代理軟件應能完成ARINC 615A-3協議的FIND操作、信息操作、上傳操作以及下載操作等功能,二是數據加載代理軟件應能更新應用,三是數據加載代理軟件應能在運行過程中向日志代理軟件發送構型信息和操作結果,四是數據加載代理軟件應能在運行過程中周期性地向BIT應用上報軟件周期BIT信息。
按照數據加載代理軟件的需求分析,將數據加載代理軟件劃分為主線程、周期BIT信息上報線程、操作線程、文件傳輸線程以及狀態文件上傳線程5個線程。數據加載代理軟件架構設計如圖2所示。

圖2 數據加載代理軟件架構圖
數據加載代理軟件架構描述如下。主線程是數據加載代理軟件的入口,加載軟件配置文件,對配置文件完整性進行32位CRC校驗。調用BIT接口獲取軟件所在設備信息,設備信息應包含FIND操作應答和信息操作應答所必需的信息。此外具有加載配置文件、存儲設備信息、創建線程/任務以及端口監聽等功能。DLA在FIND端口接收FIND請求,在服務端口接收數據加載服務端的信息上傳和下載請求。周期BIT信息上報線程按照確定的周期向BIT應用上報軟件周期BIT信息消息。操作線程根據服務端口收到的消息執行相應的數據更新、信息操作、上傳操作或者下載操作,負責準備要傳輸的文件和狀態文件,文件發送和接收由文件傳輸線程和狀態文件上傳線程執行,在傳輸過程中,通信的雙發均可以發起Abort請求。文件傳輸線程負責信息上傳和下載操作過程中文件的上傳和下載。狀態文件發送線程負責信息操作、上傳操作、下載操作以及數據更新過程中向數據加載服務端發送狀態文件。
數據加載代理軟件與數據加載服務間進行符合ARINC 615A-3的通信,具體功能如下。
3.1.1 FIND操作
數據加載服務通過向網絡上所有的設備的FIND端口發送FIND操作請求來請求網絡上所有數據加載代理對其進行應答。
3.1.2 信息操作
初始化時數據加載服務向數據加載代理發送信息操作請求“*.LCI”,數據加載代理在收到該請求后將對其進行應答。傳輸時若數據加載代理接收數據加載服務的信息操作請求,則數據加載代理會將包含目標硬件數量、目標硬件名稱、目標硬件串號、部件號以及修訂信息等內容封裝到一個“*.LCL”文件中發送給數據加載服務。
3.1.3 上傳操作
初始化時數據加載服務向數據加載代理發送上傳操作請求,數據加載代理收到該請求后會對其進行應答,應答可以為接受上傳操作請求也可以為拒絕上傳操作請求,通過“*.LUI”文件反饋給數據加載服務。List文件傳輸時數據加載代理若接受數據加載服務的上傳操作請求,那么數據加載服務在收到上傳操作的第一條狀態信息文件后會向數據加載代理發送“*.LUR”文件。該“*.LUR”文件中包含了頭文件個數、頭文件名以及加載部件號等信息。傳輸文件時,數據加載代理在收到“*.LUR”文件后會對該文件進行解析,從而獲得到相關的頭文件信息。數據加載代理會向數據加載服務發送讀取每一個頭文件的請求,并接收頭文件。數據加載代理對接收到的頭文件進行解析,向數據加載服務逐個請求這些文件直到獲得所有的文件。
3.1.4 下載操作
介質定義下載模式是由數據加載服務定義哪些文件需要被從目標端下載到數據加載服務端,用戶自定義下載模式是由數據加載代理定義哪些文件需要被從目標端下載到數據加載服務端。
數據加載代理在接收數據加載服務發送過來的FLS數據時會將該數據存儲到數據加載代理指定的臨時文件存儲目錄中,并對接收到的文件進行CRC等校驗。當所有文件接收完畢后,會先判斷加載路徑以清空被加載應用的存儲目錄,然后將臨時存儲目錄中對應的數據復制到被加載應用的存儲目錄。
數據加載代理在運行過程中應向日志代理軟件發送的信息包括DLA軟件的構型信息、DLA軟件配置文件構型信息以及運行過程中的錯誤信息。
BIT接口功能用于數據加載代理應用與BIT應用間的數據交換。數據加載代理周期性的向BIT應用上報軟件周期BIT信息碼,向BIT請求設備信息以及請求關閉所有可加載應用。
機載數據加載代理軟件在天脈1操作系統上開發并且在硬件模塊上運行穩定可靠,在測試中通過功能驗證。在與數據加載服務軟件聯試中,數據加載代理軟件能夠完成ARINC 615A-3的4種協議功能,能夠在上傳操作前向BIT應用發送關閉所有可加載應用請求,上傳操作中能夠對FLS文件進行數據更新,所有操作過程符合ARINC 615A-3協議要求。并且在操作過程中能夠向日志代理軟件發送相關構型信息和操作結果信息,能夠向BIT應用請求并獲得設備信息,還能夠周期向BIT應用發送故障信息。
機載數據加載代理軟件的設計采用了系統工程化和多線程結構設計思想,通過對ARINC 615A-3協議的充分理解和結構梳理,結合民用飛機航電設備中各模塊實際的數據加載需求,設計了航電專用數據加載代理軟件的總體運行架構,給出了軟件運行中各操作功能模塊的主要設計思路和實現過程,軟件設計符合民機項目的軟件安全要求。已經通過功能測試和系統集成測試,達到了功能要求和安全要求。