色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CYUSB3014 USB3.0總線開發(fā)技術(shù)

          基于CYUSB3014 USB3.0總線開發(fā)技術(shù)

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

            當(dāng)為寫命令時(shí),CYUSB3014需要將從DDR2中讀取的數(shù)據(jù)發(fā)送出去;當(dāng)為讀命令,讀取CYUSB3014傳遞過來的數(shù)據(jù),流程圖如圖4所示。圖5、圖6分別為同步寫入和讀出數(shù)據(jù)的時(shí)序圖。由于讀寫最大包為1024字節(jié),所以實(shí)際每一包傳輸需要256個(gè)周期。圖中的輸入/出DQ數(shù)據(jù)為測(cè)試數(shù)據(jù)模塊和PC機(jī)產(chǎn)生的測(cè)試數(shù)據(jù),RX即UART_RX信號(hào)。

            時(shí)序圖

            3.3.2 測(cè)試數(shù)據(jù)模塊

            當(dāng)計(jì)算機(jī)向FPGA發(fā)出讀命令時(shí),F(xiàn)PGA產(chǎn)生測(cè)試數(shù)據(jù)。32位數(shù)據(jù),高16位為0,低16位循環(huán)計(jì)數(shù),發(fā)送一個(gè)周期后,自動(dòng)清零。

            批量(bulk)傳輸時(shí)的最大包大小為1024字節(jié),因此測(cè)試數(shù)據(jù)在0~255之間循環(huán)變化。

            產(chǎn)生測(cè)試數(shù)據(jù)后,數(shù)據(jù)傳輸流程為DATA->

            DDR2->FIFO->CYUSB3014->PC機(jī),實(shí)現(xiàn)了將測(cè)試數(shù)據(jù)上傳到PC機(jī)的功能。

            3.3.3 DDR2接口模塊

            該部分直接負(fù)責(zé)外圍DDR2接口,利用FPGA的DDRII SDRAM IP核實(shí)現(xiàn),按照DDR2芯片MT47H64M16HR來設(shè)定控制器的時(shí)序參數(shù),控制器根據(jù)這些參數(shù)值生成滿足MT47H64M16HR時(shí)序的接口,再由DDR2模塊進(jìn)行讀寫控制。

            3.4 應(yīng)用程序的設(shè)計(jì)

            應(yīng)用程序由VC++編寫,利用與設(shè)備驅(qū)動(dòng)關(guān)聯(lián)的API與設(shè)備聯(lián)系。CYPRESS公司提供了完整的API庫(kù),配合使用其提供的通用驅(qū)動(dòng)程序,可以便利地調(diào)用控制USB設(shè)備。應(yīng)用程序的主要功能是發(fā)送命令,并將USB輸入數(shù)據(jù)保存下來,程序主要界面如圖6所示。

            界面

            4.測(cè)試結(jié)果及分析

            4.1 寫入數(shù)據(jù)測(cè)試

            當(dāng)應(yīng)用程序向USB發(fā)出寫命令時(shí),F(xiàn)PGA產(chǎn)生測(cè)試數(shù)據(jù)并傳給FX3以便上傳給PC機(jī)。

            采集1000MB的數(shù)據(jù)進(jìn)行記錄,以便在MATLAB中進(jìn)行分析。

            CYPRESS官方開發(fā)包中自帶了streamer軟件進(jìn)行速度測(cè)試。在Endpoint選項(xiàng)中選擇Bulk in endpoint端點(diǎn)(Bulk Out對(duì)應(yīng)的是PC機(jī)向FPGA寫數(shù)據(jù))。由于批量傳輸時(shí)的最大包為1024字節(jié),因此需要將Packets perXfer設(shè)置為256或以下,Xfers to Queue置為4。不同的USB3.0控制器,速度的測(cè)試結(jié)果會(huì)有所不同。如圖7所示是在64位WIN7系統(tǒng)下的測(cè)試及分析結(jié)果。如圖7(a)中所示,經(jīng)過一段時(shí)間的速度測(cè)試,23704個(gè)成功包,0失敗,往P C中寫入數(shù)據(jù)的速度能夠達(dá)到178800KB/S,即1.43Gbps。為了驗(yàn)證數(shù)據(jù)的正確性,在MATLAB中對(duì)采集的8.0Gb數(shù)據(jù)進(jìn)行分析。由于測(cè)試數(shù)據(jù)是0~255之間循環(huán)變化,因此可以根據(jù)每一包數(shù)據(jù)的數(shù)據(jù)差是否為1來判斷數(shù)據(jù)的正確性,當(dāng)不為1時(shí)報(bào)錯(cuò)。

            如圖7(b)所示,讀取的數(shù)據(jù)是正確的,沒有發(fā)生丟數(shù)或錯(cuò)數(shù)的情況。

            測(cè)試分析

            4.2 讀出數(shù)據(jù)測(cè)試

            類似的,當(dāng)應(yīng)用程序向USB發(fā)出讀命令時(shí),同時(shí)會(huì)產(chǎn)生一組有規(guī)律的測(cè)試數(shù)據(jù),并傳送給CYUSB3014,F(xiàn)PGA直接讀取數(shù)據(jù)。如下圖8(a)所示是讀入速度測(cè)試結(jié)果,18252個(gè)成功包,0失敗,往USB中寫入數(shù)據(jù)的速度能夠達(dá)到179000KB/S,即1.432Gbps。在FPGA中記錄下隨機(jī)采集的32k數(shù)據(jù)并進(jìn)行分析,同樣的可以根據(jù)數(shù)據(jù)間的差來判斷數(shù)據(jù)的正確性,如圖8(b)所示,寫入的數(shù)據(jù)時(shí)正確的,沒有發(fā)生丟數(shù)錯(cuò)數(shù)的情況。

            分析

            5.結(jié)束語(yǔ)

            本文在FPGA和CYUSB3014的基礎(chǔ)上,對(duì)USB3.0進(jìn)行了開發(fā)應(yīng)用。鑒于本文的系統(tǒng)架構(gòu),雖然測(cè)試數(shù)據(jù)都是FPGA內(nèi)部產(chǎn)生,但是對(duì)于實(shí)際使用高采樣率AD的數(shù)據(jù)采集系統(tǒng)具有很大的借鑒意義。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: DDR2FPGAUSB總

          評(píng)論


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

          關(guān)閉