枚举过程
USB设备枚举一般会经过插入、供电、初始化、分配地址,配置,获取设备描述符、获取配置描述符、获取字符串和配置设备这么几个过程。(第一次获取设备描述符就是为了获取最大包长,在设备描述符的第8字节(因此USB规定端点0的最大包长至少8字节)。在复位之后,才会真正获取完整的设备描述符)
枚举过程基本上就是分配地址和获取描述符的过程。那么什么是描述符呢?
描述符
描述符是USB设备用来描述自己属性及用途的,因此设备端必须实现对应的描述符。主机会在枚举过程中根据描述符去确定这是一个什么设备,安装相应的驱动。
标准的描述符有5种,USB为这些描述符定义了编号:
0x01.设备描述符:USB设备至少有一个配置描述符,但是主机同一时间只能选择一种配置。
0x02.配置描述符:USB配置至少有一个接口描述符。
0x03.接口描述符:USB接口可以至少有一个端点描述符,也可以没有端点描述符。
0x04.端点描述符
0x