最近在做烧写工具的优化工作,有一些关于USB的内容需要总结一下其中包括设备的初始化过程和枚举过程。
在枚举的过程中,设备会一直等PC端的状态,当等到reset命令时会对设备进行重新枚举。但是这个reset终端是如何而来呢?
Halt Conditions
A control endpoint may recover from a halt condition upon receiving a SETUP packet. If the endpoint does not recover from a SETUP packet, it may need to be recovered via a different pipe. If an endpoint with the endpoint number 0 does not recover with a SETUP packet, the host should issue a device reset.
在usb协议中有上面的描述,大致意思是:控制断电在接收到SETUP包的时候慧聪挂起状态恢复。如果端点没有从SETUP包恢复,它可能需要通过不同的管道来进行恢复。如果端点0没有从SETUP包中恢复,那么主机端将产生设备重启的事件。
这样就能够解释,在DFU文件工作的过程中程序要持续接收中断,等待reset之后,会对设备进行重新的枚举过程。具体的操作后续进行描述。
USB设备在连接PC时的reset从何而来?,布布扣,bubuko.com
原文:http://blog.csdn.net/codectq/article/details/38305577