摘 要:提出了一種利用FPGA技術解決ARINC429通信的實現(xiàn)方案,該方案不僅使國內(nèi)的ARINC429通信設備擺脫了對國外ASIC電路的依賴,還降低了設備成本,并且克服了國外ASIC電路的不足,實現(xiàn)了任意長度數(shù)據(jù)幀的群收和群發(fā)功能,具有較好的應用前景。利用該方案研制的ARINC429數(shù)據(jù)通信卡,已成功應用于空空導彈測控設備中。
關鍵詞:FPGA;ARINC429;VHDL語言;ASIC電路
中圖分類號:TN919文獻標識碼:B文章編號:1004373X(2008)1901003
Realization of ARINC429 Communications Based on FPGA Technology
LUO Yanqiang,CHEN Lei
(China Airborne Missile Academy,Luoyang,471009,China)
Abstract:A scheme for solving ARINC429 communications based on FPGA technology is proposed in this paper.This scheme not only gets rid of depending on overseas ASIC circuit,but also overcomes shortages of overseas ASIC circuit and achievesthe function of group-transmiting and group-receiving for any length data frame with cheap cost.Based on this scheme,ARINC429 communications card is developed which has been applied to the airborne missile test and control equipment successfully.
Keywords:FPGA;ARINC429;VHDL language;ASIC circuit
ARINC429規(guī)范是由美國航空電子工程學會(Airlines Electronic Engineering Committee)提出,主要用于航空電子系統(tǒng)之間數(shù)字信息交換的一種工業(yè)標準。目前ARINC429通信設備普遍采用美國Harris公司的ARINC429協(xié)議電路,該ASIC電路價格昂貴,同時數(shù)據(jù)接收只能單字緩存,數(shù)據(jù)發(fā)送最多支持連續(xù)8個字群發(fā),因而在數(shù)據(jù)幀群收和群發(fā)的應用中增加了控制軟件實時性的要求。隨著微電子技術的快速發(fā)展,F(xiàn)PGA的規(guī)模正在成倍增長,而價格卻在大幅度下降,利用大規(guī)模、價廉的FPGA替代ASIC正在成為一種設計趨勢。在國防領域,這種替代設計在提高了產(chǎn)品性價比的同時,還避免了西方國家在敏感領域對國內(nèi)的器材禁運。本文所討論的內(nèi)容就是基于FPGA技術實現(xiàn)ARINC429數(shù)據(jù)通信,該方案克服了專用協(xié)議電路的不足,實現(xiàn)了任意長度數(shù)據(jù)幀的群收和群發(fā)功能。
1 實現(xiàn)方案
ARINC429通信包括數(shù)據(jù)接收和發(fā)送兩個完全獨立的過程,分別由各自模塊完成相應的功能。
1.1 接收功能實現(xiàn)方案
ARINC429總線數(shù)據(jù)是一種雙極性歸零碼型,分A、B兩路信號差分輸入。利用光耦將差分信號分離為兩路TTL信號DataA和DataB,如圖1所示。進一步分析DataA和DataB兩路信號不難發(fā)現(xiàn):它們不僅包含“0”、“1”碼元信息,還包含位時鐘信息及數(shù)據(jù)字和數(shù)據(jù)幀結束信息。接收模塊就是從這兩路信號中提取必要的信息,從而分離出每一個數(shù)據(jù)字和數(shù)據(jù)幀,并轉化為易于計算機讀取的并行數(shù)據(jù)。本設計利用FPGA內(nèi)部的RAM作為接收緩沖區(qū),完成數(shù)據(jù)的單字接收或多字群收,緩沖區(qū)的深度決定最大群收數(shù)據(jù)幀大小。

接收電路組成如圖2所示。外部時鐘是數(shù)倍于輸入數(shù)據(jù)速率的高倍時鐘,用于捕捉DataA和DataB信號最穩(wěn)定有效的中間時刻,作為觸發(fā)器置數(shù)、清零的同步時鐘輸入。觸發(fā)器的輸出即為所接收的429數(shù)據(jù)串形電平碼,經(jīng)串并轉換后形成并行數(shù)據(jù)。字檢測電路判別接收到的429數(shù)據(jù)是否完整,若完整,則依次寫入接收緩沖區(qū)內(nèi),同時輸出字接收結束標志信息,否則,丟棄該不完整數(shù)據(jù)。幀檢測電路監(jiān)測輸入數(shù)據(jù)空閑位是否超出指定值,若超出,即判斷為群收數(shù)據(jù)幀接收結束,并輸出該信息。外部設備可以利用這兩個標志實時從緩沖區(qū)讀取數(shù)據(jù)。

