阅读:2125回复:6
请教高手:9054的DMA块传输的速率问题!!!
小弟做了块数据采集卡,FPGA+9054,块DMA传送,现已基本调通,只是DMA传输的速率太低,最高只有4MB/S。我看过以前的帖子,好像每次dma的块传输可达到512k。我的驱动是在DS下的,为什么每次DMA传送的块大小顶多20几k,请问DMA块传输的大小都跟那些因素有关,如何提高每次传送的块的大小,上头催的急,希望哪位高手指导一把,一点分奉上,不诚敬意
|
|
沙发#
发布于:2004-09-10 10:42
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-09-11 09:17
DMA传输的大小与板卡local端的响应逻辑和9054寄存器设置
以及驱动程序编写都有关系,仔细看资料 9054可以到133MB/s的速度 |
|
|
地板#
发布于:2004-09-11 09:43
非常感谢版主和wang00的解答,一点分送上!
我想请问以下wang00:你所说那三个因素,我考虑过,可惜我找不出具体问题在哪儿, (1)9054寄存器的设置除了DMA寄存器和PCIMBR外还有别的寄存器有关马? (2)本地端的逻辑我是按照资料中DMA的时序做的 (3)驱动是参照武安河的那本书上的 不知道有哪块遗漏的? 请教。谢谢! |
|
地下室#
发布于:2004-09-11 12:27
DMA传输有两种方式No Brust和Brust,可以在寄存器里设置
Brust方式要快一些 另外,Local端的Ready#信号要特别注意,它响应得越慢, DMA传输越慢 |
|
|
5楼#
发布于:2004-09-11 12:29
DMA大小也可以通过设置寄存器设置,
还可以看看Windriver中的例子,有关于DMA内存申请和设置的。 |
|
|
6楼#
发布于:2004-09-12 15:21
wangy00,感谢你的解答。我是采用burst方式的。
能否告诉我在DS下能做的DMA块传输的块最大为多少,我现在最多只能20几K,大了就会出现内存页面错误。 |
|