基于MAX 7 0 0 0A與CYUSB3014的USB3.0數據采集系統
0 引言
本文引用地址:http://www.104case.com/article/201609/304017.htm目前高速數據采集技術越來越得到人們的重視,傳統的USB 2.0采集平臺理論帶寬只有480 Mbps,實際傳輸能力只有30 Mb/s左右,而USB 3.0采集平臺理論帶寬達到了5Gbps,能有效解決USB2.0采集系統的缺陷。目前一些采集系統采用單片機為主控芯片,則不能充分發揮USB3.0的帶寬,性能不佳。本文研究和設計了一套基于USB3.0總線的數據采集系統,此系統采用高速CPLD芯片MAX7000A作為主控芯片,CYUSB3014作為USB3.0主機接口芯片,能實現超高速實時數據采集與傳輸。
1 系統硬件設計
系統的總體框架如圖1所示。被采集的信號通過相應的傳感器轉換為相應的模擬電壓,A/D芯片將其轉換為數字信號,再送到CPLD主控芯片MAX7000A,經處理后發送到USB 3.0主機接口芯片CYUSB3014,該芯片工作在SLAVE FIFO模式,最后數據以5Gbps的速度送入到計算機。

美國的賽普拉斯(CYPRESS)公司開發的EZUSB FX系列芯片以其強大的功能,簡易的開發過程而深受開發者喜愛。EZ—USB FX3(CYUSB3014)芯片是其最新的USB接口芯片,不僅完全符合USB3.0標準,而且還可以與DSP、FPGA、CPLD和單片機等處理器方便地相連,從而簡化了系統的設計。EZ-USB FX3芯片內部邏輯結構如圖2所示。

CYUSB3014的內核為一個200MHz工作頻率的32位ARM926EJ處理器,其通過固件程序和內部DMA通道管理USB和GPIF II、I2S、SPI、UART接口之間的數據傳輸。CYUSB3014內部有一個能實現5Gbps傳輸速度的GPIF II接口,該接口可以方便地與MAX 7000A連接。GPIF II接口不僅工作頻率可達100MHz,而且其數據總線可以根據需要選擇8位、16位和32位中的任何一種。當然,只有選用了32位的數據總線,才能充分挖掘其帶寬。
美國硅谷的Altera公司一直是創新定制邏輯解決方案的領先者,其開發了業界最先進的FPGA、CPLD和ASIC技術,其開發的MAX系列CPLD芯片深受開發者喜愛。只有采用高速的CPLD主控芯片才能充分發揮USB3.0的5Gbps超寬帶寬,為此Altera公司最新高速的MAX7000A系列CPLD為理想之選,我們采用了型號為MAX7128AETC100—4的主控芯片,該芯片的詳細資料見文獻。該芯片主要負責與GPIF II接口相連,實現GPIF II接口工作在SLAVEFIFO模式下向計算機寫入數據的邏輯時序控制。EZ—USB FX3的GPIF II接口有HOST主機和SLAV EFIFO兩種工作模式,本系統選用SLAVE FIFO工作模式,其與CPLD連接的原理圖如圖3所示。

系統工作原理如下:1)A[1:0]為地址選擇位,MAX7000A根據其值選擇對應的Socket;2)D[31:0]為32位的傳輸數據總線,MAX7000A將需要寫入的數據放置在此總線上;3)SLCS為片選芯片,工作時需為低電平來選中EZ-USB FX3芯片;4)PKTEND為包結束信號,當數據包寫滿時,該信號有效時,MAX7000A將其打包傳送至EZ—USB FX3芯片;5)FLAGA和FLAGB為EZ—USB FX3返回給MAX 7000A的狀態標志信號,MAX7000A據此決定是否對EZ—USB FX3進行數據讀寫;6)SLWR為寫使能信號,SLRD為讀使能信號,SLOE為輸出使能信號。
系統硬件設計中還包含了電源電路、USB接口電路和時鐘復位電路等電路的設計,由于篇幅的關系,在此不作介紹。
2 系統軟件設計
系統軟件的開發包含了MAX 7000A CPLD和EZ—USB FX3的固件程序開發、EZ—USB FX3的Windows驅動程序開發和上位機應用程序的開發。我們利用CYPRESS公司提供的開發包,大大縮短了開發周期,提高了開發效率。
固件程序是微控制器系統的核心,是幫助設備實現相應的功能。MAX 7000A CPLD固件程序主要完成對A/D芯片的控制和對EZ—USB FX3芯片的通信,其將A/D芯片采集的數據傳送給EZ—USB FX3。MAX 7000A CPLD的固件開發比較簡單,只需對相應的引腳和時序進行定義。為此我們采用了Verilog HDL語言編寫,開發環境為Quartos II 8.0。EZ—USBFX3固件程序的主要功能是讓其將MAX 7000A CPLD芯片傳來的數據傳輸到上位機,實現超高速數據傳輸。EZ—USB FX3的控制器是基于ARM926EJS的,固件程序采用ECLIPSE集成開發環境,開發人員需在CYPRESS公司官網上下載其SDK安裝包。EZ—USB FX3的固件程序流程圖如下:

S1FifoAppThread線程代表著EZ—USB FX3芯片的GPIF II接口工作在SLAVE FIFO模式。我們需在S1FifoAppThread線程中定義一個DMA傳輸通道,此DMA通道在外部MAX 7000A芯片的控制下,將數據送至指定的輸入端點,以供上位機應用程序獲取。
在驅動程序開發方面,CYPRESS公司的SDK為EZ-USB FX3提供了通用設備驅動程序CYUSB3.SYS,其不僅完全符合WDF(Windows Driver Foundation)規范,還具有兼容USB2.0和USB3.0設備、支持即插即用和支持高帶寬數據傳輸等優點。我們只需根據固件程序中定義的USB設備的VID和PID對通用驅動程序相匹配的CYUSB3.INF文件進行相應的簡單修改即可。
在上位機的應用程序的開發方面,CYPRESS公司同樣為用戶提供了一個個操作簡單、功能強大的C++編程接口:CyAPI.Lib庫函數。我們選用了Microsoft Visual Studio2008作為開發工具,通過CyAPI.Lib函數與CYUSB3.SYS設備驅動程序傳遞數據,進行實時采集。
3 總結
本文詳細介紹了采用EZ—USB FX3為接口USB3.0芯片,MAX 7000A為主控芯片,設計與開發了一套USB 3.0數據采集傳輸系統。CYPRESS公司為EZ-USB FX3提供了完整的SDK開發包,縮短了開發周期。當采樣數據為32位,采樣時鐘為40MHz時,系統理論傳輸帶寬可達1.28Gps。實際測試中我們采用了16位的A/D高速芯片,MAX 7000A芯片工作時鐘為40MHz,實驗測得系統傳輸速率約600Mbps,超過了USB2.0的480Mbps理論帶寬,這表明USB3.0總線能將采集的信號實時傳輸至計算機,充分發揮了USB3.0超高速傳輸帶寬的優勢。
評論