字/幀檢測電路的設計借鑒了計算機看門狗原理:利用分離出的輸入數(shù)據(jù)位時鐘作為計數(shù)器的清零脈沖,當有數(shù)據(jù)輸入時,該計數(shù)器被位時鐘信號定時清零;沒有輸入數(shù)據(jù)時也沒有位時鐘,計數(shù)值不被清零,并累加到設定的門限值,由此檢測出字/幀結束狀態(tài)。下面列出字/幀檢測模塊的VHDL語言實現(xiàn)程序:
…
constant N1,N2:integer;--定義字間隔和幀間隔的門限值
begin
process(clk,clr,rbclk)
variable count:integer range 0 to N2;
begin
if (clr=′1′) then count:=0;WordEnd<=′0′;BlockEnd<=′0′;
--初始化字結束標志信號WordEnd和幀結束標志信號BlockEnd
elsif(clk=′1′ and clk′event) then
-- 有接收數(shù)據(jù)位時鐘rbclk時,計數(shù)值清零,否則計數(shù)值累加
if rbclk=′0′ then
count:=count+1;
else count:=0;
end if;
if count=N1 then WordEnd <=′1′;-- 計數(shù)值到達字間隔門限值時輸出字結束標志
elsif count=N2 then count:=N2;BlockEnd <=′1′;
-- 計數(shù)值到達幀間隔門限值時輸出數(shù)據(jù)幀結束標志
else WordEnd <=′0′;BlockEnd <=′0′;
end if;
end if;
end process;
…
從以上程序可以看出,在接收緩沖區(qū)容量范圍內(nèi),電路對數(shù)據(jù)幀的大小完全自適應,由于引入外部高倍時鐘,允許輸入數(shù)據(jù)速率存在一定范圍的偏差。
1.2 發(fā)送功能實現(xiàn)方案
利用FPGA內(nèi)部的另一段RAM作為發(fā)送緩沖區(qū),429數(shù)據(jù)可以單字發(fā)送或數(shù)據(jù)幀群發(fā),群發(fā)數(shù)據(jù)幀的大小取決于發(fā)送緩沖區(qū)的深度。外部設備將待發(fā)送的數(shù)據(jù)寫入發(fā)送緩沖區(qū),然后向FPGA寫控制字啟動或停止發(fā)送。在發(fā)送過程中,電路同時輸出字輸出結束和幀輸出結束標志信息,外部設備利用此信息可以實時更新發(fā)送內(nèi)容。奇偶校驗電路自動判別輸出位的奇偶狀態(tài),并將最后形成的奇偶校驗位填入每個字的最后一位。字/幀間隔形成電路在輸出數(shù)據(jù)字與字之間形成4位低電平間隔,數(shù)據(jù)幀之間保持零電平狀態(tài)。差分信號分離電路將發(fā)送數(shù)據(jù)按照設定速率形成兩路TTL電平差分信號,最后經(jīng)外部電平變換電路形成符合ARINC429規(guī)范的數(shù)據(jù)格式輸出。發(fā)送電路組成框圖如圖3所示。

以上各模塊功能清晰,這里不再逐一詳述。下面討論差分信號分離電路的設計方案:圖4電路將并串轉換后的串行信號data和位時鐘bclk及字/幀間隔信號clk[CD#*2]1作為輸入,產(chǎn)生兩路差分信號。由于輸入信號在各自路徑存在不同延時,輸出端信號429A和429B會產(chǎn)生競爭冒險現(xiàn)象,因此不能直接作為輸出信號。本設計利用電路中的高倍時鐘消除競爭冒險的影響,如圖5所示,clk20為20倍位時鐘頻率的高倍時鐘,該電路可以消除寬度在兩個高倍時鐘周期以內(nèi)的尖脈沖信號。圖6為增加消除競爭冒險邏輯后輸出信號的時序仿真波形。

2 ARINC429數(shù)據(jù)通信卡設計
本方案FPGA選用Altera公司的FLEX10K20器件。利用FLEX10K20內(nèi)部嵌有6×2 048 b容量的RAM,平均分配作為ARINC429數(shù)據(jù)的接收和發(fā)送緩沖區(qū),這樣群收和群發(fā)的數(shù)據(jù)幀長度最大可達192字(32 b/字)。筆者以本方案設計的FPGA電路為核心,研制成功基于PC總線的ARINC429通信卡。該卡的接收和發(fā)送位速率、字長、數(shù)據(jù)幀大小、奇/偶校驗和發(fā)送周期等參數(shù)可由軟件設定。由于FPGA承擔了數(shù)據(jù)通信中的實時控制任務,因而對控制軟件的實時性沒有要求,也不需要增加任何板上微處理器控制。電路中所有接口邏輯和控制邏輯全部集成在一片F(xiàn)PGA內(nèi),F(xiàn)PGA外圍只需要光耦、電平變換電路等少量器件,實現(xiàn)了SoC(System on a Chip)片上系統(tǒng)。目前該電路正在應用于空空導彈測控設備中。
3 結 語
本文提出的基于FPGA技術實現(xiàn)ARINC429通信的一種解決方案,克服了國外ASIC電路的不足,實現(xiàn)了任意長度數(shù)據(jù)幀的群收和群發(fā)功能,提高了產(chǎn)品性價比。該方案在航空或民用ARINC429通信設備中具有較好的應用前景。
參考文獻
[1]ARINC Specification 429-9.MARK33 Digital Information Transfer System[S].2000.
[2]M4K429RTx User′s Manual[R].Excalibur System Inc.2006
[3]Altera Corporation.FLEX10K Embedded Programmable Logic Device Family Data Sheet[R].2001.
[4]胡振華.VHDL與FPGA設計[M].北京:中國鐵道出版社,2003.
[5]于英民,于佳.計算機接口技術[M].北京:電子工業(yè)出版社,2004.
[6]王育堅.Visual C++面向對象編程教程[M].北京:清華大學出版社,2003.
[7]顧世哲,武君勝.ARINC429測試系統(tǒng)設計與總線數(shù)據(jù)描述方法研究[J].航空計算技術,2006,36(3):22-24.
作者簡介 羅艷強 男,1970年出生,河南信陽人,高級工程師。研究方向為航空通信系統(tǒng)設計。
陳 雷 男,1963年出生,安徽濉溪人,研究員。研究方向為計算機系統(tǒng)設計與應用。