文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.10.038
中文引用格式: 王泉,,孫海洋,,邵志陽,等. 一種基于FPGA實現(xiàn)的ARINC659總線分析儀設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,,2016,,42(10):146-148,152.
英文引用格式: Wang Quan,,Sun Haiyang,,Shao Zhiyang,et al. A design and implementation of ARINC659 protocol analyzer based on FPGA[J].Application of Electronic Technique,,2016,,42(10):146-148,152.
0 引言
航空電子系統(tǒng)綜合化的發(fā)展不斷提高,,對系統(tǒng)的安全性,、容錯性、實時性要求越來越高,。底板總線是航空電子系統(tǒng)中各在線可更換模塊(LRM)間數(shù)據(jù)傳輸不可缺少的關(guān)鍵部分,。航空系統(tǒng)綜合化復(fù)雜度的增加使得如何高效監(jiān)控總線數(shù)據(jù)行為,、實時對數(shù)據(jù)分析、進行故障診斷及定位成為航空電子系統(tǒng)面臨的重要問題,。提供能觸發(fā)瞬態(tài)監(jiān)控分析LRM之間通信狀態(tài)的系統(tǒng)將會大大提升航空電子系統(tǒng)維護效率,,減少系統(tǒng)故障維護時間,對提升裝備維修性和可用性將發(fā)揮重大作用[1],。
本文提出了一種基于FPGA實現(xiàn)的ARINC659總線分析儀系統(tǒng)設(shè)計方案,,可完成對ARINC659總線數(shù)據(jù)監(jiān)測、故障注入,、仿真測試等功能,。
1 方案設(shè)計
1.1 傳輸機制
ARINC659是一種串行總線,采用4條串行總線通過半雙工通信與交叉校驗的通信方式,,它減少了硬件電路,,提高了可靠性。ARINC659是雙總線組成的雙雙配置,,總線對A,、B分別有“x”“y”兩條總線,每條總線都有一條時鐘線和兩條數(shù)據(jù)線,,每次傳送2個數(shù)據(jù)位,,完整的總線由12條線組成。
ARINC659采用雙總線交叉檢測容錯機制,,接收到數(shù)據(jù)首先進行相應(yīng)的解碼,,根據(jù)接收到的數(shù)據(jù)有效性及解碼后的4條總線數(shù)據(jù)進行交叉(AX=AY、BX=BY,、AX=BY,、AY=BX)比較,比較結(jié)果根據(jù)調(diào)用可用性表或者完整性表判斷數(shù)據(jù)的有效性,。
命令表主要完成總線的初始化,、預(yù)譯碼命令,對系統(tǒng)內(nèi)各節(jié)點間的通信和節(jié)點各任務(wù)的配置,。
1.2 工作原理
總線分析儀與其他LRM模塊一樣都是掛接在ARINC659總線上,,圖1為總線分析儀在系統(tǒng)中的應(yīng)用,總線分析儀與系統(tǒng)中其他的LRM具有相同的總線命令表,,如果總線分析儀被設(shè)置為分析模式,,當(dāng)系統(tǒng)上電總線開始進行數(shù)據(jù)通信,任何一個LRM向總線發(fā)送數(shù)據(jù)時,,總線分析儀就開始全部接收總線上的數(shù)據(jù),,并將數(shù)據(jù)消息與同步消息進行分析處理,通過主機監(jiān)控界面實時顯示總線數(shù)據(jù)的狀態(tài),總線分析儀只接收總線上的數(shù)據(jù),,不對總線上的數(shù)據(jù)進行發(fā)送或者更改,,ARINC659總線規(guī)定一個窗口只能有唯一一個發(fā)送器,或者后備發(fā)送器對總線進行數(shù)據(jù)發(fā)送,,允許多個設(shè)備接收總線的數(shù)據(jù),,配置命令表配置總線分析儀只作為接收狀態(tài),??偩€分析儀通過總線收發(fā)器接收總線數(shù)據(jù)并對總線數(shù)據(jù)采用240 MHz的時鐘頻率采樣,采集模塊對數(shù)據(jù)做前端處理后,,傳送到處理器做總線協(xié)議解析與數(shù)據(jù)分析,,通過以太網(wǎng)將總線狀態(tài)傳輸給應(yīng)用層軟件,應(yīng)用層對數(shù)據(jù)處理后通過GUI界面實時顯示總線狀態(tài)信息,。當(dāng)總線分析儀作為故障注入模式時,,總線分析儀作為輸入設(shè)備對總線的數(shù)據(jù)進行斷路故障設(shè)置或者拉低故障設(shè)置對總線注入錯誤導(dǎo)致總線錯誤[2]。
總線分析儀上電初始化完全遵循ARINC659總線上電初始化與同步規(guī)范,,上電初始化完成后處于監(jiān)控總線狀態(tài),,將總線上的數(shù)據(jù)實時傳輸給主機完成總線數(shù)據(jù)的分析與顯示。
1.3 硬件設(shè)計
ARINC659總線分析儀主要由電源電路,、復(fù)位電路,、總線收發(fā)器電路、總線繼電器電路,、數(shù)據(jù)采集單元(FPGA及配置電路),、CPU數(shù)據(jù)處理單元組成。如圖2功能框圖,,數(shù)據(jù)采集單元完成總線數(shù)據(jù)的高頻數(shù)據(jù)采樣,;CPU數(shù)據(jù)處理單元負(fù)責(zé)總線數(shù)據(jù)的處理與實時傳輸總線狀態(tài)到宿主主機。CPU數(shù)據(jù)處理單元要求具有一定存儲器的CPU模塊,,具備PCI接口和以太網(wǎng),。
電源電路是整個系統(tǒng)的供電模塊,提供整個系統(tǒng)各芯片工作所需要的工作電壓,。
復(fù)位電路采用手動復(fù)位,、上電復(fù)位、軟復(fù)位3種復(fù)位方式實現(xiàn)系統(tǒng)復(fù)位機制,。
總線收發(fā)器電路主要負(fù)責(zé)數(shù)據(jù)的接收,,該電路包括4路獨立的總線,每個總線收發(fā)器只接收一路總線數(shù)據(jù),,目前市場上大部分的659系統(tǒng)都采用BTL電平,,因此收發(fā)器采用TTL電平轉(zhuǎn)化BTL電平功能的總線收發(fā)器,設(shè)計中BIUy控制AX、BX總線收發(fā)器的接收使能,,BIUx控制AY,、BY總線收發(fā)器的接收使能。
繼電器電路是完成對總線狀態(tài)更改的故障注入電路,,繼電器的狀態(tài)由FPGA控制器控制,。
數(shù)據(jù)采集單元是總線分析儀的關(guān)鍵部分,主要由一片F(xiàn)PGA以及外圍配置電路實現(xiàn),,F(xiàn)PGA作為采集模塊的核心主要完成功能如下:
(1)采樣單元:采樣單元采用高頻時鐘進行659總線數(shù)據(jù)采樣,,由于659總線采用大電流驅(qū)動,總線數(shù)據(jù)毛刺可能比較大,,這樣采樣頻率要求比較高,,設(shè)計中采樣頻率是總線工作頻率的8倍進行數(shù)據(jù)完整性采樣。采樣單元實時采樣總線數(shù)據(jù),,并對采樣數(shù)據(jù)打本地時標(biāo),,以約定格式輸出。
(2)濾波電路:采樣到的數(shù)據(jù)首先進行數(shù)據(jù)恢復(fù)與去毛刺處理,。
(3)檢測單元:對濾波后的數(shù)據(jù)檢測單元首先判斷是同步信息還是數(shù)據(jù),,如果為同步信息則直接傳送監(jiān)控控制單元,如果為數(shù)據(jù)段則將接收到的數(shù)據(jù)解碼進行數(shù)據(jù)校驗,,數(shù)據(jù)校驗依據(jù)可用性表或者完整性表根據(jù)接收到數(shù)據(jù)的有效性及4路總線交叉比較的結(jié)果判斷,,校驗后的數(shù)據(jù)與校驗狀態(tài)進行數(shù)據(jù)拼接,拼接成32 bit(一個字)再傳送給監(jiān)控控制單元,。
(4)監(jiān)控控制單元:監(jiān)控控制單元主要完成數(shù)據(jù)消息,、同步消息與CPU數(shù)據(jù)處理單元之間的實時數(shù)據(jù)通信,它將采樣單元與檢測單元采集校驗的數(shù)據(jù)與檢驗狀態(tài)實時地傳輸給CPU處理模塊單元,,以及控制故障注入的繼電器電路對總線注入“0”,、“1”、斷開等故障,。
(5)主機接口:根據(jù)總線數(shù)據(jù)的傳輸速率,,本設(shè)計采用33 MHz×32 bit的PCI總線接口,PCI總線接口直接集成Xlinx PCI LogiCORE,,其設(shè)計完全兼容33 MHz×32 bit總線協(xié)議規(guī)范,,CPU數(shù)據(jù)處理單元通過采集模塊的DPRAM與相關(guān)寄存器完成高速率的數(shù)據(jù)通信[3]。
CPU數(shù)據(jù)處理單元是整個分析儀的核心處理器,,主要處理捕獲模式與觸發(fā)模式,,根據(jù)應(yīng)用層的約束條件進行不同模式的數(shù)據(jù)處理后通過以太網(wǎng)將數(shù)據(jù)傳輸給應(yīng)用層軟件。
1.4 系統(tǒng)軟件設(shè)計
ARINC659總線分析儀軟件平臺開發(fā):宿主機采用PC,,系統(tǒng)通過以太網(wǎng)接口實現(xiàn)與宿主機的通信,,分析儀軟件由分析儀驅(qū)動軟件,、API軟件包、幀描述語言編輯器,、傳輸軟件以及上位機應(yīng)用軟件組成,。軟件架構(gòu)如圖3所示。
應(yīng)用軟件主要提供一個簡單的人機界面,,用戶通過直觀統(tǒng)一的GUI應(yīng)用軟件控制其工作,,提供659數(shù)據(jù)分析、659數(shù)據(jù)監(jiān)控,、659數(shù)據(jù)捕獲,、659總線故障注入等功能。
(1)數(shù)據(jù)分析功能:提供線速的659同步消息和659數(shù)據(jù)消息的接收功能,;對659數(shù)據(jù)按照時標(biāo)進行實時解析與同步顯示,。
(2)數(shù)據(jù)監(jiān)控功能:可統(tǒng)計接收到數(shù)據(jù)的狀態(tài),,數(shù)據(jù)流量監(jiān)控,;監(jiān)控分析數(shù)據(jù)的錯誤狀態(tài),錯誤統(tǒng)計,;數(shù)據(jù)鏈路中是否存在不可靠數(shù)據(jù)或者總線存在毛刺,;版本號是否匹配、幀切換中接收到的不可校正的數(shù)據(jù),、發(fā)送使能是否匹配;通過對數(shù)據(jù)消息與同步消息的分析判斷同步脈沖是否錯誤,,實現(xiàn)對系統(tǒng)總線實時狀態(tài)跟蹤分析功能。
(3)數(shù)據(jù)捕獲功能:可提供數(shù)據(jù)在線實時捕獲與觸發(fā)捕獲,,將記錄數(shù)據(jù)存儲到主機硬盤,,數(shù)據(jù)存儲由軟件實現(xiàn)。
(4)總線故障注入功能:故障注入是通過控制器控制每路總線設(shè)計的繼電器實現(xiàn)對總線“0”,、“1”,、斷開等3種狀態(tài)的故障注入,對于每一組信號,,除了單獨的信號注入故障以外,,還包括相互粘連的情況,共有3種粘連情況:每一組的CK與D0粘連,,D0與D1粘連,,CK、D0,、D1粘連,。默認(rèn)的情況下,所有的信號沒有故障注入,,處于正常連通的狀態(tài),。圖4所示為軟件故障注入界面設(shè)計。
驅(qū)動軟件是作為傳輸軟件與應(yīng)用軟件的通信接口,它包括CPU系統(tǒng)軟件驅(qū)動,、PCI接口驅(qū)動,、以太網(wǎng)驅(qū)動以及通信軟件,CPU系統(tǒng)軟件驅(qū)動提供采集模塊的控制,、中斷服務(wù),、狀態(tài)匯報、不同模式的數(shù)據(jù)處理,、應(yīng)用程序等服務(wù),,以太網(wǎng)驅(qū)動提供以太網(wǎng)接口的數(shù)據(jù)解析、API軟件等,,PCI接口驅(qū)動完成PCI接口的初始化,、總線采集模塊與CPU之間的通信等,通信軟件實現(xiàn)總線數(shù)據(jù)的傳輸,。
傳輸軟件作為分析儀的底層軟件,,主要完成總線數(shù)據(jù)的傳輸及總線命令表的編寫。ARINC659總線完全基于659總線命令表進行總線周期性活動,,幀描述語言命令用于定義ARINC659總線數(shù)據(jù)幀中每個窗口操作,、窗口長度、命令參數(shù)等,。
2 功能驗證
按照圖1的環(huán)境搭建方式,,對總線系統(tǒng)的各個節(jié)點進行不同狀態(tài)的故障注入,通過總線分析儀對總線進行實時記錄,、捕獲,、監(jiān)控分析[4]??偩€分析儀根據(jù)主機的命令來啟動或者停止不同模式的數(shù)據(jù)采集,,系統(tǒng)采用240 MHz的采樣頻率對總線數(shù)據(jù)與同步消息進行實時的采用,能準(zhǔn)確捕捉與記錄初始化同步,、長同步,、短同步以及總線數(shù)據(jù),并標(biāo)識對應(yīng)的描述符,,通過命令表將描述符傳輸?shù)街鳈C,,主機對傳輸?shù)降臄?shù)據(jù)進行統(tǒng)計與分析并實時顯示到GUI界面??偩€消息傳輸仿真時序如圖5所示,。
本設(shè)計采用CPU8245主機對不同的系統(tǒng)進行大量的故障注入與監(jiān)控分析試驗驗證,驗證結(jié)果與設(shè)計功能相一致,,完全取代了昂貴儀器設(shè)備,、人員耗時的分析,,高效地解決了ARINC659總線系統(tǒng)出現(xiàn)的各種總線故障問題。
3 結(jié)束語
本文立足于航空系統(tǒng)領(lǐng)域經(jīng)常出現(xiàn)的ARINC659總線系統(tǒng)故障,、監(jiān)控分析等問題,,提出一種針對解決ARINC659總線系統(tǒng)現(xiàn)場故障問題提供的一種快速定位與分析總線狀態(tài)的總線分析儀系統(tǒng),同時該分析儀具備故障診斷,、信息處理,、實時監(jiān)控、數(shù)據(jù)捕獲及故障注入等功能,,減少了系統(tǒng)的復(fù)雜度,,為航空ARINC659總線系統(tǒng)高效、實時地分析總線狀態(tài)提供一種有效的手段,。
參考文獻
[1] A rinc specification 659 backplane data bus[C].The Airlines Electronic Engineering Committee.Seattle:Blake Island,,1993.
[2] 強新建,田澤,,淮治華.基于ARINC 659的FPGA原型驗證平臺的構(gòu)建與實現(xiàn)[J].計算機工程與設(shè)計,,2010,31(12),;2726-2728.
[3] 汪迪娜,,樊曉椏,,安建鋒.ARINC659總線監(jiān)控卡的設(shè)計與實現(xiàn)[J].微電子學(xué)與計算機,,2010(11):168-172.
[4] 田澤,劉寧寧,,郭亮,,等.ARINC659底板數(shù)據(jù)總線及關(guān)鍵技術(shù)[J].計算機應(yīng)用,2013,,33(S2):49-53,,56.