a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 設計應用 > 基于USB3.0協議的PC與FPGA通信系統的設計

基于USB3.0協議的PC與FPGA通信系統的設計

作者: 時間:2016-10-10 來源:網絡 收藏

摘要 針對USB2.0在高速數據采集系統中帶寬局限問題,設計了一款基于USB3.0總線的高速數據采集接口系統。通過對USB3.0的接口硬件系統、設備固件以及SLAVE FIFO與接口讀寫操作的設計,并經過實驗測試,USB3.0硬件傳輸速度可達260 MByte·s-1,連續數據采集傳輸速率可達100 MByte·s-1且數據保持穩定。

本文引用地址:http://www.j9360.com/article/201610/306326.htm

隨著USB3.0解決方案的出現,其在保留USB固有優勢的基礎上大幅提高了數據傳輸的帶寬,適用于高速數據采集領域。本文針對基于USB的高速數據采集系統進行研究,設計了一款基于CYUSB3014芯片的USB3.0高速數據采集接口系統,該系統基于USB3.0協議來實現PC機與的數據傳輸。本文介紹了USB3.0固件的設計方法,GPIF II接口特性以及SIAVE FIFO與的讀寫操作設計。

1 USB3.0系統結構的設計

如圖1所示,USB3.0系統的主芯片架構為Cypress公司FX3系列CYUSB3014 USB3.0控制芯片、FPGA芯片EP3CA0F484、DDR2芯片MT47H64M16HR。

基于USB3.0協議的PC與FPGA通信系統的設計

CYUSB3014 USB專用控制芯片是新一代USB外設控制器,具有高度集成的靈活特性,可幫助開發人員為任何系統添加USB3.0功能。其擁有工作頻率可達200 MHz的32 bit的ARM9內核,使得FX3能夠應用在對數據處理要求較高的地方。芯片內部集成了一個512 KByte SRAM,用于存儲代碼、配置參數,同時用作芯片內部DMA通道的緩沖區。并集成了可編程的100 MHz的GPIF II接口能連接多種類型外部器件,支持最大32個可編程物理端點。

2 FX3固件的設計

固件是用以完成驅動程序無法完成的USB芯片及其外圍芯片的初始化及控制工作的代碼。FX3固件的主要功能包括:初始化參數的配置、輔助完成設備的重新枚舉機制、對中斷的處理、數據的接收與發送以及對外圍的控制。FX3的固件設計只需調用相應的庫函數,而不需要設計者過分關注底層硬件設置,大幅降低了固件的開發難度。EZ—USB FX3的固件設計主要包括對GPIF II接口、DMA通道及回調函數的設計。本文主要對GPIF II接口以及DMA通道加以介紹。

2.1 GPIF II接口

GPIF II接口是FX3與外部設備連接的重要組成部分,利用該接口可以實現與任何外部設備的高速并行數據傳輸。它具有一個提供多達256個可編程狀態的完全可編程的狀態機,可實現與任何處理器、ASIC、DSP或FPGA等的設備的無縫連接。GPIF II接口可在100 MHz的工作頻率下實現32 bit數據的并行傳輸,最高有效數據的傳輸速率可達400 MByte ·s-1。該接口可配置為主機模式或從機模式,且數據總線可在8 bit、16 bit及32 bit之間靈活選擇。

設計將GPIF II接口配置為32位同步SLAVEFIFO模式,外部處理器可像對普通FIFO一樣對FX3FIFO進行讀寫。由PCLK信號作為接口狀態機的工作時鐘,接口上的地址信號A0:A1表示要訪問的線程,FPGA通過檢測4個標志信號FLAGA~D來檢測緩沖FIFO是空或者滿。配置為SLAVE FIFO模式的GPIF II與外部設備的信號連接如圖2所示。

基于USB3.0協議的PC與FPGA通信系統的設計

2.2 DMA通道

