USB设备类定义的视频:摄像机示例文档中文版(版本1.5)

1引言

1.1目的

        本文档详细描述了符合视频设备类规范的USB视频设备的示例实现。本文档是作为USB视频设备类规范的实现者提供的,因此仅提供信息。如果本文件与规范之间出现冲突,则该规范应优先考虑。

1.2相关文件

        USB规范修订2.0,2000年4月27日,www.usb.org

        USB设备类定义,www.usb.org

        接口关联描述符ECN,www.usb.org

2桌面摄像机示例

2.1产品说明

        本节中描述的设备是一个全速桌面摄像机(或“网络摄像头”)。该特定的实现有两个视频源,一个CCD传感器和一个设备上的复合输入连接器,可以通过使用设备上的选择单元来切换。它以单帧速率(15帧每秒)的单帧大小(176x144)将视频数据传输到主机,并作为异步源,使用其内部时钟作为参考。它能够通知主机的按钮按下事件以触发静止图像捕获(使用方法1),并包含一个能够调整视频流的亮度水平的处理单元。这个示例实现将假定我们使用一个视频接口集合。视频控制接口(接口编号0)和视频流媒体接口(接口编号1)是此视频接口集合的一部分。

        下图表示了相机的内部拓扑结构。

图2-1 USB摄像机拓扑结构

  视频功能包含两个输入端子,一个代表传感器,另一个代表复合视频输入连接器。这些终端捕获的视频流经过任何必要的模拟数字转换,并路由到选择单元。然后将所选的视频流发送到处理单元以进行视频信号处理。输出被路由到单个输出终端,该输出终端通过USB IN端点将视频流传输到主机。此端点是该设备所包含的单个视频流媒体接口的一部分。

        视频功能(单元和终端拓扑)的内部结构通过(强制性的)视频控制界面呈现给主机。

2.2描述符层次结构

        此USB摄像设备使用一个视频接口集合,其中包括视频控制接口(接口0)和单个视频流媒体接口(接口1)。视频流媒体界面有两个不同的设置。第一个替代设置(0)与之相关的带宽为零(这意味着缺少一个等时端点),因此切换到这个替代设置可以释放此设备在USB上已分配的所有带宽。备用设置1是接口的操作部分,它包含了向主机提供视频数据的同步端点。

        此图显示了描述符的层次结构。

图2-2 USB摄像机描述器层次结构

2.3描述符

以下部分介绍了用于描述该设备的所有描述符。

2.3.1设备描述符

表2-1设备描述符
偏移 名称 字节数 数值 描述
0
bLength
1
0x12
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x01
设备描述符
2
bcdUSB
2
0x0200
2.00-USB规范的当前修订版本,低8位在前,高八位在后
4
bDeviceClass
1
0xEF
其他设备类别
5
bDeviceSubClass
1
0x02
通用类
6
bDeviceProtocol
1
0x01
接口关联描述符
7
bMaxPacketSize0
1
0x40
控制端点数据包大小为64字节(写得0x08是1.1版本协议,1.5版本是64)
8
idVendor
2
0xXXXX
供应商ID(程序里都是0x0483)
10
idProduct
2
0xXXXX
产品ID(程序里都是0x5740)
12
bcdDevice
2
0xXXXX
设备发布代码(程序里都是0x0200)
14
iManufacturer
1
0x01
索引到单一码中包含字符串<Your Name>的字符串描述符
15
iProduct
1
0x02
索引到字符串中包含Unicode中的<您的产品名称>的字符串描述符
16
iSerialNumber
1
0x00
未使用
17
bNumConfigurations
1
0x01
一个配置

2.3.2配置描述符

表2-2配置描述符
偏移 名称 字节数 数值 描述
0
bLength
1
0x09
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x02
配置描述符
2
wTotalLength
2
0x00C0
总配置块的长度,包括此描述符,单位为字节
4
bNumInterfaces
1
0x02
此设备有两个接口
5
bConfigurationValue
1
0x01
此配置的ID
6
iConfiguration
1
0x00
未使用
7
bmAttributes
1
0x80
由总线供电的设备,无远程唤醒功能
8
bMaxPower
1
0xFA
最大功耗为500 mA,单位是2mA

2.3.3接口关联描述符

此设备使用接口关联描述符来描述其视频接口集合。

