当前位置: 首页 > news >正文

UVC(USB Video Class,USB 视频类)协议

UVC(USB Video Class,USB 视频类)协议并非专门仅用于相机,但其核心应用场景集中在视频采集设备,相机是最典型的代表。

其适用设备除了常见的 USB 相机(包括 webcam、工业相机、监控摄像头等),还包括其他具备视频采集或处理功能的 USB 设备,例如:

  • 视频采集卡:部分 USB 接口的视频采集卡支持 UVC 协议,可将外部视频信号(如 HDMI、SDI 信号)转换为符合 UVC 标准的视频流传输给主机。

  • 带视频功能的设备:一些集成了摄像头的设备,如智能手机通过 USB 连接作为视频源时(部分机型支持)、某些扫描仪的视频预览功能模块等,也可能采用 UVC 协议进行视频数据传输。

USB 接口的线路

USB 接口的线路数量根据版本和接口类型有所不同,核心是通过几根线实现数据传输、供电等功能。以下是具体分类:

一、基础线路构成(以常见的 USB 2.0 及以上为例)

无论接口类型(Type-A、Type-B、Type-C 等),USB 的核心线路包括 4 根基础线(USB 2.0 及兼容版本必备):

  1. VCC(电源正极):红色线,提供 + 5V 电压(部分场景下可通过 PD 协议调整电压)。

  2. GND(接地):黑色线,作为电路回路的负极。

  3. D+(数据正线):绿色线,用于高速数据传输(USB 2.0 及以上的高速模式)。

  4. D-(数据负线):白色线,与 D + 配合传输差分信号,确保数据抗干扰能力。

这 4 根线是 USB 实现供电基础数据传输(USB 1.1/2.0 速率)的核心,早期的低速、全速设备仅依赖这 4 根线即可工作。

二、高速版本的额外线路(USB 3.0 及以上)

为了支持更高的传输速率(如 USB 3.0 的 5Gbps、USB 3.1 的 10Gbps 等),USB 3.0 及以上版本在基础 4 根线之外,增加了4 根高速差分信号线,总线路数量达到 8 根:

  • SSTX+ / SSTX-:发送差分对(SuperSpeed Transmit),用于主机向设备发送高速数据。

  • SSRX+ / SSRX-:接收差分对(SuperSpeed Receive),用于设备向主机返回高速数据。

这些额外的线路专门负责超高速数据传输,与原有的 D+/D - 线路(兼容 USB 2.0)独立工作,实现 “高速与兼容并存”。

三、Type-C 接口的线路特殊性

Type-C 接口为了支持可逆插拔和多功能(如视频输出、PD 供电),线路设计更复杂,但核心仍基于上述线路扩展:

  • 保留VCC、GND、D+、D- 4 根基础线。

  • 保留SSTX+/-、SSRX+/- 4 根高速线(USB 3.0 及以上)。

  • 增加了CC1、CC2(Configuration Channel,配置通道):用于识别设备类型、协商供电方向和功率(PD 协议依赖)、判断插入方向等。

  • 部分 Type-C 线缆还包含边带使用线(SBU1、SBU2):支持音频、视频信号传输(如 DisplayPort Alt Mode)。

因此,Type-C 线缆的总线路数量通常为12 根左右(含屏蔽线等辅助线路),但核心功能仍依赖上述基础和高速数据 / 电源线。

总结

  • USB 2.0 及以下:4 根线(VCC、GND、D+、D-)。

  • USB 3.0 及以上(非 Type-C):8 根线(4 根基础线 + 4 根高速差分线)。

  • USB Type-C(含 USB 3.0 及以上):约 12 根线(含基础线、高速线、配置通道线等)。

端点

在 USB 协议中,端点(Endpoint) 是设备与主机进行通信的逻辑通道,是数据传输的最小单位。理解端点的概念对掌握 USB 通信机制至关重要,以下是详细解析:

一、端点的基本概念

  1. 逻辑通道:端点是设备内部的虚拟 “管道”,每个端点有唯一编号(如 Endpoint 0、Endpoint 1 等)。

  2. 单向性:每个端点只支持一个方向的数据传输:

    • IN 端点:数据从设备流向主机(如摄像头向电脑发送视频帧)。

    • OUT 端点:数据从主机流向设备(如电脑向打印机发送打印任务)。

  3. 端点 0 的特殊性:所有 USB 设备必须实现 Endpoint 0,它是双向的,用于设备枚举和基本控制(如获取设备描述符、配置设备)。

二、端点的关键属性

