阅读:1201回复:2
急问1581枚举
那位大侠 能给下面几个步骤的正确数据吗? 我现在只能在仿真器上看PC发过来的数据,用BUSHOUND是不是要装上驱动在PC上才能看到USB口发回的数据。我用的是的16位的MCU,有些高低8位要对调,请大虾贴几个正确的数据我参考一下。
get_status(); clear_feature(); set_feature(); set_address(); get_descriptor(); get_config(); set_config(); get_interface(); set_interface(); |
|
沙发#
发布于:2004-06-17 16:55
1) Get Device Descriptor。主机的第一个命令要求得到设备描述符,此SETUP包为8个字节数据(80,06,00,01,00,00,40,00),其具体含义请参考表5-1和5-2。“40”表示返回数据长度最大为40H个字节。实际上,只返回一个包,即数组DEV_DESC[ ]中的前8个字节,用于说明设备的描述符的真实长度和设备的类型。
2) Set Address。接着是设置设备地址处理事件,主机发送一个含有指定地址的数据包(00,05,02,00,00,00,00,00),在主机只有一个USB设备的时候,这个地址一般会是2,最大地址127,USB协议中可以连接127个设备。设置地址事件处理结束后,设备进入地址状态,主机以后会在新的指定地址处访问设备。 3) Get Device Descriptor。主机再次发送请求得到设备描述符的数据包(80,06,00,01,00,00,12,00),与上次不同的是,要求的数据的长度是实际的数据长度。因为D12设备每次只能发送16个字节,因此它会分两次完成此要求(“12”指12H,十进制值为18)。 4) Get Configuration Descriptor。接着主机要求得到设备的配置描述符(80,06,00,02,00,00,09,00),包中数据“09”指定设备发送9个字节,这正是设备配置描述符的长度。 5) 读取全部Configuration Descriptor。接着主机要求得到设备全部的配置描述符、接口描述符和节点描述符(80,06,00,02,00,00,FF,00),由于主机不知道设备描述符的真实长度,因此它要求得到256个字节,实际上本系统中的D12发送46个字节就完成了此任务。 6) 如果以上步骤都正确,主机将找到新设备,提示安装驱动程序;否则找到未知设备,不可用。 如果驱动程序安装成功,主机会再次以描述符的实际长度要求设备重新发送设备描述符和配置描述符;接着主机发送设置设备配置SETUP包,设备处理此事件,将允许所有节点进入工作状态;最后主机请求得到设备和接口的配置,如果设备成功应答,枚举过程结束。 BUSBOUND不需要装驱动 [编辑 - 6/17/04 by mirror] [编辑 - 6/17/04 by mirror] |
|
板凳#
发布于:2004-06-17 20:02
找一个U盘,插入PC USB port时用BusHound就可发获得这些数据。
|
|