999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA和USB2.0協(xié)議的通用數(shù)據(jù)傳輸設(shè)計

2016-11-09 02:25:22王永綱
關(guān)鍵詞:系統(tǒng)設(shè)計

徐 超,劉 沖,王永綱

(中國科學(xué)技術(shù)大學(xué) 近代物理系,安徽 合肥 230026)

?

基于FPGA和USB2.0協(xié)議的通用數(shù)據(jù)傳輸設(shè)計

徐超,劉沖,王永綱

(中國科學(xué)技術(shù)大學(xué) 近代物理系,安徽 合肥 230026)

FPGA因其具有高度的靈活性與強(qiáng)大的數(shù)據(jù)處理能力而被廣泛應(yīng)用于數(shù)據(jù)采集與處理系統(tǒng)中。USB2.0因其數(shù)據(jù)傳輸速率快和接口的多樣化而廣泛使用。以USB2.0控制器CY7C68013A為接口設(shè)計和實現(xiàn)了上位機(jī)與FPGA中FIFO與寄存器之間的讀寫。經(jīng)測試表明,該設(shè)計達(dá)到了47 MB/s的數(shù)據(jù)傳輸速率,接近USB2.0控制芯片的最高速率48 MB/s。

FPGA;USB2.0;CY7C68013A;數(shù)據(jù)傳輸

引用格式:徐超,劉沖,王永綱. 基于FPGA和USB2.0協(xié)議的通用數(shù)據(jù)傳輸設(shè)計[J].微型機(jī)與應(yīng)用,2016,35(16):41-43.

0 引言

目前,系統(tǒng)設(shè)備不斷向高速化、集成化、低功耗的方向飛速發(fā)展。而現(xiàn)場可編程門陣列FPGA經(jīng)過這些年的發(fā)展,已經(jīng)成為實現(xiàn)數(shù)字系統(tǒng)的主流平臺之一。FPGA具有高度的靈活性和強(qiáng)大的數(shù)據(jù)處理能力,常被用來定制外設(shè)的控制器以及前端處理模塊。但FPGA并沒有提供和上位機(jī)之間直接通信的接口,為了更方便地對數(shù)據(jù)進(jìn)行后續(xù)的分析和保存,就需要解決FPGA和上位機(jī)之間的數(shù)據(jù)傳輸?shù)慕涌趩栴}。

USB2.0已經(jīng)廣泛使用于個人電腦中,USB2.0相比于以前的USB版本在速度上有兩個很大的提升。USB2.0協(xié)議具有以下優(yōu)點(diǎn):(1)速度快,在高速塊傳輸,最大數(shù)據(jù)字段的模式下,最高可以達(dá)到60 MB/s[1],本文設(shè)計的塊傳輸,512 B數(shù)據(jù)字段的模式下,可達(dá)53.2 MB/s; (2)連接簡單,可即插即用;(3)可支持多設(shè)備采用“級聯(lián)”方式連接外設(shè)。

本文通過USB2.0 的外設(shè)控制器CY7C68013A,實現(xiàn)了FPGA 和上位機(jī)之間數(shù)據(jù)傳輸接口的設(shè)計[2-4],經(jīng)測試,該設(shè)計能夠接近理論上的傳輸速度。

1 系統(tǒng)結(jié)構(gòu)

USB系統(tǒng)是一個主從系統(tǒng),所有的命令是由主設(shè)備(上位機(jī))發(fā)出,從設(shè)備接收到命令后,執(zhí)行所要求的操作。在主設(shè)備要求讀數(shù)據(jù)時,從設(shè)備才會向主設(shè)備發(fā)送數(shù)據(jù)。圖1給出了整個設(shè)計的系統(tǒng)結(jié)構(gòu)圖。

圖1 系統(tǒng)結(jié)構(gòu)圖

系統(tǒng)讀寫時,由上位機(jī)的應(yīng)用程序發(fā)起請求,通過驅(qū)動程序接口(API)調(diào)用驅(qū)動程序。驅(qū)動程序控制USB控制器向CY7C68013A發(fā)送數(shù)據(jù),CY7C68013A的SIE模塊對數(shù)據(jù)進(jìn)行解析,然后根據(jù)內(nèi)部的固件程序通過GPIF模塊向FPGA發(fā)送時序波形并讀寫數(shù)據(jù)。在對FPGA進(jìn)行讀寫FIFO或者Register時,F(xiàn)PGA與USB芯片之間的控制信號由內(nèi)部的GPIF決定。

