
首先來說一下USB這個大家都知道的東西吧:
USB通用串行總線,是應用在計算機領域的接口技術。USB接口具有傳輸速度快,可以廣泛地應用在各類的高速數(shù)據(jù)傳輸當中,相比于大家熟悉的串口數(shù)據(jù)傳輸要快出不知道多少倍了。
我們最常見的當屬USB2.0和USB3.0,這兩個之間可以通用,但是也有區(qū)別:
1.USB3.0的速率是5Gbps,而USB2.0的速率是480Mbps。
2.從USB外觀上來看,USB2.0通常是白色或黑色,而USB3.0則改為藍色接口。
3.從USB插口引腳上來看,USB2.0采用4針腳設計,而USB3.0則采取9針腳設計,相比而言USB3.0功能更強大。
總結來說就是USB2.0很通用,因為很多電腦上可能沒有USB3.0的接口,但是一定有USB2.0的接口,而且USB2.0的傳輸速度也能滿足一般條件下的高速數(shù)據(jù)傳輸。
1.先附上所設計的實物圖(想要電路pcb文件咨詢博主),然后針對實物圖一點點展開:
所選用的芯片是Cypress 公司的EZ-USB FX2 是世界上第一款集成USB2.0 的微處理器,它集成了USB2.0 收發(fā)器、SIE(串行接口引擎)、增強的8051 微控制器和可編程的外圍接口。FX2 這種獨創(chuàng)性結構可使數(shù)據(jù)傳輸率達到480MBit/s。在FX2中,智能SIE 可以硬件處理許多USB1.1 和USB2.0 協(xié)議,從而減少了開發(fā)時間
和確保了USB 的兼容性。該器件具有如下特性:
(1)內嵌480MBit/s 的收發(fā)器,鎖相環(huán)PLL,串行接口引擎SIE集成了整個USB 2.0 協(xié)議的物理層。
(2)內嵌可工作在48MHz 的增強型8051,該8051 控制器具有以下特征:
具有256Byte 的寄存器空間,兩個串口,三個定時器,兩個數(shù)據(jù)指
針。
四個機器周期(工作在48MHz 下時為83.3ns)即組成一個指令周
期。
特殊功能寄存器(包括I/O 口控制寄存器)可高速訪問。
應用USB 向量中斷,具有極短的ISR 響應時間。
只用作USB 事務管理,控制,不參與數(shù)據(jù)傳輸,較好地解決了
USB 高速模式的帶寬問題。
(3) “軟配置”——USB 固件可由USB 總線下載,片上不需集成ROM。
(4) 擁有四個FIFO 接口,可工作在內部或外部時鐘下。端點和FIFO 接口
的應用使外部邏輯和USB 總線可高速連接。
(5) 一種單片USB 2.0 外設解決方案,不需要外部的協(xié)議物理層,F(xiàn)X2 把所有的功能集成在一個芯片上。
然后下面這幅圖片是FX2 控制器的內部結構圖(參照了小梅哥的圖片,在此安利一波小梅哥的FPGA,真的很好)。
對于FX2 來說,可以通過兩個不同的模式將 FX2 連接至 FPGA。這兩個模式分別為通用可編程接口( GPIF)模式和從設備 FIFO 模式。
(1)GPIF 模式:在該模式下, FX2 作為外部系統(tǒng)的主設備使用,它所生成的所有控制信號用于對外部系統(tǒng)進行讀和寫操作。當外部系統(tǒng)不能作為 FX2 的主設備(例如,圖像傳感器與 FX2 相連接的 USB 攝像機應用)時,通常優(yōu)先使用 GPIF 模式。在這種情況下,接口實現(xiàn)的復雜操作將由 FX2 執(zhí)行。
(2)從設備 FIFO 模式(通常所用的模式,注重了解):在該模式下,連接至 FX2 的外部系統(tǒng)能夠生成讀和寫控制信號,因此,它能作為FX2 的主設備使用。在基于FPGA 的應用中,F(xiàn)X2 一般被配置為從設備 FIFO 模式。下圖為FX2 使用從設備FIFO 接口與外部FPGA 連接時的系統(tǒng)框圖。
簡單地說,在從設備FIFO模式下,F(xiàn)X2 中的8051 固件只是配置Slave FIFO 相關的寄存器。配置完成之后FPGA就可以按照Slave FIFO 的時序與主機進行通訊,通訊過程中不需要8051 固件。就相當于FPGA控制一個外設(比如就像控制一個串口一樣簡單)
通訊原理搞明白之后就是根據(jù)引腳設計電路,原理圖如下圖所示:
2.下面就介紹如何具體控制USB2.0模塊了:
Cypress 提供了一個基本的開發(fā)工具包,供用戶開發(fā)USB 應用,名為ySuiteUSB3.4,網(wǎng)上關于USB2.0開發(fā)的資料也有很多,包括安裝 FX2 的開發(fā)軟件以及安裝USB2.0模塊的驅動程序,并且很重要的是在使用FPGA 控制USB2.0模塊之前要對 USB2.0 芯片燒寫固件(不同的應用模式下,所燒寫的固件是不一樣的)。想要資料可以咨詢博主。
在配置完成之后可以通過官方網(wǎng)站提供的例程和上位機軟件,使用FX2 芯片上的8051 完成數(shù)據(jù)在OUT 和 IN 端點間的搬運工作,在整個數(shù)據(jù)傳輸?shù)倪^程中不需要有外部的設備(FPGA和STM32等控制器),通過USB2.0模塊內部就可以完成數(shù)據(jù)的傳輸。但是實際工程中往往是將下位機采集到的數(shù)據(jù)通過USB2.0模塊傳輸?shù)缴衔粰C中,所以只通過USB2.0模塊自身的數(shù)據(jù)回環(huán)實驗是沒有多大意義的,所以接下來就介紹如何通過FPGA來控制數(shù)據(jù)的傳輸。
測試USB2.0模塊輔助了AD模塊(點擊這里),將AD模塊采集回來的數(shù)據(jù)通過FPGA送到USB2.0模塊上,然后USB2.0模塊將數(shù)據(jù)傳輸?shù)诫娔X上,完成數(shù)據(jù)的高速采集,如下圖所示是程序的RTL視圖,從RTL視圖可以直觀地看到USB2.0模塊的使用方法:
其中關于讀取USB2.0模塊的數(shù)據(jù)可以直接通過FPGA軟件中的Signal Tap II邏輯分析儀來進行抓取,如圖所示:




歡迎加入至芯科技FPGA微信學習交流群,這里有一群優(yōu)秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!

點個在看你最好看

原文標題:怎樣通過FPGA軟件去讀取USB2.0模塊的數(shù)據(jù)
文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
-
FPGA
+關注
關注
1663文章
22491瀏覽量
638853
原文標題:怎樣通過FPGA軟件去讀取USB2.0模塊的數(shù)據(jù)
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
探索FSUSB40:低功耗高速USB2.0開關的卓越之選
帝奧微發(fā)布USB2.0接口OVP過壓保護開關芯片DIO5010
TUSB1210 USB2.0 收發(fā)器芯片:設計應用與技術詳解
對于CYUSB3014芯片,哪個函數(shù)可以讀取GPIF II端DMA緩沖區(qū)中緩存的實際數(shù)據(jù)量?
電流功率檢測USB3.0HUB,USB3.0擴展塢,可擴展的USB2.0
雙USB2.0接口靜電保護
怎樣通過FPGA軟件去讀取USB2.0模塊的數(shù)據(jù)
評論