windows对USB的枚举过程

windows对USB的枚举过程

windows对USB的枚举过程

在调试USB单片机程序时,还要特别注意Windows对USB设备的枚举顺序: ①GetDeviceDescriptor。主机主要对Length域感兴趣,发送内容一定要正确,特别是第 2字节type一定为0x01,即Device;否则,主机将不响应,或者再重复2次后放弃。可检查一下对EP0的RX、TX的设置次序。

②SetAddress。一般为02或03。

③连续3次GetDeviceDescriptor,读取全部设备描述符,一般为 18B,分为多次传输。如果不正确,主机将不响应或重复2次后放弃。

④GetConfigDescriptor。注意第2字节一定为0x02,即config 。

⑤GetStringDescriptor(可能没有),根据在设备描述符中是否有 String索引而定。一般先读取LanguageID,再读取product string。

⑥读取全部ConfigDescriptor,次数根据描述符的大小决定(端点个数不同,描述符大小不同),如果不正确,主机将不响应或再重复2次后放弃。

⑦如果以上步骤都正确,主机将找到新设备,提示安装驱动程序;否则找到未知设备,不可用。

安装驱动程序后,以后的每次PlugIn,枚举次序与以上步骤略有不同,之后会有 SetConfiguration、GetConfiguration和GetInterface等调用。

下面是USB枚举相关的Setup包,图片的思路很清晰,可以很方便让我们进行程序设计,USB多采用数据结构,结合下图,设计起自己的USB固件是很简单的事

windows对USB的枚举过程相关文档

最新文档

返回顶部