硬件平台:适用XILINX 7系列FPGA(没有USB3.0接口的开发板需要购买FEP USB3.0子卡) 米联客(MSXBO)技术社区: www.uisrc.com 欢迎大家给我提问!! 米联客技术社区新域名www.uisrc.com正在备案中,备案期间请继续使用老域名www.osrc.cn 1.1概述 UVC全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,目前已成为USB org标准之一。支持 USB Video Class (UVC) standard 1.1可以让相机在所有的作业系统以及平台中使用(Windows, Linux, Mac etc.)。用户只需连接相机便可进行图像传输,而无需安装任何驱动程序。UVC相机最适合作为工业网络相机在视频会议、站亭系统、小型设备生产、物流业等应用中使用。 FT602是USB-to-FIFO接口SuperSpeed USB(USB 3.1 Gen 1)USB视频类(UVC)桥接芯片具有以下特点 1、支持USB 3.1 GEN 1超高速: (5Gbps)/ USB 2.0高速(480Mbps) 2、支持USB传输类型: 控制/散装/中断 3、支持UVC 1.1版: 支持最多4个视频输入通道 3、FIFO总线: 支持2个并行从FIFO总线协议,245 FIFO和多通道FIFO模式,数据突发速率高达400MB / s,32位并行接口 4、内置16kB FIFO数据缓冲RAM。 5、用于视频设备的内置I2C主接口 6、组态 支持多电压I / O:1.8V,2.5V和3.3V。 内部LDO 1.0V稳压器。 集成的上电复位电路。 用户可编程USB和UVC描述符。 工业工作温度范围:-40至85⁰C。 符合RoHS标准的紧凑型无铅QFN-76封装 1.2 硬件方案 1.2.1 芯片框图 2.2.2芯片封装 FT602Q的封装和FT601Q的封装是完全兼容的,而且是QFN封装,焊接方便 2.2.3 参考电路 可以看到参考电路非常简单,只需要几个电容和几个电阻就可以搞定这方案。 1.3代码结构 代码结构介绍以UVC相机,OV5640方案介绍: 其中关于FDMA的构架部分我们不再介绍,FMDA的IP在我们米联客视频缓存的方案中大量应用,具体的内容可以参考专门讲解FDMA的章节,对于FDMA使用不熟悉的,可以论坛给我们发帖。 这里重点讲2个模块: 1、RGB2YUV-将RGB24BITS数据流转换为YUV422的数据流, 2、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为视频流处理模块,将IMG数据流转换为FT602Q对应的接口数据格式,通过FIFO缓存。 其中,ft602_patt_gen模块生成一个测试用的视频源。 模块ft602_img_rx处理IMG输入视频流数据或者前面生成的测试数据流,将视频格式的数据流转换为FT602总线对应的数据格式。 模块ft602_dclk_fifo控制双口ram,接收ft602_img_rx模块的视频流数据,同时对外提供FIFO读接口。 模块结构如下图: 注意,在我们的工程中,只是用了一个通道,也就是Video ch0 。 1.4下载测试 好的,工程结构了解后,编译工程,下载bit文件到开发板,连接板上usb3.0接口到PC机的USB3.0接口,连接IMG输入视频源。这时,就能在照相机设备中看到FT Superspeed Video Channel1的设备。 这证明我们的usb设备已经正确识别到了。 这时,打开win10系统自带的camera软件,就能看到从IMG接口输入的视频了。 但是,有时有些设备还是不能成功打开视频。这时,需要我们使用工具设置FT602Q的一些参数了。如下图: 首先,双击FT602WinUSBInstallation.exe安装驱动,安装上驱动之后就可以通过软件修改FT602的配置了。 在文件夹ConfigurationProgrammer中,打开软件FT602ChipConfigurationProg.exe
读取FT602Q芯片的配置信息,这里可以看到设备的基本信息,同时还包含FIFO的配置和IIC的配置,这部分基本采用默认方式就可以。点击FIFO Channel1选项卡,转到高级设置中: 注意,这里的BurstBuffer和FIFO Buffer都设置为最大的16K。同时我们也可以修改设备描述FT Superspeed Video Channel1,换成一个自定义的设备名。 高级选项中主要涉及到视频制式和处理的信息,这里我们只调整Controls选项卡下的SS Frame Info,这是因为我们做IMG传输需要使用的USB的超速传输模式。 来看一下SS Frame Info: 我们看到在视频制式信息里,已经包含了1080P 720P 640P的信息,但是,有的设备并不能直接识别哪一种分辨率,比如我们能这里使用: OV5640设置1280X720 分辨率 60帧 时钟74.25M 9V034 设置 640X480 分辨率 60帧 时钟 25M HDMI 设置 1920X1080 分辨率 30帧 时钟 74.25M
1.5 UVC OV5640相机测试 本例子中使用的是OV5640摄像头设置如下,然后将配置信息写入器件:
这样,重启是设备(重新插拔USB),就可以在视频软件中打开设备了。 1.6 UVC 9V034相机测试
1.7 UVC HDMI相机测试 |
扫描关注,了解最新资讯