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



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

點個在看你最好看

原文標題:怎樣通過FPGA軟件去讀取USB2.0模塊的數據
文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
-
FPGA
+關注
關注
1644文章
21993瀏覽量
615350
原文標題:怎樣通過FPGA軟件去讀取USB2.0模塊的數據
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
雙USB2.0接口靜電保護

如何使用USB2.0將數據從fpga傳輸到PC?
調試CX3 USB3.0兼容USB2.0出圖的問題求解
在automaster和autoslave項目中如何配置參數來滿足usb3.0和usb2.0的數據傳輸?
推薦一款USB2.0 MTT 2.0HUB SL6243
TUSB8041是否支持將USB2.0通道的數據編碼到USB3.0通道去?
FPGA + USB2.0 PHY USB3300 實現高速USB2UART
USB 2.0信號質量測試

評論