阅读:2861回复:2
bus hound中对phase的迷惑
我用的是bus hound 5.0,我用它来捕获一个成功的usb设备。第一个控制传输显然是Get_Descriptor,用来获得device descriptor。规范中把Get_Descriptor定义为三个阶段:Setup阶段、数据阶段、状态阶段。在bushound捕获的对应该控制传输的信息如下:
Device Phase Data Description Cmd.Phase.ofs 14.0 CTL 省略 GET DESCRIPTOR 1.1.0 14.0 LEN 省略 18 1.2.0 14.0 DI 省略 1.3.0 省略 1.3.8 省略 1.3.16 14.0 URB 省略 CONTROL TRANSFER 1.4.0 省略 1.4.8 省略 1.4.16 省略 1.4.24 ...... 省略 1.4.72 我的问题是: 1、bushound上显示的phase和规范定义的阶段是一致的吗?bushound显示4个phase,而规范上只有三个阶段。 2、LEN Phase是什么意思? 在CTL Phase中,已经指明了数据阶段的数据字节数,这个LEN Phase由谁发给谁?对应规范三个阶段中的哪个阶段? 3、DI Phase应该好理解,对应规范的数据阶段,由device将device descriptor发给host。规范定义的数据阶段之后应该有一个状态阶段,但没有感觉这四个phase中有状态阶段的信息,倒是不知道URB Phase的目的是做什么的? 我是个菜鸟,希望各位高手不吝赐教。 谢谢。 |
|
沙发#
发布于:2005-05-12 15:22
顶一下。
|
|
板凳#
发布于:2005-05-12 15:44
1。bushound上显示的phase和规范定义的阶段完全不一样。
bushound上显示的phase 是该次控制的数据部分。bushound上不出现Setup阶段。 2。LEN Phase的长度是其后 DI 的数据的长度。 3。状态阶段的信息就是 DI 内容,URB Phase 是另一个控制传输。其传输的是 上层驱动所发的 USB Request Block 的内容 |
|