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 及兼容版本必备):
VCC(电源正极):红色线,提供 + 5V 电压(部分场景下可通过 PD 协议调整电压)。
GND(接地):黑色线,作为电路回路的负极。
D+(数据正线):绿色线,用于高速数据传输(USB 2.0 及以上的高速模式)。
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 通信机制至关重要,以下是详细解析:
一、端点的基本概念
逻辑通道:端点是设备内部的虚拟 “管道”,每个端点有唯一编号(如 Endpoint 0、Endpoint 1 等)。
单向性:每个端点只支持一个方向的数据传输:
IN 端点:数据从设备流向主机(如摄像头向电脑发送视频帧)。
OUT 端点:数据从主机流向设备(如电脑向打印机发送打印任务)。
端点 0 的特殊性:所有 USB 设备必须实现 Endpoint 0,它是双向的,用于设备枚举和基本控制(如获取设备描述符、配置设备)。
二、端点的关键属性
每个端点通过端点描述符(Endpoint Descriptor) 向主机报告其能力,主要属性包括:
端点号(Endpoint Number):0-15,其中 Endpoint 0 固定为控制端点。
方向(Direction):IN 或 OUT。
类型(Type):
控制(Control):用于设备配置和命令传输(如 UVC 协议的参数设置)。
批量(Bulk):用于大量数据可靠传输(如文件传输)。
中断(Interrupt):用于实时小数据(如键盘、鼠标输入)。
同步(Isochronous):用于实时流数据(如视频、音频)。
最大包大小(Max Packet Size):一次传输的最大数据量(如 64 字节、512 字节等)。
轮询间隔(Polling Interval):主机查询端点的频率(仅对中断和同步端点重要)。
三、端点的工作机制
设备枚举阶段:
主机通过 Endpoint 0 发送标准请求(如
GET_DESCRIPTOR
)。设备返回自身信息(如厂商 ID、产品 ID、支持的配置)。
数据传输阶段:
主机根据设备描述符选择合适的配置和端点。
通过指定端点号和方向进行数据收发。
四、不同类型端点的应用场景
端点类型 |
特点 |
典型应用 |
---|---|---|
控制端点 |
可靠、双向、用于命令和配置 |
设备初始化、参数设置(如 UVC 亮度调整) |
批量端点 |
高吞吐量、保证数据完整 |
打印机、存储设备(如 U 盘) |
中断端点 |
低延迟、有响应时间保证 |
键盘、鼠标、游戏手柄 |
同步端点 |
定时传输、允许少量丢包 |
摄像头视频流、麦克风音频流 |
五、端点与接口、配置的关系
配置(Configuration):设备的一种工作模式(如低功耗模式、高性能模式),一个设备可支持多个配置。
接口(Interface):配置中的功能单元(如摄像头的视频流接口、麦克风的音频接口)。
端点(Endpoint):接口的具体数据通道。
示例:一个 UVC 摄像头可能包含:
1 个配置(默认配置)。
2 个接口(视频流接口、麦克风音频接口)。
视频接口包含:
控制端点 0(双向)。
同步 IN 端点(传输视频帧)。
音频接口包含:
同步 IN 端点(传输音频数据)。
六、端点的数量限制
每个 USB 设备最多可支持32 个端点(16 个 IN + 16 个 OUT)。
实际应用中,大多数设备仅使用少数端点(如 UVC 摄像头通常使用 2-3 个端点)。