王鑫幕,蘆夜召,孟立凡,趙凱明
(1.中北大學(xué) 儀器科學(xué)與動態(tài)測試教育重點(diǎn)實(shí)驗(yàn)室,山西 太原 030051;2.電子測試技術(shù)重點(diǎn)實(shí)驗(yàn)室,山西 太原 030051;3.中北大學(xué),山西 太原 030051)
隨著USB接口技術(shù)的不斷發(fā)展和移動數(shù)據(jù)與測試數(shù)據(jù)技術(shù)的提升,USB 2.0 接口最高傳輸速度為30 MB/s,但無法匹配測試速度。繼續(xù)使用USB 2.0 產(chǎn)品不僅影響實(shí)驗(yàn)測試的高精度、高效率,而且嚴(yán)重影響人們的日常生活體驗(yàn)。USB 3.0 接口的出現(xiàn)使該問題得到大大改善,并且USB 3.0 向后兼容了USB 2.0,因此對USB 3.0接口數(shù)據(jù)傳輸進(jìn)行研究極其重要。相比USB 2.0,USB 3.0有更高的傳輸速度、更低的功耗和向下兼容2.0 等優(yōu)點(diǎn)。USB 3.0 最大傳輸速度達(dá)到5 Gb/s(即625 MB/s),是USB 2.0 傳輸速度的10 倍,具有很好的發(fā)展前景。
本文采用CYUSB3014 芯片,設(shè)計(jì)一種基于FPGA、SLIVEFIFO工作模式和USB 3.0的高可靠性、高速數(shù)據(jù)傳輸系統(tǒng)。經(jīng)測試,本文系統(tǒng)的傳輸速度可達(dá)320 MB/s,并且在該速度下能夠長時間穩(wěn)定工作,滿足現(xiàn)有工業(yè)場合的大批量數(shù)據(jù)傳輸要求。
本系統(tǒng)采用模塊化設(shè)計(jì),主要由電源模塊、FPGA控制模塊和USB 3.0 數(shù)據(jù)傳輸模塊組成,通過Cypress 官方固件給FPGA 發(fā)送命令進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸系統(tǒng)總體設(shè)計(jì)框圖如圖1 所示。
圖1 數(shù)據(jù)傳輸系統(tǒng)總體設(shè)計(jì)框圖
在外部處理器訪問CYUSB3014 中數(shù)據(jù)緩沖區(qū)的應(yīng)用場合下,可以使用同步從設(shè)備FIFO 接口技術(shù)。同步從設(shè)備FIFO 接口的靈活使用,可以滿足高吞吐量數(shù)據(jù)傳輸?shù)囊?。在包模式?shù)據(jù)的快速傳輸過程中,使用該接口能夠有效緩存數(shù)據(jù),保證包模式下數(shù)據(jù)的連續(xù)性,提高數(shù)據(jù)傳輸?shù)目煽啃灾笜?biāo)。因此,本文所述系統(tǒng)或模塊均使用同步從設(shè)備FIFO 接口設(shè)計(jì),如圖2 所示。
圖2 同步從設(shè)備FIFO 接口示意圖
本文采用USB 3.0 接口供電,供電電壓為5 V。因?yàn)镕X3 芯片內(nèi)部各模塊要求的供電電壓不同,所以需要使用不同的電路將5 V 的電壓轉(zhuǎn)換為各模塊所需的工作電壓,且輸入電流要滿足900 mA 的條件。針對電路的供電電壓需求,最終選用TPS650243 電源芯片。該芯片采用鋰電子供電技術(shù),內(nèi)部集成壓降轉(zhuǎn)換器和LDO穩(wěn)壓器,而且還有熱關(guān)斷保護(hù)功能,可以滿足本文系統(tǒng)需求。電源電路如圖3 所示。
圖3 電源電路
設(shè)置外圍電路可以得到不同的輸出電壓值,其中VDCDC 輸出電壓和電阻配置關(guān)系如下:
式中:,為電壓值,單位為V;,為電阻值,單位為Ω;為默認(rèn)電壓,一般為0.6 V。通過計(jì)算,配置相應(yīng)的電阻就可以得到所需的輸出電壓。
本 文 設(shè) 計(jì) 采 用USB 3.0 標(biāo) 準(zhǔn)B 型 接 口,該 接 口 扁平小巧、支持熱插拔、強(qiáng)度高、壽命長,相對于其他類型的接口更普遍、通用性更好。接口電路如圖4 所示。VBUS 引腳可以承受6 V 的電壓,在USB 3.0 插座上的“屏蔽”引腳通過接一個2.2 mH 電感BLM21P 與0.1 mF電容的并聯(lián)電路,然后接地可以實(shí)現(xiàn)隔離屏蔽的作用。在本系統(tǒng)中,采用四通道的RCLAMP0524J 作為兩對差分?jǐn)?shù)據(jù)線(SSRX+/SSRX-和SSTX+/SSTX-)的外部ESD器件來防靜電保護(hù),以此來降低靜電對系統(tǒng)性能的影響。其中RCLAMP0524J 具有低功耗、高性能等優(yōu)點(diǎn)。
圖4 USB 接口電路
2.4.1 同步從設(shè)備FIFO 讀序列
同步從設(shè)備FIFO 接口進(jìn)行讀取操作的時序?yàn)椋杭せ钇x信號SLCS#;激活輸出使能信號SLOE#,驅(qū)動數(shù)據(jù)總線;激活SLRD#信號,同時FIFO 指針在PCLK 上升沿到來時更新,啟動重新尋址的FIFO 至數(shù)據(jù)總線的數(shù)據(jù)傳輸,經(jīng)過的傳輸延遲時間后即可得到最新的數(shù)據(jù)。
2.4.2 同步從設(shè)備FIFO 寫序列
同步從設(shè)備FIFO 接口進(jìn)行寫操作的序列為:激活片選信號SLCS#;外部主設(shè)備或外設(shè)將數(shù)據(jù)傳輸?shù)綌?shù)據(jù)總線上;激活SLWR#信號,在PCLK 上升沿時將數(shù)據(jù)寫入到FIFO 中,并且FIFO 指針遞增,指向下一個FIFO。
固件是與硬件電路聯(lián)系最為密切的應(yīng)用程序之一,開發(fā)難度大、周期長,而且還需要具有豐富的固件設(shè)計(jì)經(jīng)驗(yàn)。為快速開發(fā)固件應(yīng)用,固件框架成為了最好的選擇。本系統(tǒng)采用Cypress 公司的CYUSB3014 芯片,在USB 固件設(shè)計(jì)中使用Cypress 提供的SDK 開發(fā)包,其中包含固件框架和應(yīng)用變成接口函數(shù)庫。FX3 固件框架程序流程如圖5 所示。
圖5 FX3 固件框架程序流程
固件設(shè)計(jì)主要分為兩部分:一是用GPIF ⅡDesigner 工具設(shè)計(jì)FPGA 和USB 接口部分,通過編譯生成一個GPIF Ⅱ接口的C 頭文件;二是用Eclipes 工具編譯固件框架,把頭文件加到固件工程中,通過API 接口函數(shù)實(shí)現(xiàn)固件應(yīng)用程序。FX3 的固件框架如圖6 所示。
圖6 FX3 的固件設(shè)計(jì)框圖
為實(shí)現(xiàn)數(shù)據(jù)雙向傳輸,需要創(chuàng)建2 個DMA 通道,分別作為讀、寫操作的傳輸通道,按圖2 所示連接。用GPIF ⅡDesigner 工具進(jìn)行接口設(shè)計(jì),定義的接口界面如圖7 所示。
圖7 GPIF II 接口的接口界面
在串流IN 傳輸時,F(xiàn)PGA 等待FLAGA 變?yōu)?;當(dāng)緩沖區(qū)可用時,F(xiàn)PGA 立即將數(shù)據(jù)連續(xù)寫入到FX3 的PIB_SOCKET_0。串流IN 傳輸速度如圖8 所示。
圖8 串流IN 傳輸速度
FLAGA 和FLAGB 是EZ?USB FX3 的DMA buffer 的空滿狀態(tài)標(biāo)志信號,由FX3 的固件控制。當(dāng)FLAGA 信號為高電平時,進(jìn)入Stream_IN 傳輸模式,F(xiàn)LAGB 信號也為高電平時意味著Socket buffer 為空,此時FPGA 拉低SLRD 信號線,并向FX3 的CYUSB3014 套接字緩沖區(qū)寫入數(shù)據(jù),同時啟動DMA 通道;當(dāng)緩沖區(qū)寫滿數(shù)據(jù)后,F(xiàn)LAGA 拉低,調(diào)用DMA 回調(diào)函數(shù),數(shù)據(jù)從U 口上傳到PC 端。在串流OUT 傳輸時,F(xiàn)PGA 等待FLAGC 變?yōu)?,當(dāng)緩沖區(qū)可用時,F(xiàn)PGA 立即連續(xù)讀取FX3 的PIB_SOCKET_3 中的數(shù)據(jù)。包模式下用PC 向FPGA 傳輸數(shù)據(jù),如圖9 所示,串流OUT 傳輸速度如圖10 所示。
圖9 包模式下串流OUT 傳輸
圖10 串流OUT 傳輸速度
本文介紹一種基于USB 3.0 同步從設(shè)備FIFO 的高速數(shù)據(jù)傳輸系統(tǒng),并通過多次數(shù)據(jù)傳輸驗(yàn)證得出,該系統(tǒng)高速傳輸數(shù)據(jù)穩(wěn)定,能夠滿足各種視頻信號及大數(shù)據(jù)傳輸?shù)男枨螅蓱?yīng)用于大容量數(shù)據(jù)處理系統(tǒng)中。USB 3.0配合DDR 可達(dá)到更高的傳輸速度,更加實(shí)用,可以繼續(xù)深入開發(fā)。