《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于USB接口的多功能ARINC429總線接口板設(shè)計
基于USB接口的多功能ARINC429總線接口板設(shè)計
來源:微型機(jī)與應(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)濟(jì)效益,。
關(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)濟(jì)效益,。
關(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芯片等)來進(jìn)行ARINC429總線通信處理[1],,也有部分板卡采用了自主協(xié)議芯片或FPGA來實現(xiàn)[2],。但是,它們的功能相對單一,,一般只用于總線數(shù)據(jù)收發(fā)處理,,自身不具備數(shù)據(jù)存儲功能,必須由主機(jī)軟件進(jìn)行實時數(shù)據(jù)的記錄,、處理和存儲,,對于一些需要實時記錄和存儲多路429數(shù)據(jù),同時要求較高保密性,、便攜性的場合來說,,存在一定的局限性。因此,,本文提出了一種基于USB接口的多功能ARINC429總線接口板設(shè)計方案,,設(shè)計了一種既可以通過USB進(jìn)行多路ARINC429總線通信,又具備數(shù)據(jù)存儲功能的多用途接口板,。
1 硬件設(shè)計
 該板卡外形設(shè)計緊湊,,體積與普通USB硬盤相當(dāng),便于攜帶,,功耗較低,,采用USB總線供電,無須外置電源,。板卡核心為基于FPGA的嵌入式微計算機(jī)系統(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)建一個嵌入式微計算機(jī)系統(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主機(jī)方式,,并且內(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是默認(rèn)端點,支持上傳和下傳,,緩沖區(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ù)的傳輸是基于中斷方式的,在對其進(jìn)行操作時,,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)的寄存器進(jìn)行操作,,將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)下,它負(fù)責(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卡作為非易失存儲器,,負(fù)責(zé)實時存儲總線數(shù)據(jù)。由于SD卡本身具有價格低廉,、存儲容量大,、使用簡單、可靠性高和安全性強等優(yōu)點,,其可用于對保密性和便攜性要求較高的場合,。
 系統(tǒng)通過FPGA以SPI方式對SD卡進(jìn)行數(shù)據(jù)訪問,其中,,寫入數(shù)據(jù)按特定格式加密存儲,,讀出數(shù)據(jù)需依賴專用驅(qū)動和應(yīng)用軟件,以確保安全使用,。當(dāng)系統(tǒng)正進(jìn)行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ā)送至主機(jī)供專用應(yīng)用軟件處理,。
1.5 電源模塊
 電源模塊負(fù)責(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語言編寫,。該軟件主要負(fù)責(zé)控制系統(tǒng)硬件,,完成USB總線通信、ARINC429總線通信以及SD卡內(nèi)數(shù)據(jù)的存取處理三大功能,。
系統(tǒng)軟件主要流程如圖3所示,,首先必須根據(jù)上位機(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ù)進(jìn)行組合,,發(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總線傳送至上位機(jī),,直至所有數(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,進(jìn)而在USB驅(qū)動和API的基礎(chǔ)之上開發(fā)了針對某型設(shè)備監(jiān)控系統(tǒng)的應(yīng)用程序,。使用時,,用USB數(shù)據(jù)線將該板卡連接到便攜式計算機(jī)上,通過多路429總線對某型設(shè)備進(jìn)行監(jiān)控,,并記錄所有總線數(shù)據(jù)存儲于板內(nèi)的SD卡中,,然后通過專門的應(yīng)用程序獲取SD卡內(nèi)數(shù)據(jù)進(jìn)行事后分析。
 應(yīng)用結(jié)果表明,,該板卡實現(xiàn)了多功能設(shè)計,,性能穩(wěn)定可靠,,極大地降低了成本,完全滿足保密性和便攜性要求,。
參考文獻(xià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)載,。