文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.10.038
中文引用格式: 王泉,孫海洋,邵志陽,等. 一種基于FPGA實現(xiàn)的ARINC659總線分析儀設計與實現(xiàn)[J].電子技術(shù)應用,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)綜合化復雜度的增加使得如何高效監(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)設計方案,可完成對ARINC659總線數(shù)據(jù)監(jiān)測、故障注入、仿真測試等功能。
1 方案設計
1.1 傳輸機制
ARINC659是一種串行總線,采用4條串行總線通過半雙工通信與交叉校驗的通信方式,它減少了硬件電路,提高了可靠性。ARINC659是雙總線組成的雙雙配置,總線對A、B分別有“x”“y”兩條總線,每條總線都有一條時鐘線和兩條數(shù)據(jù)線,每次傳送2個數(shù)據(jù)位,完整的總線由12條線組成。
ARINC659采用雙總線交叉檢測容錯機制,接收到數(shù)據(jù)首先進行相應的解碼,根據(jù)接收到的數(shù)據(jù)有效性及解碼后的4條總線數(shù)據(jù)進行交叉(AX=AY、BX=BY、AX=BY、AY=BX)比較,比較結(jié)果根據(jù)調(diào)用可用性表或者完整性表判斷數(shù)據(jù)的有效性。
命令表主要完成總線的初始化、預譯碼命令,對系統(tǒng)內(nèi)各節(jié)點間的通信和節(jié)點各任務的配置。
1.2 工作原理
總線分析儀與其他LRM模塊一樣都是掛接在ARINC659總線上,圖1為總線分析儀在系統(tǒng)中的應用,總線分析儀與系統(tǒng)中其他的LRM具有相同的總線命令表,如果總線分析儀被設置為分析模式,當系統(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ù)據(jù),配置命令表配置總線分析儀只作為接收狀態(tài)??偩€分析儀通過總線收發(fā)器接收總線數(shù)據(jù)并對總線數(shù)據(jù)采用240 MHz的時鐘頻率采樣,采集模塊對數(shù)據(jù)做前端處理后,傳送到處理器做總線協(xié)議解析與數(shù)據(jù)分析,通過以太網(wǎng)將總線狀態(tài)傳輸給應用層軟件,應用層對數(shù)據(jù)處理后通過GUI界面實時顯示總線狀態(tài)信息。當總線分析儀作為故障注入模式時,總線分析儀作為輸入設備對總線的數(shù)據(jù)進行斷路故障設置或者拉低故障設置對總線注入錯誤導致總線錯誤[2]。
總線分析儀上電初始化完全遵循ARINC659總線上電初始化與同步規(guī)范,上電初始化完成后處于監(jiān)控總線狀態(tài),將總線上的數(shù)據(jù)實時傳輸給主機完成總線數(shù)據(jù)的分析與顯示。
1.3 硬件設計
ARINC659總線分析儀主要由電源電路、復位電路、總線收發(fā)器電路、總線繼電器電路、數(shù)據(jù)采集單元(FPGA及配置電路)、CPU數(shù)據(jù)處理單元組成。如圖2功能框圖,數(shù)據(jù)采集單元完成總線數(shù)據(jù)的高頻數(shù)據(jù)采樣;CPU數(shù)據(jù)處理單元負責總線數(shù)據(jù)的處理與實時傳輸總線狀態(tài)到宿主主機。CPU數(shù)據(jù)處理單元要求具有一定存儲器的CPU模塊,具備PCI接口和以太網(wǎng)。
電源電路是整個系統(tǒng)的供電模塊,提供整個系統(tǒng)各芯片工作所需要的工作電壓。
復位電路采用手動復位、上電復位、軟復位3種復位方式實現(xiàn)系統(tǒng)復位機制。
總線收發(fā)器電路主要負責數(shù)據(jù)的接收,該電路包括4路獨立的總線,每個總線收發(fā)器只接收一路總線數(shù)據(jù),目前市場上大部分的659系統(tǒng)都采用BTL電平,因此收發(fā)器采用TTL電平轉(zhuǎn)化BTL電平功能的總線收發(fā)器,設計中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ù)毛刺可能比較大,這樣采樣頻率要求比較高,設計中采樣頻率是總線工作頻率的8倍進行數(shù)據(jù)完整性采樣。采樣單元實時采樣總線數(shù)據(jù),并對采樣數(shù)據(jù)打本地時標,以約定格式輸出。
(2)濾波電路:采樣到的數(shù)據(jù)首先進行數(shù)據(jù)恢復與去毛刺處理。
(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ù)的傳輸速率,本設計采用33 MHz×32 bit的PCI總線接口,PCI總線接口直接集成Xlinx PCI LogiCORE,其設計完全兼容33 MHz×32 bit總線協(xié)議規(guī)范,CPU數(shù)據(jù)處理單元通過采集模塊的DPRAM與相關(guān)寄存器完成高速率的數(shù)據(jù)通信[3]。
CPU數(shù)據(jù)處理單元是整個分析儀的核心處理器,主要處理捕獲模式與觸發(fā)模式,根據(jù)應用層的約束條件進行不同模式的數(shù)據(jù)處理后通過以太網(wǎng)將數(shù)據(jù)傳輸給應用層軟件。
1.4 系統(tǒng)軟件設計
ARINC659總線分析儀軟件平臺開發(fā):宿主機采用PC,系統(tǒng)通過以太網(wǎng)接口實現(xiàn)與宿主機的通信,分析儀軟件由分析儀驅(qū)動軟件、API軟件包、幀描述語言編輯器、傳輸軟件以及上位機應用軟件組成。軟件架構(gòu)如圖3所示。
應用軟件主要提供一個簡單的人機界面,用戶通過直觀統(tǒng)一的GUI應用軟件控制其工作,提供659數(shù)據(jù)分析、659數(shù)據(jù)監(jiān)控、659數(shù)據(jù)捕獲、659總線故障注入等功能。
(1)數(shù)據(jù)分析功能:提供線速的659同步消息和659數(shù)據(jù)消息的接收功能;對659數(shù)據(jù)按照時標進行實時解析與同步顯示。
(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)總線故障注入功能:故障注入是通過控制器控制每路總線設計的繼電器實現(xiàn)對總線“0”、“1”、斷開等3種狀態(tài)的故障注入,對于每一組信號,除了單獨的信號注入故障以外,還包括相互粘連的情況,共有3種粘連情況:每一組的CK與D0粘連,D0與D1粘連,CK、D0、D1粘連。默認的情況下,所有的信號沒有故障注入,處于正常連通的狀態(tài)。圖4所示為軟件故障注入界面設計。
驅(qū)動軟件是作為傳輸軟件與應用軟件的通信接口,它包括CPU系統(tǒng)軟件驅(qū)動、PCI接口驅(qū)動、以太網(wǎng)驅(qū)動以及通信軟件,CPU系統(tǒng)軟件驅(qū)動提供采集模塊的控制、中斷服務、狀態(tài)匯報、不同模式的數(shù)據(jù)處理、應用程序等服務,以太網(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ù)與同步消息進行實時的采用,能準確捕捉與記錄初始化同步、長同步、短同步以及總線數(shù)據(jù),并標識對應的描述符,通過命令表將描述符傳輸?shù)街鳈C,主機對傳輸?shù)降臄?shù)據(jù)進行統(tǒng)計與分析并實時顯示到GUI界面。總線消息傳輸仿真時序如圖5所示。
本設計采用CPU8245主機對不同的系統(tǒng)進行大量的故障注入與監(jiān)控分析試驗驗證,驗證結(jié)果與設計功能相一致,完全取代了昂貴儀器設備、人員耗時的分析,高效地解決了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)的復雜度,為航空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].計算機工程與設計,2010,31(12);2726-2728.
[3] 汪迪娜,樊曉椏,安建鋒.ARINC659總線監(jiān)控卡的設計與實現(xiàn)[J].微電子學與計算機,2010(11):168-172.
[4] 田澤,劉寧寧,郭亮,等.ARINC659底板數(shù)據(jù)總線及關(guān)鍵技術(shù)[J].計算機應用,2013,33(S2):49-53,56.