vip0126
驱动牛犊
驱动牛犊
  • 注册日期2006-08-31
  • 最后登录2010-07-12
  • 粉丝0
  • 关注0
  • 积分162分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:1556回复:5

bulk out时的ping state是怎么回事?

楼主#
更多 发布于:2007-09-07 17:07
我正在做ehcd的host controller.
枚举过了以后开始bulk传输

现象简单说,就是第一次bulk out , bulk in 都成功。第二次bulk out成功,bulk in就再也等不到了。

查找了整个u盘插入后的流程,就发现第一次bulk out后qtd的token status 返回ping state有点可疑。
应该是告诉host,device没有空间。我还是怀疑之前的ehcd host controller的设置,或者枚举有问题。

谁知道使用u盘的过程哪里有问题,才会出现ping state?
大侠救命,不胜感激阿!
dingsing
驱动牛犊
驱动牛犊
  • 注册日期2007-06-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-09-13 16:32
伙计,我也是做EHCI的,我的情况和你的一模一样,也是U盘枚举完了,发出第一个BULK OUT 之后,Ping 位就被置1了,然后在后面发的BULK IN 收到的全是NAK,无论等多久都不来数据。。。。
希望能探讨一下,我的邮箱:weiding139@yahoo.com.cn  QQ:176131760
vip0126
驱动牛犊
驱动牛犊
  • 注册日期2006-08-31
  • 最后登录2010-07-12
  • 粉丝0
  • 关注0
  • 积分162分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-09-18 18:14
我的情况是还能收到一次BULK IN的数据
第二次BULK IN 就再也等不到了。

现在我觉得EHCI硬件自动处理了PING STATE,不用软件操心

现在这两次BULK OUT后 QTD的TOKEN都提示DT(DATA TOGGLE BIT)=1,
但是DEVICE应该改变这个BIT。正常的数据应该是1,0,1,0。。。交替的。

不知道为什么DEVICE没有给我改变?

设备端应该也没有什么问题,都是正常的U盘。
vip0126
驱动牛犊
驱动牛犊
  • 注册日期2006-08-31
  • 最后登录2010-07-12
  • 粉丝0
  • 关注0
  • 积分162分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-09-20 15:18
好像下面两个帖子和我遇到的问题比较象,有兴趣的人可以看看

http://www.usb.org/phpbb/viewtopic.php?t=13495

http://www.usb.org/phpbb/viewtopic.php?t=13557
dingsing
驱动牛犊
驱动牛犊
  • 注册日期2007-06-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-09-20 15:51
我的问题解决了,原来是发的CBW指令不对才导致 这样的问题的
vip0126
驱动牛犊
驱动牛犊
  • 注册日期2006-08-31
  • 最后登录2010-07-12
  • 粉丝0
  • 关注0
  • 积分162分
  • 威望27点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-09-21 09:15
hehe, 看来我们是两个问题了。
我的要发的数据没有问题。
要修改qh , qtd的data toggle bit的处理方式。
游客

返回顶部