templa
驱动牛犊
驱动牛犊
  • 注册日期2005-01-04
  • 最后登录2013-03-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1578回复:3

请教:模拟MASS STORAGE 不能收到PC发来的INQUIRE命令,端是为何?

楼主#
更多 发布于:2005-06-30 13:30
  查过历史贴未见相同,请大虾们多给建议啊!
我用SL811HS作为MASS STORAGE(SLAVE),现在看样子已经通过了枚举,但是我发出对GETMAXLUN命令的响应后PC并未如预想的发送INQUIRE等SCSI命令过来,是因为我对811的设置不对吗?以下是用BUSHOUND抓到的数据:
Device  Phase  Data                                                Description       Delta  
------  -----  --------------------------------------------------  ----------------  -----  ------------------
  19.0  CTL    80 06 00 01  00 00 12 00                            GET DESCRIPTOR    6.2mn
  19.0  LEN    12 00 00 00                                         18                3.1ms
  19.0  DI     12 01 10 01  00 00 00 40  b4 04 11 08  05 01 01 02  .......@........    6us
               00 01                                               ..
  19.0  CTL    80 06 00 02  00 00 09 00                            GET DESCRIPTOR     32us
  19.0  LEN    09 00 00 00                                         9                 3.9ms
  19.0  DI     09 02 20 00  01 01 00 80  32                        .. .....2           7us
  19.0  CTL    80 06 00 02  00 00 20 00                            GET DESCRIPTOR     30us
  19.0  LEN    20 00 00 00                                         32                3.9ms
  19.0  DI     09 02 20 00  01 01 00 80  32 09 04 00  00 02 08 06  .. .....2.......    8us
               50 00 07 05  81 02 40 00  00 07 05 02  02 40 00 00  P.....@......@..  
  19.0  CTL    00 09 01 00  00 00 00 00                            SET CONFIG         33us  
  19.0  CTL    01 0b 00 00  00 00 00 00                            SET INTERFACE     3.3ms
  19.0  CTL    a1 fe 00 00  00 00 01 00                            GET MAX LUN       177us
  19.0  LEN    01 00 00 00                                         1                 4.4ms
  19.0  DI     00                                                  .                   6us
  19    RSET                                                                         2.5sc //我拔出设备
在GETMAXLUN之后如果不拔除设备,每隔越20秒会有一个RSET,有时还会引起蓝屏重起(USBSTOR。SYS引起)。
现在设备管理器中已经有一个打!的MASS STORAGE DEVICE了。
怎么才能让PC发来SCSI命令呢?我打开USTS URB以后曾经见到,GETMAXLUN命令发后几秒后出现CANCELLED,这个应该是导致失败的原因吗?如果是的话,需要什么条件才能避免呢?
谢谢大家!
naokizxx2005
驱动牛犊
驱动牛犊
  • 注册日期2005-05-13
  • 最后登录2009-09-21
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望26点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-01 14:05
顶!
mmxzws
驱动牛犊
驱动牛犊
  • 注册日期2005-06-14
  • 最后登录2005-07-13
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-02 11:13
收到GET MAX LUN命令后回复stall pid,
我试过可以,你试试看.
templa
驱动牛犊
驱动牛犊
  • 注册日期2005-01-04
  • 最后登录2013-03-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-04 16:26
谢谢mmxzws。您也用811HS作SLAVE?!愿同您交流。MSN:templa_0520@hotmail.com.
如果回复STALL后会得到CLEAR FEATURE ,连续持续3次。
不过问题我好象找到了,错在SET_CONFIG的处理上,CYPRESS的DEMO(HID)给的程序未打开ARM位。现在我已经开始收到CBW包了。只是问题解决得希里糊涂的,有哪位能给我一些解释,不胜感谢!
游客

返回顶部