xulingfei
驱动牛犊
驱动牛犊
  • 注册日期2004-06-13
  • 最后登录2009-03-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1173回复:3

关于利用D12双缓冲区提高速度的问题,请教各位大侠!!!

楼主#
更多 发布于:2004-09-14 23:31


rayyang2000版主曾有这样的帖子:
回去修改了一下D12的CLKOUT的输出,让它输出24MHz的时钟,我在BULK传输的时候每次都直接让它发送64个字节。经过同时优化windows device driver和firmware,结果传输16MByte的数据用了33秒!!!计算一下达到了496KByte/s。如果弄个可以运行50MHz的MCU,岂不是要加倍,达到992KByte/s?

当然,如果要实际的每次给D12写64byte的数据,速度就会慢许多,基本上会减半。但我发现,其实D12因为有double buffering的功能,可以每次向它写128bytes!而且,在driver里面直接把16Mbyte的数据分成64K,发给usbd,全部完成以后再一次性的返回给app,这样就得到了我上面说的数据了。

因此,我认为,只要有合适的MCU,再加上时序的调整,driver和app的配合,很有希望得到一个800~900k的传输速率。当然,这只是我的设想,还没有条件验证。哪位xd有条件试验的,可一定要告诉我结果啊!

另外,由于usb的传输和usbd.sys的速度也有很大关系,因此用一个速度快的PC和可以得到更快的传输。

如何才能利用D12的双缓冲区来提搞USB的传输速度?这一问题已经困扰了我好长时间,那位能帮我一把!
我看了rayyang2000版主的帖子还是不行!我还是不知道解决双缓冲区的问题!
xulingfei
驱动牛犊
驱动牛犊
  • 注册日期2004-06-13
  • 最后登录2009-03-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-15 10:06
上面话是rayyang2000版主说的。现在我从主机都MCU中的数据,也不会用D12的双缓冲区。每次只能写64各字节,只能用到其中的一个缓冲区。如何利用D12的双缓冲区,还需要各位大侠帮我解释一下。
游客

返回顶部