taoshahai
驱动牛犊
驱动牛犊
  • 注册日期2003-11-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望27点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
阅读:2743回复:7

提高USB速率的几种方法--主要针对嵌入式

楼主#
更多 发布于:2007-08-08 10:53
做了几个月USB,涉及device和HC以及主机,大家都对速率比较敏感,现在我总结一下:
我的device是WCDMA的数据卡(无线modem),主机是MPC8270 ,HC用的是ISP1562或者ISP1564和NEC720101,建议大家用NEC的,ISP的HC问题比较多,特别是发送的时候一个TD大小不能超过64B,否则过一段时间后主机会出现outirp in use,abort这个out irp也不行,读HC的bulk位,证明数据已经送到HC了,但是ISP 的HC根本就没有把数据往总线上送,所以HC也不会向上送irp complete的消息,这个问题ISP的64字节问题一直捆饶我。NEC的720101就不会出现这个问题。我们用的USB1.1  USB 速率能够达到840KB,测试方法是从数据卡(device)往主机MPC8270罐数据,
1、数据卡USB数据发送程序应该简练,
2、数据卡(device)上不用的端点尽量不打开,因为 一个端点对应一个HC上的ED,根据HC的算法,如果你打开了端点,那么在相应的HC的ED也挂在HC的ED列表上,尽管你这个端点的HC上没有数据,HC也会遍力你这个断点的ED,造成浪费。去掉不必要的断点对速率影响很明显,比如你用data口传诵数据的时候,AT命令口就可以关掉,不去listenAT口的端点,这样的话也就不会把AT口的ED挂到HC的ED列表上去
3、通常的USB协议栈,在client驱动层挂IRP时,一次可以往IRP上挂很多个IRP buf,一个IRP的buf大小好象是4K(xworks里面如此)相当于一个TD的大小,理论上IRP buf个数越多越快,这个可以慢慢测试
4、USB协议栈接受数据往client传时用指针传,不要内存copy。
暂时就这样多,欢迎大家讨论!
taoshahai
驱动牛犊
驱动牛犊
  • 注册日期2003-11-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望27点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-11 22:04
还有,有些人喜欢用printf函数进行打印,printf函数是阻塞的,会对速度有影响
drczss
驱动牛犊
驱动牛犊
  • 注册日期2007-05-17
  • 最后登录2008-05-06
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-08-14 16:22
顶一下!
驱网无线,快乐无限
taoshahai
驱动牛犊
驱动牛犊
  • 注册日期2003-11-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望27点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-11-26 13:08
如果CPU有prefetch则尽量打开,snooping则看情况
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-11-28 17:34
ARM9 + SD    在PC上通过USB访问  USB1.1

用叫U盘速度测试仪的一个软件测试 读647KB/S   写663KB/S
给写加了个DMA,再测,立马晕到,  读647KB/S   写仍然是663KB/S

俺那个汗啊  觉得这软件不杂准呢
偶直接往SD卡读写东西,大概70M的一个视频,用秒表来测试的结果是
读1.23M/S   写KB/S     写0.58M/S
[url]http://sniper167.bokee.com[/url]
wjt810907
驱动中牛
驱动中牛
  • 注册日期2004-08-18
  • 最后登录2011-04-16
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望409点
  • 贡献值1点
  • 好评度402点
  • 原创分2分
  • 专家分0分
5楼#
发布于:2007-11-29 08:51
谢谢,正在研究isp1521
mcu_boy
taoshahai
驱动牛犊
驱动牛犊
  • 注册日期2003-11-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望27点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-11-30 11:12
注意数据对齐的问题,否则容易出错
sundyla
驱动牛犊
驱动牛犊
  • 注册日期2008-02-17
  • 最后登录2008-04-30
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-02-17 19:25
需要协助开发usb读写,请楼上几位朋友加我,QQ:503128233
游客

返回顶部