《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于USB接口的多功能ARINC429總線接口板設(shè)計
基于USB接口的多功能ARINC429總線接口板設(shè)計
來源:微型機與應(yīng)用2012年第11期
黃 偉1,吳華興1,周 雷2,劉 偉2
(1.空軍工程大學(xué) 工程學(xué)院,陜西 西安 710038;2.解放軍93846部隊)
摘要: 提出了一種基于USB接口的多功能ARINC429總線接口板設(shè)計方案。通過采用SoPC技術(shù)、USB協(xié)議芯片、基于VHDL的自定義429總線IP核設(shè)計以及基于SD卡的存儲設(shè)計,快速構(gòu)建了系統(tǒng)硬件,在Nios II開發(fā)環(huán)境下采用C語言開發(fā)了系統(tǒng)核心軟件,實現(xiàn)了系統(tǒng)的總線通信和數(shù)據(jù)存儲多功能設(shè)計。應(yīng)用結(jié)果表明,該系統(tǒng)具有良好的性能、便攜性和經(jīng)濟效益。
關(guān)鍵詞: SoPC USB ARINC429 EP3C16F256 FPGA
Abstract:
Key words :

摘  要: 提出了一種基于USB接口的多功能ARINC429總線接口板設(shè)計方案。通過采用SoPC技術(shù)、USB協(xié)議芯片、基于VHDL的自定義429總線IP核設(shè)計以及基于SD卡的存儲設(shè)計,快速構(gòu)建了系統(tǒng)硬件,在Nios II開發(fā)環(huán)境下采用C語言開發(fā)了系統(tǒng)核心軟件,實現(xiàn)了系統(tǒng)的總線通信和數(shù)據(jù)存儲多功能設(shè)計。應(yīng)用結(jié)果表明,該系統(tǒng)具有良好的性能、便攜性和經(jīng)濟效益。
關(guān)鍵詞: USB;ARINC429;SoPC

 當(dāng)前,由于ARINC429總線在航空航天等領(lǐng)域應(yīng)用極為廣泛,國內(nèi)出現(xiàn)了各種針對不同平臺和接口的ARINC429接口板,包括ISA、PCI、USB、GPIB和VXI等接口類型。這些板卡大多采用專用的協(xié)議處理芯片(如HI-8585、DEI1016芯片等)來進行ARINC429總線通信處理[1],也有部分板卡采用了自主協(xié)議芯片或FPGA來實現(xiàn)[2]。但是,它們的功能相對單一,一般只用于總線數(shù)據(jù)收發(fā)處理,自身不具備數(shù)據(jù)存儲功能,必須由主機軟件進行實時數(shù)據(jù)的記錄、處理和存儲,對于一些需要實時記錄和存儲多路429數(shù)據(jù),同時要求較高保密性、便攜性的場合來說,存在一定的局限性。因此,本文提出了一種基于USB接口的多功能ARINC429總線接口板設(shè)計方案,設(shè)計了一種既可以通過USB進行多路ARINC429總線通信,又具備數(shù)據(jù)存儲功能的多用途接口板。
1 硬件設(shè)計
 該板卡外形設(shè)計緊湊,體積與普通USB硬盤相當(dāng),便于攜帶,功耗較低,采用USB總線供電,無須外置電源。板卡核心為基于FPGA的嵌入式微計算機系統(tǒng),主要功能包括USB總線事務(wù)處理、429總線通信和數(shù)據(jù)存取處理,系統(tǒng)組成和結(jié)構(gòu)如圖1所示,分為微控制器模塊、USB協(xié)議處理模塊、ARINC429總線協(xié)議處理模塊、SD卡模塊和電源模塊。

