返回该小组首页 回复主题
vongy

vongy

小组等级:     E币:315  (E币换礼)

#1楼主:bulk out endpoint无interrupt产生

文章发表于:2008-08-08 01:45

我最近再研究USB读写U盘,对control endpoint的操作都一切正常。对U盘做了如下动作: set address, get descriptor(device),set configuration, get descriptor(config),set interface,然后我就开始发送SCSI命令,发送了31字节的CBW(其中命令为0x12),这时U盘回给我的是ACK,然后我用bulk in去读U盘回给我的数据,结果竟然一直都是NAK,查找原因,发现我发送的CBW,U盘虽然回了ACK,但并没有产生interrupt,去decode我发送的SCSI command,当然就不会送数据到bulk in endpoint,我对U盘做bulk in的动作就会得到NAK的响应。

请问有没有人遇到过这种情,没有正确去枚举设备造成??

computer00

   小组等级:    E币:10072  (E币换礼)

#2

文章发表于:2008-08-08 09:44

你通过什么端点发送的SCSI命令?要通过批量端点的。另外命令的签名一定要对。

vongy

   小组等级:    E币:315  (E币换礼)

#3

文章发表于:2008-08-08 17:26

我用的是bulk out endpoint发送的SCSI command,用bulk in endpoint去读数据,这里应该不会有问题。

我在网上看到也有人问同样的问题:

执行Inquiry命令时,发送CBW成功,但是Bulk_IN从设备取值时返回NAK???? 多谢指教

我在设备枚举完成后,调用Inquiry命令,其中第一步发送(BULK OUT) CBW命令字,设备返回ACK,我延时后用Bulk IN准备从设备获取返回值时,却总是得到NAK ,这是为什么呀?多谢高手指教?
 
我遇到的问题跟这个一模一样,我又深入查找了一下原因,是bulk out endpoint没有产生相应的interrupt造成的。

computer00

   小组等级:    E币:10072  (E币换礼)

#4

文章发表于:2008-08-11 14:12

如果一直不行,那就只好放弃这个命令了。

vongy

   小组等级:    E币:315  (E币换礼)

#5

文章发表于:2008-08-15 04:40

好郁闷啊,这个问题一直没有解掉。

不只是这个命令的问题,是根本不能对BULK OUT端点进行操作。。。

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

浏览该小组的用户还看过...

设计资源与分销