UVC Camera 详解

[English]

1 UVC简介

UVC(USB Video Control)是属于USB行业规范中的USB设备类规范,用于USB接口的视频设备的一个统一的数据交换规范。 在UVC规范中明确要求,其必须具备两种接口:一种为VC Interface(视频控制类接口)和VS Interface(视频流接口)。VC接口负责UVC设备的配置,VS接口负责视频流数据的传输,两者相互配合完成UVC的设备功能。 当前硬件支持USB2.0,包括Full-speed和High-speed,USB2.0除了拥有USB1.1中规定的1.5Mbps和12Mbps两个传输模式外,还增加了480Mbps高速传输模式。USB1.1的单位数据传输时间是1毫秒,而USB2.0的单位数据传输时间是125微秒。 UVC输出的数据格式是由其本身固件决定,可能支持的是YUV、H264、MJPEG、H265等。

2 UVC目前支持的类型与规格

USB规格

UVC规格

传输方式

传输速度

MaxPacketSize

分辨率

帧率

输出格式

USB2.0

UVC1.5/UVC1.1

ISO/BULK

High(Full)-speed

1024及以下

1280X720及以下

20及以下

YUV/JPEG/H264/H265

3 UVC的使用流程

  • 1、 初始化USB硬件模块,即初始化host,并启动其工作的usb_task;

  • 2、host检测device是否有接入,并进行枚举;

  • 3、上层检测到连接成功后,读取设备描述符,并据此配置UVC参数

  • 4、启动UVC

  • 5、对UVC数据包进行处理

  • 6、暂停UVC传输

  • 7、恢复UVC的传输等,做好状态机的切换

4 UVC工作模式的主要应用

UVC的工作模式主要是基于其本身传输的数据,下面是其工作流程,只负责数据的解析,解析后的数据会经过其他硬件模块操作,比如JPEG_EDC解码显示,或者直接传输H264/JPEG数据的相关应用。

uvc work

Figure 1. UVC工作模式