1、前言
目前USB3.0的實現方案很多,但就簡單好用的角度而言,FT601應該是最佳方案,因為它電路設計簡單,操作時序簡單,軟件驅動簡單,官方甚至提供了包括FPGA驅動在內的豐富的驅動源碼和測試軟件;
本設計用FPGA驅動FT601芯片實現USB3.0數據通信,使用同步245模式通信,提供2套vivado工程源碼,一套是verilog代碼生成的彩條視頻經過圖像三幀緩存至DDR3后讀出,圖像給到FT601發(fā)送出去,PC機讀取FT601發(fā)來的視頻,并用QT上位機接收視頻并顯示出來,該工程針對的是手里沒有攝像頭或者視頻輸入源的朋友;如果你手里有OV5640攝像頭,那么適合第2套工程,第2套工程是采集OV5640攝像頭數據,視頻經過圖像三幀緩存至DDR3后讀出,圖像給到FT601發(fā)送出去,PC機讀取FT601發(fā)來的視頻,并用QT上位機接收視頻并顯示出來;
本設計完全可以模擬和實現USB3.0相機的功能;代碼編譯通過后上板調試驗證,可直接項目移植,適用于在校學生做畢業(yè)設計、研究生項目開發(fā),也適用于在職工程師做項目開發(fā),可應用于醫(yī)療、軍工等行業(yè)的USB3.0通信和圖像傳輸領域;
提供完整的、跑通的工程源碼和技術支持;
工程源碼和技術支持的獲取方式以及上板調試的演示視頻放在了文章末尾,請耐心看到最后;
2、FT601芯片解讀和時序分析
FT601功能和硬件電路
FT600/601Q 的技術參數如下:
FT600&601Q 芯片是 FT 最新推出的 USB3.0 to FIFO interface IC,實現 USB3.0 與 16/32bit 并行 IO 接口之間的數據傳輸。
整個 USB 通信協(xié)議全部由芯片驅動自行完成,開發(fā)者無須考慮 USB 底層固件的編程。
兼容支持 USB3.0(5Gbps),向下兼容 USB2.0(480Mbps and 12Mbps)傳輸。
高達 8 個可配置 Endpoint. >>支持 2 種 FIFO 傳輸協(xié)議,最大傳輸可達 400MB/s。
芯片內部有 16K 字節(jié)的緩沖區(qū),可以進行數據的大吞吐量操作。
支持遠程喚醒功能。
芯片支持多種 IO 電壓:1.8V,2.5V.3.3V。
通過 16bit D[O:15]或 32bit D[0:31]并行數據線和讀寫狀態(tài)/控制線 RXF、TXE、RD、WR,加上時鐘 CLK,使
能 OE 信號線就可實現與 CPU/FPGA 的數據交換。
該芯片內部集成 1.0V LDO,可提供給芯片核心部分使用。
工業(yè)級芯片,工作溫度范圍-40 to 85℃。
芯片框架如下:
外圍電路設計參考如下:
FT600/601Q 支持的多種傳輸模式,其中 245 Synchronous FIFO 模式和 Multi-Channel FIFO 模式是我們最常用的模式。我們這里介紹的 demo 以 245 Synchronous FIFO 模式為例;傳輸模式通過GPIO引腳高低電平配置,配置真值表如下:
FT601讀時序解讀
245 Synchronous FIFO 模式讀時序如下:
RXF_N為讀數據狀態(tài)信號,RXF_N為低電平期間FPGA可以讀取FT601數據;
檢測到RXF_N低電平后,拉低OE_N和RD_N,然后開始讀數據;
檢測到RXF_N高電平后,拉高OE_N和RD_N,然后退出讀數據狀態(tài);
FT601寫時序解讀
245 Synchronous FIFO 模式寫時序如下:
TXF_N為讀數據狀態(tài)信號,RXF_N為低電平期間FPGA向FT601寫入數據;
檢測到TXF_N低電平后,拉低WR_N,然后開始向FT601寫入數據;
檢測到TXF_N高電平后,拉高WR_N,然后退出寫數據狀態(tài);
3、我這兒的 FT601 USB3.0通信方案
我這兒現有的FPGA基于FT601和FT602的USB3.0通信方案主要有簡單的測速方案、圖像傳輸方案,圖像傳輸方案包括簡單的彩條傳輸采集、OV5640攝像頭傳輸采集、HDMI視頻采集,HDMI視頻采集抓拍、USB3.0 UVC視頻等等,所有工方案均包括FPGA工程和QT上位機源碼;感興趣的可以去我的FT601 USB3.0通信專欄閱讀,專欄地址如下:
https://blog.csdn.net/qq_41667729/category_12339160.html?spm=1001.2014.3001.5482
4、vivado工程1–彩條視頻采集傳輸
開發(fā)板FPGA型號:xc7k325tffg900-2;
開發(fā)環(huán)境:vivado2022.2;
輸入:彩條視頻;
輸出:FT601–USB3.0接口;
應用:模擬和實現USB3.0相機的功能;
詳細設計框圖及其原理
詳細設計框圖如下:
彩條視頻:
用verilog代碼生成一個VGA時序的,分辨率為1280x720@60Hz的彩條視頻,完全可以模擬各種相機和視頻輸入設備,手里沒有攝像頭或者板子沒有視頻輸入接口的兄弟可以拿這個東西去用,很實用;
FDMA圖像緩存:
FDMA圖像三幀緩存,經常看我文章的兄弟都知道,這是我慣用的圖像緩存套路,它由FDMA控制器和FDMA構成,作用是將輸入的視頻緩存到DDR3里做三幀緩存后再讀出來,目的是使得圖像數據的輸入輸出跨時鐘域讀寫,輸出圖像平穩(wěn)無撕裂等現象;關于FDMA的詳細設計說明,請參考我之前的文章:點擊直接前往
FT601 模塊:
就是FT601的verilog驅動代碼,根據FT601芯片讀寫時序實現接口對接,這里很簡單;關于FT601驅動的詳細設計說明,請參考我之前的文章:點擊直接前往
FT601 驅動:
這是官方給的FT601 驅動,文件已包含在了我提供的資料包里;
QT上位機:
基于c++的QT,調用官方API,實現USB3.0接口的視頻數據實時采集并顯示,我提供的資料包里有QT上位機軟件和QT源碼,做嵌入式軟件開發(fā)的兄弟可以拿去參考;
vivado工程解讀
工程Block Design如下:
綜合后的工程代碼架構如下:
綜合編譯完成后的FPGA資源消耗和功耗預估如下:
5、vivado工程2–OV5640視頻采集傳輸
開發(fā)板FPGA型號:xc7k325tffg900-2;
開發(fā)環(huán)境:vivado2022.2;
輸入:OV5640攝像頭;
輸出:FT601–USB3.0接口;
應用:模擬和實現USB3.0相機的功能;
詳細設計框圖及其原理
詳細設計框圖如下:
OV5640攝像頭和視頻采集:
OV5640分辨率為1280x720@60Hz,純verilog實現的i2c協(xié)議實現對齊內部寄存器的配置,純verilog實現的圖像采集模塊將OV5640輸出視頻采集為VGA時序的RGB888視頻輸出;
FDMA圖像緩存:
FDMA圖像三幀緩存,經??次椅恼碌男值芏贾?,這是我慣用的圖像緩存套路,它由FDMA控制器和FDMA構成,作用是將輸入的視頻緩存到DDR3里做三幀緩存后再讀出來,目的是使得圖像數據的輸入輸出跨時鐘域讀寫,輸出圖像平穩(wěn)無撕裂等現象;關于FDMA的詳細設計說明,請參考我之前的文章:點擊直接前往
FT601 模塊:
就是FT601的verilog驅動代碼,根據FT601芯片讀寫時序實現接口對接,這里很簡單;關于FT601驅動的詳細設計說明,請參考我之前的文章:點擊直接前往
FT601 驅動:
這是官方給的FT601 驅動,文件已包含在了我提供的資料包里;
QT上位機:
基于c++的QT,調用官方API,實現USB3.0接口的視頻數據實時采集并顯示,我提供的資料包里有QT上位機軟件和QT源碼,做嵌入式軟件開發(fā)的兄弟可以拿去參考;
vivado工程解讀
工程Block Design如下:
綜合后的工程代碼架構如下:
綜合編譯完成后的FPGA資源消耗和功耗預估如下:
6、上板調試驗證
先連接板子和電腦,然后打開QT上位機軟件,資料包里的目錄如下:
彩條工程輸出QT接收結果:
ila波形抓取如下:
OV5640工程輸出QT接收結果:文章來源:http://www.zghlxwxcb.cn/news/detail-511399.html
7、福利:工程代碼的獲取
福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網盤鏈接方式發(fā)送,
資料獲取方式1:私,或者文章末尾的V名片。
網盤資料如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-511399.html
到了這里,關于FPGA驅動FT601實現USB3.0相機 OV5640視頻采集 提供2套工程源碼和QT上位機源碼的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!