孫永林
摘要:提出一種基于ARINC615A協議的通用軟件架構設計方案,在ARINC615A協議實現上,提出了軟件分層設計思想,將核心業務內容與平臺及物理介質間實現了完全解耦合。在協議包傳輸過程中,驅動層采用序列化及反序列化方式,中間數據收發層采用協議包對象整體處理,省去了協議包格式頻繁解析及轉換操作。同時,在ARINC615A協議認知上,設計了雙文件存儲數據方式及動態調整Data包大小方式,提升了數據文件燒寫安全可靠性。對ARINC615A協議軟件實現提供了一種高效解決方案,同時該軟件架構的設計思想對于復雜系統及總線網絡軟件架構設計具有一定參考價值。
關鍵詞:ARINC615A協議;通用軟件架構;軟件分層設計;雙文件存儲
中圖分類號:TP391.4文獻標志碼:A文章編號:1008-1739(2021)02-60-5

0引言
機載ARINC615A是一種具有高可靠性和高穩定性的機載數據傳輸協議,廣泛應用于民機及部分軍機程序加載過程。機載ARINC615A系統能夠高效完成基于數據總線的程序加載及程序管控要求。目前已成功應用于AFDX網絡、FC網絡、以太網等機載網絡總線上[1],但不同網絡總線間軟件協議與傳輸方式差別巨大。因此,基于ARINC615A協議設計一款通用的軟件架構能夠快速實現軟件協議層互聯互通。
1系統方案
基于機載數據總線ARINC615A系統,采用C/S服務架構設計,通過高速機載數據總線,能夠實現機載產品目標碼快速集中加載及卸載操作。
1.1方案設計
設計基于ARINC615A協議實現,系統方案設計如圖1所示。
PC端顯控軟件主要起到人機交互作用,ARINC615A協議成員組成包括管理機和目標機,管理機和目標機配合完成設備識別操作、信息管理操作、上傳操作及下載操作等[2]。

管理機通常作用于機載高速總線管理端或維護端,例如:FC總線的NC節點、1553總線的BC節點等,目標機作用于特定設備,例如綜合射頻、雷達、光電檢測等,主要完成目標碼文件傳輸及燒寫工作。
管理機端控制管理數據總線中目標機端節點升級及版本維護工作,通過數據總線將程序文件及流程控制命令發送至目標機,目標機依據協議文件對控制命令解析并上傳控制結果。目標機接收加載管理端傳輸的程序文件,對文件校驗后,將程序固化至自身系統相應Flash文件中,完成數據文件上傳操作[3]。
下載操作主要包含媒介者模式及操作者模式。目標機讀取配置項文件目標碼信息,按照對應協議文件將目標碼數據文件傳輸至管理機端,管理機負責處理解析協議文件,獲取數據文件并上傳至PC顯控軟件,負責配置項管理工作。
1.2軟件設計
PC端顯控軟件使用QT協議框架,搭建應用程序界面,主要實現各個目標機文件配置管理操作。軟件框架基于狀態機管理實現目標機加載申請、文件傳輸、加載狀態回傳及配置項目標碼獲取操作。
目標機及管理機基于嵌入式平臺開發,目前能夠兼容主流操作系統Linux、VxWorks等,目標機與管理機數據傳輸基于嚴格問答機制實現,保證數據穩定傳輸。數據傳送依賴簡單文件傳輸協議(TFTP)實現,繼承其超時時間設置、CRC16校驗和消息重傳等機制,確保文件傳輸完整性[4]。其中,協議文件是為了實現數據文件的最終傳輸和維護傳輸的安全可靠而定義的包含一組特殊格式和信息的文件,數據文件是真實傳輸內容。目標機與管理機數據交互流程如圖2所示。
目標機與管理機基于ARINC615A協議實現協議文件及數據文件傳送。加載端是數據的發起者,加載端接收用戶的各種命令,如上傳、下載、搜尋、控制等,把命令轉換成符合ARINC615A協議的數據傳輸流程,目標端是數據傳輸的接收端,目標應用程序接收符合ARINC615A協議的命令和內容,并轉換成消息傳輸給用戶。

