梅康 陳金鷹
【摘要】航空全雙工交換式以太網(wǎng)絡(luò)(AFDX)是在以太網(wǎng)的基礎(chǔ)上建立起來(lái)的,由于linux操作系統(tǒng)強(qiáng)大的網(wǎng)絡(luò)功能和穩(wěn)定的系統(tǒng),從而提出一種在linux操作系統(tǒng)下面實(shí)現(xiàn)AFDX端系統(tǒng)通信端口的方法,端口在端系統(tǒng)驅(qū)動(dòng)中通過(guò)加載配置,創(chuàng)建端口、端口發(fā)送/接收3個(gè)步驟實(shí)現(xiàn),經(jīng)過(guò)應(yīng)用程序測(cè)試驗(yàn)證了其正確性和可靠性。
【關(guān)鍵詞】AFDX端系統(tǒng)通信端口端口配置端口配置表linux操作系統(tǒng)
數(shù)據(jù)通信技術(shù)是航空電子系統(tǒng)實(shí)現(xiàn)綜合化、模塊化的關(guān)健技術(shù)。其中,AFDX作為近年來(lái)最先進(jìn)的用于航空電子系統(tǒng)的通用通信鏈路,首次將網(wǎng)絡(luò)化技術(shù)成功地引入到了航空電子系統(tǒng)中。AFDX端系統(tǒng)是AFDX網(wǎng)絡(luò)組成部分,作為航電子系統(tǒng)與AFDX分組交換機(jī)連接的接口,每個(gè)航電子系統(tǒng)的端系統(tǒng)保證了航電系統(tǒng)之間數(shù)據(jù)交換的安全和可靠性。[1]AFDX通信端口作為端系統(tǒng)的一部分,對(duì)于AFDX網(wǎng)絡(luò)消息的傳遞有著重要的作用,因此本設(shè)計(jì)以AFDX協(xié)議標(biāo)準(zhǔn)為依據(jù),針對(duì)AFDX端系統(tǒng)板卡的AFDX協(xié)議棧在板上實(shí)現(xiàn)的特點(diǎn),詳細(xì)討論了通信端口的通信機(jī)制以及一種實(shí)現(xiàn)通信端口的方法。
一、AFDX端系統(tǒng)端口概述
AFDX端系統(tǒng)按照層次劃分,可以分為4層,包括:媒體訪問(wèn)控制(MAC)層;網(wǎng)絡(luò)層;傳輸層;應(yīng)用層;這4層的功能及關(guān)系如圖1所示。
其中MAC層、網(wǎng)絡(luò)層和傳輸層均在AFDX端系統(tǒng)板卡實(shí)現(xiàn),應(yīng)用層則由端系統(tǒng)驅(qū)動(dòng)來(lái)實(shí)現(xiàn)。本文只給出了AFDX通信端口的實(shí)現(xiàn),以下提到的端口均指通信端口。端口在應(yīng)用層實(shí)現(xiàn),每個(gè)端口都有自己的屬性。端口在一個(gè)端系統(tǒng)中由惟一的端口號(hào)標(biāo)識(shí),端口范圍為l024~65635,端口的角色要么是發(fā)送端口,要么是接收端口,不能兩者兼顧。端口是端系統(tǒng)提供給應(yīng)用程序的接口,應(yīng)用程序和端系統(tǒng)板卡通過(guò)端口來(lái)傳遞數(shù)據(jù)。這些特種端口是普通的TCP/IP[2]協(xié)議棧所沒(méi)有的,它是端系統(tǒng)在UDP協(xié)議的上層實(shí)現(xiàn)的服務(wù)。
二、端口通信機(jī)制
2.1通信端口類型
根據(jù)ARINC 653規(guī)范《航空電子應(yīng)用軟件標(biāo)準(zhǔn)接口》[3],端系統(tǒng)提供兩種類型的通信端口(communicationport):采樣端口(sampling port)和隊(duì)列端口(queuing port),每種通信端口都采用UDP(無(wú)連接)數(shù)據(jù)報(bào)服務(wù)。
如圖2所示,本圖中將在處理程序中讀取接收到的UDP數(shù)據(jù)報(bào),然后將收到的數(shù)據(jù)報(bào)存入一個(gè)消息隊(duì)列,而應(yīng)用程序從該隊(duì)列中取出下一個(gè)數(shù)據(jù)報(bào)進(jìn)行處理。
三、端口通信的實(shí)現(xiàn)
3.1端口實(shí)現(xiàn)的結(jié)構(gòu)體
為了滿足端口的特性和實(shí)現(xiàn)端口的創(chuàng)建和使用,驅(qū)動(dòng)中定義了兩個(gè)重要結(jié)構(gòu)體:端口配置和端口配置表。端口配置用于描述每一個(gè)端口的屬性,包括以下配置信息:端口號(hào)、端口模式、端口方向、最大消息長(zhǎng)度、最大消息數(shù)目、端口刷新率、端口所在分區(qū)名稱、源UDP端口、目的UDP端口、目的IP、VL號(hào)、子VL號(hào)、分段標(biāo)志。端口配置表是根據(jù)端口配置生成的,用于存放所有端口的配置信息。它是端口通信實(shí)現(xiàn)的一個(gè)關(guān)鍵,有關(guān)端口的操作都要通過(guò)它來(lái)完成。在端口的創(chuàng)建和用端口發(fā)送/接收數(shù)據(jù)時(shí)用到。端口配置表按端口號(hào)升序排列。圖4給出了端口配置表的具體組成部分。
3.2端口實(shí)現(xiàn)的步驟
端口的實(shí)現(xiàn)分為以下3個(gè)步驟:加載配置、創(chuàng)建端口、端口發(fā)送/接收。
(1)加載配置
由于AFDX網(wǎng)絡(luò)是確定型網(wǎng)絡(luò),使用哪些端口和VL來(lái)通信以及發(fā)送和接收路徑都是在通信之前配置好的,所以在應(yīng)用程序通信之前,首先要加載端口和VL的配置信息,根據(jù)配置信息生成端口配置表和板卡配置表并將板卡配置表拷貝到端系統(tǒng)板卡。
(2)創(chuàng)建端口
在加載配置完成后,要使用端口通信前必須先創(chuàng)建端口。創(chuàng)建端口是根據(jù)端口配置表動(dòng)態(tài)申請(qǐng)一塊端口緩沖區(qū)和數(shù)據(jù)長(zhǎng)度數(shù)組。端口緩沖區(qū)用于存放消息,大小為最大消息長(zhǎng)度與最大消息數(shù)的積。數(shù)據(jù)長(zhǎng)度數(shù)組用于存放每個(gè)消息的實(shí)際長(zhǎng)度,數(shù)組大小為最大消息數(shù)。
(3)端口發(fā)送/接收
創(chuàng)建端口之后,應(yīng)用程序就可以通過(guò)端口來(lái)發(fā)送和接收數(shù)據(jù)了。發(fā)送時(shí)驅(qū)動(dòng)將用戶數(shù)據(jù)拷貝到端口緩沖區(qū),然后通過(guò)端系統(tǒng)板卡將數(shù)據(jù)發(fā)送出去。接收時(shí)板卡將數(shù)據(jù)放到端口緩沖區(qū),驅(qū)動(dòng)再將數(shù)據(jù)從端口緩沖區(qū)拷貝到用戶端。
3.3端口實(shí)現(xiàn)過(guò)程
加載配置函數(shù)load_config()的參數(shù)為AFDX終端系統(tǒng)配置信息、VL配置信息、端口配置信息,根據(jù)這些信息生成端口配置表。端口配置表在邏輯上分為發(fā)送和接收,分別將發(fā)送端口和接收端口的配置信息填人發(fā)送和接收配置表。
四、結(jié)論
基于linux實(shí)現(xiàn)的AFDX采用動(dòng)態(tài)分配,對(duì)于不同的配置任務(wù)動(dòng)態(tài)生成不同的配置,使用靈活方便。該交換網(wǎng)絡(luò),經(jīng)分析和測(cè)試,證明其可以為航空通信系統(tǒng)提供更大更穩(wěn)定的帶寬,提高系統(tǒng)的通信性能,還有利于航空子系統(tǒng)的升級(jí)和維護(hù)。這對(duì)航空電子通信系統(tǒng)網(wǎng)絡(luò)的設(shè)計(jì)具有一定的參考意義。目前本方法只是針對(duì)基于linux實(shí)現(xiàn)的AFDX通信端口,下一步要進(jìn)行SAP端口的擴(kuò)展,并進(jìn)一步優(yōu)化端口通信過(guò)程,以便達(dá)到更高的實(shí)時(shí)性。
參考文獻(xiàn)
[1]趙國(guó)斌.航空電子全雙工交換式以太網(wǎng)分析.中國(guó)制造業(yè)信息化,2011,40(21): 61-63
[2] IEEE Standard 802.3. 2000 Edition. 2000
[3]祝永衛(wèi),劉俊千. AFDX總線實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn).中國(guó)現(xiàn)代教育裝備,2009(17):54-56