LPC2388的USB下载速度问题

w_乐天 2014-11-19 09:21:27
请教一个问题,我现在使用的是NXP LPC2388的芯片,我想在USB下载下载数据到U盘中时采用DMA模式,不知道可不可行,对速度提高是否有帮助?(ps:因为现在的USB下载速度才四百多K/S,代码上优化提速不明显,芯片理论是1.5M/S的)
...全文
285 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_乐天 2014-11-21
  • 打赏
  • 举报
回复
作为USB Host端可以采用DMA或双缓冲机制吗?查的资料都是作为device上的例子
w_乐天 2014-11-20
  • 打赏
  • 举报
回复
你说的应该是硬件方面的处理,这个不需要我管的,我程序中是先对DMA控制器进行初始化,然后往它的缓存中填充数据,向U盘中发送,因为这方面的资料比较少所以想问问有没有谁弄过这方面的
jdygrdzh 2014-11-19
  • 打赏
  • 举报
回复
通常usb驱动会去填一个叫qtd的东西,它里面有缓冲。填好之后,直接run,硬件就会去和这个缓冲交换数据,方式是硬件dma。你可以说他的初始化数据是人填的,但他不需要去人为操纵dma控制器。usb控制器自己会用dma方式和内存打交道。 不过我不知道你用的lpc是不是这样的。
w_乐天 2014-11-19
  • 打赏
  • 举报
回复
USB使用的是全速模式(12Mbps),我说的K/S和M/S是指Kbyte/S和Mbyte/S,还有在LPC系列中DMA模式需要自己来初始化设置数据传送的 我找的例程都是从机上使用DMA模式与主机通信,现在就是有疑问是否也能将DMA模式用于U盘数据的下载
jdygrdzh 2014-11-19
  • 打赏
  • 举报
回复
纠正一下,高速usb480Mbps,传文件基本也就25Mbytes/s最多,损失在驱动和对端存储设备的延迟。
jdygrdzh 2014-11-19
  • 打赏
  • 举报
回复
你的理论速度是 1.5Mbps,那么实际上是 低速 usb,转换成字节,理论最高也只有180Kbytes/s 不清楚你说的400K/s是字节数还是波特率?如果是字节数,那么你的速率可能是跑在12Mbps全速,而不是1.5Mbps低速。 如果400k/s是波特率,那么其实也差不多了,文件系统和驱动本身是会造成很大损失的。高速usb480Mbps,传文件基本也就25Mbytes/s最多。 此外,dma是你的控制器默认的,不需要你来打开。它使用的是硬件dma,不需要使用dma控制器驱动。

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