1.1 微控制器模塊
 微控制器模塊是系統(tǒng)的控制中心,它包括FPGA芯片、50 MHz有源晶振、JTAG調(diào)試模塊、4 MB EPCS串行FLASH和16 MB的48LC4M32型SDRAM。其中,F(xiàn)PGA芯片是微控制器模塊的核心,選用了Altera的BGA封裝的EP3C16F256型FPGA,該芯片本身具有可編程、可裁減等特點,通過采用SoPC技術(shù),應(yīng)用Quartus開發(fā)環(huán)境提供的可裁減IP模塊,可在FPGA內(nèi)快速構(gòu)建一個嵌入式微計算機系統(tǒng)來實現(xiàn)系統(tǒng)的復(fù)雜事務(wù)處理功能[3]。FPGA內(nèi)實際應(yīng)用的IP模塊包括:32 bit RISC Nios II CPU、SDRAM控制器、2個SPI主控制器、PIO控制器以及用于軟件調(diào)試及程序引導(dǎo)的JTAG-UART和EPCS-Control等。
 通過選用FPGA,采用SoPC技術(shù)定義必要的IP模塊,合理分配芯片資源,在實現(xiàn)系統(tǒng)功能的同時加快了開發(fā)周期,提升了系統(tǒng)性能。
1.2 USB協(xié)議處理模塊
 USB協(xié)議處理模塊由FPGA芯片內(nèi)部的PIO控制器、SPI主控制器及CH376芯片組成。
其中,CH376芯片可支持USB設(shè)備方式和USB主機方式,并且內(nèi)置了USB通信協(xié)議的基本固件、SD卡的通信接口固件、FAT16和FAT32等文件系統(tǒng)的管理固件,支持常用的海量存儲設(shè)備和SD卡。CH376芯片支持8 bit并口、SPI接口和異步串口3種通信接口。
 在本系統(tǒng)中,CH376芯片工作于USB設(shè)備方式。 FPGA與CH376的通信方式采用SPI方式,為保證與CH376芯片的正常通信,F(xiàn)PGA的SPI設(shè)置為主模式,總線寬度為8 bit,模式為0,高位在前,速率設(shè)置為5 Mb/s(可設(shè)置在2 Mb/s~24 Mb/s之間)。CH376芯片在USB設(shè)備方式下支持5個物理端口,端點0是默認端點,支持上傳和下傳,緩沖區(qū)各為8 B;端點1包括上傳端點和下傳端點,緩沖區(qū)各為8 B;端點2包括上傳端點和下傳端點,緩沖區(qū)各為64 B。端點2的上傳端點作為批量數(shù)據(jù)發(fā)送端點,端點2的下傳端點作為批量數(shù)據(jù)接收端點,端點1的上傳端點作為中斷端點,端點1的下傳端點作為輔助端點。根據(jù)板卡工作模式的不同,數(shù)據(jù)傳輸端點也不同,在總線模式下,由于ARINC429總線的收發(fā)速率較慢(最大100 KB),因此數(shù)據(jù)的傳輸采用中斷方式,應(yīng)用CH376芯片的端點1作為數(shù)據(jù)的上傳和下傳端點;在U盤模式下,應(yīng)用端點2批量方式數(shù)據(jù)傳輸。
 需要強調(diào)的是,在總線模式下, CH376芯片對數(shù)據(jù)的傳輸是基于中斷方式的,在對其進行操作時,F(xiàn)PGA本地端應(yīng)注意對中斷的處理。由于ARINC429總線是全雙工傳輸方式,數(shù)據(jù)的上傳和下傳是獨立的,在數(shù)據(jù)的上傳過程中,應(yīng)關(guān)閉FPGA的中斷,保證數(shù)據(jù)上傳成功后開啟中斷,且在數(shù)據(jù)上傳成功后,CH376將中斷信號INT置“0”,此時,由于FPGA已關(guān)閉中斷,對該中斷不響應(yīng),可采用查詢方式,并對相應(yīng)的寄存器進行操作,將INT信號復(fù)位。數(shù)據(jù)的上傳由FPGA的中斷處理函數(shù)完成,在中斷處理函數(shù)中,將USB總線下傳的數(shù)據(jù)發(fā)送至發(fā)送FIFO,以供ARINC429協(xié)議處理模塊發(fā)送。
