1. 描述符之间的关系:
设备描述符(一个设备只有一个):里面决定设备有多少种配置。 ----实际地址
配置描述符(每种配置一个配置描述符): 定义配置里有多少接口。 ----抽象概念
接口描述符(每个接口有一个接口描述符):定义该接口有多少端点。 ----抽象概念
端点描述符(每个端点有一个端点描述符):端点描述符定义端点的大小、类型。 ----实际地址
同一配置下不同接口的端点不能复用;
不同配置可复用同一端点。
2. 枚举:
一、第一次获取设备描述符
1.1 用地址0向设备端点0获取设备描述符(此时根据设备端点0的大小,获得的设备描述符可能只有8个字节)。
控制传输方式:包含建立过程、数据过程和状态过程
1.2 用地址0向设备端点0发送新的设备地址
控制传输方式:和第一次相比没有数据过程
二、第二次获取设备描述符
用新地址,获取全部18个字节的设备描述符
三、获取配置描述符或配置描述符集合
配置描述符集合包含配置描述符、接口描述符、类特殊描述符、端点描述符。
有两种获取方式:
3.1 主机在获取到配置描述符后,根据其中所描述的配置集合总长度来获取配置集合。
3.2 不单独获取配置描述符,而直接使用最大长度来获取配置描述符集合。
接口描述符、类特殊描述符、端点描述符不能单独获取,必须跟配置描述符以一个集合的方式一并返回。
所以上位机在获取描述符时注意,只要调用到获取配置描述符即可。
详细参看圈圈USB相关章节
from:http://m.blog.csdn.net/phenixyf/article/details/45221195