表2-3标准视频接口采集IAD
偏移 名称 字节数 数值 描述
0
bLength
1
0x08
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x0B
接口关联描述符
2
bFirstInterface
1
0x00
与此功能相关联的视频控制接口的接口编号
3
bInterfaceCount
1
0x02
与此功能关联的连续视频接口数
4
bFunctionClass
1
0x0E
CC_VIDEO
5
bFunctionSubClass
1
0x03
SC_VIDEO_INTERFACE_COLLECTIO
N
6
bFunctionProtocol
1
0x00
未使用。必须设置为PC_PROTOCOL_UNDEFINED。
7
iFunction
1
0x02
索引到字符串中包含Unicode中的<您的产品名称>的字符串描述符。必须匹配标准VC接口描述符中的i接口字段。

2.3.4视频控制接口描述符

视频控制接口描述设备结构(视频功能拓扑),并用于操作视频控制。

2.3.4.1标准VC接口描述符

视频控制接口没有与之相关联的专用端点。它使用默认管道(端点0)用于所有通信目的,但事件通知除外,在这种情况下将使用中断端点。使用默认管道发送特定于类的视频控制请求。

表2-4标准VC接口描述符
偏移 名称 字节数 数值 描述
0
bLength
1
0x09
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x04
接口描述符类型
2
bInterfaceNumber
1
0x00
此接口的索引
3
bAlternateSetting
1
0x00
此设置的索引
4
bNumEndpoints
1
0x01
1个端点(中断端点)
5
bInterfaceClass
1
0x0E
CC_VIDEO
6
bInterfaceSubClass
1
0x01
SC_VIDEOCONTROL
7
bInterfaceProtocol
1
0x00
PC_PROTOCOL_15 (1.1版本
未使用。必须设置为PC_PROTOCOL_UNDEFINED)
8
iInterface
1
0x02
索引到字符串中包含Unicode中的<您的产品名称>的字符串描述符。必须匹配标准视频接口功能字段的采集IAD

2.3.4.2类特定的VC接口描述符

        类特定的VC接口描述符总是由一个头描述符领导,其中包含关于视频控制接口的一般信息。它包含了描述与所描述的视频功能相关联的视频接口集合所需的所有指针。

表2-5类特定的VC接口描述符
偏移 名称 字节数 描述
0
bLength
1 0x0D 此描述符的大小,以字节表示。
1
bDescriptorType
1 0x24
CS_INTERFACE
2
bDescriptorSubType
1 0x01
VC_HEADER subtype
3
bcdUVC
2 0x0150 设备符合视频类规范1.5。(0x0110,设备符合视频类规范1.1。)
5
wTotalLength
2 0x0042 特定于类的描述符的总大小
7
dwClockFrequency
4 0x005B8D80 已不赞成使用此字段。该设备将提供时间戳和一个基于6MHz时钟的设备时钟参考。
11
bInCollection
1 0X01 流媒体接口的数量。
12
baInterfaceNr(1)
1 0X01 视频流媒体接口1属于这个视频控制接口

2.3.4.3输入终端描述符(摄像机)

        此描述符描述表示CCD传感器(以及相关的A/D转换器)的输入终端。由此产生的数字视频流通过单个输出引脚离开输入终端。 

表2-6输入终端描述符(照相机)
偏移 名称 字节数 描述
0
bLength
1
0x11
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x24
CS_INTERFACE
2
bDescriptorSubtype
1
0x02
VC_INPUT_TERMINAL
3
bTerminalID
1
0x01
此输入终端的ID
4
wTerminalType
2
0x0201
ITT_CAMERA,这个终端表示CCD传感器的相机终端。
6
bAssocTerminal
1
0x00
无关联
7
iTerminal
1
0x00
未使用
8
wObjectiveFocalLengthMin
2
0x0000
不支持光学变焦
10
wObjectiveFocalLengthMax
2
0x0000
不支持光学变焦
12
wOcularFocalLength
2
0x0000
不支持光学变焦
14
bControlSize
1
0x02
bmContorsls的大小为2字节(此终端不实现任何控件)。
15
bmControls
2
0x0000
不支持控件
2.3.4.4输入终端描述符(复合)

        此描述符描述表示复合视频输入连接器(以及相关的A/D转换器)的输入终端。由此产生的数字视频流通过单个输出引脚离开输入终端。

