USB3.0 UVC高清摄像头实验

小梅哥 2019-04-01 22:19

介绍

基于AC6102_V2开发板的USB Video Class摄像头实验,实现了通过AC6102开发板上的USB3.0芯片将OV5640摄像头采集到的图像数据传输到PC机上,并使用UVC图像显示软件显示的功能。

主要参数指标:

USB3.0速率等级

YUV422图像格式传输

1280*720@30fps帧率


UVC介绍:

       UVC,全称为:USB video class USB video device class。是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,目前已成为USB org标准之一。

如今的主流操作系统(Windows XP SP2 and later, Linux 2.4.6 and later, MacOS 10.5 andlater)都已提供UVC设备驱动,因此符合UVC规格的硬件设备在不需要安装任何的驱动程序下即可在主机中正常使用。使用UVC技术的包括摄像头、数码相机、类比影像转换器、电视棒及静态影像相机等设备。

最新的UVC版本为UVC 1.5,由USB Implementers Forum定义包括基本协议及负载格式。

网络摄像头是第一个支持UVC而且也是数量最多的UVC设备,目前,操作系统只要是 Windows XP SP2 之后的版本都可以支持 UVC,当然 Vista 就更不用说了。Linux系统自2.4以后的内核都支持了大量的设备驱动,并可以支持UVC设备。

使用 UVC 的好处 USB Video这块也成为一项标准了之后,硬件在各个程序之间彼此运行会更加顺利,而且也省略了驱动程序安装这一环节。

 

AC6102FPGA开发板UVC摄像头实验介绍

本实验基于Cypress厂家提供的应用手册AN75779。在该应用手册中,并未使用到FPGA芯片,而是直接使用FX3芯片连接图像传感器,如下图1所示。即一个最精简的基于FX3芯片的UVC摄像头是不需要FPGA芯片的参与的。但在实际的应用中,可能需要先对图像进行一定的预处理再送往PC端显示处理,为了降低PC端的运算开销,往往将这一部分预处理工作分配到FPGA中,利用FPGA强大的并行处理优势实现。

AC6102开发板上,设计了一款拥有30K逻辑单元的FPGA主芯片EP4CE30和一个FX3芯片,FX3芯片的所有数据线和控制线,除IICIISSPI等以外,全部连接到了FPGA上。因此当使用AC6102开发板进行UVC实验时,需要通过FPGA芯片进行一个简单的桥接。

桥接有两种方式,一种是直接使用组合逻辑,将输入连接到输出,例如:

assign LV = cmos_href;

assign FV = cmos_vsync;

