樊智勇 魯 彥 劉 濤
1(中國民航大學(xué)工程技術(shù)訓(xùn)練中心 天津 300300)2(中國民航大學(xué)電子信息與自動化學(xué)院 天津 300300)
民用飛機(jī)航空電子系統(tǒng)主要由通信、導(dǎo)航、自動飛行、綜合顯示等系統(tǒng)組成,其數(shù)據(jù)交聯(lián)關(guān)系復(fù)雜,系統(tǒng)間數(shù)據(jù)交互量巨大[1]。近年來,民用飛機(jī)航電系統(tǒng)的升級改裝需求逐漸增加,其改裝方案評估需要在集成測試系統(tǒng)中進(jìn)行大量數(shù)據(jù)交互[2-3]。為了解決集成測試系統(tǒng)中數(shù)據(jù)交互時(shí)面臨的設(shè)備連接工作量大、易出錯(cuò)等問題,本文設(shè)計(jì)了一種作為中間件的航電中繼系統(tǒng)。
航電中繼系統(tǒng)是指在集成測試中能將不同類型航電信號在位于不同物理空間的航電系統(tǒng)組件或半實(shí)物仿真器之間進(jìn)行大數(shù)據(jù)量、低延遲相互轉(zhuǎn)發(fā)的中間件。針對集成測試數(shù)據(jù)交互需求的特點(diǎn),航電中繼系統(tǒng)需具備4個(gè)功能:多并發(fā)通道的數(shù)據(jù)轉(zhuǎn)發(fā);轉(zhuǎn)發(fā)延遲時(shí)間在毫秒量級;不同物理空間實(shí)驗(yàn)室之間的傳輸距離可達(dá)數(shù)千米;轉(zhuǎn)發(fā)過程中數(shù)據(jù)易于集中監(jiān)控。
在集成測試數(shù)據(jù)交互問題的研究方面,Pan等[4]在研究半實(shí)物仿真的實(shí)時(shí)數(shù)據(jù)傳輸問題時(shí),提出了基于反射內(nèi)存中斷的時(shí)鐘同步方法,實(shí)現(xiàn)微秒級延遲表明反射內(nèi)存技術(shù)的低延遲和延遲確定性。Sakakura等[5]研究了基于反射分布式內(nèi)存的數(shù)據(jù)管理方案,監(jiān)控整個(gè)測試環(huán)境,并支持?jǐn)?shù)據(jù)中心對數(shù)據(jù)的實(shí)時(shí)修改,表明反射內(nèi)存網(wǎng)絡(luò)易于監(jiān)控的特性。田赤軍等[6]研究了遠(yuǎn)程實(shí)驗(yàn)室協(xié)同仿真問題,實(shí)現(xiàn)了千米級跨區(qū)域?qū)崟r(shí)數(shù)據(jù)共享,表明反射內(nèi)存網(wǎng)遠(yuǎn)程異地傳輸數(shù)據(jù)的優(yōu)勢。黎凡等[7]設(shè)計(jì)了光纖反射內(nèi)存卡,應(yīng)用于傳輸大規(guī)模高清圖像,表明反射內(nèi)存技術(shù)能進(jìn)行大量數(shù)據(jù)傳輸。航電中繼系統(tǒng)選擇反射內(nèi)存網(wǎng)絡(luò)構(gòu)建其底層數(shù)據(jù)通信支撐實(shí)現(xiàn)4個(gè)功能。圖1為基于反射內(nèi)存網(wǎng)的航電中繼系統(tǒng)的功能示意圖。
圖1 航電中繼系統(tǒng)的功能示意
航電中繼系統(tǒng)由終端和交換機(jī)構(gòu)成,其傳輸介質(zhì)為光纖,每個(gè)終端構(gòu)型相同。不同實(shí)驗(yàn)室的航電組件、半實(shí)物仿真器等只需和航電中繼系統(tǒng)的終端連接,即可實(shí)現(xiàn)數(shù)據(jù)的收發(fā)功能。終端所連設(shè)備改變時(shí),航電中繼系統(tǒng)只需改變轉(zhuǎn)發(fā)配置軟件的設(shè)置,無須改變硬件布線。
航電中繼系統(tǒng)需要確定硬件配置和反射內(nèi)存分配。硬件配置是選擇進(jìn)行集中監(jiān)控和發(fā)布控制命令作用的計(jì)算機(jī)、運(yùn)行轉(zhuǎn)發(fā)應(yīng)用的終端計(jì)算機(jī)、反射內(nèi)存交換機(jī)等硬件;反射內(nèi)存分配是將硬件通道資源與反射內(nèi)存一一對應(yīng)。
如圖2所示,航電中繼系統(tǒng)由1臺配置管理計(jì)算機(jī)、6臺終端計(jì)算機(jī)和1臺反射內(nèi)存交換機(jī)等組成。
圖2 航電中繼系統(tǒng)內(nèi)部結(jié)構(gòu)圖
配置管理計(jì)算機(jī)是標(biāo)準(zhǔn)工控機(jī),包含反射內(nèi)存卡(RFM卡),通過以太網(wǎng)向終端機(jī)發(fā)布轉(zhuǎn)發(fā)配置命令、轉(zhuǎn)發(fā)應(yīng)用的執(zhí)行文件,通過本地反射內(nèi)存卡對中繼的數(shù)據(jù)進(jìn)行集中監(jiān)控。終端計(jì)算機(jī)由處理器、反射內(nèi)存卡、ARINC429卡、CAN總線板卡、串行總線(SIO)卡和離散量(DIO)卡組成,實(shí)現(xiàn)8通道ARINC429數(shù)據(jù)、2通道CAN數(shù)據(jù)、4通道SIO數(shù)據(jù)和32通道DIO數(shù)據(jù)的接收和轉(zhuǎn)發(fā)。反射內(nèi)存交換機(jī)是一個(gè)8口的256 MB光纖交換機(jī)。
根據(jù)民用飛機(jī)航電系統(tǒng)交互數(shù)據(jù)的類型可知,終端需要中繼四種類型數(shù)據(jù)。在集成測試過程中數(shù)據(jù)交互量大,為了避免數(shù)據(jù)在中繼過程中碰撞、丟失,同時(shí)充分利用反射內(nèi)存,在反射內(nèi)存分配時(shí),進(jìn)行四次分配,分配細(xì)化圖如圖3所示。不同終端機(jī)、不同型號板卡、不同通道(Channel)的讀和寫都對應(yīng)不同的反射內(nèi)存地址段,實(shí)現(xiàn)數(shù)據(jù)傳輸互不沖突。同時(shí),反射內(nèi)存網(wǎng)絡(luò)具有錯(cuò)誤管理和檢測機(jī)制,保證數(shù)據(jù)無錯(cuò)傳輸[8]。由于系統(tǒng)轉(zhuǎn)發(fā)數(shù)據(jù)量大,將每個(gè)通道讀或通道寫內(nèi)存都設(shè)置一個(gè)FIFO隊(duì)列緩存,隊(duì)列長度為40個(gè)數(shù)據(jù)區(qū)大小。
圖3 反射內(nèi)存分配細(xì)化圖
離散量(DIO)的分配方式不同于其他三種數(shù)據(jù)類型,其對應(yīng)航電系統(tǒng)中的開關(guān)量,取值為0或1。由圖3可知,為使反射內(nèi)存利用率最大,DIO第四次分配時(shí)按位分配。為DIO設(shè)置兩個(gè)FIFO隊(duì)列緩存,隊(duì)列長度為40×4字節(jié)。表1為DIO對應(yīng)反射內(nèi)存的FIFO存儲格式,數(shù)據(jù)區(qū)4字節(jié)為32位,對應(yīng)Channel 0到Channel 31共32個(gè)發(fā)送通道或接收通道內(nèi)存。
表1 DIO對應(yīng)反射內(nèi)存FIFO存儲格式
以ARINC429為例詳細(xì)說明終端FIFO間數(shù)據(jù)流向,ARINC429數(shù)據(jù)對應(yīng)16個(gè)FIFO緩存隊(duì)列,終端板卡與反射內(nèi)存FIFO間數(shù)據(jù)流向如圖4所示。ARINC429板卡每個(gè)通道的接收或發(fā)送FIFO均對應(yīng)一個(gè)反射內(nèi)存FIFO,終端系統(tǒng)從ARINC429板卡FIFO中讀數(shù)的原則是將前一個(gè)FIFO讀空,讀到的數(shù)均寫入其對應(yīng)的反射內(nèi)存FIFO,再將下一個(gè)FIFO讀空,寫入其對應(yīng)反射內(nèi)存FIFO。依此循環(huán)讀寫,直到板卡FIFO中無數(shù)據(jù)為止。終端VxWorks系統(tǒng)時(shí)鐘速率高于ARINC429板卡的硬件驅(qū)動程序執(zhí)行速率,即外部組件發(fā)送數(shù)據(jù)存入ARINC429板卡FIFO的速率小于終端系統(tǒng)從中讀數(shù)速率,此設(shè)計(jì)是為了避免數(shù)據(jù)丟失。以此類推,終端系統(tǒng)將數(shù)據(jù)從反射內(nèi)存FIFO寫入ARINC429板卡FIFO具有相同原理。
圖4 終端FIFO間數(shù)據(jù)流向示意
終端計(jì)算機(jī)在VxWorks操作系統(tǒng)的控制下以系統(tǒng)時(shí)鐘速率輪詢反射內(nèi)存和4種板卡各通道內(nèi)存的數(shù)據(jù)情況,依據(jù)FIFO不同的狀態(tài)執(zhí)行讀寫操作。中繼轉(zhuǎn)發(fā)邏輯由數(shù)據(jù)采集任務(wù)和數(shù)據(jù)激勵(lì)任務(wù)實(shí)現(xiàn),VxWorks系統(tǒng)任務(wù)占據(jù)0到50的優(yōu)先級值,驅(qū)動任務(wù)占據(jù)51到99的優(yōu)先級值[9],這兩個(gè)應(yīng)用任務(wù)的優(yōu)先級值均設(shè)為100。系統(tǒng)運(yùn)行時(shí),VxWorks按照先進(jìn)先出原則調(diào)度這兩種任務(wù)。
以ARINC429為例闡述具體執(zhí)行過程,圖5為數(shù)據(jù)采集任務(wù)的流程圖,其功能是使數(shù)據(jù)從接口板卡到反射內(nèi)存。
圖5 ARINC429數(shù)據(jù)采集任務(wù)的流程圖
其執(zhí)行過程如下:
(1) 終端機(jī)系統(tǒng)創(chuàng)建ARINC429數(shù)據(jù)采集任務(wù)。
(2) 終端機(jī)系統(tǒng)檢查ARINC429板卡各通道的狀態(tài),若通道FIFO狀態(tài)不空,則使能讀FIFO數(shù)據(jù)函數(shù)(EnableReadFIFO)開始工作,終端機(jī)系統(tǒng)獲取待接收數(shù)據(jù)的通道號。若通道FIFO狀態(tài)為空,則在100次查詢后仍空時(shí)結(jié)束運(yùn)行。
(3) 接收數(shù)據(jù)函數(shù)(ReceiveData)執(zhí)行,控制終端機(jī)接收此ARINC429數(shù)據(jù)。
(4) 終端機(jī)將接收數(shù)據(jù)寫到反射內(nèi)存對應(yīng)通道讀地址,同時(shí)反射內(nèi)存網(wǎng)絡(luò)在其共享內(nèi)存機(jī)制的作用下,將此數(shù)據(jù)廣播到其他終端機(jī)反射內(nèi)存卡的相同通道讀地址中。
(5) 終端機(jī)根據(jù)轉(zhuǎn)發(fā)配置文件判斷是否轉(zhuǎn)發(fā)此數(shù)據(jù)。若轉(zhuǎn)發(fā),則轉(zhuǎn)發(fā)的目標(biāo)終端機(jī)根據(jù)獲取的通道號等信息將此數(shù)據(jù)寫到對應(yīng)通道反射內(nèi)存通道寫地址中;若不轉(zhuǎn)發(fā),則結(jié)束運(yùn)行。
圖6為數(shù)據(jù)激勵(lì)任務(wù)的流程圖,其功能是使數(shù)據(jù)從反射內(nèi)存到接口板卡。
圖6 ARINC429數(shù)據(jù)激勵(lì)任務(wù)的流程圖
其執(zhí)行過程如下:
(1) 終端機(jī)系統(tǒng)創(chuàng)建ARINC429數(shù)據(jù)激勵(lì)任務(wù)。
(2) 每個(gè)終端的每個(gè)ARINC429板卡的每個(gè)通道輪詢反射內(nèi)存通道寫地址是否有數(shù)據(jù),若無數(shù)據(jù),則結(jié)束執(zhí)行;若有數(shù)據(jù),則對應(yīng)終端機(jī)系統(tǒng)讀取反射內(nèi)存通道寫地址數(shù)據(jù)。
(3) 終端機(jī)系統(tǒng)輪詢ARINC429板卡各通道的狀態(tài)是否為滿。若通道FIFO狀態(tài)不滿,則調(diào)用數(shù)據(jù)發(fā)送函數(shù)(SendData),將此數(shù)據(jù)寫到ARINC429板卡對應(yīng)通道輸出端口內(nèi)存中,然后板卡基于硬件操作將數(shù)據(jù)輸出給轉(zhuǎn)發(fā)對象。若通道FIFO狀態(tài)為滿,則在100次查詢后仍滿時(shí)結(jié)束運(yùn)行。
(4) 采集任務(wù)和激勵(lì)任務(wù)均設(shè)定100次查詢的目的是防止沒有數(shù)據(jù)轉(zhuǎn)發(fā)時(shí)程序進(jìn)入死循環(huán),影響系統(tǒng)運(yùn)行效率。
終端中繼轉(zhuǎn)發(fā)功能是由采集任務(wù)和激勵(lì)任務(wù)協(xié)作實(shí)現(xiàn)的,將ARINC429數(shù)據(jù)存入反射內(nèi)存通道讀地址,反射內(nèi)存網(wǎng)絡(luò)依據(jù)其自動更新機(jī)制將數(shù)據(jù)廣播到其他終端的同一反射內(nèi)存通道讀地址中,所有終端系統(tǒng)依據(jù)轉(zhuǎn)發(fā)配置決定是否對本地反射內(nèi)存通道寫地址執(zhí)行寫數(shù)操作。
航電中繼系統(tǒng)數(shù)據(jù)轉(zhuǎn)發(fā)延遲時(shí)間T是指從輸入端發(fā)送數(shù)據(jù)至航電中繼系統(tǒng)轉(zhuǎn)發(fā)后輸出端接收到數(shù)據(jù)這兩個(gè)時(shí)刻的間隔時(shí)間,是衡量中繼系統(tǒng)性能的重要指標(biāo)。
(1)
t1=m/B
(2)
式中:t1為操作系統(tǒng)控制處理器讀取以速率B發(fā)送的各類型數(shù)據(jù)的時(shí)間;m為一幀數(shù)據(jù)的位數(shù);t2為航電中繼系統(tǒng)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)時(shí),終端操作系統(tǒng)執(zhí)行讀操作命令要依次遍歷板卡通道的時(shí)間;t3為此過程中等待任務(wù)循環(huán)調(diào)度信號量的時(shí)間;t4為終端系統(tǒng)執(zhí)行寫操作依次檢查板卡通道狀態(tài)的時(shí)間;t5為此過程中釋放信號量的時(shí)間;t6為單級反射內(nèi)存交換機(jī)消耗的時(shí)間;t7為光纖傳輸時(shí)間。
系統(tǒng)驗(yàn)證實(shí)驗(yàn)以轉(zhuǎn)發(fā)ARINC429數(shù)據(jù)為例,測量擴(kuò)展多個(gè)并發(fā)通道轉(zhuǎn)發(fā)大量數(shù)據(jù)的延遲時(shí)間,實(shí)驗(yàn)結(jié)果取每個(gè)通道的延遲時(shí)間的平均值。采用長度為2 km的光纖,ARINC429信號發(fā)射器以12.5 kbit/s的速率發(fā)送數(shù)據(jù),進(jìn)行3組不同數(shù)據(jù)量的轉(zhuǎn)發(fā)實(shí)驗(yàn)。
(1) 一對一轉(zhuǎn)發(fā)。將終端機(jī)1的ARINC429板卡8個(gè)通道輸入端口接ARINC429信號發(fā)射器,在配置管理計(jì)算機(jī)上設(shè)置轉(zhuǎn)發(fā)配置,將終端機(jī)1的8個(gè)通道輸入數(shù)據(jù)分別轉(zhuǎn)發(fā)給終端機(jī)2至6的8個(gè)通道。利用ARINC429信號接收器測量各通道輸出數(shù)據(jù),結(jié)果均準(zhǔn)確。利用示波器測量源信號和各通道轉(zhuǎn)發(fā)輸出信號的延遲時(shí)間,如圖7所示,a表示系統(tǒng)只轉(zhuǎn)發(fā)到終端機(jī)2的8個(gè)通道的延時(shí)均小于3.50 ms,b對應(yīng)延時(shí)均小于3.42 ms,c對應(yīng)延時(shí)均小于3.29 ms,d對應(yīng)延時(shí)均小于3.36 ms,e對應(yīng)延時(shí)均小于3.45 ms。因此,系統(tǒng)8個(gè)并發(fā)通道的數(shù)據(jù)轉(zhuǎn)發(fā)延時(shí)小于3.50 ms。
圖7 只轉(zhuǎn)發(fā)到一個(gè)終端的延遲時(shí)間
(2) 一對多轉(zhuǎn)發(fā)。終端機(jī)1的8個(gè)通道接ARINC429信號發(fā)射器,同時(shí)轉(zhuǎn)發(fā)給終端機(jī)2至6的40個(gè)通道。利用ARINC429信號接收器測量各通道輸出數(shù)據(jù),結(jié)果均準(zhǔn)確。利用示波器測量源信號和各通道轉(zhuǎn)發(fā)輸出信號的延遲時(shí)間,如圖8所示。圖中40個(gè)點(diǎn)對應(yīng)時(shí)間均小于3.40 ms,即系統(tǒng)40個(gè)并發(fā)通道的數(shù)據(jù)轉(zhuǎn)發(fā)延時(shí)小于3.40 ms。
圖8 轉(zhuǎn)發(fā)到5個(gè)終端機(jī)40個(gè)并發(fā)通道延遲時(shí)間
(3) 多對多轉(zhuǎn)發(fā)。終端機(jī)1至6的48個(gè)通道接ARINC429信號發(fā)射器,同時(shí)轉(zhuǎn)發(fā)給終端機(jī)1至6的48個(gè)通道,6個(gè)終端相互轉(zhuǎn)發(fā),任意一個(gè)目標(biāo)通道只設(shè)置一個(gè)源通道對其轉(zhuǎn)發(fā)。利用ARINC429信號接收器測量目標(biāo)通道輸出數(shù)據(jù),結(jié)果均準(zhǔn)確。利用示波器測量源信號和目標(biāo)通道輸出信號的延遲時(shí)間,如圖9所示。圖中48個(gè)點(diǎn)對應(yīng)時(shí)間均小于3.48 ms,即系統(tǒng)48個(gè)并發(fā)通道相互轉(zhuǎn)發(fā)的延時(shí)小于3.48 ms。
圖9 6個(gè)終端48個(gè)并發(fā)通道相互轉(zhuǎn)發(fā)延遲時(shí)間
實(shí)驗(yàn)結(jié)果表明,系統(tǒng)中繼的并發(fā)通道數(shù)從8增加到48,轉(zhuǎn)發(fā)大量數(shù)據(jù)的延時(shí)T均小于3.50 ms。其中t1為2.56 ms,t6為2.00 μs,與反射內(nèi)存技術(shù)有關(guān)[10],t7為13.30 μs,t2至t5與終端系統(tǒng)效率有關(guān),大小為微秒級。因此,固定延遲時(shí)間為2.58 ms,系統(tǒng)實(shí)際延時(shí)小于920.00 μs。
本文設(shè)計(jì)的航電中繼系統(tǒng),實(shí)現(xiàn)了遠(yuǎn)程異地進(jìn)行ARINC429數(shù)據(jù)的40個(gè)(不包含本地終端)并發(fā)通道轉(zhuǎn)發(fā)、串行數(shù)據(jù)(SIO)的20個(gè)并發(fā)通道轉(zhuǎn)發(fā)、CAN數(shù)據(jù)的10個(gè)并發(fā)通道轉(zhuǎn)發(fā)、離散量(DIO)數(shù)據(jù)的160個(gè)并發(fā)通道轉(zhuǎn)發(fā)功能。該系統(tǒng)對4種類型數(shù)據(jù)均能夠以反射內(nèi)存交換機(jī)級聯(lián)的方式擴(kuò)展更多并發(fā)通道進(jìn)行轉(zhuǎn)發(fā),并且系統(tǒng)穩(wěn)定運(yùn)行的實(shí)際延遲時(shí)間為微秒級。航電中繼系統(tǒng)已應(yīng)用于大型民用飛機(jī)航電系統(tǒng)升級改裝項(xiàng)目,項(xiàng)目研發(fā)效率顯著提高。