总的过程

①
host检测到device,reset
- 获取设备描述符
- host发获取设备描述符请求
- ->setup
- ->data0
- <-ack
- Divice 返回设备描述符
- ->in
- <-data1
- ->ack
- host说明已获取设备描述符
- ->out
- ->data0空数据
- <-ack
lsb先发

②
对设备reset,开始设置新地址
- 新地址
- ->out
- ->data0 new address
- <-ack
- -
- ->in
- <-data1
- ->ack

③
ack之后,设备启用新地址
- 用新地址请求设备描述符
- ->setup
- ->data0
- <-ack
- device返回设备描述符
- ->in
- <-data1
- ->ack
- host确认
- ->out
- ->data0
- <-ack

④
获取配置描述符
- 发获取配置描述符请求
- ->setup
- ->data0
- <-ack
- 发送配置描述符
- ->in
- <-data1
- ->ack
- 确认收到
- ->out
- ->data0
- <-ack

⑤

⑥

⑦
USB枚举过程
原文:http://www.cnblogs.com/pejoicen/p/3966468.html