assign DQ ={8'd0,cmos_data};

       当使用这种方式时,是直接的输入IO的信号经过布线直接连接到了输出IO上,没有D触发器,因此难以进行时序约束。

       另一种能够支持时序约束的桥接方式是,使用cmos_pclk将所有信号打2拍之后输出,如下图2所示。这样的话即每个信号从输入到输出,会经过2级寄存器传输,这样在进行时序约束时就非常方便了,一级寄存器作为输入寄存器,另一级作为输出寄存器,既方便布局布线,也利于时序分析。

本实验中采用第二种方式进行桥接,即在输入和输出信号之间插入2级寄存器的方式。

    reg LV_r,FV_r,PCLK_r;

    reg[15:0]DQ_r;

 

    always@(posedge cmos_pclk)begin

         LV_r <= cmos_href;

         FV_r <= cmos_vsync;

         DQ_r <={8'd0,cmos_data};

    end

 

    always@(posedge cmos_pclk)begin

         LV <= LV_r;

         FV <= FV_r;

         DQ <= DQ_r;

    end

 

    assign PCLK = cmos_pclk;

 

由此,整个基于AC6102开发板的UVC摄像头框图如下图3所示。

可以看到,与Cypress提供的UVC应用方案不同,该应用方案在图像传感器和FX3之间插入了一片FPGA,用作图像的转发,并将原本的控制图像传感器的IIC功能从FX3中移植到了FPGA中。实际上,直接使用FX3原本的IIC控制器来实现图像传感器的设置也是可以的,不过这涉及到FX3固件的修改,而且不同的图像传感器需要使用不同的初始化代码,也就意味着需要使用不同的FX 3固件,会增加开发工作量,因此在本例中使用FPGA来完成图像传感器的配置初始化工作。这样,对于FPGA开发工程师来说,可以避开不熟悉的FX3固件开发,能够有效减少开发工作量。

AC6102 UVC开发包文件介绍

AC6102 UVC应用工程共提供以下几个文件

  1. OV5640_USB30_UVC.qar

  2. OV5640_UVC_30FPS.png

  3. OV5640V2+AC6102V2.JPG

  4. UVC_AN75779.img

  5. UVC_AN75779.rar

  6. VirtualDub_1_10_4_35456.1400664289.zip

  7. Ø OV5640_USB30_UVC.qar文件为基于AC6102V2开发板和OV5640V2摄像头模块的FPGA应用工程,该工程主要实现了摄像头数据到FX3芯片的转发工作和OV5640摄像头的初始化配置工作。将该文件放置在一个非中文目录下,双击就可以直接使用Quartus软件打开。

  8. Ø OV5640_UVC_30FPS.png文件为使用该工程进行图像采集显示的效果图

  9. Ø OV5640V2+AC6102V2.JPG文件为进行试验时的硬件连接图

  10. Ø UVC_AN75779.img文件为USB芯片的固件,由于该固件尺寸为139KB,超过了EEPROM存储器的128K容量,因此实验时只能烧写到RAMSPI FLASH中。

  11. Ø UVC_AN75779.rar文件为USB芯片的固件源码,基于Cypress厂家提供的工程源码,我们进行了一定的修改,主要就是屏蔽了IIC部分,因为本例中没有用到IIC,实际上厂家的源码不做任何修改也是可以直接使用的。当初屏蔽这部分是为了降低固件尺寸,以期能够降低到128KB以内,不过没有降下来。

  12. Ø VirtualDub_1_10_4_35456.1400664289.zip文件是PC端的UVC图像显示软件。

实验过程

连接USB BlasterJTAG下载口,连接OV5640摄像头到网口左侧的Camera接口,将USB3.0数据线一端插入AC6102开发板,另一端插入PC端的USB3.0接口。将电源开关拨到ON位置。如下图5所示:

注意,这里一定要插入电脑的USB3.0接口,现在的电脑一般都带有USB3.0接口了,识别某USB接口为USB3.0还是2.0的方式很简单,可以通过以下三种方式识别。

1、根据USB协会标准定义,USB3.0typeA母口应该为天蓝色,如果您发现您的USB接口为蓝色,那一定是USB3.0接口。如下图6所示。当然,现在很多电脑厂商在生产时并未严格遵守这一协定,因此,有的电脑单凭颜色还是无法区分USB3.0USB2.0

2、查看USB接口附近的图案标识。USB3.0一般称作SuperSpeed USB,因此如果该USB接口对应的图案有SS标识,那一定是USB3.0接口。如下图7,右侧的带有SS标识的为USB3.0接口,而左侧的没有SS标识的则不是USB3.0接口。

3、如果上述两种方法还是无法区分的话,可以用最直接的办法,看看这个USB接口里有几个触点和簧片,USB3.0的只有4个,而USB3.0的有9个,如下图8所示:

双击OV5640_USB30_UVC.qar文件,打开之后进行全编译以得到sof文件。并将sof文件下载到FPGA中。

打开CypressControl Center软件,烧写UVC_AN75779.img文件到FX3芯片的RAM中。该软件需要用户已经安装了FX3-SDK,如未安装,可参看AC6102USB3.0开发教程相关章节先安装软件。如何烧写img文件,也可参看AC6102USB3.0开发教程相关章节。

       烧写完成后,系统会自动安装驱动,安装完成后会在设备管理器下的图像设备中出现一个名为FX3的设备,如下图9所示。该设备就是我们的UVC摄像头了。

将文件包提供的VirtualDub_1_10_4_35456.1400664289.zip解压,并运行VirtualDub.exe文件,如下图10所示。打开之后,选择File—>Capture AVI以进入图像捕获模式,如下图11所示:

然后选择Device—>FX3(DirectShow),如下图11所示,如果软硬件配置都没有问题的话,就可以在软件中看到显示的图像了。

12为使用该UVC工程截图的图片,可以看得到实时帧率为30fps左右。

关于FX3固件代码的理解和修改,请参看AC6102开发板USB3.0开发教程相关章节内容。


小梅哥 更新芯航线团队出品的各种资料
评论 (0)
  • 本书涵盖了边缘计算的各个方面,通过这本书可以对边缘计算有比较全面的认识。书中从边缘计算的发展历史到边缘计算的硬件,存储,通信,安全性,架构,数据处理,开源框架等方面概括性的介绍了边缘计算各个方面涉及的内容。由于本人是通信运营商的一线网络员工,所以对书中的通信内容比较感兴趣,大致介绍一下书中相关内容。翻译搜索复制5G的发展无疑促进了边缘计算的应用,5G设计之初其实就是为万物互联而生的,只不过现阶段的大部分的用户只能感受到其中的一个业务场景——eMBB,eMBB为增强移动宽带,对应的是要求高速,大带
    lospring3 2024-03-16 11:10 112浏览
  • 安装Ubuntu后,可能会影响到Windows 10的启动方式,特别是在使用双系统引导时。这可能是导致您无法通过按F8进入安全模式的原因。以下是一些可能的原因和解决方法:启动管理器更改:安装Ubuntu后,GRUB或其他启动管理器可能成为默认的启动引导程序。这些启动管理器可能不会像Windows那样响应F8键进入安全模式的指令。快速启动功能:Windows 10的“快速启动”功能可能会影响您进入安全模式的能力。当启用快速启动时,系统会跳过某些启动步骤,这可能会阻止您通过F8进入安全模式。系统文件
    丙丁先生 2024-03-19 08:54 46浏览
  • 使美国在21世纪保持安全,美国防部发布最新投资战略,12项领先发展科技,两项是传感器技术!近日(3月8日),美国国防部官网公布了《2024财年投资战略》(INVESTMENT STRATEGY FOR THE OFFICE OF STRATEGIC CAPITAL),确定了战略资本办公室(OSC)重点关注的优先关键组件技术行业投资战略,这是美国最新重量级投资计划。2022 年 12 月,美国国防部长劳埃德·奥斯汀三世 (Lloyd J. Austin III) 启动了战略资本办公室 (OSC),
    传感器专家网 2024-03-18 19:31 63浏览
  • 导读:网关设备是确保数据流畅通信的关键。虹科PCAN系列网关凭借卓越性能和创新技术,为众多应用提供了高效稳定的解决方案。本文将深入探讨虹科PCAN系列网关内部存储空间,特别是EEPROM和SPI Flash的配置与利用,并解析如何通过C编程实现快速实时的信号存读。通过虹科PCAN-Router FD的实例,我们将展示这些存储空间如何助力网关设备在复杂环境中保持卓越性能。一、网关内部存储空间概览网关的内部存储空间经过精心设计,旨在满足快速、稳定的数据处理需求。除了常规的RAM外,虹科PCAN系列网
    虹科汽车智能互联 2024-03-18 13:56 94浏览
  • 来源:虹科汽车电子 虹科技术 | PCAN View功能细讲:从实时监测到错误帧分析原文链接:https://mp.weixin.qq.com/s/yOonZ5NqSCnKjURr9hNC6A欢迎关注虹科,为您提供最新资讯!#PCAN #CAN总线 #工业通讯导读相信使用过PCAN工具的朋友都知道虹科PCAN-View这款免费软件,它具有直观的用户界面,可以实时监测和分析CAN总线上的数据帧,并提供过滤、发送和报文记录。但你知道吗?它其实不只是简单收发报文,虹科PCAN-View还能自动检测和报
    虹科电子科技 2024-03-18 15:48 97浏览
  • 艾迈斯欧司朗全新“样片申请”小程序,逾160种LED、传感器、多芯片组合等产品样片一触即达。轻松3步完成申请,境内免费包邮到家!本期推荐艾迈斯欧司朗首款支持UV-A辐射、环境光闪烁检测功能的微型环境光传感器TSL2585。TSL2585尺寸小巧,采用L2.0mm xW1.0mm xH0.35mm 6引脚OLGA超薄封装,非常适用于可穿戴设备以及手机等这类产品尺寸和厚度受到限制的应用。基于先进的干涉滤光技术,TSL2585的每一个感光像素上都精确沉积了特定光学设计的滤光膜,整体约5µm厚,由60多
    艾迈斯欧司朗 2024-03-18 18:35 102浏览
  • 电脑上的很多东西都是赚钱的手段,知道了就轻松自在。如果你在Win10、11等安装应用程序,出现:应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。你各种删除再安装,清理注册表,各种残留清理,各种模块开关设置、甚至重装系统,都不行,你可以考虑安装一下:通过微软网站:Microsoft visual C++ 2005Microsoft visual C++ 2008因为微软自带系统没有这两个基础程序,旧的应用程序多数要用的
    老黄姓黄 2024-03-17 15:59 186浏览
  • 导读:相信使用过PCAN工具的朋友都知道虹科PCAN-View这款免费软件,它具有直观的用户界面,可以实时监测和分析CAN总线上的数据帧,并提供过滤、发送和报文记录。但你知道吗?它其实不只是简单收发报文,虹科PCAN-View还能自动检测和报告CAN总线上的错误帧,帮助用户快速发现和解决通信问题。无论是在汽车、工业自动化还是嵌入式系统领域, 虹科PCAN-View都是一个功能丰富且广泛应用的工具,为用户优化CAN总线系统的性能和提升通信的可靠性提供了极大的帮助。本文带你一起走进这些功能细节,深入
    虹科汽车智能互联 2024-03-18 13:54 115浏览
  • RD-03E_V1.0的使用手册包含设备的基本功能、硬件规格、软件配置和安装条件等详细信息。以下是一些可能包含在手册中的关键信息:基本功能:介绍RD-03E的主要功能和技术特点,例如精准测距或手势识别能力。硬件规格:提供RD-03E模块的详细硬件参数,包括尺寸、接口类型、电气特性等。软件配置:说明如何进行软件设置,包括固件升级、参数调整等操作指南。安装条件:描述模块的工作环境要求,如温度范围、湿度限制等。烧录说明:指导如何使用支持的工具(如keil 5 IDE)和烧录器(如CMSIS-DAP、J
    丙丁先生 2024-03-16 12:54 79浏览
  • 驱动功率和负性阻抗是石英晶体谐振器设计中的关键参数,直接影响振荡线路的性能和稳定性。驱动功率DL驱动功率指的是石英晶体谐振器在振荡过程中所消耗的功率,通常以微瓦为单位表示。将一根引线焊接到晶体上来测量电流值在振荡线路的设计中,必须提供适当的功率使石英晶体谐振器开始振荡并维持振荡。为了保证石英晶体谐振器的稳定性和长期可靠性,在振荡线路设计中应该避免提供过高的驱动功率。不同封装及频率的激励等级参考值:直插KX49U,贴片KX49M100uW(500Max)KOAN贴片晶体MHz (1612~7050
    koan-xtal 2024-03-16 03:25 48浏览
  • 汽车氛围灯,顾名思义,是烘托车内氛围的照明灯,是汽车内饰情感化设计的一种体现。 一般有暖色(红色等)和冷色系(蓝色、紫色等)两种,在夜晚开启后绚丽浪漫,可营造车内情调,使得旅途并不是那么的枯燥无味,让人们拥有独特的驾驶体验。关于汽车氛围灯浪涌保护上海雷卯EMC小哥分析难点有以下几个方面:1. 复杂的电气环境:汽车的电气系统较为复杂,存在各种干扰源,如点火系统、电机、电子设备等,这可能会对氛围灯的浪涌保护造成挑战。2. 电压波动:汽车运行过程中,电源电压可能会出现较大的波动,例如启动引擎或电器设备
    上海雷卯电子 2024-03-16 13:51 95浏览
  • 直流电机是现代社会中无处不在的动力装置,但它们也不是永远运转的机器。让我们一起来了解一下,为什么直流电机会失效,以及我们可以采取哪些措施来延长它们的寿命。  1. 人为因素的影响: 操作失误是直流电机失效的一个重要因素。粗暴地操控电机,比如不小心让它掉落或者使用不当,都可能导致内部零件的损坏,从而使电机无法正常工作。此外,静电放电也是一个需要重视的问题,特别是对于无刷电机而言。静电放电可能会损坏电机内部的传感器,进而影响其控制与反馈系统。 2. 环境因素的考量: 环境条件对直流电
    艾迈斯电子 2024-03-16 11:29 78浏览
  • 1. 整流桥功能介绍整流桥在电子领域中扮演着至关重要的角色,为各种电子设备和电路提供了稳定的电源。整流桥的主要作用是将交流电信号转换为直流电信号。当交流电信号通过整流桥时,它会使得只有一个方向的电流能够通过,从而实现了将交流电信号转换为单向的直流电信号。在一些手持设备需要小巧轻便的整流桥来将交流电转换为直流电。医疗器械:一些便携式医疗器械或医疗监测设备,由于需要经常携带和移动,通常采用小体积的整流桥设计。智能家居产品:如智能插座、智能灯具等,由于需要集成在家居环境中,因此需要小体积的整流桥来满足
    上海雷卯电子 2024-03-16 14:07 119浏览
  • 总结:科普量子计算机的水书。至少第一章是在科普量子计算机。唯一有点用的就是我上面这一张照片里面的笔记。上面说了为什么量子计算机会比传统计算机运算速度快的原因:因为传统计算机一位只能有一个数字,但是量子计算机可以0和1叠加起来显示。这样就造成了传统计算机需要运行很多遍的东西,而量子计算机不管多少多难都只用计算一次。(前提是量子比特位够长)---------------------------------------------------------------------------------
    youyeye 2024-03-17 17:04 140浏览
我要评论
0
3
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