win847
驱动牛犊
驱动牛犊
  • 注册日期2005-11-04
  • 最后登录2009-02-04
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望79点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1389回复:1

关于USB MASS UFI Command的相关问题

楼主#
更多 发布于:2008-09-23 14:28
请教一下大家,如果USB Device返回CSW时超过13个字节,PC端会有什么反应啊?会不会Reset我的Device
win847
驱动牛犊
驱动牛犊
  • 注册日期2005-11-04
  • 最后登录2009-02-04
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望79点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-09-23 14:29
目前做USB大容量存储器件驱动时遇到一个问题。项目的主要目的是利用公司芯片上的USB Device控制器来实现USB大容量存储,也就是优盘了,使用Bulk-only方式传输。目前在枚举阶段能够通过,PC端也可以识别出Inquiry命令传回的数据。但是问题是公司的USB控制器的Bulk-In端点每次送出至少要15个字节的数据,如果少于15个字节,DMA传输就会Hang住,而且没有FIFO填充数据方式,只能用DMA传输。因为Universal Serial Bus Mass Storage Class UFI Command Specification里面的Command Status Wrapper(CSW,规定13个字节长度)和Read Capacity等命令需要传输的数据没有15个字节,所以我现在用的方法是不足15个字节的补0到15个字节再发送,这样像CSW这些数据传输就不符合规范了。

我现在想问的是如果我发送这些不规范的数据,Host端会不会Reset我的器件呢?也就是如果我发送的数据不符合规范,主机端的驱动是不是不认?

PS:我在模拟CD-ROM时,如果发送不规范数据,从调试信息上来看是没有Reset动作的,但是我把Inquiry传回的数据的DeviceType改为优盘时,每次Inquiry或READ10命令后就会有Reset的动作,目前还找不到原因

谢谢。
游客

返回顶部