Jane_11
驱动牛犊
驱动牛犊
  • 注册日期2002-06-07
  • 最后登录2006-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1548回复:6

USBbuffer在发送完数据以后,buffer会被清空吗?

楼主#
更多 发布于:2004-07-10 12:56
我用的是usb 全速的一款芯片,在做BULK传输的过程中,发现有时会有数据包序号错乱问题.表现为:在PC发送n包的数据后接受到的设备返回的应答为n-1包的数据.以后在n+1时返回n的应答,n+2时为n+1的应答,以后以此错误下去.数据为USB分析仪得到的,请高手指教.谢谢!
bab
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-10 13:30
有数据丢了
可能你发包太快了吧
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
Jane_11
驱动牛犊
驱动牛犊
  • 注册日期2002-06-07
  • 最后登录2006-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-12 10:00
USBbuffer在发送完数据以后,buffer会被清空吗?
另外,您指的我发送数据太快是指什么?是说在设备上的数据还没有被处理完毕的时候就发送了旧的数据吗?是不是说USB发送给总线数据以后buffer不被清空啊?谢谢
bab
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-12 10:52
会自动清空。
Jane_11
驱动牛犊
驱动牛犊
  • 注册日期2002-06-07
  • 最后登录2006-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-12 11:04
PC收到了所有的数据包,只是某数据设备多发送了一次.
可是我检查了我得程序,确实是在数据准备好以后才设置通道为有效的阿.

=============
郁闷
=============
bab
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-12 13:11
如果你填充的数据达到了端点的最大值,那么这个包会自动生效
你不要再强制让它生效,如果你这样做了,那么会再将该数据重新发送一次或者发送一个空的数据包给主机!
Jane_11
驱动牛犊
驱动牛犊
  • 注册日期2002-06-07
  • 最后登录2006-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-12 13:25
可是在芯片手册里写明了当数据准备好以后要置通道状态为valid,解释为:VALID: this endpoint is enabled (if an address match occurs, the USB interface handles the transaction).包含这一位的寄存器的注释为:These bits are written by software.Hardware sets the STAT_TX and STAT_RX bits to NAK when a correct transfer has occurred (CTR=1) addressed to this endpoint; this allows software to prepare the next set of data to be transmitted.奇怪的是测试有时候是可以成功的,有时候会出错.
bab
游客

返回顶部