1.3 ARINC429總線模塊
 ARINC429總線模塊主要由ARINC429總線協(xié)議IP核和電平轉(zhuǎn)換電路(HI-8588、HI-8570)組成,可實現(xiàn)429總線的雙極性與AVALON總線之間的轉(zhuǎn)換。ARINC429總線協(xié)議IP核采用VHDL語言設(shè)計,完全自主開發(fā),以自定義IP方式掛接在FPGA內(nèi)的AVALON總線上,其內(nèi)部結(jié)構(gòu)如圖2所示。采用這種設(shè)計方法,可將429總線硬件的控制完全交由CPU軟件處理,降低了硬件設(shè)計的難度,同時也增強了總線控制的靈活性。
IP核的AVALON總線接口模塊的主要任務(wù)是實現(xiàn)AVALON總線信號和FIFO控制信號之間的轉(zhuǎn)換。在發(fā)送數(shù)據(jù)狀態(tài)下,將CPU通過AVALON總線發(fā)送過來的數(shù)據(jù)發(fā)送至FIFO;在接收數(shù)據(jù)狀態(tài)下,它負責(zé)讀取存放在FIFO中的數(shù)據(jù),并在CPU的控制下,通過AVALON總線將數(shù)據(jù)發(fā)送至CPU。FIFO模塊由發(fā)送FIFO和接收FIFO組成,F(xiàn)IFO數(shù)據(jù)寬度為32 bit,存儲深度為64 bit,主要任務(wù)是緩沖總線的數(shù)據(jù),防止由于CPU未及時響應(yīng)所帶來的數(shù)據(jù)丟失以及由于CPU操作過快造成的總線數(shù)據(jù)堵塞。編碼模塊實時讀取FIFO的數(shù)據(jù),將32 bit并行碼轉(zhuǎn)換為32 bit差分形式的串行碼輸出,再發(fā)送至電平轉(zhuǎn)換電路;解碼模塊接收經(jīng)電平轉(zhuǎn)換電路轉(zhuǎn)換后的總線數(shù)據(jù),將32 bit差分串行碼轉(zhuǎn)換并行碼輸出發(fā)送至FIFO;編、解碼模塊實現(xiàn)了4路ARINC429總線的收發(fā)通信,且通信速率可以配置。

 電平轉(zhuǎn)換電路由4片HI-8588和4片HI-8570組成,主要完成雙極性三態(tài)碼和TTL電平差分碼之間的轉(zhuǎn)換。對于輸入,由HI-8588芯片將滿足ARINC429總線電氣特性的串行碼轉(zhuǎn)換為TTL電平差分碼;對于輸出,由HI-8570芯片將接收到的TTL電平差分碼轉(zhuǎn)換為滿足ARINC429總線電氣特性的串行碼。
1.4 SD卡模塊
 SD卡作為非易失存儲器,負責(zé)實時存儲總線數(shù)據(jù)。由于SD卡本身具有價格低廉、存儲容量大、使用簡單、可靠性高和安全性強等優(yōu)點,其可用于對保密性和便攜性要求較高的場合。
 系統(tǒng)通過FPGA以SPI方式對SD卡進行數(shù)據(jù)訪問,其中,寫入數(shù)據(jù)按特定格式加密存儲,讀出數(shù)據(jù)需依賴專用驅(qū)動和應(yīng)用軟件,以確保安全使用。當(dāng)系統(tǒng)正進行ARINC429總線通信時,可以選擇開啟SD卡記錄功能,由FPGA實時地將收發(fā)的總線數(shù)據(jù)寫入SD卡;當(dāng)需要讀取SD卡內(nèi)所存總線數(shù)據(jù)時,可由驅(qū)動軟件關(guān)閉ARINC429總線通信及SD卡記錄功能,通過FPGA將數(shù)據(jù)從SD卡讀出,并通過USB總線發(fā)送至主機供專用應(yīng)用軟件處理。
1.5 電源模塊
 電源模塊負責(zé)將USB總線電源(+5 V)轉(zhuǎn)換為各芯片工作電壓,如1.2 V、3.3 V、2.5 V、-5 V。其中,1.2 V、3.3 V和2.5 V由線性穩(wěn)壓模塊AMS7111系列芯片轉(zhuǎn)換,-5 V電壓由TPS63700型小封裝高效率開關(guān)類電源芯片產(chǎn)生。
