USB学习笔记----枚举部分详解
说明:本详解是基于USB1.1协议的,参考ZLG的《D12 USB固件编程与驱动开发》。
主要说说其枚举过程中所传输的数据。硬件自动完成的部分就不提。详见书P90。
1、0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00
这是USB发送建立包后,第一个命令:获取设备描述符。是USB的标准请求之一。见书P16。
1) 设备请求类型:0x80。设备到主机的传输方向;标准类型;接收方是设备。
2) 设备请求:0x06。Get Descriptor(),得到设备描述符。
3) 值:0x00 0x01。描述符的类型和索引。0x01表描述符类型为设备。见P17的表2.4。注,USB数据传输低位在前。
4) 索引:0x00 0x00。0或语言ID。
5) 长度:0x40 0x00。由于主控器不知道USB设备设备描述符有多长,故包长度为0x0040,即64个字节。
2、0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x10 0x88 0x88 0x01 0x00 0x01 0x00 0x01 0x02 0x03 0x01
这是设备响应主机获取设备描述符请求的数据。参考数P18的USB设备描述符。
1) 描述符的大小:0x12。
2) 描述符类型:0x01。表示设备。见P17的表2.4.
3) USB规划发布号:0x10 0x01。表示1.1版本。注,USB数据传输低位在前。
4) 类型代码(由USB指定):……