每个端点通过端点描述符(Endpoint Descriptor) 向主机报告其能力,主要属性包括:

  1. 端点号(Endpoint Number):0-15,其中 Endpoint 0 固定为控制端点。

  2. 方向(Direction):IN 或 OUT。

  3. 类型(Type)

    • 控制(Control):用于设备配置和命令传输(如 UVC 协议的参数设置)。

    • 批量(Bulk):用于大量数据可靠传输(如文件传输)。

    • 中断(Interrupt):用于实时小数据(如键盘、鼠标输入)。

    • 同步(Isochronous):用于实时流数据(如视频、音频)。

  4. 最大包大小(Max Packet Size):一次传输的最大数据量(如 64 字节、512 字节等)。

  5. 轮询间隔(Polling Interval):主机查询端点的频率(仅对中断和同步端点重要)。

三、端点的工作机制

  1. 设备枚举阶段

    • 主机通过 Endpoint 0 发送标准请求(如GET_DESCRIPTOR)。

    • 设备返回自身信息(如厂商 ID、产品 ID、支持的配置)。

  2. 数据传输阶段

    • 主机根据设备描述符选择合适的配置和端点。

    • 通过指定端点号和方向进行数据收发。

四、不同类型端点的应用场景

端点类型

特点

典型应用

控制端点

可靠、双向、用于命令和配置

设备初始化、参数设置(如 UVC 亮度调整)

批量端点

高吞吐量、保证数据完整

打印机、存储设备(如 U 盘)

中断端点

低延迟、有响应时间保证

键盘、鼠标、游戏手柄

同步端点

定时传输、允许少量丢包

摄像头视频流、麦克风音频流

五、端点与接口、配置的关系

  • 配置(Configuration):设备的一种工作模式(如低功耗模式、高性能模式),一个设备可支持多个配置。

  • 接口(Interface):配置中的功能单元(如摄像头的视频流接口、麦克风的音频接口)。

  • 端点(Endpoint):接口的具体数据通道。

示例:一个 UVC 摄像头可能包含:

  • 1 个配置(默认配置)。

  • 2 个接口(视频流接口、麦克风音频接口)。

  • 视频接口包含:

    • 控制端点 0(双向)。

    • 同步 IN 端点(传输视频帧)。

  • 音频接口包含:

    • 同步 IN 端点(传输音频数据)。

六、端点的数量限制

  • 每个 USB 设备最多可支持32 个端点(16 个 IN + 16 个 OUT)。

  • 实际应用中,大多数设备仅使用少数端点(如 UVC 摄像头通常使用 2-3 个端点)。

http://www.dtcms.com/a/269950.html

相关文章:

  • 代码详细注释:ARM-Linux字符设备驱动开发案例:LCD汉字输出改进建议开发板断电重启还能显示汉字,显示汉字位置自定义
  • 高版本的MacOS如何降级?
  • 数据库|达梦DM数据库配置实例步骤
  • npm 包 scheduler 介绍
  • 黑马点评系列问题之P37商户点评缓存作业,用了string和list两种方法,可以直接复制粘贴
  • K8s-配置管理
  • 【web安全】SQLMap 参数深度解析:--risk 与 --level 详解
  • linux网络编程之IO多路复用模型
  • 车载以太网-TC8测试-UT(Upper Tester)
  • Redis 缓存进阶篇,缓存真实数据和缓存文件指针最佳实现?如何选择?
  • 2025年微软mos备考攻略-穷鬼版
  • 3.2 ASPICE的项目监控
  • 内网服务器怎么设置公网远程访问? windows桌面连接和Linux自带SSH外网异地跨网用完整步骤教程
  • K8s——配置管理(2)
  • 基于springboot的非遗传承宣传平台
  • Spring 框架实现账户转账功能全解析
  • 开疆智能Profinet转DeviceNet网关连接掘场空气流量计配置案例
  • 时序数据库:高效处理时间序列数据的核心技术
  • 二进制安全-汇编语言-04-第一个程序
  • 华中科大首创DNN衍射量子芯片登《Science Advances》:3D打印实现160μm³高维逻辑门
  • Transformer-BiGRU、Transformer、CNN-BiGRU、BiGRU、CNN五模型回归预测对比,Matlab代码实现
  • 神经网络之BP算法
  • 基于Java+Maven+Testng+RestAssured+Allure+Jenkins搭建一个接口自动化框架
  • iOS 性能测试工具全流程:主流工具实战对比与适用场景
  • 5-Kafka-replication(副本机制)概念
  • 自动化一次通过率
  • 《Java 反射全攻略1》
  • LLM探索的时代
  • Java常用加密算法详解与实战代码 - 附可直接运行的测试示例
  • 【Flutter】面试记录