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