2 軟件設(shè)計
 系統(tǒng)的軟件設(shè)計是指板內(nèi)的Nios軟件設(shè)計,主要依托NIOS II 9.0集成開發(fā)環(huán)境[4],采用C語言編寫。該軟件主要負責(zé)控制系統(tǒng)硬件,完成USB總線通信、ARINC429總線通信以及SD卡內(nèi)數(shù)據(jù)的存取處理三大功能。
系統(tǒng)軟件主要流程如圖3所示,首先必須根據(jù)上位機發(fā)來的工作狀態(tài)代碼判斷系統(tǒng)工作方式。設(shè)計的工作方式有總線通信模式和數(shù)據(jù)讀取模式兩種。

 

 


 在總線通信模式下,Nios II軟件主要完成兩項工作:一是實時監(jiān)測總線接收的數(shù)據(jù),循環(huán)查詢接收FIFO的狀態(tài),若已接收總線數(shù)據(jù),則將數(shù)據(jù)發(fā)送至CH376芯片;二是在主程序運行過程中及時響應(yīng)429發(fā)送中斷,并在中斷服務(wù)子程序中將USB總線發(fā)送過來的數(shù)據(jù)進行組合,發(fā)送到FIFO,最終發(fā)送到ARINC429總線。無論是接收總線數(shù)據(jù)還是發(fā)送總線數(shù)據(jù),都可以根據(jù)需要將數(shù)據(jù)存儲至SD卡。如果不開啟數(shù)據(jù)存儲功能,該模式下的系統(tǒng)功能與普通的ARINC429總線接口卡功能基本相同。
 在數(shù)據(jù)讀取模式下,軟件循環(huán)將SD卡的數(shù)據(jù)依順序讀出,轉(zhuǎn)存至SDRAM,然后以批量傳輸?shù)姆绞桨l(fā)送到CH376芯片,最終通過USB總線傳送至上位機,直至所有數(shù)據(jù)均讀取完畢。此時,系統(tǒng)不會調(diào)用中斷服務(wù)子程序。正是由于數(shù)據(jù)讀取模式的軟件設(shè)計,使系統(tǒng)在單一的ARINC429總線通信功能之外多了一項數(shù)據(jù)存儲功能。
 通過上述系統(tǒng)硬件和軟件的設(shè)計,完成了基于USB接口的多功能ARINC429總線接口板的開發(fā),并在WinDriver和Visual C++開發(fā)環(huán)境下開發(fā)了板卡的USB驅(qū)動程序和API,進而在USB驅(qū)動和API的基礎(chǔ)之上開發(fā)了針對某型設(shè)備監(jiān)控系統(tǒng)的應(yīng)用程序。使用時,用USB數(shù)據(jù)線將該板卡連接到便攜式計算機上,通過多路429總線對某型設(shè)備進行監(jiān)控,并記錄所有總線數(shù)據(jù)存儲于板內(nèi)的SD卡中,然后通過專門的應(yīng)用程序獲取SD卡內(nèi)數(shù)據(jù)進行事后分析。
 應(yīng)用結(jié)果表明,該板卡實現(xiàn)了多功能設(shè)計,性能穩(wěn)定可靠,極大地降低了成本,完全滿足保密性和便攜性要求。
參考文獻
[1] 鄧青海,景小寧,劉安.基于USB的多通道俄制串行總線接口卡設(shè)計[J].電子技術(shù)應(yīng)用,2006,33(11):55-57.
[2] 丁文銳,劉春輝.ARINC429總線IP核設(shè)計及應(yīng)用[J]. 電子技術(shù)應(yīng)用,2009,35(9):85-87.
[3] 黃偉,吳華興,魯藝,等.基于SOPC技術(shù)的1553B總線接口卡設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2011,37(7):57-60.
[4] Altera Corporation. Nios II help version 9.0[Z]. 2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。