xuhaiqg
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1725回复:5

请教usb传输速度的问题

楼主#
更多 发布于:2005-04-10 17:16
    有个关于usb传输速度的问题要请教大家,usb1.1协议说每毫秒传一帧的数据,而每个数据包的大小最多64字节(bulk传输),那我该怎么样才能把好几个包的数据放在一帧里传呢?

   我现在做的驱动程序是这样的流程:应用程序用readfiel发出读请求,每次读请求的长度是64×40字节,驱动程序每次向总线驱动发出64字节的读请求,设备驱动程序需要发出40次请求。现在我的驱动程序是可以正常工作的,就是速度很慢,大概60k左右。可能是每毫秒就传了一个数据包,该怎么样才能把好几个包的数据放在一帧里传呢?请大家指教。
纸上来得终觉浅 绝知此事要躬行
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-10 18:21
恩,60K左右正好是1ms一包左右,你的固件应该有问题
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
xuhaiqg
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-10 19:47
大佬,我用的是68013,开了4个fifo,经过检测,从外部设备读数已经足够快了,驱动每来一个in请求都有数去响应的。我不明白“帧”是怎么回事,怎样才能让一帧里传几个包呢。驱动里要做些什么传输速度才能提上去呢
纸上来得终觉浅 绝知此事要躬行
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-10 21:36
大佬,我用的是68013,开了4个fifo,经过检测,从外部设备读数已经足够快了,驱动每来一个in请求都有数去响应的。我不明白“帧”是怎么回事,怎样才能让一帧里传几个包呢。驱动里要做些什么传输速度才能提上去呢

68013使用从模式,可以达到20M字节/秒以上
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
lzyuer
驱动牛犊
驱动牛犊
  • 注册日期2004-09-05
  • 最后登录2005-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-10 21:41
 这个应该数据的传输模式有关,跟工作模式关系不大吧
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-11 13:56
   有个关于usb传输速度的问题要请教大家,usb1.1协议说每毫秒传一帧的数据,而每个数据包的大小最多64字节(bulk传输),那我该怎么样才能把好几个包的数据放在一帧里传呢?

   我现在做的驱动程序是这样的流程:应用程序用readfiel发出读请求,每次读请求的长度是64×40字节,驱动程序每次向总线驱动发出64字节的读请求,设备驱动程序需要发出40次请求。现在我的驱动程序是可以正常工作的,就是速度很慢,大概60k左右。可能是每毫秒就传了一个数据包,该怎么样才能把好几个包的数据放在一帧里传呢?请大家指教。


其实要查这个问题,你可以分两个方面来做
第一:你直接些个固件测试程序,记录一下你固件大概的传输速率,若固件传输速率没有问题你就要考虑上层应用问题了
第二:就是直接查你的上层应用部分是否正确处理?对IO的频繁操作会导致系统发送数据很慢,假如批量数据都是从下位机取的话就不用考虑这个方面。

这个问题是我开发时遇到的最初的问题,应该好解决。
驱网是你们的,也是我们的,归根结底还是大家的!
游客

返回顶部