一、背景知识
1.1、背景
UVC全称为USB Video Class,即:USB视频类,是一种为USB视频捕获设备定义的协议标准。是Microsoft与另外几家设备厂商联合推出的为USB视频捕获设备定义的协议标准,已成为USB org标准之一。
对于一个 usb 摄像头来说,内部大概分为一个 VC 接口和一个 VS 接口,VC 接口内部有许多 unit 和 terminal 用来“控制”摄像头,比如我们可以通过 Process unit 设置白平衡、曝光等等。对于 VS 接口来说,标准 VS 接口往往含有许多个设置,每一个设置都包含一个实时传输端点,虽然它们的端点地址可能相同,但是它们的最大传输包大小不同,在 Class specific VS 接口中,包含多个 Format ,每一个 Format 包含多个 Frame ,Format 指的 YUYV MJPG 等等,Frame 就是各种分辨率 480*320 640 * 480 等等。以上这些信息,都是通过分析描述符来获得。
1.2、libuvc开源库
1.3、数据流
通过驱动获取传感器的数据,获得的数据通过UVC协议上传给上位机,同时,上位机会发送控制命令给设备侧。
二、设备侧开发
等待上位机发来的控制消息,监听USB端口的EP0
三、上位机侧开发
VLC或者AMCAP上位机软件调试
四、参考文档
1、文档。
https://blog.csdn.net/lizuobin2/article/details/53144378
https://blog.csdn.net/lizuobin2/article/details/53341340
2、上位机开发
https://www.cnblogs.com/rollsroyce/p/11680450.html
3、论文的参考
基于UVC协议的USB3.0图像采集系统设计
http://www.docin.com/p-965508430.html
https://www.ixueshu.com/document/3a073adb15ec6629d375020a9855d541318947a18e7f9386.html
https://www.doc88.com/p-9909382029161.html
4、协议文档
https://www.docin.com/p-2000149224.html
5、关于私有扩展单元
https://blog.csdn.net/weixin_42314225/article/details/84473180