表2-7输入端子描述符(复合材料)
偏移 名称 字节数 描述
0
bLength
1
0x08
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x24
CS_INTERFACE
2
bDescriptorSubtype
1
0x02
VC_INPUT_TERMINAL
3
bTerminalID
1
0x02
此输入终端的ID
4
wTerminalType
2
0x0401
COMPOSITE_CONNECTOR.此端子是复合连接器。
6
bAssocTerminal
1
0x00
无关联
7
iTerminal
1
0x00
未使用

2.3.4.5输出终端描述符

        此描述符描述表示到主机的USB管道的输出终端。

表2-8输出终端描述符
偏移 名称 字节数 描述
0
bLength
1
0x09
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x24
CS_INTERFACE
2
bDescriptorSubtype
1
0x03
VC_OUTPUT_TERMINAL
3
bTerminalID
1
0x03
此终端的ID
4
wTerminalType
2
0x0101
TT_STREAMING.该终端是一个USB流媒体终端
6
bAssocTerminal
1
0x00
无关联
7
bSourceID
1
0x05
该单元输入引脚连接到0x05输出
8
iTerminal
1 0x00 未使用

 2.3.4.6选择器单元描述符

        此描述符描述了连接到处理单元的选择器单元。可以选择CCD传感器或复合视频连接器作为输入。

表2-9选择器单元描述符
偏移 名称 字节数 描述
0
bLength
1
0x08 此描述符的大小,以字节为单位
1
bDescriptorType
1 0x24
CS_INTERFACE
2
bDescriptorSubtype
1
0x04
VC_SELECTOR_UNIT
3
bUnitID
1
0x04
此单元的ID
4
bNrInPins
1
0x02
输入引脚数量
5
baSourceID(1)
1
0x01
该单元的输入1连接到单元ID0x01-相机终端(CMOS传感器)。
6
baSourceID(2)
1
0x02
此单元的输入2已连接到单元ID0x02-复合连接器。
7 iSelector 1
0x00
未使用

2.3.4.7处理单元描述符

        此描述符描述了处理由选择器单元传递的视频流数据的处理单元。此实现所支持的唯一控制是亮度控制。

表2-10处理单元描述符
偏移 名称 字节数 描述
0
bLength
1
0x0C

此描述符的大小,以字节表示。

(1.1是0x0B)

1
bDescriptorType
1
0x24
CS_INTERFACE
2
bDescriptorSubtype
1
0x05
VC_PROCESSING_UNIT
3
bUnitID
1
0x05
此单元的ID
4
bSourceID
1
0x04
该单元的此输入引脚连接到ID为0x04的单元的输出引脚。
5
wMaxMultiplier
2
0x0000
未使用
7
bControlSize
1
0x03
bmControls字段的大小,单位为字节。(1.1是0x02)
8
bmControls
2
0x0001
支持亮度控制
10
iProcessing
1
0x00
未使用
11
bmVideoStandards
1 0x00 未使用

2.3.4.8标准中断端点描述符

        此描述符描述用于状态返回的中断端点,在这种情况下,可通知主机有关按钮按下事件。

表2-11标准中断端点描述符
偏移 名称 字节数 描述
0
bLength
1
0x07
此描述符的大小,以字节为单位
1
bDescriptorType
1
0x05
端点描述符
2
bEndpointAddress
1
0x81
IN端点1
3
bmAttributes
1
0x03
中断传输类型
4
wMaxPacketSize
2
0x0040
64字节状态包
6
bInterval
1
0x20
至少每32个ms投票一次。
2.3.4.9特定于类的中断端点描述符

        此描述符描述了中断的特定于类的信息。

表2-12特定于类的中断端点描述符
偏移 名称 字节数 描述
0
bLength
1
0x05
此描述符的大小,以字节表示。
1
bDescriptorType
1
0x05
CS_ENDPOINT
2
bDescriptorSubType
1
0x03
EP_INTERRUPT
3
wMaxTransferSize
2
0x0040
64字节状态包

2.3.5视频流接口描述符

        视频流界面有两种可能的替代设置,0和1。

2.3.5.1零带宽备用设置0

        备用设置0是一个零带宽设置,用于在设备不使用时放弃总线上所要求的带宽。这是开机后的默认设置。零带宽设置意味着在备用0中省略了一个同步端点。这个替代设置还包括描述设备的视频流格式功能的类特定格式和帧描述符。

2.3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值