阅读:1754回复:7
为什么设备枚举到读取配置描述符,然后就提示发现硬件,枚举过程就停止了??
请教大虾们,帮帮忙啊,我的D12枚举的时候到读取配置描述符,就提示发现新硬件,而没有大伙所说的读取描述符集合,设置配置,读取配置状态,以及读取接口状态的枚举过程~~~~~
是不是后面的这些枚举过程由驱动来完成,还是我的固件的问题,这个问题当了我很久,大家能帮我解答一下吗?谢谢了 |
|
最新喜欢:![]() |
沙发#
发布于:2005-03-11 22:20
20.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 57.1.0
20.0 DI 09 02 2e 00 01 01 00 60 01 我的D12枚举到这里的时候,PC机就会提示发现新硬件,然后我安装了周立功的驱动程序D12TEST。SYS,居然能用,然后D12继续枚举, 20.0 CTL 80 06 00 01 00 00 12 00 GET DESCRIPTOR 56.1.0 20.0 DI 12 01 10 01 dc 00 00 10 71 04 66 06 00 01 00 00 ........q.f..... 56.2.0 00 19 .. 56.2.16 20.0 CTL 80 06 00 02 00 00 09 00 GET DESCRIPTOR 57.1.0 20.0 DI 09 02 2e 00 01 01 00 60 01 .......`. 57.2.0 20.0 CTL 80 06 00 02 00 00 2e 00 GET DESCRIPTOR 58.1.0 20.0 DI 09 02 2e 00 01 01 00 60 01 09 04 00 00 04 dc a0 .......`........ 58.2.0 b0 00 07 05 81 03 10 00 0a 07 05 01 03 10 00 0a ................ 58.2.16 20.0 CTL 00 09 01 00 00 00 00 00 SETCONFIG .......`. 枚举到这里以后,设备就能正常使用了,然后用那个USB调试助手,就可以测试端点1和端点2了 |
|
板凳#
发布于:2005-03-11 11:05
我看到PC 要求上传46 个字节 的配置描述符信息,怎么只传了九个字节固件就不上传了呢?
|
|
地板#
发布于:2005-03-11 11:01
我的D12枚举的时候读到配置描述符时怎么没有你说的PC 提示找到新硬件呢?仅有一次在五台机上提示说安装时发现了一个错误,是不是我的描述符不正确啊,请你帮忙看看,谢谢了!下面是我用BUSHOUND 看到的数据,我也对比了其他的设备,好象和我的一样,可就是枚举不了,真郁闷!
DI 02 00 00 00 50 08 47 80 11:39:05.234 DI 03 01 10 00 11:39:05.234 DI 03 01 00 00 11:39:05.255 DI 12 01 00 01 dc 00 00 10 71 04 66 06 00 01 00 00 11:39:05.256 DI 03 01 00 00 11:39:05.256 DI 02 00 00 00 50 08 47 80 11:39:05.267 DI 03 01 10 00 11:39:05.267 DI 12 01 00 01 dc 00 00 10 71 04 66 06 00 01 00 00 00 01 11:39:05.303 DI 09 02 2e 00 01 01 00 80 32 11:39:05.304 DI 03 01 00 00 11:39:05.817 DI 02 00 00 00 50 08 47 80 11:39:05.827 DI 03 01 10 00 11:39:05.827 DI 12 01 00 01 dc 00 00 10 71 04 66 06 00 01 00 00 11:39:05.850 DI 03 01 00 00 11:39:05.850 DI 02 00 00 00 50 08 47 80 11:39:05.861 DI 03 01 10 00 11:39:05.861 DI 12 01 00 01 dc 00 00 10 71 04 66 06 00 01 00 00 00 01 11:39:05.897 DI 09 02 2e 00 01 01 00 80 32 11:39:05.898 DI 03 01 00 00 11:39:06.411 DI 02 00 00 00 50 08 47 80 11:39:06.421 DI 03 01 10 00 11:39:06.421 DI 12 01 00 01 dc 00 00 10 71 04 66 06 00 01 00 00 11:39:06.444 DI 03 01 00 00 11:39:06.444 DI 02 00 00 00 50 08 47 80 11:39:06.455 DI 03 01 10 00 11:39:06.455 DI 12 01 00 01 dc 00 00 10 71 04 66 06 00 01 00 00 00 01 11:39:06.491 DI 09 02 2e 00 01 01 00 80 32 |
|
地下室#
发布于:2005-03-10 20:23
已经弄好了,我的猜想好象是对的,那就是读取配置正确后,PC机就会提示说发现新硬件,然后安装好相应的驱动,才会再进行读取全部描述符,设置配置等枚举过程,然后硬件才可以正常工作。
以上的结论我是把一个USB设备的驱动卸掉,然后用BUShound5.0抓的数据看出来的。我把驱动卸掉插到pc机,看它的枚举过程,结果显示枚举只到读取配置,而不是很多人说的到读所有描述符,安装好驱动以后,才开始读取所有描述符,设置配置等。 我今天还发现,我的D12枚举只到SET_CONFIG,还有两个枚举过程没进行,我原来以为是我的固件错了,查了大半天,后面火了,直接进行端点1和端点2的收发实验,结果居然可以~~!!!就是工作不太稳定,不过这应该是硬件问题(我用万能板焊的,穷啊,制不起板子)。 看来BUShound也不一定很可靠(而且很容易导致蓝屏死机),我们不能太依赖这些工具,和一些书上所宣扬,大胆的去尝试,往往会有意想不到的收获:),谢谢sjlou1126热心,谢谢,给分 |
|
5楼#
发布于:2005-03-10 12:43
不是有主机发出请求的,而是主机自动去读usb的配置信息~
也就是说 所有的东西需要你自己写到usb固件里面进去 让主机来读 而且你要设置好跳转,在主机读取usb信息的时候 保证下一次读取的信息是你所配置的!! |
|
6楼#
发布于:2005-03-10 09:57
我没说清楚,后面的那些枚举过程是由固件来完成的,这个我知道,但是现在的问题是,我的D12枚举到读取配置的时候,PC就提示发现新硬件,并要求安装驱动程序,然后枚举就停了,我用BUShound看的。我的问题是后面的那一系列的枚举是不是由驱动发出请求,然后由固件来继续应答,最终完成枚举过程??还是PC已经发出请求了,但是我的固件没反应???就差最后一步了,好心的大虾们,帮帮忙,谢谢了
|
|
7楼#
发布于:2005-03-10 08:41
你所说的 读取描述符集合,设置配置,读取配置状态,以及读取接口状态的枚举过程~~~~~
都需要由固件来完成的~设备自己是不会自动完成的!!! 我觉得你有必要去看一下你所用的芯片的数据手册!! |
|