tan_1_2
驱动牛犊
驱动牛犊
  • 注册日期2003-10-06
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1951回复:11

U盘数据写不进?

楼主#
更多 发布于:2003-11-13 19:53
  各位大侠帮帮忙,这个问题捆扰我很长时间了
我用SL811HS读写U盘,但数据读得出来,却写不进去。
除了写命令,其它命令:read10,inquriy, read capacity ,test unity ready等都能正确执行。
我的write10的CBW是:0x55,0x53,0x42,0x43,0x28,0xE8,0x31,0xFF,0x00,0x02,0x00,0x00,
0x00,0x00,0x0A,0x2A,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00
请问这个CBW是否正确?
我发出CBW后U盘返回ACK,接着发OUT包,向U盘输入512个字节,U盘返回ACK,但我发出IN包读CSW时却返回NAK,我分析原因可能是我的CBW没有被U盘正确解析和执行,我的CBW对吗


 

最新喜欢:

quickerquicke...
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-14 02:13
 各位大侠帮帮忙,这个问题捆扰我很长时间了
我用SL811HS读写U盘,但数据读得出来,却写不进去。
除了写命令,其它命令:read10,inquriy, read capacity ,test unity ready等都能正确执行。
我的write10的CBW是:0x55,0x53,0x42,0x43,0x28,0xE8,0x31,0xFF,0x00,0x02,0x00,0x00,
0x00,0x00,0x0A,0x2A,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00
请问这个CBW是否正确?
我发出CBW后U盘返回ACK,接着发OUT包,向U盘输入512个字节,U盘返回ACK,但我发出IN包读CSW时却返回NAK,我分析原因可能是我的CBW没有被U盘正确解析和执行,我的CBW对吗


  


好像应该是:
0x80,0x00,0x0A,0x2A。。。

把u盘接到win2k下用bushound看看就ok了嘛!!
^_^
qbasic
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2006-01-03
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-14 08:49
看来碰到这个问题的人真不少?
没有一位大虾出来为大家指点一下?
mhxsoft
驱动牛犊
驱动牛犊
  • 注册日期2003-06-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望10点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-14 10:44
我用SL811HS读写U盘,但数据读得出来,却也写不进去。
除了写命令,其它命令:read10,inquriy, read capacity ,test unity ready等都能正确执行。
我的write10的CBW是:
                  DB 55H,53H,42H,43H,6DH,68H,78H,73H
                  DB 00H,02H,00H,00H,00H,00H,0CH,2AH
                  DB 00H,00H,00H,00H,02H,00H,00H,01H
                  DB 00H,00H,00H,00H,00H,00H,00H

我的read10的CBW是:
                  DB 55H,53H,42H,43H,6DH,68H,78H,73H
                  DB 00H,02H,00H,00H,80H,00H,0CH,28H
                  DB 00H,00H,00H,00H,00H,00H,00H,01H
                  DB 00H,00H,00H,00H,00H,00H,00H

请问这个CBW是否正确?



[编辑 -  11/14/03 by  mhxsoft]
tan_1_2
驱动牛犊
驱动牛犊
  • 注册日期2003-10-06
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-11-17 14:28
NewTech兄,为何我用BUSHOUND 测时只能显示CBW中的CBWCB,怎样才能显示全部的CBW了
dopy26
驱动牛犊
驱动牛犊
  • 注册日期2003-02-28
  • 最后登录2006-09-25
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-11-17 15:49
[quote]  各位大侠帮帮忙,这个问题捆扰我很长时间了
我用SL811HS读写U盘,但数据读得出来,却写不进去。
除了写命令,其它命令:read10,inquriy, read capacity ,test unity ready等都能正确执行。
我的write10的CBW是:0x55,0x53,0x42,0x43,0x28,0xE8,0x31,0xFF,0x00,0x02,0x00,0x00,
0x00,0x00,0x0A,0x2A,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00
请问这个CBW是否正确?
我发出CBW后U盘返回ACK,接着发OUT包,向U盘输入512个字节,U盘返回ACK,但我发出IN包读CSW时却返回NAK,我分析原因可能是我的CBW没有被U盘正确解析和执行,我的CBW对吗


  


