mhxsoft
驱动牛犊
驱动牛犊
  • 注册日期2003-06-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望10点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1701回复:5

单片机读写U盘成功----只差一点点

楼主#
更多 发布于:2003-06-17 17:53
我在开发一个读写U盘的嵌入式系统,各种请求信息都获取正常,但在READ(10)CBW--DATA IN--(NAK?)--CSW时,在DATA IN中的IN PID后一直回答是NAK,为什么?是不是在读写前还有什么操作或者是时延问题?(INTERFACE=[08,06,50],BULK-ONLY方式)警请各位指教12!!
CBW―READ
DB 55H,53H,42H,43H,28H,0E8H,31H,0FEH
DB 00H,02H,00H,00H,80H,00H,0AH,28H
DB 00H,00H,00H,00H,00H,00H,00H,01H
DB 00H,00H,00H,00H,00H,00H,00H
DATA IN
NAK??????????
我用的是:MSP430+SL811(HOST)+U盘

[编辑 -  6/17/03 by  mhxsoft]

最新喜欢:

gx004gx004 ww7002ww7002
hustdj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-06
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-17 20:43
“各种请求信息都获取正常”

那你一共实现了几个SCSI2的命令呀?
inquiry,write(10),read capacity都实现了吗?
b5cbb3ac
驱动牛犊
驱动牛犊
  • 注册日期2003-01-23
  • 最后登录2004-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-17 22:31
设备忙,继续发读取命令。
mhxsoft
驱动牛犊
驱动牛犊
  • 注册日期2003-06-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分100分
  • 威望10点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-18 07:57
每一个SCSI2的命令都是这样!!!
我一直发送还是NAK!!!

我又发现一个问题:GET MAX LUN返回的应该是00H,为什么我的返回是50H呢???
我知道了,我先RESET,后GET MAX LUN,没有返回,50H是以前的值。
请问这两个请求什么时候用到???

[编辑 -  6/18/03 by  mhxsoft]
zhangxi1198
驱动牛犊
驱动牛犊
  • 注册日期2003-06-12
  • 最后登录2003-08-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-18 13:35
兄弟:
     没错,我帮你试了一下,可以读到数据。
     你是不是搞错endpoint了,endpoint 2 是 out,endpoint 1是in,我用的是朗科的u盘,你可以查一下你的every endpoint is in or out?
     你是哪个学校的,我是西电的,让我们来共同研究。
     你定义的 DB 55 53 42 43 我知道是dCBWSignature ,但我不知道什么含义, 在我收到的 CSW 中 是 55 53 42 53,兄弟你有 CBW,CSW 的资料吗? 发我一份,谢了!
     我那儿有 硬盘引导扇区和文件格式的资料,我们可以相互交流。

 e-mail: zhanghua@isinstruments.com
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-19 10:55
每一个SCSI2的命令都是这样!!!
我一直发送还是NAK!!!

我又发现一个问题:GET MAX LUN返回的应该是00H,为什么我的返回是50H呢???
我知道了,我先RESET,后GET MAX LUN,没有返回,50H是以前的值。
请问这两个请求什么时候用到???

[编辑 -  6/18/03 by  mhxsoft]


1. 我使用过很多u盘,不是所有的都支持get max lun这些命令的!
2. 每种优盘的ep定义都不同要注意!
游客

返回顶部