【USB笔记】 USB描述符概述

USB笔记 USB描述符概述

这里简要的介绍一下USB描述符的一些内容,概念部分主要从各种USB协议中整理,涵盖范围从USB 1.0到 USB 3.2协议。

USB描述符概述

USB设备使用描述符(descriptors)来上报其属性,使主机能够了解设备。描述符是一种具有定义格式的数据结构。每个描述符包含关于设备的整体或设备中某一元素的信息。

使用描述符可以简明地存储单个配置的属性,因为每个配置都可以重复使用具有相同特性(characteristics)的其他配置的描述符或描述符的部分。通过这种方式,描述符类似于关系数据库中的单个数据记录。

每个描述符都是以一个字节宽度(byte-wide)的字段作为开头,用于表示这个描述符总的字节数是多少,然后是一个字节宽度的字段,用于标识描述符的类型(descriptor type)。其他字段随描述符类型而变化。

下面是一些标准描述符类型的值:

Descriptor TypesValue
DEVICE1
CONFIGURATION2
STRING3
INTERFACE4
ENDPOINT5
DEVICE_QUALIFIER6
OTHER_SPEED_CONFIGURATION7
INTERFACE_POWER8
OTG9
DEBUG10
INTERFACE_ASSOCIATION11
SECURITY12
KEY13
ENCRYPTION TYPE14
BOS15
DEVICE CAPABILITY16
WIRELESS_ENDPOINT_COMPANION17
SUPERSPEED_USB_ENDPOINT_COMPANION48
SUPERSPEEDPLUS_ISOCHRONOUS_ENDPOINT_COMPANION49

所有USB设备都必须响应对标准USB描述符的请求。设备必须存储其描述符的内容,并对描述符的请求作出响应。

除复合设备(compound devices)外,每个设备都有且仅有一个设备描述符,其中包含设备的信息,并指定设备支持的配置数量。对于每个配置,设备都有一个配置描述符,其中包含设备的电源信息和配置支持的接口数量。对于每个接口,设备有一个指定端点的数量的接口描述符。每个端点都有一个端点描述符,其中包含与端点通信所需的信息。没有端点描述符的接口必须使用控制端点进行所有通信。在适当的情况下,描述符包含对字符串描述符的引用,字符串描述符提供以文本字符串形式的可显示信息。

如果描述符返回时其长度字段中的值小于USB规范中该描述符所定义的值,那么这个描述符无效,应被主机拒绝。如果描述符返回的长度字段中的值大于USB规范中该描述符所定义的值,主机会忽略超出定义数值的那些字节,但会使用实际返回的长度来定位下一个描述符。

描述符中多字节的数值在总线上是小端传输(从最低有效字节(LSB)到最高有效字节(MSB))。例如,数值0x1234 ,先传0x34,再传0x12。

设备可以通过两种方式返回类(class)或厂商专属(vendor-specific)的描述符:

  1. 如果类或厂商专属的描述符使用与标准描述符相同的格式(即以一个长度字节开始,后面跟着一个类型字节),则应在GetDescriptor(Configuration)请求返回的配置信息中与标准描述符交错返回。在这种情况下,类或厂商专属的描述符应该遵循它们修改或扩展的相关标准描述符。
  2. 如果类或厂商专属的描述符独立于配置信息或使用非标准格式,则可使用指定类或厂商专属描述符类型和索引的GetDescriptor()请求从设备中检索描述符。类或厂商规范将定义检索这些描述符的适当方式。

接着简单介绍一些标准USB描述符:

设备描述符Device Descriptor

设备限定描述符Device Qualifier Descriptor

配置描述符Configuration Descriptor

其他速度配置描述符Other_Speed_Configuration Descriptor

接口描述符Interface Descriptor

端点描述符Endpoint Descriptor

字符串描述符String Descriptor

接口关联描述符Interface Association Descriptor

超高速端点伙伴端点描述符SuperSpeed Endpoint Companion Descriptor

超高速加等时端点伙伴描述符SuperSpeedPlus Isochronous Endpoint Companion Descriptor

二进制设备对象存储描述符BOS Descriptor

设备功能描述符Device Capability Descriptor

  USB 2.0扩展描述符USB 2.0 Extension Descriptor

  超高速设备功能描述符SuperSpeed Device Capability Descriptor

其他的懒得写了,后续随缘补充。


[参考资料]

Universal Serial Bus Specification Revision 2.0

Universal Serial Bus 3.0 Specification

Universal Serial Bus 3.1 Specification

Universal Serial Bus 3.2 Specification

Wireless Universal Serial Bus Specification Revision 1.1

USB Complete, 5th Edition


本文链接:https://blog.csdn.net/u012028275/article/details/110340868

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值