2 系統(tǒng)軟硬件組成

2.1USB2.0接口

USB2.0[5]的接口芯片采用CY7C68013A。該芯片包含了USB2.0的集成微控制器,內(nèi)部集成了一個增強(qiáng)型的8051CPU,該芯片負(fù)責(zé)配置芯片的工作方式、數(shù)據(jù)流的控制等,一個串行接口引擎SIE,解析USB協(xié)議,實現(xiàn)對上位機(jī)的收發(fā),以及可編程的其他外圍接口。該芯片還提供了一種獨(dú)特的架構(gòu),是USB接口和應(yīng)用環(huán)境共享Slave FIFOs,微控制器不需要參與數(shù)據(jù)的傳輸,這樣就大大提高了整個系統(tǒng)的數(shù)據(jù)傳輸速率。本文采用GPIF的模式,通過對GPIF的編程實現(xiàn)數(shù)據(jù)的傳輸。EZ-USB FX2的內(nèi)部結(jié)構(gòu)圖如圖2所示。

圖2 FX2內(nèi)部結(jié)構(gòu)圖

2.2FPGA的接口設(shè)計

FPGA不僅需要和內(nèi)部其他邏輯模塊連接,還需要對USB的GPIF進(jìn)行數(shù)據(jù)的收發(fā)。因此,為通用起見,設(shè)計FPGA接口實現(xiàn)對寄存器的讀、寫和FIFO的讀、寫操作。

GPIF對FPGA的控制信號CTL只有三位,能區(qū)分8種不同的狀態(tài)。為了讓FPGA能區(qū)分寄存器讀、寫(包括地址和數(shù)據(jù))以及FIFO的讀、寫、空閑等7種不同的狀態(tài),CTL控制線的每種編碼決定了唯一的操作狀態(tài)。

2.3芯片固件程序設(shè)計

固件設(shè)計的核心是GPIF的設(shè)計[6-7],GPIF設(shè)計不當(dāng)以及上位機(jī)調(diào)用不合理會導(dǎo)致系統(tǒng)的整體速度不高。

GPIF電路工作在48 MHz時鐘下,數(shù)據(jù)線有16位,兩個周期實現(xiàn)一次FIFO的讀寫,故理論上能夠達(dá)到48 MB/s的傳輸速率。

本文采用了“量子FIFO”的處理結(jié)構(gòu),很好地解決了USB高速模式的帶寬問題。

在GPIF高速數(shù)據(jù)傳輸中,GPIF波形的描述符決定了整個數(shù)據(jù)傳輸過程的時序。通常用Cypress公司的GPIF工具進(jìn)行配置,在GPIF方式下,所有的讀寫和控制邏輯都可以通過軟件編程的形式實現(xiàn),具有很大的靈活性。

由于GPIF的狀態(tài)機(jī)只能由一個狀態(tài)跳轉(zhuǎn)到兩個不同的狀態(tài),而在FIFO讀寫過程中需要檢測的變量和跳轉(zhuǎn)的狀態(tài)比較多,有時就需要進(jìn)行多級跳轉(zhuǎn),這樣嚴(yán)重限制了數(shù)據(jù)的傳輸速度。為解決這個問題,本文在分析了所有的跳轉(zhuǎn)情況后,將正常讀寫FIFO的跳轉(zhuǎn)次數(shù)減少,而將特殊情況跳轉(zhuǎn)次數(shù)增加,使得兩個時鐘周期內(nèi)進(jìn)行一次讀寫操作,這樣保證了功能的實現(xiàn),且保證了48 MB/s的讀寫速度。

圖3給出了FIFO讀操作模式下設(shè)計的GPIF的狀態(tài)轉(zhuǎn)換示意圖。當(dāng)USB控制線設(shè)置為FIFO讀模式時,系統(tǒng)進(jìn)入狀態(tài)S1,此時,申請F(tuán)IFO數(shù)據(jù)線驅(qū)動USB數(shù)據(jù)總線,此時如果GPIF內(nèi)部的FIFO沒有問題且FPGA給出以準(zhǔn)備好的信號,進(jìn)入S2狀態(tài), S2申請讀FIFO,F(xiàn)IFO可讀,則進(jìn)入狀態(tài)S3,向USB總線發(fā)送數(shù)據(jù),如果GPIF的FIFO沒有問題且未讀完,則回到狀態(tài)S2,如此循環(huán),直到數(shù)據(jù)讀完。讀完數(shù)據(jù)后,最終會回到空閑狀態(tài),表明本次數(shù)據(jù)傳輸完成。