好像应该是:
0x80,0x00,0x0A,0x2A。。。

把u盘接到win2k下用bushound看看就ok了嘛!!
^_^
 [/quote]

0x00,0x00,0x0A,0x2A  是对的, 用bushound抓一下就看到了。写命令不执行的原因不一定是cbw没有解析出来。 你用inquiry 命令后device返回的值, 不同的usb存储器差别是比较大的。
jinfen
驱动牛犊
驱动牛犊
  • 注册日期2002-12-21
  • 最后登录2009-02-25
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-11-17 16:11
我碰到过一次数据写不进去,除了写命令外都能实现,解决办法是找个低格程序把U盘格了(最好是U盘厂家提供)。
tan_1_2
驱动牛犊
驱动牛犊
  • 注册日期2003-10-06
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-11-17 19:36
dopy26 兄:我发inquriy后得到的数据是:
00 00 02 02 1F 00 00 47
65 6E 65 72 69 63 20 55
53 42 20 46 6C 61 73 68
20 44 69 73 6B 20 20 37
2E 37 37 00
有问题吗
dopy26
驱动牛犊
驱动牛犊
  • 注册日期2003-02-28
  • 最后登录2006-09-25
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-11-19 10:52
dopy26 兄:我发inquriy后得到的数据是:
00 00 02 02 1F 00 00 47
65 6E 65 72 69 63 20 55
53 42 20 46 6C 61 73 68
20 44 69 73 6B 20 20 37
2E 37 37 00
有问题吗


偶只分析过前面的 ‘00 00 02 02’ , 是对的! 具体意义见  scsi指令集
dragon_hn
驱动中牛
驱动中牛
  • 注册日期2002-05-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分297分
  • 威望40点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-11-19 11:18
NewTech兄,为何我用BUSHOUND 测时只能显示CBW中的CBWCB,怎样才能显示全部的CBW了

把BUSHOUND中设置项的勾勾打在高一级
www.dragon-2008.com 欢迎交流
dragon_hn
驱动中牛
驱动中牛
  • 注册日期2002-05-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分297分
  • 威望40点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-11-19 11:37
我用SL811HS读写U盘,但数据读得出来,却也写不进去。
除了写命令,其它命令:read10,inquriy, read capacity ,test unity ready等都能正确执行。
我的write10的CBW是:
                  DB 55H,53H,42H,43H,6DH,68H,78H,73H
                  DB 00H,02H,00H,00H,00H,00H,0CH,2AH
                  DB 00H,00H,00H,00H,02H,00H,00H,01H
                  DB 00H,00H,00H,00H,00H,00H,00H

我的read10的CBW是:
                  DB 55H,53H,42H,43H,6DH,68H,78H,73H
                  DB 00H,02H,00H,00H,80H,00H,0CH,28H
                  DB 00H,00H,00H,00H,00H,00H,00H,01H
                  DB 00H,00H,00H,00H,00H,00H,00H

请问这个CBW是否正确?



[编辑 -  11/14/03 by  mhxsoft]

我监控到的正确的CBW
READ10 CBW:
55 53 42 43 - e8 26 5e 81 - 00 02 00 00 - 80 00 0a 28
00 00 00 00 - 00 00 00 01 - 00 00 00 00 - 00 00 00
WRITE CBW:
55 53 42 43 - b8 27 4f 81 - 00 10 00 00 - 00 00 0a 2a
00 00 00 4a - d3 00 00 08 - 00 00 00 00 - 00 00 00

READ10应为 :0A 28而不是0C 28
WRITE10应为:0A 2A而不是0C 2A

[编辑 -  11/19/03 by  dragon_hn]
www.dragon-2008.com 欢迎交流
xxg
xxg
驱动小牛
驱动小牛
  • 注册日期2002-02-28
  • 最后登录2005-12-12
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-11-19 12:15
注意延时,大多是延时引起的.欢迎访问我的网站:http://eden.51.net是关于USB开发设计方面的
游客

返回顶部