2通用軟件架構設計
ARINC615A協議目標機及管理機軟件架構基于通用框架,能夠實現跨平臺數據交互及多種數據總線兼容,同時,軟件分層設計思想能夠應用于其他復雜機載系統中。
2.1軟件設計層次劃分
由于ARINC615A協議是機載網絡服務系統與航線可更換單元(LRU)之間數據加卸載標準,因此,在軟件設計時獨立于現有功能軟件服務架構。與此同時,數據加卸載模塊基于開放式軟件設計思想實現多型號、多總線、多平臺兼容[5]。軟件架構設計依據數據傳送階段,軟件設計分層如圖3所示。

軟件架構設計中跨平臺驅動層和總線協議轉換層分別完成軟件運行平臺通用化及總線協議通用化處理。ARINC615A協議層部分實現加載數據流程,完成協議文件及數據文件收發。用戶接口層主要完成數據加卸載模塊初始化、文件固化及加載結果反饋等操作。
ARINC615A協議基于TFTP包格式進行數據傳輸。TFTP協議定義了6種類型的數據,不同類型數據采用操作碼區分[6]。為了實現協議類型集中統一處理,數據收發接口及總線協議轉換層實現了數據格式轉換,完成了字節流到協議包序列化和反序列化操作。
2.2協議包架構設計
ARINC615A核心層處理流程包含數據接收及數據發送,數據接收及處理流程如圖4所示。

協議格式轉換處理主要解決了不同總線傳輸協議格式不一致問題,兼容不同數據總線軟件協議。在接收到的原始數據中篩選出不同操作碼對應的數據包格式,反序列化操作是將接收的數據做進一步處理及篩選,包括數據有效性判定、數據格式包轉換為標準結構體格式數據對象。如果數據內容無效或非等待接收操作碼信息,返回錯誤信息至上層接口接收層完成后續操作。
在發送協議數據包時,通用軟件架構依然能夠實現數據協議包對象集中處理,完成基于ARINC615A協議的數據分發任務,數據解析及發送端處理流程如圖5所示。

數據發送及處理軟件架構設計也是基于開發式標準ARINC615A協議,能夠做到流程與數據文件完全解耦合。數據發送過程不僅能夠完成數據校驗操作,還可以根據不同協議類型完成序列化操作。
2.3 TFTP文件操作架構設計
目標機和管理機所有協議包的數據傳輸均基于TFTP協議。ARINC615A協議以TFTP協議為傳輸方式,定義了一系列協議文件和數據文件的傳輸內容和傳輸時序,從而保證文件傳輸的正確可控。由于不同文件系統及硬件介質文件讀寫速率差別較大,為了實現軟件設計通用化目的,文件傳輸采用獨立現場集中讀寫,避免由于文件讀寫時間過長造成協議包數據傳輸超時[7]。文件傳輸過程中讀寫操作故障或流程處理不一致,上報對應故障碼信息及錯誤描述。TFTP文件讀寫操作軟件設計流程圖如圖6所示。

2.4讀寫請求架構設計
標準ARINC615A協議中規定,管理機和目標機均可發起讀請求與寫請求,完成文件傳輸。文件讀寫請求是ARINC615A協議傳輸起點,同時也是ARINC615A協議實現的靈魂。目標機與管理機依托匹配的ARINC615A協議版本完成文件傳送,讀寫請求發起端軟件設計流程如圖7所示。


