摘 要:ARINC429 是航空電子設(shè)備之間數(shù)據(jù)傳輸?shù)暮娇展I(yè)標(biāo)準(zhǔn)。提出一種基于ARINC429 接口板的研究方案。采用高集成度的復(fù)雜可編程邏輯器件實(shí)現(xiàn)與429 總線的收發(fā)電路和與機(jī)載計(jì)算機(jī)總線之間的數(shù)據(jù)通信,可有效節(jié)省硬件資源,具有處理速度快、抗干擾能力強(qiáng)等優(yōu)點(diǎn),提高了該429 接口板的性能。通過設(shè)計(jì)和實(shí)驗(yàn),該板卡可以正常穩(wěn)定地工作。
關(guān)鍵詞:FPGA;429 總線;VHDL;Max+PlusⅡ
中圖分類號(hào):TP302 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004-373X(2008)10-093-03
Design of ARINC429 Bus Interface Card Based on FPGA
ZHAOXianhong,HE Guhui
(Electronic Information Engineering College,Henan University of Science and Technology,Luoyang,471003,China)
Abstract:ARINC429 bus is an aero standard of data transmission between avionics equipment.A kind of new 429 interface card based on FPGA is put forward.Field Programmable Gate Array(FPGA) implements the data communication between 429 bus and avionics equipment,may save the space high efficiently.Its processing rate is higher,so it can improve the performance of this 429 interface card.This system can successfully run in practical application.
Keywords:FPGA;429 bus;VHDL;Max+PlusⅡ
ARINC429總線是美國航空無線電公司制訂的民用航空數(shù)字總線傳輸標(biāo)準(zhǔn),我國航標(biāo)SZ01數(shù)字信息傳輸系統(tǒng)也規(guī)定為ARINC429。ARINC429總線是一種單向廣播式數(shù)據(jù)總線,采用差分方式傳輸,具有很強(qiáng)的抗干擾能力,廣泛應(yīng)用于航空電子系統(tǒng)的數(shù)據(jù)傳輸。
本設(shè)計(jì)采用FPGA 完成機(jī)載設(shè)備總線與429總線通訊的主要電路,大大節(jié)省了硬件資源。基于FPGA的ARINC429 通信接口板實(shí)現(xiàn)多發(fā)多收功能,適用于使用ARINC429 標(biāo)準(zhǔn)進(jìn)行通信的機(jī)載設(shè)備的地面調(diào)試,需要擴(kuò)展ARINC429通信接口的場合,也適用于使用該接口板構(gòu)成地面仿真系統(tǒng)的應(yīng)用場合,該總線接口的設(shè)計(jì)使得429 通信板可以應(yīng)用的更加廣泛。本文著重介紹FPGA 部分的設(shè)計(jì)。
FPGA 是一種復(fù)雜的用戶可編程邏輯器件,由于采用連續(xù)連接結(jié)構(gòu),易于預(yù)測延時(shí),從而使電路仿真更加準(zhǔn)確。與專用集成電路相比,具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、測試簡單和質(zhì)量穩(wěn)定等優(yōu)點(diǎn);與微處理器相比,具有處理速度快的優(yōu)點(diǎn)。再加上使用方便的開發(fā)工具,如Max+PlusⅡ,Quartus 等,使用FPGA器件可以極大地縮短產(chǎn)品開發(fā)周期,給設(shè)計(jì)修改帶來很大方便。本文描述利用開發(fā)工具M(jìn)ax+PlusⅡ?qū)崿F(xiàn)FPGA處理ARINC429 數(shù)據(jù)通信。可有效節(jié)省硬件資源,因此可以很好地提高該429 接口板的性能。
1 系統(tǒng)總統(tǒng)設(shè)計(jì)方案
某機(jī)載設(shè)備處理機(jī)總線與ARINC 429總線之間的接口板系統(tǒng)設(shè)計(jì)方案如圖1 所示。
圖1 接口板系統(tǒng)設(shè)計(jì)方案
信息只能從模塊的發(fā)送端輸出,經(jīng)傳輸總線傳至與發(fā)送端相連的機(jī)載設(shè)備的接收端,或者從機(jī)載設(shè)備的發(fā)送端,經(jīng)傳輸總線傳至模塊的接收端,即信息單向傳輸。因此429總線模塊由以下4個(gè)部分組成:與處理機(jī)總線的接口部分、429總線接收部分、429總線發(fā)送部分、自檢測部分。虛線為利用FPGA實(shí)現(xiàn)的與處理機(jī)總線的接口部分。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 429總線模塊設(shè)計(jì)的描述
429總線輸入的兩條線A,B直接連到HS-3282的A1,B1端或者A2,B2端。429總線模塊通過地址線、控制線和數(shù)據(jù)線與處理機(jī)相連;通過地址總線譯碼及一些門電路產(chǎn)生HS-3282的所有控制信號(hào)。
HS-3282的數(shù)據(jù)線通過數(shù)據(jù)總線緩沖與處理機(jī)的數(shù)據(jù)線相連,完成數(shù)據(jù)通道。
HS-3282產(chǎn)生的D/R1,D/R2作為中斷信號(hào),連到處理機(jī)的中斷輸入,完成對(duì)所接收的串行數(shù)據(jù)的讀取。處理機(jī)接到D/R1后,送出SEL信號(hào)和EN信號(hào),完成數(shù)據(jù)的讀取工作。
HS-3282產(chǎn)生的TX/R信號(hào),也接到處理機(jī)的中斷輸入端。處理機(jī)接到TX/R后,產(chǎn)生PL信號(hào),分2次將需要發(fā)送的數(shù)據(jù)打入HS-3282中,然后處理機(jī)發(fā)送命令,HS-3282和HS-3182相配合,把數(shù)據(jù)自動(dòng)發(fā)出去。
HS-3282輸出的數(shù)據(jù)429D0和429D0直接接到HS-3182的A和B端,HS-3282發(fā)送時(shí)鐘TXCLK送到HS-3182的同步端和時(shí)鐘端,作為HS-3182的發(fā)送時(shí)鐘。
由于429模塊上中斷源較多,而有時(shí)分配給他的中斷級(jí)又少,所以必須設(shè)置1個(gè)中斷源識(shí)別器,在處理機(jī)產(chǎn)生中斷后,再讀1次中斷源,便可知道是哪個(gè)中斷源產(chǎn)生的中斷。
429總線模塊與局部總線的接口包括數(shù)據(jù)線、地址線、讀寫控制線以及地址和控制線參加的譯碼邏輯。CPU需要通過緩沖器在口地址選通作用下讀寫數(shù)據(jù)。輸入緩沖器選用簡單小規(guī)模緩沖器,如54LS244,54LS245等。通過地址譯碼與讀寫控制產(chǎn)生429總線模塊的控制信號(hào):接收器1的接收控制信號(hào)EN1[TX-],接收器2接收控制信號(hào)EN2[TX-],寫第一個(gè)字的寫信號(hào)PL1[TX-],寫第二個(gè)字的寫信號(hào)PL2[TX-],寫控制字信號(hào)CWSTR[TX-]。
429總線模塊設(shè)計(jì)的數(shù)據(jù)總線寬度為16位,CPU總線數(shù)據(jù)經(jīng)429總線模塊的雙向數(shù)據(jù)緩沖/驅(qū)動(dòng)器(54LS245)進(jìn)行緩沖、驅(qū)動(dòng),IOR[TX-]控制數(shù)據(jù)流動(dòng)方向,板選信號(hào)CS[TX-]控制數(shù)據(jù)選通端。地址線及控制線經(jīng)緩沖驅(qū)動(dòng)(54LS244)到可編程邏輯器件(GAL20V8),地址譯碼由地址線和控制線建立,產(chǎn)生板選信號(hào)CS[TX-]、復(fù)位信號(hào)RESET[TX-]和各端口所需選通信號(hào),同時(shí)產(chǎn)生CPU板等待邏輯所需要的回答信號(hào)XWAIT[TX-]。
2.2 ARINC429數(shù)據(jù)發(fā)送/接收模塊的設(shè)計(jì)
HS-3282/HS-3182構(gòu)成ARINC429數(shù)據(jù)收發(fā)、串并、并串轉(zhuǎn)換的主體。其中,與HS-3182相連的電容用來控制ARINC429總線數(shù)據(jù)傳送速率,75 pF電容對(duì)應(yīng)ARINC429總線高速工作狀態(tài)(100 kB/s),300 pF電容對(duì)應(yīng)低速工作狀態(tài)(12~14.5 kB/s)。 HS-3282主要用來完成接收、發(fā)送時(shí)所必須具備的串并、并串轉(zhuǎn)化功能,具有兩路接收、一路發(fā)送,接收、發(fā)送相互獨(dú)立,接收、發(fā)送過程中自動(dòng)完成串并、并串轉(zhuǎn)換。HS-3182用來完成對(duì)兩路輸出信號(hào)的差分驅(qū)動(dòng)。
3 基于FPGA接口電路的實(shí)現(xiàn)
在硬件設(shè)計(jì)的基礎(chǔ)上,對(duì)接口的軟件設(shè)計(jì)進(jìn)行描述。ARINC429總線模塊的軟件設(shè)計(jì)主要是針對(duì)該模塊的初始化、ARINC429總線的接收、發(fā)送及自檢測電路來設(shè)計(jì)的。軟件設(shè)計(jì)采用硬件描述語言VHDL語言編程。最后軟件嵌入到ARINC429總線模塊所在電子組件中。
本文所采用的編譯環(huán)境為Max+PlusⅡ軟件設(shè)計(jì)平臺(tái)。
數(shù)據(jù)接收部分以對(duì)中斷響應(yīng)的處理為核心。中斷接收過程中,因?yàn)镠S-3282有2個(gè)接收器,因此這2個(gè)接收器標(biāo)識(shí)D/R1,D/R2共享一個(gè)中斷,這樣就容易出現(xiàn)中斷覆蓋。在設(shè)計(jì)中,設(shè)置有中斷邏輯譯碼電路,當(dāng)產(chǎn)生接收中斷時(shí),通過軟件檢測方式判別是哪一個(gè)接收器引起的中斷,再進(jìn)行相關(guān)的數(shù)據(jù)接收處理。中斷接收數(shù)據(jù)首先存放在緩沖區(qū)內(nèi),再由主程序讀取。其流程圖如圖2和圖3所示。
圖2 流程圖1
在進(jìn)行數(shù)據(jù)發(fā)送過程中,首先檢查發(fā)送器的狀態(tài),只有當(dāng)標(biāo)志位TX/R為1時(shí),發(fā)送器才能工作。再將待發(fā)送數(shù)據(jù)送至發(fā)送緩沖區(qū)內(nèi),通過對(duì)相應(yīng)的發(fā)送使能信號(hào)PL1,PL2及ENTX 進(jìn)行控制,實(shí)現(xiàn)ARINC429 總線數(shù)據(jù)的發(fā)送。
[BT(3+1]3.1 [ZK(]產(chǎn)生HS-3282讀寫信號(hào)和ENTX使能信號(hào)的部分源程序[ZK)][BT)]
library ieee;
use ieee.std_logic_1164.all;
entity J11B is
port(CS,IOW,IOR,A1,A2,A3,A4,ENT1,ENT2,TXR1,TXR2:in std_logic;WR0,WR1:out std_logic;RD0,RD1,RD2,RD3:out std_logic;
IO18,ENTX1,ENTX2:out std_logic);
end J11B;
architecture behav of J11B is
begin
process
begin
WR1<=IOW or (not CS) or A4 or A3 or A2 or (not A1);
WR0<=IOW or (not CS) or A4 or A3 or A2 or A1;[JY] --產(chǎn)生寫信號(hào)
if CS=′0′ then
IO18<=CS;
else
IO18<=′Z′;
end if;
RD3<=IOR or (not CS) or A4 or (not A3) or (not A2);
RD2<=IOR or (not CS) or A4 or (not A3) or A2;
RD1<=IOR or (not CS) or A4 or A3 or (not A2);
RD0<=IOR or (not CS) or A4 or A3 or A2; [JY]--產(chǎn)生讀信號(hào)
ENTX1<=ENT1 and (not TXR1);
ENTX2<=ENT2 and (not TXR2); [JY]--產(chǎn)生發(fā)送使能信號(hào)
end process;
end J11B;
圖3 流程圖2
3.2 中斷控制源程序
中斷控制源程序?yàn)椋?/p>
library ieee;
use ieee.std_logic_1164.all;
entity J11B is
port(TXR1,DR11,DR12,TXR2,DR21,DR22,ZJ:in std_logic;
D0,D1,D2,D3,D4,D5,INT:out std_logic);
end J11B;
architecture behav of J11B is
begin
process
begin
if ZJ=′0′ then
D0<=not DR11;
D1<=not DR12;
D2<=not DR21;
D3<=not DR22;[JY] --產(chǎn)生中斷時(shí)用來判斷哪個(gè)接收器滿
D4<=TXR1;
D5<=TXR2;[JY] --用來判斷哪一個(gè)發(fā)送緩沖區(qū)空
else
D0<=′Z′;D1<=′Z′;D2<=′Z′;D3<=′Z′;D4<=′Z′;D5<=′Z′;
end if;
INT<=not(DR11 and DR12 and DR21 and DR22);[JY]--有一個(gè)接收器滿便產(chǎn)生中斷
end process;
end behav;
4 結(jié) 語
針對(duì)機(jī)載設(shè)備接口板的尺寸小的特點(diǎn),介紹基于FPGA的429 接口板,F(xiàn)PGA可以大大節(jié)省硬件資源,同時(shí)節(jié)省板卡上的可利用空間,并徹底解決了板卡的小尺寸給設(shè)計(jì)帶來的困難。FPGA的應(yīng)用簡化了系統(tǒng)結(jié)構(gòu),縮短了設(shè)計(jì)周期,提高了系統(tǒng)的可靠性。且FPGA 修改簡單,給調(diào)試工作帶來了方便。本文所述的RINC429總線接口板已經(jīng)在工程實(shí)際中得到應(yīng)用,經(jīng)過實(shí)踐的檢驗(yàn),證明本設(shè)計(jì)合理、通信可靠,而且操作方便靈活,具有一定的實(shí)用意義。
參 考 文 獻(xiàn)
[1]AR INC公司.AR INC429傳輸規(guī)范[Z].2002.
[2]Device Engineering Inc.DEI 1016ARINC 429 Transceiver[Z].2000.
[3]Device Engineering Inc.BD429 ARINC 429/ RS - 422 Line Driver Integrated Circuit [Z].2000.
[4]陳芳,劉文波.基于PC104 的429 通信總線的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù),2004(11):11-14.
[5]熊華鋼.機(jī)載高速數(shù)據(jù)總線系統(tǒng)研究[D].北京:北京航空航天大學(xué),1998.
[6]HS-3282 ARINC 429 Bus Interface Line Drive Circuit[M].HARRIS,1992.
[7]馮濤.可編程邏輯器件開發(fā)技術(shù)——Max+PlusⅡ入門與提高[M].北京:人民郵電出版社,2002.
[8]姜立東.VHDL語言程序設(shè)計(jì)及應(yīng)用[M].北京:北京郵電大學(xué)出版社,2004.
[9]王春玲,吳順偉.FPGA/CPLD選型及與其他技術(shù)的融合[J].現(xiàn)代電子技術(shù),2007,30(16):30-33,40.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。