提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
文章目录
前言
一、UVC拓扑结构
二、UVC描述符以及单元
前言
?
UVC协议是USB下的一个子类 ,UVC就是USB video class ,是 USB视频捕获设备定义的协议标准。USB设备可能具备很多功能比如一个摄像头可能集合了音频和视频所以它会用到UVC和UAC,将这俩个功能进行复合。内容较多,先写一些,个人理解如有不对之处请见谅
一、UVC拓扑结构
USB拓扑结构如图:
?????????这是一个比较标准的UVC设备的拓扑结构,图中所示这个设备有两个接口,VideoControl以及VIdeoStreaming,在实际的UVC设备中这两个接口是存在的,但是里面的单元不一定是这样,可能IT->PU->OT或者多个EU等等。
????????可以看到在这个示例中,这个设备有俩个接口,接口可以理解成一种功能的集合,vc接口负责视频控制,vs接口描述视频流格式等信息。在video funtion中可以看到他有俩输入终端,一个是camera terminal 代表从sensor捕获数据输入,另外一个是input terminal,代表复合视频输入,一般来说都是IT。然后经过选择单元将视频流选择后送入处理单元再进去output treminal。再被vs中的端点接收。
????????白色的为usb描述符,灰色是特殊类,或者说uvc class的描述符。alt,setting代表备用设置,一个uvc设备当前只能使用一种配置,但是可以动态的改变设置,完成配置的不同。?
二、UVC描述符以及单元
????????UVC的描述符用来表示该设备的属性,在枚举的过程中给主机端读出描述符明白这个设备是怎么样供电用的是什么协议,以及该设备具备的功能例如支持什么样的分辨率,什么编码模式(可以出mjpeg或者264)等等一些属性。
????????具体描述符如下(有些疏忽):
????????
?????????可以看到UVC的描述符和拓扑结构是相关的,IAD是将接口关联描述符,VC这边主要是一些单元的描述符来对视频进行控制,拓展单元的话一般用在厂商的配套APP,中断状态一般使用的是端点0,在通信过程中设备与主机通信通过端点进行传输,具体描述符功能有点多,感兴趣的看一下官方文档吧
三、? 复位
????????复位是把一个信号从从挂起态唤醒,设备3ms不活动进入空闲态,空闲10ms进入挂起态 主机会停止发送sof包 usb会提供10ms的唤醒时间,保证下行端口也成功唤醒。
关于复位也还存在一些疑惑了解的大佬可以详细说说
|