圖3 FIFO讀的狀態(tài)圖

從上面的過程中可以看出,在兩個時鐘周期內(nèi)完成了一個16 bit數(shù)據(jù)的傳輸,充分利用了USB2.0的數(shù)據(jù)帶寬,提高了數(shù)據(jù)傳輸速率。

圖4給出了FIFO寫操作模式下的GPIF的轉(zhuǎn)換圖,與上面的分析類似,兩個周期內(nèi)就能夠完成一次數(shù)據(jù)傳輸。

圖4 FIFO寫的狀態(tài)圖

2.4驅(qū)動和應(yīng)用程序設(shè)計

Cypress 提供了Windows系統(tǒng)下的驅(qū)動,并以C++靜態(tài)鏈接庫的形式提供了調(diào)用驅(qū)動的函數(shù)庫。設(shè)計中在此基礎(chǔ)上封裝了讀寄存器、寫寄存器、讀FIFO、寫FIFO四個函數(shù),并以DLL形式提供給用戶。上層使用的是MATLAB平臺,需要在該平臺上配置MEX編譯器,并使用loadlibrary函數(shù)以加載動態(tài)鏈接庫,加載后便可以調(diào)用DLL里提供的讀寫函數(shù)了。DLL也能被其他平臺調(diào)用。

3 性能測試

為了驗證該設(shè)計方案,本文在帶有CY7C68013A和XILINX ARTIX-7 的電路板上對數(shù)據(jù)傳輸?shù)恼_性和傳輸速度進(jìn)行了測試。

3.1測試方法

對寄存器的讀寫驗證比較簡單,只需先通過DLL中的讀寫寄存器函數(shù)對不同地址的寄存器進(jìn)行寫操作,然后讀出來進(jìn)行比對即可。

而對FIFO讀操作驗證,需要在FPGA的內(nèi)部例化一個FIFO和一個計數(shù)器,并將計數(shù)器輸出的數(shù)據(jù)從0到65 535依次寫入到FIFO中,然后上層MATLAB中讀到的FIFO的值就應(yīng)該是從0到65 535依次遞增的序列。而通過測量讀取一定數(shù)目的數(shù)據(jù)的時間就可以計算出USB的讀出速度。FIFO寫操作的驗證與FIFO讀類似,不過在將數(shù)據(jù)寫進(jìn)FIFO后,需要由FPGA將FIFO中的數(shù)據(jù)與期望的數(shù)列比較。

3.2測試結(jié)果

本文在MATLAB平臺上進(jìn)行了驗證,對寄存器和FIFO的讀寫操作完整正確,對FIFO進(jìn)行讀寫的實測速度達(dá)到了47 MB/s,接近于理論上的48 MB/s。

4 結(jié)論

本文在USB2.0協(xié)議的基礎(chǔ)上,設(shè)計并實現(xiàn)了FPGA與上位機(jī)之間的高速數(shù)據(jù)傳輸系統(tǒng),驗證了該方案傳輸數(shù)據(jù)的正確性并且實測速度能夠達(dá)到47 MB/s,接近于理論上的48 MB/s傳輸速度。該方案具有穩(wěn)定、高速以及調(diào)用方便的優(yōu)點(diǎn),目前已經(jīng)應(yīng)用于多個實驗裝置中。

[1] 王成儒, 李英偉. USB2.0 原理與工程開發(fā)[M]. 北京: 國防工業(yè)出版社,2004.

[2] 譚安菊,龔彬. USB2.0控制器CY7C68013與FPGA接口的Verilog HDL實現(xiàn)[J]. 電子工程師,2007,33(7):52-55.

[3] 吳振宇,常玉保,馮林. 基于FPGA和USB2.0的高速數(shù)據(jù)采集系統(tǒng)[J]. 儀器儀表學(xué)報,2006,27(S1):125-126.

[4] 安榮,任勇峰,李圣昆. 基于FPGA和USB2.0的數(shù)據(jù)采集系統(tǒng)[J]. 儀表技術(shù)與傳感器,2009(3):49-51.

