文/海灝 夏喜龍
ARINC429規(guī)范由美國航空電子工程委員會(Airline Electronic Engineering Commission,AEEC) 制定,美國航空無線電公司(Aeronautical Radio Inc.,ARINC)出版的一種民用飛機機載總線規(guī)范。其全稱為“數字信息傳輸系統(tǒng)”(Digital Information Transfer System,DITS),該標準數據資源豐富,數據精度高,在當代航空及其他設備中得到廣泛應用。
ARINC429總線是一種串行標準,為面向接口型的單向廣播式傳輸總線,調制方式采用雙極型歸零三態(tài)碼方式。
ARINC429總線傳輸的基本單位是字,每個字由32位組成,1-8位是標號位(LABEL),標記出包括在這個傳送字內的信息的類型。
現有傳統(tǒng)的ARINC429總線數據接收處理和發(fā)送傳輸的硬件實現方法如圖1所示。CPU負責ARINC 429專用協(xié)議芯片的工作模式控制、提取接收數據、數據解析及發(fā)送數據設置;ARINC429專用協(xié)議芯片按照CPU設置將總線串行數據轉換為并行數據,將來自CPU的數據進行編碼發(fā)送;驅動組件主要功能將專用協(xié)議芯片的信號與總線之間進行電氣隔離及轉換;FPGA/CPLD一般用于邏輯控制,為可選項。
此外,還有一些類似的實現方式,將ARINC429總線數據轉換功能用FPGA實現,數據處理靈活性及可擴展性上更便于數據交互。
圖1:ARINC429總線數據處理傳統(tǒng)硬件設計框圖
圖2:系統(tǒng)總體架構圖
現有多種技術實現方法在低速、單LABEL號(每種LABEL對應一種數據類型)接收應用中問題不大,但在高速、多LABEL號特別是相鄰數據間隔時間較小的情況下,容易造成數據丟失。此外,由于CPU需要依次接收處理總線數據,包括本機不需要的數據,因此造成處理資源的浪費。
FPGA技術發(fā)展迅速、資源豐富、使用方便,具有更大并行度、可定制、可重構等優(yōu)勢。本設計基于FPGA和CPU實現,利用FPGA并行處理、處理速度高的特點,實現硬件過濾、編解碼等工作,利用CPU強大的運算能力實現數據解析。本設計系統(tǒng)總體框架如圖2所示。
各模塊功能如下:
(1)CPU:通過總線控制發(fā)射編碼的通道、速率及發(fā)送信息;控制接收解碼的速率、奇偶校驗、LABEL號過濾,同時從總線上提取接收數據進行解析,設計選用STM32F746VGT6;
(2)FPGA編解碼:按CPU設置進行編解碼,進行LABEL硬件過濾,設計選用EP3C120F484I7N;
(3)接收驅動:將標準ARINC429信號轉換為3.3VTTL信號,設計選用DEI1046;
(4)發(fā)送驅動:將3.3VTTL信號轉換為標準ARINC429信號,設計選用4片DEI1070。
目前接收通道及發(fā)送通道都設計為4路,可根據需要進一步擴展。每路接收通道可設置為2種LABEL過濾。當有更多LABEL過濾需求時,可將多路合并,最多可過濾8個LABEL。同時也可以按照該架構進一步擴充通道及LABEL過濾,以滿足更多需求。
當收到接收數據時:
(1)FPGA按照CPU設置的速率進行譯碼;
(2)提取譯碼結果的LABEL進行判斷,是否為本通道接收數據,如果是,轉入下一步;
(3)將數據存入增加字頭、校驗后存入FIFO。將數據指示標志寫入接收中斷狀態(tài)寄存器,根據CPU設置是否將該標志與中斷請求關聯(lián)。
(4)CPU采用中斷或查詢方式采集中斷狀態(tài)寄存器狀態(tài),當發(fā)現有數據請求時,依據優(yōu)先級讀取相應通道信息并進行解析。
當需要發(fā)送數據時:
(1)CPU將需要發(fā)送的字頭、通道、速率、數據內容及校驗數據按地址依次發(fā)送給FPGA;
(2)FPGA按照設置要求編碼并選擇相應的通道發(fā)送。
編解碼單元為本系統(tǒng)的核心單元,本單元性能對系統(tǒng)性能有著重要的影響。
FPGA編解碼單元功能框圖如圖3所示,共有4個接收通道和4個發(fā)射通道。
4個接收通道采用同樣的結構,每個通道分為串并解碼、LABEL過濾及FIFO緩存部分:
(1)串并解碼:將串行數據按照接收速率轉化為并行數據;
(2)LABEL過濾:將接收到的數據進行過濾,如果LABEL號匹配,則將數據傳遞到緩存;
(3)FIFO緩存:將接收數據進行緩存,設計為8級緩存,每級有6個字節(jié),分別包含接收字頭、接收數據及接收數據校驗。
發(fā)射通道由8*7*8FIFO結構及編碼及通道控制單元組成:
(1)FIFO緩存:將來自CPU的數據進行緩存,緩存有8級,每級有7個字節(jié),分別包含發(fā)送字頭、發(fā)送速率及通道選擇、發(fā)送數據(4個字節(jié))及數據校驗;
(2)編碼及通道控制單元:該單元按照FIFO數據將數據按速率配置及通道選擇編碼并選擇相應通道發(fā)送。
本設計方案單個接收通道信號流及轉換如圖4所示,顯示多個ARINC429高速信號依次到達(間隔40us)時,單個接收通道信號流及轉換過程。到達的信號含有目標數據(LABEL號為207和244)及非目標數據(LABEL號為203和205),可以看出,經過LABEL過濾單元,濾除了第一組和第三組非目標數據,并且將目標數據緩存在FIFO中。
按照ARINC429標準,計算參數設定如下:
(1)波特率:100K BPS;
(2)數據刷新率(以“A”表示):100ms=0.1s;
(3)數據間隔:4個時鐘周期/40us;
(4)接收目標數據(以“B”表示):2個;
(5)單周期數據個數:≥8個;
(6)通道數目(以“C”表示):1個。
由于采用了LABEL過濾及接收FIFO技術,計算時可不考慮波特率、數據間隔、單周期數據個數。
CPU應在FIFO滿前將數據讀出,并處理完畢,則CPU處理速度要求由A、B、C及緩存級別決定(設計值為8),關系如下:
CPU處理速度=B*C/(A*8)=2*1/(0.1*8)=2.5次/S=400ms
在傳統(tǒng)技術條件下,對CPU的處理要求的影響參數為波特率及數據間隔,CPU處理速度要求為36個時鐘周期=360us。
處理要求差別為=400ms/360us=1111倍。
該設計方案已應用于某型機載系統(tǒng),通過使用該設計技術處理高速ARINC429高度數據,消除了原有的高度碼跳變的故障,提升了系統(tǒng)性能。
圖3:FPGA編解碼單元功能框圖
圖4:單個接收通道信號流及轉換示意圖
本文詳述了一種基于FPGA的高速ARINC429數據處理方法,通過使用FPGA硬件過濾方法,結合FIFO結構,有效的降低了CPU負荷,消除了丟包現象,經計算,綜合性能提升約1111倍。
該方法已成功應用至某型機載平臺,提升了ARINC429接收性能,該方法可推廣應用在高速ARINC429通訊的相關平臺中。