1. 程式人生 > >米聯客(MSXBO)USB3.0 UVC攝像頭實現基於FT602Q晶片方案

米聯客(MSXBO)USB3.0 UVC攝像頭實現基於FT602Q晶片方案

USB3.0 UVC攝像頭實現基於FT602Q晶片方案

USB3.0介面晶片FT602Q支援UVC協議,可以很方便的實現一個USB相機。這裡我們採集HDMI輸入的視訊訊號,實現了一個USB3.0的HDMI採集卡。

邏輯結構如下圖:

可以看到,總共有兩個模組,Video_Image_Processor處理從HDMI晶片輸入的視訊資料流,將RGB24BITS資料流轉換為YUV422的資料流。ft602_uvc_top配置ft602介面晶片,將YUV422的視訊資料流傳送給介面晶片。

通過USB3.0連線線連線到PC機,形成一個照相機裝置。

 

視訊制式轉換部分不再分析,我們看一下FT602的邏輯部分,結構如下:

可以看到頂層模組ft602_uvc_top.v包含了7個子模組。其中,sys_pll.v用於生成ft602模組所需的時鐘,主要是生產視訊時許所需的時鐘27MHz (VGA), 74.25MHz (HD) and 148.5MHz (Full HD) 。

模組ft602_i2c_slv.v模擬一個IIC從機,FT602Q晶片通過該介面讀取FPGA中視訊資訊,同時將上位機的配置資訊通過該介面配置到FPGA。

模組ft602_uvc_reg.v包含了UVC協議對應的一些暫存器,關於視訊制式的資訊也從這裡修改。

模組ft602_uvc_fsm.v是uvc在匯流排讀寫FIFO控制的狀態機,四個通道,實際工程中,我們只使用一個通道。

模組Module ft602_pre_fet.v資料預讀取,用於優化時序。類似於cache功能。

模組ft602_pch_inp.v為視訊流處理模組,將HDMI資料流轉換為FT602Q對應的介面資料格式,通過FIFO快取。

其中,ft602_patt_gen模組生成一個測試用的視訊源。

模組ft602_hdmi_rx處理HDMI輸入視訊流資料或者前面生成的測試資料流,將視訊格式的資料流轉換為FT602匯流排對應的資料格式。

模組ft602_dclk_fifo控制雙口ram,接收ft602_hdmi_rx模組的視訊流資料,同時對外提供FIFO讀介面。

模組結構如下圖:

注意,在我們的工程中,只是用了一個通道,也就是Video ch0 。

好的,工程結構瞭解後,編譯工程,下載bit檔案到開發板,連線板上usb3.0介面到PC機的USB3.0介面,連線HDMI輸入視訊源。這時,就能在照相機裝置中看到FTDI Superspeed Video Channel1的裝置。

這證明我們的usb裝置已經正確識別到了。

這時,開啟win10系統自帶的camera軟體,就能看到從HDMI介面輸入的視訊了。

但是,有時有些裝置還是不能成功開啟視訊。這時,需要我們使用工具設定FT602Q的一些引數了。如下圖:

首先,雙擊FT602WinUSBInstallation.exe安裝驅動,安裝上驅動之後就可以通過軟體修改FT602的配置了。

在資料夾ConfigurationProgrammer中,開啟軟體FT602ChipConfigurationProg.exe

 

讀取FT602Q晶片的配置資訊,這裡可以看到裝置的基本資訊,同時還包含FIFO的配置和IIC的配置,這部分基本採用預設方式就可以。點選FIFO Channel1選項卡,轉到高階設定中:

注意,這裡的BurstBuffer和FIFO Buffer都設定為最大的16K。同時我們也可以修改裝置描述FTDI Superspeed Video Channel1,換成一個自定義的裝置名。

高階選項中主要涉及到視訊制式和處理的資訊,這裡我們只調整Controls選項卡下的SS Frame Info,這是因為我們做HDMI傳輸需要使用的USB的超速傳輸模式。

來看一下SS Frame Info:

我們看到在視訊制式資訊裡,已經包含了1080P的資訊,但是,有的裝置並不能直接識別,這裡序列1的制式資訊為640*480的,我們手動修改,將1920*1080的制式資訊提升到最前面:

 

然後將配置資訊寫入器件:

這樣,重啟是裝置,就可以在視訊軟體中開啟裝置了。

 

 

相關推薦

(MSXBO)USB3.0 UVC攝像頭實現基於FT602Q晶片方案

USB3.0 UVC攝像頭實現基於FT602Q晶片方案 USB3.0介面晶片FT602Q支援UVC協議,可以很方便的實現一個US

(MSXBO)osrc-lab LINUX開發包使用說明

使用XILINX ZYNQ FPGA開發LINUX使用petalinux大行其道,沒錯使用petalinux是比較簡潔和高效的辦法

(MSXBO)MZ7035FC PCIE Nvme SDD驗證測試

