新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > 基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計

基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計

作者: 時間:2016-10-10 來源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://www.butianyuan.cn/article/201610/306326.htm

隨著USB3.0解決方案的出現(xiàn),其在保留USB固有優(yōu)勢的基礎(chǔ)上大幅提高了數(shù)據(jù)傳輸?shù)膸挘m用于高速數(shù)據(jù)采集領(lǐng)域。本文針對基于USB的高速數(shù)據(jù)采集系統(tǒng)進行研究,設(shè)計了一款基于CYUSB3014芯片的USB3.0高速數(shù)據(jù)采集接口系統(tǒng),該系統(tǒng)基于USB3.0協(xié)議來實現(xiàn)PC機與的數(shù)據(jù)傳輸。本文介紹了USB3.0固件的設(shè)計方法,GPIF II接口特性以及SIAVE FIFO與的讀寫操作設(shè)計。

1 USB3.0系統(tǒng)結(jié)構(gòu)的設(shè)計

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

基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計

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

2 FX3固件的設(shè)計

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

2.1 GPIF II接口

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

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

基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計

2.2 DMA通道

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

基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計

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

3 FPGA中實現(xiàn)讀寫程序設(shè)計

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

(1)讀操作。

IDLE:設(shè)定的地址A0:A1;

STATE 0~3:狀態(tài)自加,使FIFO地址穩(wěn)定且SLCS被激活;

STATE 4:SLOE被激活,驅(qū)動數(shù)據(jù)總線;

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

(2)寫操作。

IDLE—STATE 4:與讀操作相同,只是在STATE 5激活sLwR信號以及外部讀信號。當(dāng)sLwR被激活時,數(shù)據(jù)寫至FlF0和PcLK的上升沿,F(xiàn)IF0指針遞增。

4 USB3.0采集卡實測

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

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

基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計

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

基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計
基于USB3.0協(xié)議的PC與FPGA通信系統(tǒng)的設(shè)計

5 結(jié)束語

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



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