阅读:1578回复:3
请教:模拟MASS STORAGE 不能收到PC发来的INQUIRE命令,端是为何?
查过历史贴未见相同,请大虾们多给建议啊!
我用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,这个应该是导致失败的原因吗?如果是的话,需要什么条件才能避免呢? 谢谢大家! ![]() |
|
沙发#
发布于:2005-07-01 14:05
顶!
|
|
板凳#
发布于:2005-07-02 11:13
收到GET MAX LUN命令后回复stall pid,
我试过可以,你试试看. |
|
地板#
发布于:2005-07-04 16:26
谢谢mmxzws。您也用811HS作SLAVE?!愿同您交流。MSN:templa_0520@hotmail.com.
如果回复STALL后会得到CLEAR FEATURE ,连续持续3次。 不过问题我好象找到了,错在SET_CONFIG的处理上,CYPRESS的DEMO(HID)给的程序未打开ARM位。现在我已经开始收到CBW包了。只是问题解决得希里糊涂的,有哪位能给我一些解释,不胜感谢! |
|