FX3內部通過DMA通道將不同外圍接口連接起來,以實現不同接口之間的數據傳輸。DMA通道是一種軟件結構,該結構封裝了套接字、緩沖區和描述符3種硬件元素。套接字是存在于外部接口中的硬件模塊,一個外部接口可以包含多個套接字,在固件系統中套接字處于DMA通道的兩端,一個套接字用于輸入數據,另一個則用于輸出數據。數據通過套接字流入或流出已建立好的DMA數據通道。緩沖區是控制器系統內存中的數據緩沖區,相當于DMA數據通道中的中轉站,流入套接字的數據首先被存放到緩沖區中,然后才能被輸出數據的套接字從緩沖區中讀出。描述符作為一種數據結構可將與數據流相關的套接字和緩沖區關聯起來。圖3為一個方向為P2U的DMA數據通道,此數據通道由8個尺寸為16×1 024的緩存及一個PIB套接字和一個UIB套接字組成。

基于USB3.0協議的PC與FPGA通信系統的設計

FX3提供了多種DMA通道模式,可分為兩種:一種是自動DMA通道;另一種是手動DMA通道。自動DMA通道在通道建立起來并開始運行后,固件就不再干預數據流的傳輸,數據將連續不斷地流過自動數據通道,因不需固件干預,所以這種通道模式能提供最大的數據效率;而手動DMA通道在數據流動過程中需要CPU干預,這樣就可監視或修改數據流,但有可能會降低數據的傳輸效率。所以設計采用自動DMA方式實現USB接口與GPIF II接口的數據傳輸。

3 FPGA中實現讀寫程序設計

本文通過FPGA采用狀態機模式控制同步SLAVEFIFO接口的讀寫操作來實現訪問FX34個線程的功能。

(1)讀操作。

IDLE:設定的地址A0:A1;

STATE 0~3:狀態自加,使FIFO地址穩定且SLCS被激活;

STATE 4:SLOE被激活,驅動數據總線;

STATE 5:SLRD和外部寫信號被激活。且FIFO指針在PCLK的上升沿更新,這會啟動從新尋址位置到數據總線之間的數據傳輸。

(2)寫操作。

IDLE—STATE 4:與讀操作相同,只是在STATE 5激活sLwR信號以及外部讀信號。當sLwR被激活時,數據寫至FlF0和PcLK的上升沿,FIF0指針遞增。

4 USB3.0采集卡實測

設計的LISB3.O樣板出來后需要從多方面對其進行實際測試以驗證其正確性。下面從兩方面測試板卡設計的正確性。

(1)USB3.0固件枚舉測試。USB3.0固件能否正常工作的一個重要標志是當USB3.0控制器連接到主機上時,設備能否正常運行。設計采用Cypress主機測試軟件USB Control Center對FX3固件枚舉功能進行測試。經測試,測試軟件成功接收了由固件發的各種描述符。圖4為USB3.0的枚舉成功后在測試軟件上的正確顯示。

基于USB3.0協議的PC與FPGA通信系統的設計

(2)USB3.0數據傳輸測試。設計通過EP1 OUT端點來控制EP2 IN和EP2 OUT兩個端點數據的接受和發送。當通過EP1 OUT發送的最后32位數的低4位為4’h1時,FPGA接受來自EP2 OUT端點的數據;當通過EP1 OUT發送的最后32位數的低4位為4’hF時,FPGA向EP2 IN端點發送測試數據,如圖5所示。圖6為邏輯分析儀實時監測的PC向FPCA發送的數據顯示。

基于USB3.0協議的PC與FPGA通信系統的設計
基于USB3.0協議的PC與FPGA通信系統的設計

5 結束語

本文介紹了USB3.0控制器的固件及FPGA讀寫操作的主要工作機制,并通過實驗驗證了所設計USB3.0板卡的穩定性及正確性。對USB3.0固件機制的深入研究是提高設計質量的前提,因而有必要對該固件作進一步研究以提高設計的效率與正確性。



評論


相關推薦

技術專區

關閉