摘 要: 提出了一種基于USB接口的多功能ARINC429總線接口板設計方案。通過采用SoPC技術、USB協議芯片、基于VHDL的自定義429總線IP核設計以及基于SD卡的存儲設計,快速構建了系統硬件,在Nios II開發環境下采用C語言開發了系統核心軟件,實現了系統的總線通信和數據存儲多功能設計。應用結果表明,該系統具有良好的性能、便攜性和經濟效益。
關鍵詞: USB;ARINC429;SoPC
當前,由于ARINC429總線在航空航天等領域應用極為廣泛,國內出現了各種針對不同平臺和接口的ARINC429接口板,包括ISA、PCI、USB、GPIB和VXI等接口類型。這些板卡大多采用專用的協議處理芯片(如HI-8585、DEI1016芯片等)來進行ARINC429總線通信處理[1],也有部分板卡采用了自主協議芯片或FPGA來實現[2]。但是,它們的功能相對單一,一般只用于總線數據收發處理,自身不具備數據存儲功能,必須由主機軟件進行實時數據的記錄、處理和存儲,對于一些需要實時記錄和存儲多路429數據,同時要求較高保密性、便攜性的場合來說,存在一定的局限性。因此,本文提出了一種基于USB接口的多功能ARINC429總線接口板設計方案,設計了一種既可以通過USB進行多路ARINC429總線通信,又具備數據存儲功能的多用途接口板。
1 硬件設計
該板卡外形設計緊湊,體積與普通USB硬盤相當,便于攜帶,功耗較低,采用USB總線供電,無須外置電源。板卡核心為基于FPGA的嵌入式微計算機系統,主要功能包括USB總線事務處理、429總線通信和數據存取處理,系統組成和結構如圖1所示,分為微控制器模塊、USB協議處理模塊、ARINC429總線協議處理模塊、SD卡模塊和電源模塊。
1.1 微控制器模塊
微控制器模塊是系統的控制中心,它包括FPGA芯片、50 MHz有源晶振、JTAG調試模塊、4 MB EPCS串行FLASH和16 MB的48LC4M32型SDRAM。其中,FPGA芯片是微控制器模塊的核心,選用了Altera的BGA封裝的EP3C16F256型FPGA,該芯片本身具有可編程、可裁減等特點,通過采用SoPC技術,應用Quartus開發環境提供的可裁減IP模塊,可在FPGA內快速構建一個嵌入式微計算機系統來實現系統的復雜事務處理功能[3]。FPGA內實際應用的IP模塊包括:32 bit RISC Nios II CPU、SDRAM控制器、2個SPI主控制器、PIO控制器以及用于軟件調試及程序引導的JTAG-UART和EPCS-Control等。
通過選用FPGA,采用SoPC技術定義必要的IP模塊,合理分配芯片資源,在實現系統功能的同時加快了開發周期,提升了系統性能。
1.2 USB協議處理模塊
USB協議處理模塊由FPGA芯片內部的PIO控制器、SPI主控制器及CH376芯片組成。
其中,CH376芯片可支持USB設備方式和USB主機方式,并且內置了USB通信協議的基本固件、SD卡的通信接口固件、FAT16和FAT32等文件系統的管理固件,支持常用的海量存儲設備和SD卡。CH376芯片支持8 bit并口、SPI接口和異步串口3種通信接口。
在本系統中,CH376芯片工作于USB設備方式。 FPGA與CH376的通信方式采用SPI方式,為保證與CH376芯片的正常通信,FPGA的SPI設置為主模式,總線寬度為8 bit,模式為0,高位在前,速率設置為5 Mb/s(可設置在2 Mb/s~24 Mb/s之間)。CH376芯片在USB設備方式下支持5個物理端口,端點0是默認端點,支持上傳和下傳,緩沖區各為8 B;端點1包括上傳端點和下傳端點,緩沖區各為8 B;端點2包括上傳端點和下傳端點,緩沖區各為64 B。端點2的上傳端點作為批量數據發送端點,端點2的下傳端點作為批量數據接收端點,端點1的上傳端點作為中斷端點,端點1的下傳端點作為輔助端點。根據板卡工作模式的不同,數據傳輸端點也不同,在總線模式下,由于ARINC429總線的收發速率較慢(最大100 KB),因此數據的傳輸采用中斷方式,應用CH376芯片的端點1作為數據的上傳和下傳端點;在U盤模式下,應用端點2批量方式數據傳輸。
需要強調的是,在總線模式下, CH376芯片對數據的傳輸是基于中斷方式的,在對其進行操作時,FPGA本地端應注意對中斷的處理。由于ARINC429總線是全雙工傳輸方式,數據的上傳和下傳是獨立的,在數據的上傳過程中,應關閉FPGA的中斷,保證數據上傳成功后開啟中斷,且在數據上傳成功后,CH376將中斷信號INT置“0”,此時,由于FPGA已關閉中斷,對該中斷不響應,可采用查詢方式,并對相應的寄存器進行操作,將INT信號復位。數據的上傳由FPGA的中斷處理函數完成,在中斷處理函數中,將USB總線下傳的數據發送至發送FIFO,以供ARINC429協議處理模塊發送。
1.3 ARINC429總線模塊
ARINC429總線模塊主要由ARINC429總線協議IP核和電平轉換電路(HI-8588、HI-8570)組成,可實現429總線的雙極性與AVALON總線之間的轉換。ARINC429總線協議IP核采用VHDL語言設計,完全自主開發,以自定義IP方式掛接在FPGA內的AVALON總線上,其內部結構如圖2所示。采用這種設計方法,可將429總線硬件的控制完全交由CPU軟件處理,降低了硬件設計的難度,同時也增強了總線控制的靈活性。
IP核的AVALON總線接口模塊的主要任務是實現AVALON總線信號和FIFO控制信號之間的轉換。在發送數據狀態下,將CPU通過AVALON總線發送過來的數據發送至FIFO;在接收數據狀態下,它負責讀取存放在FIFO中的數據,并在CPU的控制下,通過AVALON總線將數據發送至CPU。FIFO模塊由發送FIFO和接收FIFO組成,FIFO數據寬度為32 bit,存儲深度為64 bit,主要任務是緩沖總線的數據,防止由于CPU未及時響應所帶來的數據丟失以及由于CPU操作過快造成的總線數據堵塞。編碼模塊實時讀取FIFO的數據,將32 bit并行碼轉換為32 bit差分形式的串行碼輸出,再發送至電平轉換電路;解碼模塊接收經電平轉換電路轉換后的總線數據,將32 bit差分串行碼轉換并行碼輸出發送至FIFO;編、解碼模塊實現了4路ARINC429總線的收發通信,且通信速率可以配置。
電平轉換電路由4片HI-8588和4片HI-8570組成,主要完成雙極性三態碼和TTL電平差分碼之間的轉換。對于輸入,由HI-8588芯片將滿足ARINC429總線電氣特性的串行碼轉換為TTL電平差分碼;對于輸出,由HI-8570芯片將接收到的TTL電平差分碼轉換為滿足ARINC429總線電氣特性的串行碼。
1.4 SD卡模塊
SD卡作為非易失存儲器,負責實時存儲總線數據。由于SD卡本身具有價格低廉、存儲容量大、使用簡單、可靠性高和安全性強等優點,其可用于對保密性和便攜性要求較高的場合。
系統通過FPGA以SPI方式對SD卡進行數據訪問,其中,寫入數據按特定格式加密存儲,讀出數據需依賴專用驅動和應用軟件,以確保安全使用。當系統正進行ARINC429總線通信時,可以選擇開啟SD卡記錄功能,由FPGA實時地將收發的總線數據寫入SD卡;當需要讀取SD卡內所存總線數據時,可由驅動軟件關閉ARINC429總線通信及SD卡記錄功能,通過FPGA將數據從SD卡讀出,并通過USB總線發送至主機供專用應用軟件處理。
1.5 電源模塊
電源模塊負責將USB總線電源(+5 V)轉換為各芯片工作電壓,如1.2 V、3.3 V、2.5 V、-5 V。其中,1.2 V、3.3 V和2.5 V由線性穩壓模塊AMS7111系列芯片轉換,-5 V電壓由TPS63700型小封裝高效率開關類電源芯片產生。
2 軟件設計
系統的軟件設計是指板內的Nios軟件設計,主要依托NIOS II 9.0集成開發環境[4],采用C語言編寫。該軟件主要負責控制系統硬件,完成USB總線通信、ARINC429總線通信以及SD卡內數據的存取處理三大功能。
系統軟件主要流程如圖3所示,首先必須根據上位機發來的工作狀態代碼判斷系統工作方式。設計的工作方式有總線通信模式和數據讀取模式兩種。
在總線通信模式下,Nios II軟件主要完成兩項工作:一是實時監測總線接收的數據,循環查詢接收FIFO的狀態,若已接收總線數據,則將數據發送至CH376芯片;二是在主程序運行過程中及時響應429發送中斷,并在中斷服務子程序中將USB總線發送過來的數據進行組合,發送到FIFO,最終發送到ARINC429總線。無論是接收總線數據還是發送總線數據,都可以根據需要將數據存儲至SD卡。如果不開啟數據存儲功能,該模式下的系統功能與普通的ARINC429總線接口卡功能基本相同。
在數據讀取模式下,軟件循環將SD卡的數據依順序讀出,轉存至SDRAM,然后以批量傳輸的方式發送到CH376芯片,最終通過USB總線傳送至上位機,直至所有數據均讀取完畢。此時,系統不會調用中斷服務子程序。正是由于數據讀取模式的軟件設計,使系統在單一的ARINC429總線通信功能之外多了一項數據存儲功能。
通過上述系統硬件和軟件的設計,完成了基于USB接口的多功能ARINC429總線接口板的開發,并在WinDriver和Visual C++開發環境下開發了板卡的USB驅動程序和API,進而在USB驅動和API的基礎之上開發了針對某型設備監控系統的應用程序。使用時,用USB數據線將該板卡連接到便攜式計算機上,通過多路429總線對某型設備進行監控,并記錄所有總線數據存儲于板內的SD卡中,然后通過專門的應用程序獲取SD卡內數據進行事后分析。
應用結果表明,該板卡實現了多功能設計,性能穩定可靠,極大地降低了成本,完全滿足保密性和便攜性要求。
參考文獻
[1] 鄧青海,景小寧,劉安.基于USB的多通道俄制串行總線接口卡設計[J].電子技術應用,2006,33(11):55-57.
[2] 丁文銳,劉春輝.ARINC429總線IP核設計及應用[J]. 電子技術應用,2009,35(9):85-87.
[3] 黃偉,吳華興,魯藝,等.基于SOPC技術的1553B總線接口卡設計與實現[J].電子技術應用,2011,37(7):57-60.
[4] Altera Corporation. Nios II help version 9.0[Z]. 2009.