王寧 韓春陽
摘 要:航空電子系統涵蓋了整個飛機上所有的航電應用任務,對飛機飛行任務的執行起著至關重要的作用,如果沒有航電系統,飛機僅僅是一架能飛上天的機器而已,有了航電系統飛機才能展現出它的強大功能。隨著對飛機功能要求的不斷提高,航電應用的數量越來越多,設計也越來越復雜,在眾多復雜的設計中,各個應用之間跨平臺進行的數據交換是非常重要的一環。本文討論了一種實現數據跨平臺使用的方法。
關鍵詞:綜合化航電;數據交換;航電應用
引言
隨著綜合化航空電子系統實現的功能越來越復雜,單一的硬件模塊已經不能滿足全部航電應用的運行需求,因此,所有的航電應用根據功能劃分以及對硬件資源的要求,被合理地分配到各個不同的硬件模塊上。在硬件模塊方案設計階段,設計人員會根據分配給該模塊的航電應用的實際資源需求,來選擇最適合的硬件體系架構。最終,航電系統中就會出現各種不同的硬件平臺互相協同工作的局面。在不同硬件平臺上運行的航電應用之間需要數據交換,因此,就需要對綜合化航電系統中跨平臺數據使用方法進行研究并提出合理可行的解決方案。
1 跨平臺數據差異
跨平臺數據差異主要涉及兩方面的內容:與CPU相關的大小端數據存儲方式、與編譯器相關的數據對齊格式。
1.1 大小端數據存儲方式
大小端存儲格式不同,體現為多字節數據在內存中的存儲表示方法不同:采用大端模式時,數據的高位存儲在內存的低地址中;采用小端模式時,數據的高位存儲在內存的高地址中。大小端數據對齊主要由硬件設計所選取的CPU型號確定,例如:在目前主流的CPU系列中,X86系列采用小端模式,PPC系列則采用大端模式。
1.2 編譯器數據對齊格式
數據對齊格式的差異,體現為在經編譯器編譯完成之后的目標碼中,不同字節長度的數據連續存放時,對于每一個單獨數據的存儲起始地址的要求上。例如:同樣一組數據,采用2字節對齊方式,與采用4字節對齊方式,最終在內存中的存放結果是不相同的。
雖然數據的對齊操作具體由編譯器來執行完成,但是對于數據對齊格式的要求,則不是完全由編譯器所決定的,編譯器對于數據對齊格式的選擇,很大程度上還是依賴于目標碼最終的硬件執行環境(主要是CPU對于數據對齊的硬性要求)。
2 應用數據的不同類型
在航電應用中,經常遇到的需要跨平臺使用的數據主要有以下兩種類型:
靜態獨立數據,是指該數據并不隨著應用程序一起由編譯器編譯生成,該類數據經常對應系統的配置信息數據集。這些系統配置信息由宿主機上的專用配置工具進行配置,配置完成后生成可供應用程序在目標機上進行訪問的二進制數據,該二進制數據最終被固化在目標機的非易失存儲設備上,或者直接以文件的形式存儲在目標機的文件系統中。應用程序在使用該類數據時,必須按照其內部的二進制數據格式進行操作,因此使用效率相對低一些。
編譯器聯編數據,是指應用程序源碼中直接由程序數據類型所定義的程序數據。這些數據經編譯器編譯完成后,絕大部分存儲在應用程序目標碼的數據段中。通常情況下,該數據與應用程序一起由編譯器編譯完成,并生成在同一個二進制文件中,最終會隨著應用程序的目標碼,一起被固化進目標機的非易失存儲區域。也有極少數情況下,這部分程序數據會被單獨生成一個二進制文件,并固化在編譯器指定的內存地址中。但是,不論是與應用程序的二進制文件一起生成還是單獨生成,該類型的數據都能夠直接被應用程序高效地使用。
3 應用數據的跨平臺使用
對于靜態獨立數據,由于最終的二進制格式不是由編譯器按照程序定義的數據結構生成的,因此,應用程序在使用該數據時必須要了解數據的存儲方式。為了使靜態獨立數據對應的二進制格式,能夠滿足跨平臺使用的要求,則需要該二進制格式與具體的編譯器無關。因此,需要在二進制數據的起始位置,對數據格式進行必要的描述,例如:數據所采用的大小端方式、不同類型數據所在的存儲位置、連續存儲數據的對齊方式等。根據這些描述性信息,應用程序對整個二進制數據的存儲格式就有了一個全面的了解,并且能夠找到任何所需的數據內容。采用這種方式訪問數據,應用程序需要在數據描述信息的指導下完成,如果每次對于數據的訪問都需要對描述信息進行解析,那么數據訪問效率會很差。因此,需要在應用程序的啟動運行階段,由一段專門的解析程序,一次性對全部的數據內容進行解析,并將解析后獲得的數據,以當前程序運行時所支持的編譯器格式進行存放,供后續應用程序直接訪問,這樣就大大提高了數據的訪問效率。
對于編譯器聯編數據,最主要的問題則是數據對齊。隨著硬件存儲技術的飛速發展,現代航電系統中對于內存的使用,已經不像以前那樣進行嚴格的控制。因此,可以對該問題采用一個簡單的一刀切的處理辦法:對所有的程序數據都采用4字節對齊的方式進行定義,即:將4字節以下的數值數據都統一定義為32位,將所有的字符串數據都定義為4字節的整數倍。這樣雖然會浪費一小部分內存空間,但是極大地提高了數據跨平臺使用能力。
4 結束語
隨著航電系統所采用的硬件環境越來越復雜,對于航電系統中數據跨平臺使用的要求也越來越高。設計數據跨平臺使用方案時,在數據使用方面,不僅要考慮到跨平臺的通用性,同時也要兼顧對于數據訪問的效率;在硬件環境方面,除了要考慮目前系統中所采用的硬件環境外,還要考慮到后續系統升級時可能出現的各種情況。只有把上述所有影響因素都考慮在內,最終設計的數據跨平臺使用方案才會有一個比較合理的生命存續周期。
參考文獻:
[1] 柳翠寅,韓敏,袁繼敏. 基于XML的跨平臺數據安全交換[J]. 微計算機信息,2007,23(11-3):35-37.
[2] 侯琰,龍虹. Web Services在跨平臺數據交換中的應用[J]. 計算機應用與軟件,2006,23(3):59-60.
[3] 靳其兵,王艷艷,龍萍. 基于FDT的OPC跨平臺數據訪問研究[J]. 計算機工程,2010,36(4):265-266.
作者簡介:王寧,男,(1982.3-),陜西渭南人,本科,工程師,主要從事綜合化航電系統軟件的研究、機載實時容錯分布式系統的研究。
韓春陽,男,(1987.3-),黑龍江五常人,本科,工程師,主要從事綜合化航電系統軟件的研究、機載實時容錯分布式系統的研究。