20楼#
发布于:2003-03-05 21:53
顺便说一下,在没有正确set config之前,bushound好像不能正确地抓到所有的数据,最好是在内存里开个缓冲记录所有收到和发送的数据,有一点提醒一下即便你记录下的数据是正确的,系统也可能没有以一个正确的包方式收到你发送的数据,建议你仔细调试你的发送程序!
另外将你的98下的mass storage驱动发一份给我吧!谢谢了! |
|
21楼#
发布于:2003-03-05 21:59
这是我抓的别人产品的数据:
18.0 CTL 80 06 00 01 GET DESCRIPTR 0us 1.1.0 00 00 12 00 1.1.4 18.0 DI 12 01 10 01 .... 4.3ms 1.2.0 00 00 00 10 .... 1.2.4 ec 0a 10 50 ...P 1.2.8 00 01 01 02 .... 1.2.12 03 01 .. 1.2.16 18.0 CTL 80 06 00 02 GET DESCRIPTR 24us 2.1.0 00 00 09 00 2.1.4 18.0 DI 09 02 20 00 .. . 3.9ms 2.2.0 01 01 00 80 .... 2.2.4 32 2 2.2.8 18.0 CTL 80 06 00 02 GET DESCRIPTR 16us 3.1.0 00 00 20 00 3.1.4 18.0 DI 09 02 20 00 .. . 4.9ms 3.2.0 01 01 00 80 .... 3.2.4 32 09 04 00 2... 3.2.8 00 02 08 06 .... 3.2.12 50 00 07 05 P... 3.2.16 01 02 40 00 ..@. 3.2.20 00 07 05 82 .... 3.2.24 02 40 00 00 .@.. 3.2.28 18.0 CTL 00 09 01 00 SET CONFIG 25us 4.1.0 00 00 00 00 4.1.4 18.0 CTL a1 fe 00 00 CLASS 3.2ms 5.1.0 00 00 01 00 5.1.4 18.0 DI 00 . 3.7ms 5.2.0 18.1 DO 55 53 42 43 USBC 247ms 6.1.0 44 33 22 11 D3\". 6.1.4 60 00 00 00 `... 6.1.8 80 00 0c 12 .... 6.1.12 00 00 00 24 ...$ 6.1.16 00 00 00 00 .... 6.1.20 00 00 00 00 .... 6.1.24 00 00 00 ... 可是我发现还有很多没有被抓到,你看看吧!! |
|
22楼#
发布于:2003-03-06 11:14
哦,不过设备端返回数据的超时限制是500ms第一个包,然后每包也是500ms,状态包是50ms。5s是指主机发数据,设备端等待的最大时间。 是500ms,我又看了看协议,原来我一直都在犯一个低级错误,认为500ms是5s,下面是原文:For standard device requests that require no Data stage, a device must be able to complete the request and be able to successfully complete the Status stage of the request within 50 ms of receipt of the request. This limitation applies to requests to the device, interface, or endpoint. For standard device requests that require data stage transfer to the host, the device must be able to return the first data packet to the host within 500 ms of receipt of the request. For subsequent data packets, if any, the device must be able to return them within 500 ms of successful completion of the transmission of the previous packet. The device must then be able to successfully complete the status stage within 50 ms after returning the last data packet. 我抓的就是2。0的数据,我下午在调试一下把详细结果帖出来,大家再看看有什么问题吧。 |
|
23楼#
发布于:2003-03-06 16:58
这是成功数码相机的包,请参考〉〉
Dev - Device ID Time - Elapsed time since the start of the previous Phase Phase - ADDR= 1394 transfer address LOCK= 1394 lock transaction CDB = Command block NSTS= NT status CTL = USB control packet RSET= bus reset DI = Data In RSTS= I/O Request Status DO = Data Out SNS = SCSI Sense Data IDE = IDE task file command SSTS= SCSI Request Block Status ISOC= Isochronous Transfer USTS= USB status (11) USB Root Hub Dev Phase Data Info Time Cmd.Phase.Ofs --- ----- ----------------------------------------------------- ---------------- ----- ------------------ 11 CTL 80 06 00 01 - 00 00 12 00 GET DESCRIPTR 0us 1.1.0 11 DI 12 01 00 01 - 09 01 00 08 - 00 00 00 00 - 00 00 00 00 ................ 13us 1.2.0 00 01 .. 1.2.16 11 CTL 80 06 00 02 - 00 00 ff 00 GET DESCRIPTR 16us 2.1.0 11 DI 09 02 19 00 - 01 01 00 40 - 00 09 04 00 - 00 01 09 01 .......@........ 4us 2.2.0 00 00 07 05 - 81 03 08 00 - 0a ......... 2.2.16 11 CTL a0 06 00 00 - 00 00 47 00 CLASS 13us 3.1.0 11 DI 09 29 02 11 - 00 01 00 00 - 00 .)....... 6us 3.2.0 11 CTL 80 00 00 00 - 00 00 02 00 GET STATUS 14us 4.1.0 11 DI 03 00 .. 4us 4.2.0 11 CTL 00 09 01 00 - 00 00 00 00 SET CONFIG 14us 5.1.0 11 CTL 23 03 08 00 - 01 00 00 00 CLASS 48us 6.1.0 11 CTL 23 03 08 00 - 02 00 00 00 CLASS 19ms 7.1.0 11 CTL 23 01 10 00 - 01 00 00 00 CLASS 20ms 8.1.0 11 CTL 23 01 10 00 - 02 00 00 00 CLASS 16us 9.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 392us 10.1.0 11 DI 00 01 00 00 .... 15us 10.2.0 11 CTL a3 00 00 00 - 02 00 04 00 CLASS 14us 11.1.0 11 DI 00 01 00 00 .... 5us 11.2.0 11 CTL 80 00 00 00 - 00 00 02 00 GET STATUS 2.3mn 12.1.0 11 DI 03 00 .. 11us 12.2.0 11 DI 02 00 00 00 - 80 fd 46 80 ......F. 7.8sc 13.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 15us 14.1.0 11 DI 01 01 01 00 .... 16us 14.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 70us 15.1.0 11 DI 01 01 01 00 .... 7us 15.2.0 11 CTL 23 01 10 00 - 01 00 00 00 CLASS 23us 16.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 20ms 17.1.0 11 DI 01 01 00 00 .... 24us 17.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 109ms 18.1.0 11 DI 01 01 00 00 .... 26us 18.2.0 11 CTL 23 03 04 00 - 01 00 00 00 CLASS 24us 19.1.0 11 DI 02 00 00 00 - 80 fd 46 80 ......F. 10ms 20.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 16us 21.1.0 11 DI 03 01 10 00 .... 13us 21.2.0 11 CTL 23 01 14 00 - 01 00 00 00 CLASS 3us 22.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 19ms 23.1.0 11 DI 03 01 00 00 .... 29us 23.2.0 11 USTS 05 00 00 c0 no response 628us 24.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 510ms 25.1.0 11 DI 03 01 00 00 .... 26us 25.2.0 11 CTL 23 03 04 00 - 01 00 00 00 CLASS 20us 26.1.0 11 DI 02 00 00 00 - e0 3f 02 ee .....?.. 10ms 27.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 18us 28.1.0 11 DI 03 01 10 00 .... 18us 28.2.0 11 CTL 23 01 14 00 - 01 00 00 00 CLASS 4us 29.1.0 11 USTS 05 00 00 c0 no response 19ms 30.1.0 11 DI 02 00 00 00 - 80 fd 46 80 ......F. 364ms 31.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 14us 32.1.0 11 DI 00 01 03 00 .... 16us 32.2.0 11 CTL 23 01 11 00 - 01 00 00 00 CLASS 3us 33.1.0 11 DI 02 00 00 00 - 8c f6 46 80 ......F. 16us 34.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 3us 35.1.0 11 DI 00 01 01 00 .... 5us 35.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 54us 36.1.0 11 DI 00 01 01 00 .... 6us 36.2.0 11 CTL 23 01 10 00 - 01 00 00 00 CLASS 20us 37.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 145ms 38.1.0 11 DI 00 01 00 00 .... 28us 38.2.0 11 USTS 05 00 00 c0 no response 1.1ms 39.1.0 11 CTL 23 01 01 00 - 01 00 00 00 CLASS 509ms 40.1.0 11 DI 02 00 00 00 - e0 3f 02 ee .....?.. 71us 41.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 7us 42.1.0 11 DI 00 01 01 00 .... 9us 42.2.0 11 CTL a3 00 00 00 - 02 00 04 00 CLASS 52us 43.1.0 11 DI 00 01 00 00 .... 5us 43.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 1.2ms 44.1.0 11 DI 00 01 01 00 .... 22us 44.2.0 11 CTL 23 01 10 00 - 01 00 00 00 CLASS 19us 45.1.0 11 DI 02 00 00 00 - e0 3f 02 ee .....?.. 229ms 46.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 22us 47.1.0 11 DI 01 01 01 00 .... 22us 47.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 76us 48.1.0 11 DI 01 01 01 00 .... 8us 48.2.0 11 CTL 23 01 10 00 - 01 00 00 00 CLASS 24us 49.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 20ms 50.1.0 11 DI 01 01 00 00 .... 23us 50.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 109ms 51.1.0 11 DI 01 01 00 00 .... 25us 51.2.0 11 CTL 23 03 04 00 - 01 00 00 00 CLASS 22us 52.1.0 11 DI 02 00 00 00 - 80 fd 46 80 ......F. 10ms 53.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 5us 54.1.0 11 DI 03 01 10 00 .... 6us 54.2.0 11 CTL 23 01 14 00 - 01 00 00 00 CLASS 3us 55.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 19ms 56.1.0 11 DI 03 01 00 00 .... 22us 56.2.0 11 DI 12 01 00 01 - 00 00 00 08 ........ 1.9ms 57.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 31us 58.1.0 11 DI 03 01 00 00 .... 7us 58.2.0 11 CTL 23 03 04 00 - 01 00 00 00 CLASS 14us 59.1.0 11 DI 02 00 00 00 - 80 fd 46 80 ......F. 10ms 60.1.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 9us 61.1.0 11 DI 03 01 10 00 .... 8us 61.2.0 11 CTL 23 01 14 00 - 01 00 00 00 CLASS 3us 62.1.0 11 DI 12 01 00 01 - 00 00 00 08 - 51 08 42 15 - 00 01 00 00 ........Q.B..... 29ms 63.1.0 00 01 .. 63.1.16 11 DI 09 02 69 00 - 02 01 00 a0 - fa ..i...... 1.9ms 64.1.0 11 CTL a3 00 00 00 - 02 00 04 00 CLASS 14ms 65.1.0 11 DI 00 01 00 00 .... 24us 65.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 6.8ms 66.1.0 11 DI 03 01 00 00 .... 27us 66.2.0 11 CTL a3 00 00 00 - 02 00 04 00 CLASS 23us 67.1.0 11 DI 00 01 00 00 .... 6us 67.2.0 11 CTL a3 00 00 00 - 01 00 04 00 CLASS 5.7ms 68.1.0 11 DI 03 01 00 00 .... 24us 68.2.0 11 CTL a3 00 00 00 - 02 00 04 00 CLASS 17us 69.1.0 11 DI 00 01 00 00 .... 5us 69.2.0 |
|
|
24楼#
发布于:2003-03-07 10:27
下面是收到的全部数据:
15 CTL 80 06 00 01 - 00 00 12 00 GET DESCRIPTR 15 DI 12 01 02 00 - 00 00 00 40 - 47 05 49 1b - 00 00 00 00 .......@G.I... 00 01 .. 15 CTL 80 06 00 02 - 00 00 c8 00 GET DESCRIPTR 15 DI 09 02 20 00 - 01 01 01 80 - 32 09 04 00 - 00 02 00 00 .. .....2..... 00 00 07 05 - 81 02 00 02 - 00 07 05 02 - 02 00 02 00 ............. 15 CTL 00 09 01 00 - 00 00 00 00 SET CONFIG 15 CTL 80 08 00 00 - 00 00 01 00 GET CONFIG 15 USTS 04 00 00 c0 pid stalled 15 CTL 81 0a 00 00 - 00 00 01 00 GET INTERFACE 15 USTS 04 00 00 c0 pid stalled 15 CTL 00 09 00 00 - 00 00 00 00 SET CONFIG 难道是 GET CONFIG和 INTERFACE 有错吗,GET INTERFACE不是只需要返回一个0就可以了吗? |
|
25楼#
发布于:2003-03-07 14:08
我还是感觉你返回配置描述符表里的接口描述符有问题,你不告诉主机什么类,子类及协议,主机怎么继续给你发信息?当然它就会继续要配置和接口信息了。
|
|
26楼#
发布于:2003-03-07 14:15
但是我看CYPRESS里面成功枚举的也没有呀,不过他们设的是FF,那我也改成FF试试。
|
|
27楼#
发布于:2003-03-07 14:23
cypress的设成FF我想是因为它用自己的驱动程序,而且FF的含义就是Vendor自定义类和子类。如果你想用缺省的W2K MassStorageClass驱动,不如就改成08 06 50或08 04 50算了。
还有你的BusHound版本多少的?我怎么抓不到买的2.0硬盘盒的数据信息? |
|
28楼#
发布于:2003-03-07 18:34
我用的是3.3的,前不久有人传了一个我当下来的,你往前翻几页看看,还在呢.
那我按你说的再试试,我现在还有一点怀疑,是不是cpu太快也会对我的设备有影响,我用的是P4-2.4G的. |
|
29楼#
发布于:2003-03-09 12:50
现在问题是:我在set config里面只设置了一个标志位,然后主机就发送get config命令,我收到后返回了当前的配置值1,然后主机就又发了个00 09 00 00 00 00 00 00给我,之后就什么也没有了,而设备管理器里面显示的设备上那个黄色的叹号还有,这是不是说明我后续枚举没有完成呢。 我也是出现了黄色的叹号, 我想很可能是没有成功, 因为我还没有收到 00 09 00 00 00 00 00 00 就出现黄色叹号了。 我只收到 80 06 ...... 和 00 05 ..... , 等收到 80 06 02 03 09 04 ff 00 的时候,MCU 就不动了。 |
|
30楼#
发布于:2003-03-09 13:02
下面是最新收到的数据: 这个就是枚举没有成功了。 因为我碰到过这种现象, 当host得到不正确的响应或超时时,它可能会重新开始 GetDescriptor. |
|
31楼#
发布于:2003-03-09 13:10
[quote]之前我已经收到了一个00 09 01 00 00 00 00 00了,我返回空的数据报表是配置完成后,主机发送了get configuration给我,我返回了当前配置值1后,主机就发给我00 09 00 00 00 00 00 00,所以很奇怪 置哪个标志位啊? [/quote] 我也觉得应该置那个标志位。 SETUP -> IN IN 为: NoDataControl |
|
32楼#
发布于:2003-03-09 13:16
我用的是 USB1.1
收到的请求有: 01、80 06 00 01 00 00 40 00 02、00 05 02 00 00 00 00 00 03、80 06 00 01 00 00 12 00 04、80 06 00 02 00 00 09 00 05、80 06 00 02 00 00 ff 00 06、80 06 00 03 00 00 ff 00 07、80 06 02 03 09 04 ff 00 之后就收不到 08 step 了。 但在前 07 step 中已经加载过 .INF 和 .SYS 了。 出现黄色叹号, 我的问题可能出在哪里。 是的回应数值不对还是驱动有问题? |
|
33楼#
发布于:2003-03-09 17:57
哎,我看短时间内是搞不定了,先结了贴再说吧. :(
|
|
34楼#
发布于:2003-03-11 12:13
收到 set config 后有没有设置端点使能?
|
|
35楼#
发布于:2003-03-11 14:46
[quote]下面是最新收到的数据: 这个就是枚举没有成功了。 因为我碰到过这种现象, 当host得到不正确的响应或超时时,它可能会重新开始 GetDescriptor. [/quote] 这种说法不太准确,usb是有可能发几次GetDescriptor命令的 |
|
36楼#
发布于:2003-03-14 20:52
我的已经通过了,现在正在识别SCSI的命令包了!
我建议你试试以下几个方法: 1、重装系统98、2000 2、肯定是你的get config的应答有问题! 3、set address时的设置有错,导致set config应答之后,收不到bulk only控制包 祝你好运!!! :D |
|
37楼#
发布于:2003-03-18 12:52
呵呵,多谢个位老兄的鼎立帮助!我的问题已经解决,原因是别人写的设备驱动出了问题,我用SOFTICE调了一下,发现ConfigDevice()里在搜索指定配置描述附中的接口描述符时出了错,用的函数太过古老了,找不着,所以就无法建立pipe list,因此主机只好再发命令把设备置于未配置状态(也就是00 09 00 00 00 00 00 00命令),改了之后就好了!
这是昨天完成的,可是前天晚上开了会,因为那时还没做完,所以被老板狠狠骂了一顿,我比窦娥都冤呀! 真的很感谢大家,多谢多谢了!!! :) |
|
38楼#
发布于:2003-03-20 19:49
to renjinghui:为什么我得中断只是suspend和busreset呢?把这两个中断处理完了就没有中断再进来了阿?这是为什么呢?谢谢了
|
|
39楼#
发布于:2003-03-20 23:51
恭喜大伙都成功了。
我的可能要先放一下。 |
|