sdbtb
驱动牛犊
驱动牛犊
  • 注册日期2004-06-30
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2861回复:2

bus hound中对phase的迷惑

楼主#
更多 发布于:2005-05-11 16:04
    我用的是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的目的是做什么的?

我是个菜鸟,希望各位高手不吝赐教。 谢谢。
sdbtb
驱动牛犊
驱动牛犊
  • 注册日期2004-06-30
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-12 15:22
顶一下。
wonder_2001
驱动小牛
驱动小牛
  • 注册日期2002-07-02
  • 最后登录2010-12-03
  • 粉丝0
  • 关注0
  • 积分452分
  • 威望96点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-12 15:44
1。bushound上显示的phase和规范定义的阶段完全不一样。
bushound上显示的phase 是该次控制的数据部分。bushound上不出现Setup阶段。
2。LEN Phase的长度是其后 DI 的数据的长度。
3。状态阶段的信息就是 DI 内容,URB Phase 是另一个控制传输。其传输的是 上层驱动所发的 USB Request Block 的内容






游客

返回顶部