范毅 李明華



【摘要】 ? ?本文介紹了一種基于FPGA的PCI接口ARINC429適配器的設計、實現,采用PLX提供的基礎驅動封裝了功能函數庫,并在Labview下進行了測試。
【關鍵字】 ? ?ARINC429 ? ?PCI ? ?FPGA ? ?PLX ? ?Labview
Design and implementation of PCI interface ARINC429 adapter based on FPGA
FAN Yi,LI Ming Hua
(Xian Institute of Aeronautical Computing Technology for Aeronautical Industry,Xian Shannxi 710068 China)
Abstract:This paper introduces the design and implementation of a PCI interface ARINC429 adapter based on FPGA,Functional libraries are encapsulated using the underlying drivers provided by PLX and tested under Labview.
Keywords:ARINC429、PCI、FPGA、PLX、Labview
一、概述
為實現ARINC429總線的自動測試,需要具有大數據量連續發送和自動接收能力的模塊,且該模塊應便于與測試上位系統連接。
模塊實現8路ARINC-429信號的接收和4路ARINC-429信號的發送。同時為每路ARINC-429信號提供1K幀(1幀32byte)的循環緩沖區。
二、總體思路
考慮實現的便捷和可靠,ARINC429部分采用標準協議芯片實現,采用標準協議芯片實現可避免因數據編碼等原因影響測試可靠性,縮短開發和調試周期;與上位機采用PCI接口連接,接口使用專用橋接芯片;內部數據流控制采用FPGA實現。
2.1 ARINC429總線
ARINC429總線協議是美國航空電子工程委員會(Airlines Engineering Committee)于1977年7月提出的,并于同年同月發表并獲得批準使用。它的全稱是數字式 信息傳輸系統DITS。協議標準規定了航空電子設備及有關系統間的數字信息傳輸要求。ARINC429廣泛應用在先進的民航客機以及俄制軍用飛機中。我國與之對應的標準是HB6096-SZ-01。
ARINC429總線結構簡單、性能穩定,抗干擾性強。最大的優勢在于可靠性高,這是由于非集中控制、傳輸可靠、錯誤隔離性好。
2.2 ?PCI總線
PCI是Peripheral Component Interconnect(外設部件互連標準)的縮寫,使用較為廣泛。PCI總線是一種同步的獨立于處理器的32位或64位局部總線,最高工作頻率為33MHz,峰值速度在32位時為132MB/s,64位時為264MB/s,總線規范由PCISIG發布。ISA總線相比,PCI總線具有高速、支持即插即用、可靠性較高、擴展性較好等顯著的優點,但也存在規范嚴格、使用復雜等缺點,因此在實際設計和開發過程中,一般使用專用芯片實現從PCI總線到Local Bus的轉換,從而簡化開發工作,也可使用對應的IP核,進一步縮減期間數量,提高集成度,目前主流FPGA廠商都提供了免費的PCI橋IP核。
2.3 FPGA
FPGA(Field Programmable Gate Array)是在PAL、GAL等可編程器件的基礎上進一步發展的產物。FPGA在復雜時序邏輯的實現上具有先天的優勢,同時具備硬件電路并行運行的特點。
三、系統結構及模塊功能設計
3.1系統結構
系統硬件框圖如圖1所示,由3個模塊組成,分別為PCI接口(包括PCI橋接芯片和配置芯片)、FPGA、SRAM、ARINC429接口(包括ARINC429協議芯片和ARINC429電平芯片)。
PCI接口接收上位發來的配置和控制數據,并傳遞給FPGA內的控制邏輯;FPGA內的邏輯根據配置和控制數據進行ARINC429協議芯片的初始化,并對接收和發送緩沖區進行初始化;需要發送數據時,上位將需要發送的數據寫入發送緩沖,并通過控制寄存器啟動發送,通過讀取發送狀寄存器了解發送情況,通過控制寄存器可實現循環和單個數據重復發送;接收在完成配置后根據ARINC429協議芯片的接收中斷自動進行,并按照先后順序存儲在接收緩沖區,模塊不產生中斷,上位機可讀取接收狀態寄存器了解接收情況,邏輯采用VerilogHDL設計實現[1]。
本設計中,PCI橋接芯片選擇Broadcom(原PLX)公司的PCI9052,該芯片為PCI從設備接口橋芯片,可方便的將PCI轉化為ISA(Local Bus),PCI總線符合PCI 規范r2.1;FPGA使用Xilinx公司Spartan6系列的XC6SLX25(FT);ARINC429的協議芯片時使用4片HoltIC公司的HI3282,每片HI3282集成1路發送和2路接收,自帶接收電平轉換,發送電平轉換芯片使用HI-8585。
3.2 FPGA內功能劃分
如圖2所示,FPGA內邏輯分為Local Bus控制邏輯、接收邏輯、發送邏輯、ARINC429協議芯片控制邏輯和SRAM控制邏輯。
3.2.1 Local Bus控制邏輯
Local Bus控制邏輯內包含Local Bus信號的譯碼和系統控制和狀態寄存器,譯碼用于選定內部邏輯功能,系統控制和狀態寄存器定義如表1和表2。
3.2.2發送邏輯
發送邏輯根據發送控制寄存器啟動發送,并將發送相關的狀態(主要是ARINC429協議芯片接收相關輸出)保存掃發送狀態寄存器。啟動發送后,根據發送緩沖區地址和狀態寄存器內相關位,自動完成從SRAM讀取數據、寫入HI-3282發送緩沖、等待發送完成、再次取數(地址指針可通過寄存器獲得)的循環,直至完成緩沖區內所有數據發送。
上位機在發送前首先需要完成ARINC429協議芯片的初始化,初始化由Local Bus控制邏輯直接操作ARINC429協議芯片完成。完成初始化后,設定發送緩沖區起始地址及大小(通過寄存器),隨后將數據寫入緩沖區對應地址(完成緩沖區起始地址及大小設置后,設置立即生效),通過設置發送控制寄存器啟動發送。涉及的寄存器見下表。
3.2.3 接收邏輯
接收邏輯監控4片HI3282上8個通道的Drin信號,當該信號有效時,啟動自動接收邏輯,將ARINC429協議芯片內的數據轉存至SRAM。
在使用自動接收邏輯前,需配置接收緩沖區起始地址及大小。
3.2.4 SRAM控制邏輯
SRAM控制邏輯完成訪問仲裁和SRAM控制。Local Bus控制邏輯、接收邏輯、發送邏輯均可訪問SRAM,優先級從高到低為:接收邏輯、發送邏輯、Local Bus控制邏輯,當高優先級邏輯訪問時,低優先級的訪問將被忽略,因此在進行操作前應確認模塊工作狀態,以免出現無效操作。
3.3 PCI總線接口
PCI9052可通過串行EEPROM配置,也可由上位機進行配置。
本設計中結合兩種方式,EEPROM用于模塊識別,上位機對Local Bus相關寄存器進行配置,以方便軟件編程和調試。
3.4 ARINC429總線接口
由4片HI3282和4片HI8585組成,ARINC429協議芯片完全由FPGA控制,包括基礎時鐘及復位信號。
四、驅動開發與模塊測試
4.1 驅動軟件
PCI9052提供配套的軟件驅動包(內含調試工具PLXmon),在進行快速測試和驅動軟件開發時,可使用該工具包進行[2]。PLXmon軟件界面見下圖3。
軟件開發包提供標準PCI函數庫(針對不同類型的橋片有不同函數),通過調用標準函數可快速實現功能。下表6是用于操作模塊的專用函數[3]。
4.2 系統測試
測試分為兩步,首先進行自回繞測試,自發自收以驗證功能;隨后與目標被測件進行連接,進行連續接收測試(測試中只需接收)。為方便測試,使用Labview編制測試用軟件,監控測試并記錄數據[4]。軟件界面如下圖。
測試項及結果如下表7。
五、結束語
本文基于FPGA設計了可自動大量緩存接收數據的PCI接口ARINC429總線適配器。經過長時間測試,模塊工作穩定,自動接收功能可大量緩存接收數據,為自動測試ARINC429 總線提供了便利。
參考文獻
[1] [美]Samir Palnitkar,Verilog HDL數字設計與綜合(第二版),電子工業出版社,2004.
[2] 丁高磊、王新艷,PLX9052的配置及驅動開發,計算機與信息技術,2007(22),51-52.
[3] 熊松,基于PCI總線的數據采集卡的實現,東南大學,碩士學位論文,20020601.
[4] 嚴雨、夏寧,Labview入門與實戰開發100例(第三版),電子工業出版社,2017.
范毅,19790620,男,陜西咸陽,漢;大學本科;工程師;計算機應用