sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2566回复:17

高分:SL811HS 中使用UFI指令问题!(加分啦!100)

楼主#
更多 发布于:2004-08-26 09:55
我的SL811HS驱动U盘枚举成功以后,只能执行一条UFI指令,执行下一条时,U盘返回NAK,不知道咋回事?劳烦大虾们指点指点

;;;;;;;;;;;;;;;;
根据单批量传输协议(书上写的):每一笔IN或OUT事务都是从DATA0开始,所以我发送一条UFI指令(OUT事务)是从DATA0开始的,接下来发送数据(OUT事务)或接收数据(IN事务)也是从DATA0开始的。

具体过程如下:
1,枚举USB设备,返回OK!
2,调用UFI_READ_INQURY,返回数据OK!
;;;;;;;;;;;;;;;;;;
1,枚举USB设备,返回OK!
2,调用UFI_READ_CAPACITY,返回数据OK!
;;;;;;;;;;;;;;;;;;;

所以我认为UFI_READ_INQURY以及UFI_READ_CAPACITY指令本身应该都是没有问题的!
;;;;;;;;;;;;;;;;;;;;
问题是:
1,枚举USB设备,返回OK!
2,调用UFI_READ_INQURY,返回数据OK!
3,调用UFI_READ_CAPACITY,返回NAK!通知端点忙!

不知各位大虾有何看法,敬请多多指教!





[编辑 -  8/27/04 by  sunnysky]
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
jiangyiyong
驱动大牛
驱动大牛
  • 注册日期2002-11-28
  • 最后登录2004-08-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-26 14:53
D0/D1有没有切换
我来自中国 抵制日货
mlw888
驱动牛犊
驱动牛犊
  • 注册日期2004-05-20
  • 最后登录2007-08-11
  • 粉丝0
  • 关注0
  • 积分192分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-26 17:31
命令格式正确吗,有时字节序需要转换
bigbigboy
驱动牛犊
驱动牛犊
  • 注册日期2003-08-24
  • 最后登录2008-08-06
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-26 21:13
命令格式正确吗,有时字节序需要转换

agree,你可以找已开发成功的ufi设备(如u盘),用bushound截获数据,再和自己发送接收的数据比较一下
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-27 10:43
具体过程如下:
1,枚举USB设备,返回OK!
2,调用UFI_READ_INQURY,返回数据OK!
;;;;;;;;;;;;;;;;;;
1,枚举USB设备,返回OK!
2,调用UFI_READ_CAPACITY,返回数据OK!
;;;;;;;;;;;;;;;;;;;

所以我认为UFI_READ_INQURY以及UFI_READ_CAPACITY指令本身应该都是没有问题的!
;;;;;;;;;;;;;;;;;;;;
问题是:
1,枚举USB设备,返回OK!
2,调用UFI_READ_INQURY,返回数据OK!
3,调用UFI_READ_CAPACITY,返回NAK!通知端点忙!

不知各位大虾有何看法,敬请多多指教!

诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-27 10:50
D0/D1有没有切换


;;;;;;;;;;;;;;;;
根据单批量传输协议(书上写的):每一笔IN或OUT事务都是从DATA0开始,所以我发送一条UFI指令(OUT事务)是从DATA0开始的,接下来发送数据(OUT事务)或接收数据(IN事务)也是从DATA0开始的。

具体过程如下:
1,枚举USB设备,返回OK!
2,调用UFI_READ_INQURY,返回数据OK!
;;;;;;;;;;;;;;;;;;
1,枚举USB设备,返回OK!
2,调用UFI_READ_CAPACITY,返回数据OK!
;;;;;;;;;;;;;;;;;;;

所以我认为UFI_READ_INQURY以及UFI_READ_CAPACITY指令本身应该都是没有问题的!
;;;;;;;;;;;;;;;;;;;;
问题是:
1,枚举USB设备,返回OK!
2,调用UFI_READ_INQURY,返回数据OK!
3,调用UFI_READ_CAPACITY,返回NAK!通知端点忙!

不知各位大虾有何看法,敬请多多指教!

诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-27 20:39
高手呢?
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-28 08:56
注意data1、0交换,另外好像是in是data1开始
调用UFI_READ_CAPACITY,返回NAK解决很简单,调用request sence,询问出错原因。然后再次UFI_READ_CAPACITY,3次失败你可以不用管了。前面UFI_READ_CAPACITY、UFI_READ_INQURY都无关紧要,最重要是test uni ready ok后能读出扇区就行了。

[编辑 -  8/28/04 by  clementzhao]

[编辑 -  8/28/04 by  clementzhao]

[编辑 -  8/28/04 by  clementzhao]
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-08-28 12:44
再请:
     使用SL811HS时,EPXControl的bit6是指示data0,1的,而EPXStatus的bit3(sequence)也是指示data0,1,请问有何区别?
根据我所获取的数据,好象没多大联系?
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-08-28 12:55
注意data1、0交换,另外好像是in是data1开始
调用UFI_READ_CAPACITY,返回NAK解决很简单,调用request sence,询问出错原因。然后再次UFI_READ_CAPACITY,3次失败你可以不用管了。前面UFI_READ_CAPACITY、UFI_READ_INQURY都无关紧要,最重要是test uni ready ok后能读出扇区就行了。

[编辑 -  8/28/04 by  clementzhao]

[编辑 -  8/28/04 by  clementzhao]

[编辑 -  8/28/04 by  clementzhao]


但是资料里说明的是:
1,单批量传输时都是从data0开始的?

问题:
2,请问data0,1交换是以啥为界定的呢?比如:是不是以发送CBW-DATA-CSW为一次事务,data_in或者data_out分别从data0开始,而下一次发送CBW包时又重新从data0开始呢?
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-08-29 12:03
顶一下!没反应?????!!!
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-08-30 15:36
上星期网络有问题,上不来
记错了,批量传输都是data0开始,控制传输才是data1
搞定出错处理应该就可以了
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-08-30 16:18
问题:
2,请问data0,1交换是以啥为界定的呢?比如:是不是以发送CBW-DATA-CSW为一次事务,data_in或者data_out分别从data0开始,而下一次发送CBW包时又重新从data0开始呢?


clementzhao:
                 大佬: 能加我的QQ:397912594 聊一下吗?
 
 



诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-08-30 18:40
再顶!还是没反应!
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-08-31 09:04
问题:
2,请问data0,1交换是以啥为界定的呢?比如:是不是以发送CBW-DATA-CSW为一次事务,data_in或者data_out分别从data0开始,而下一次发送CBW包时又重新从data0开始呢?
 

梅花间竹地变,每个数据包交换一次
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-08-31 09:07
我看你的主要问题还是处理好reques sence

[编辑 -  8/31/04 by  clementzhao]
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-08-31 10:20
我看你的主要问题还是处理好reques sence

[编辑 -  8/31/04 by  clementzhao]


可是糟糕的是:如果所发的UFI请求返回BUSY以后,发送reques_ sence请求同样会返回NAK!我也尝试过BULK_ONLY MASS STORAGE复位,再发reques_sence,也回返回NAK!
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
sunnysky
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2006-07-07
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-08-31 14:05
再顶!还是没反应!! :( :( :( :( :( :(
诚实努力,不懈追求! *************************** 承接单片机软件(C)项目开发 QQ:397912594 E-mail:lshqwork@163.com(不回答问题)
游客

返回顶部