讀寫請求設計流程中,目標機和管理機按照對應協議格式完成文件解析操作。除FIND操作外,其他傳輸階段、目標機及管理機都具有隨時發送及讀取對方發送狀態信息功能,管理機收集加卸載狀態上傳至顯控軟件,完成軟件加卸載要求。
3 ARINC615A協議提升改進
為了能夠更穩定高效地完成數據加卸載功能,實際軟件開發過程中,在ARINC615A協議上增加了冗余處理、動態自適應調節交互長度、安全性驗證方面進行了嘗試。
3.1雙文件存儲技術
在程序文件燒寫固化過程中,由于電源穩定性、Flash芯片使用壽命等原因,存在一定概率程序燒寫失敗問題。為了解決上述問題,通用軟件架構平臺采用雙文件存儲技術,能夠有效避免由于燒寫失敗造成的系統異常等問題。雙文件存儲技術軟件設計流程如圖8所示。

雙文件存儲技術主要實現方法是在Flash芯片規劃出2塊物理地址空間,系統默認從A區域啟動操作地址及功能模塊,如果A區域啟動失敗,自動調整至B區域完成啟動工作,同時將B區域內容復制至A區域。在程序燒寫過程中,采用A區燒寫,B區保存上一個程序版本。該技術能夠有效避免外場維修升級過程中,由于操作錯誤或燒寫失敗造成功能缺失等問題。
3.2動態自適應傳輸特性
由于芯片制造工藝等原因,在嵌入式系統中不同Flash芯片燒寫速率不同,即使同種芯片不同批次Flash芯片也存在燒寫差異性。
在數據加卸載軟件過程中,讀寫請求發出后等待接收OACK包,OACK包中攜帶了單次數據文件傳輸最大字節數。為了應對Flash芯片擦寫差異性,通用軟件架構設計了測試物理鏈路協議。采用測試數據文件動態傳輸過程中多態調整單包數據文件大小,計算出該通路下BLKSIZE值。在數據傳輸后續階段,基于計算BLKSIZE值,保證數據傳輸穩定高效。
4實驗驗證
為了驗證通用軟件架構設計實驗效果,分別采用FC總線、以太網總線和AFDX網絡總線驗證數據加卸載系統軟件設計。
為了驗證不同機載總線軟件設計通用性,基于相同硬件平臺PPC8280板卡,操作系統分別為VxWorks5.5.1和Llinux2.7,基于相同測試文件alt.bin進行數據加卸載。部分實驗結果如圖9所示。

通過上述實驗驗證,證明了通用軟件架構能夠實現基于ARINC615A協議的軟件開發。
4結束語
實現了基于ARINC615A協議的通用軟件架構設計方案,通過軟件分層設計理念,完成了ARINC615A協議跨平臺、通用化軟件架構設計。與此同時,針對ARINC615A協議實際應用中,文件燒寫及存儲方面提出了優化方法,并成功應用于航電系統數據加卸載模式設計中。本文對ARINC615A協議理論研究及軟件實現具有一定指導意義,也能夠對通用化平臺軟件建設提供一些方法。
參考文獻
[1] Airlines Electronic Engineering Committee.ARINC Report615-3-2007,Software Data Loader Using Ethernet Interface[S].USA:Aeronautical Radio.INC.,2007.
[2]熊華鋼,王中華.先進航空電子綜合技術[M].北京:國防工業出版社,2009.
[3] Airlines Electronic Engineering Committee.ARINC 653-1, Avionics Application Software Standard Interface[S].USA: Aeronautical Radio.INC.,Airlines Electronic Engineering Committee, 2006.
[4]周江,王偉平,孟丹,等.面向大數據分析的分布式文件系統關鍵技術[J].計算機研究與發展,2014,51(2):382-394.
[5]張磊,林榮超,牛文生.小型飛機航空電子系統容錯技術研究[J].航空計算技術,2011,41(1):106-110.
[6] Airlines Electronic Engineering Committee.ARINC Report 615A-3-2007,Software Data Loader Using Ethernet Interface[S].USA:Aeronautical Radio.INC,2007.
[7] ROLAND W.綜合化模塊化航空電子系統的分布式平臺[M].牛文生,譯.北京:航空工業出版社,2015.