Bikky
驱动牛犊
驱动牛犊
  • 注册日期2003-12-01
  • 最后登录2017-02-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望11点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:940回复:0

U盘求救!!!

楼主#
更多 发布于:2004-11-11 17:27
用ISP1581做U盘时,上电后枚举成功了,微软自带的驱动找到了,再接下来就是主机通过Bulk_OUT端点发SCSI命令,每一个是INQUIRY命令,下位机收到了,我用串口打印出来看到的,但我再往Bulk_IN端点写数据回复主机时,就出问题了,在主机端用BusHound看不到上传的数据,下位机也没给出发送中断,但下位机的Bulk_IN端点是肯定没问题的,因为这个板子我前不久做过数据采集卡,是用Bulk传输方式,双向通讯过的。我收到INQUIRY命令后,是随便回复的几个数据,是不是主机收到的不是有效的SCSI命令回复,所以BusHound就不显示了?我想不应该这想吧?还有就是,BusHound里其它枚举命令都能显示出来,就是Set_Address这个命令没有捕获到,但的确设置地址成功了,不知为何?

另还有一现象,我在收到INQUIRY命令后,不往Bulk_IN端点写任何数据,这时主机就停止往下位机发SCSI命令了,超时时间约10 秒,然后又发INQUIRY命令,如再收不到回复,则超时后又发,连试三次后将总线挂起,这可能是正常现象吧?

在上面的现象中,当主机发INQUIRY命令后正在等待回复时,我通过串口给下位机发命令,让下位机通过Bulk_IN端点随便发几个数,此后,主机马上开始下一次重试,而超时时间还未到,说明主机是通过Bulk_IN端点收到数据了,但为何不在BusHound里显示出来,我一开始还以为是Bulk_IN端点出问题了呢,看来我的SCSI命令回复是传上去了,但主机不管是否收到得正确与否,都应在BusHound里显示出来啊?还有就是,我通过Bulk_IN端点发数据后,但一直没收到发送中断,说明主机是取走了几个数,但没取完,我在做数据采集卡时驱动是自己写的,每次取数都是取最大包数目,然后Bulk_IN的发送中断就有了。

哪位大侠能帮忙解释一下上述难题?不胜感激!不弟实在没辙了。。。。。。
百克
游客

返回顶部