#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的响应。
请问有没有人遇到过这种情,没有正确去枚举设备造成??
#2
文章发表于:2008-08-08 09:44
你通过什么端点发送的SCSI命令?要通过批量端点的。另外命令的签名一定要对。
#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造成的。
#5
文章发表于:2008-08-15 04:40
好郁闷啊,这个问题一直没有解掉。
不只是这个命令的问题,是根本不能对BULK OUT端点进行操作。。。