[5] 錢峰. EZ-USB FX2 單片機(jī)原理、編程及應(yīng)用[M].北京: 北京航空航天大學(xué)出版社,2006.

[6] EZ-USB?Technical Reference Manual[EB/OL]. (2014-05-02)[2016-03-30]http://www.cypress.com/?rID=38232.

[7] Cypress CyAPI Programmer's Reference[EB/OL]. (2011-xx-xx)[2016-03-30]http://www.cypress.com/?docID=41365.

Design of general data transmission based on FPGA and USB2.0 protocol

Xu Chao, Liu Chong, Wang Yonggang

(Department of Modern Physics, University of Science and Technology of China, Hefei 230026, China)

FPGA is widely applied in the data collecting systems and data processing systems due to its high flexibility and strong ability of processing data. USB2.0 is widely used because of its high rate of data transmission and diverse interfaces. This paper designs and implements data transmission between the PC and the FIFO and registers in the FPGA which is based on the peripheral chips CY7C68013A of USB2.0. And the test shows that the data transmission rate can be up to 47 MB/s, which is very close to 48 MB/s, the highest rate of the controlling chip of USB2.0.

FPGA; USB2.0; CY7C68013A; data transmission

TP334

A

10.19358/j.issn.1674- 7720.2016.16.012

2016-03-30)

徐超(1990-),通信作者,男,碩士研究生,主要研究方向:數(shù)字電路。E-mail:xuhaimin@mail.ustc.edu.cn。

劉沖(1989-),男,博士,主要研究方向:數(shù)字電路。

王永綱(1965-),男,教授,主要研究方向:醫(yī)學(xué)成像。

猜你喜歡
系統(tǒng)設(shè)計
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
何為設(shè)計的守護(hù)之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
瞞天過海——仿生設(shè)計萌到家
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 成年免费在线观看| 99精品伊人久久久大香线蕉 | 国产国拍精品视频免费看| 欧美福利在线| 国产91在线|中文| 国产成人一区| 国产永久无码观看在线| 91视频日本| a级毛片免费看| 伊人色在线视频| 在线国产毛片| AV在线天堂进入| 天天躁日日躁狠狠躁中文字幕| 中文字幕免费播放| 中文字幕在线看| 2019国产在线| 欧美一区二区人人喊爽| 日本尹人综合香蕉在线观看| 国产91在线|日本| 亚洲欧洲日产国产无码AV| 国产性生大片免费观看性欧美| 久久精品丝袜| 国产欧美日本在线观看| 天天色天天操综合网| 亚洲色图欧美激情| 亚洲视频一区在线| 日本成人精品视频| 午夜视频www| 老司机精品久久| 亚洲色欲色欲www网| 国产女人在线观看| 一级香蕉视频在线观看| 亚洲天堂网在线观看视频| 91丨九色丨首页在线播放| 中文字幕永久视频| 一级毛片在线直接观看| 伊人丁香五月天久久综合| 一级爱做片免费观看久久| 亚洲成a人在线播放www| 久久99国产精品成人欧美| 国产原创自拍不卡第一页| 久久久久久久97| 久久久久人妻一区精品| 午夜爽爽视频| 欧美综合区自拍亚洲综合绿色| 欧美国产日产一区二区| 欧美视频免费一区二区三区| 黄色免费在线网址| A级毛片无码久久精品免费| 国产欧美亚洲精品第3页在线| 怡红院美国分院一区二区| 成年看免费观看视频拍拍| 国产美女一级毛片| 日韩中文精品亚洲第三区| 国产va视频| 国产精品自在在线午夜区app| 欧美啪啪视频免码| 九九视频免费在线观看| 这里只有精品国产| 欧美亚洲一二三区| 午夜视频免费试看| 亚洲欧美自拍视频| 无码综合天天久久综合网| 久久久亚洲国产美女国产盗摄| 丰满的熟女一区二区三区l| 色婷婷成人网| 国产激爽爽爽大片在线观看| 亚洲精品国产日韩无码AV永久免费网 | www亚洲天堂| 久久综合伊人 六十路| 成人午夜久久| 在线观看的黄网| 成年人视频一区二区| 国产成人三级在线观看视频| 成人综合在线观看| 国产第二十一页| 欧美在线精品一区二区三区| 久久黄色小视频| 在线日韩日本国产亚洲| 国产幂在线无码精品| 日本免费精品| 不卡网亚洲无码|