1、概述 NVM Express(NVMe),或稱非易失性記憶體主機控制器介面規範(Non-Volatile Memory ex

(MSXBO)通過簡單的加法器瞭解LUT查詢表實現加法功能

1.1概述 由於FPGA需要被反覆燒寫,它實現組合邏輯的基本結構不可能像ASIC那樣通過固定的與非門來完成,而只能採用一種易於反覆配置的結構。查詢表可以很好地滿足這一要求,目前主流FPGA都採用了基於SRAM工藝的查詢表結構。LUT本質上就是一個RAM。它把資料事先寫入RAM後, 每當輸入一個

ZYNQ/SOC 精品教程 S03-CH01基於FDMA記憶體讀寫測試

軟體版本:VIVADO2017.4 作業系統:WIN10 64bit 硬體平臺:適用米聯客 ZYNQ系列開發板 米聯客(MS

ZYNQ/SOC 精品教程 S02-CH25 利用OSD實現雙目攝像頭字幕疊加

軟體版本:VIVADO2017.4 作業系統:WIN10 64bit 硬體平臺:適用米聯客 ZYNQ系列開發板 米聯客(MS

——DMA 閉環測試 學習心得

剛學了米聯客的DMA閉環測試這一章,這裡記錄一下sdk的理解 /*………………主函式………………*/ int main(void) { init_intr_sys(); axi_dma_test(); } 主函式很簡單就兩個子函式 首先來看一下 init_intr_sy

ZYNQ/SOC 精品教程 S02-CH19 利用BRAM進行PS與PL間資料互動

軟體版本:VIVADO2017.4 作業系統:WIN10 64bit 硬體平臺:適用米聯客 ZYNQ系列開發板 米聯客(MS

ZYNQ/SOC 精品教程 S05-CH06 可程式設計差分晶振 Si570 使用

6.1概述      使用 FPGA 的高速序列收發器(GTP、GTX 等)設

win 7 旗艦版鏡像 註入USB3.0 驅動

win 7 旗艦版鏡像 註入usb3.0 驅動問題來源:原版的win7鏡像沒有集成USB3.0的驅動,然後如今的電腦主板基本是XHCI主控(以前是EHCI的),這一變動導致在安裝Win7的過程中會出現USB接口全部失靈的狀況,所以在安裝時無法識別USB3.0接口的鍵盤鼠標和U盤。這樣我們就只能在映像文件中添加

dell usb3.0驅動故障

usb 驅動 dell 一、故障現象 dell3046 dell3050新主機安裝操作系統時,在BIOS、pe中能夠正常使用USB鍵鼠,安裝成功後,進入windows登錄後,安全模式,USB鍵鼠無任何反應。二、處理過程 1.因使用wds安裝系統,首先錯誤的認為是wds本身的問題,嘗試在WD

USB3.0及NVME SSD安裝WIN7X64

格式化 指導 流氓 baidu 很多 為什麽 無法開機 影響 容易 USB3.0及NVME SSD安裝WIN7X64https://tieba.baidu.com/p/4822034273?pn=1所有的人都是菜鳥過來的,不過有些人懂得自己動手找到答案;有些人則是懶得動手,

usb2.0usb3.0usb3.1、type-c 接口含義與區別

區別 wikipedia baidu 分享 3.0 沒有 速度 ID 外觀 簡單說: usb3.0比2.0的傳輸速率快,充電快,能向下兼容2.0 usb3.1比2.0的傳輸速率更快、充電更快,同兼容 先看下usb2.0接口 usb2.0 理論傳輸速率4

win7 集成usb3.0鏡像提供

mikrotik In e-mail TP 基於 eba 找不到 .com 搜索 新買的x270筆記本 改裝win7 找不到硬盤 經搜索是新款cpu架構變了 現提供集成usb3.0 驅動的鏡像 自己制作 基於msdn 的iso制作 鏈接:https://pan

Z370主板的黑蘋果usb3.0驅動安裝

pin bitbucket bucket 端口 ons library b- margin download p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454

iTOP-4412開發板-QtE4.7-UVC攝像頭使用例程

只有一個 tftp 命令 文件拷貝 用例 qmake 添加 攝像頭 更新 本文檔主要介紹 迅為iTOP-4412 開發板 QtE4.7 系統下 UVC 攝像頭的使用過程。 工程文件是:“iTOP-4412-QtE4.7-UVC_V1.0”(註意版本更新)。用戶可以直接運行

MFC+OPENCV3.0顯示攝像頭畫面

因為3.0以後CvvImage(點選即可下載)被刪除了,所以需要下載這個類,然後新增到工程目錄下。 測試效果圖: (攝像頭被擋住了,所以是黑的) 一、開啟攝像頭 新增一個成員變數 VideoCapture m_capture; void COPENCV攝像頭操作Dlg

OPENCV3.0開啟攝像頭或者視訊顯示畫面

OPENCV3.0大大的簡化了視訊流的讀取,用了>>流操作符來讀取幀。 獲取攝像頭畫面: #include <opencv2/opencv.hpp> using namespace cv; int main() { VideoCapture ca

解決android6.0開啟攝像頭許可權"Failed to connect to camera service"的問題 ,動態獲取許可權

android6.0使用camera.open()時需要在onCreate()裡面新增如下程式碼,否則會報錯"Failed to connect to camera service": if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)

基於USB3.0、DP1.2的網路隔離資料安全傳輸方案

根據某省電網設計規劃,資料交換區是資訊內網(Ⅳ區)與資訊外網(Ⅴ區)進行資料互動唯一邊界。它的安全性與可用性將是此安全邊界建設的重中之重。當前內外網平臺效能及可靠性無法滿足當前及未來外網業務發展需要,在安全及效能上已經成為外網業務發展瓶頸,因此需要通過建立內外網資料交換區達到強隔離、高安全性及高實時