阅读:2632回复:2
BLOCK DMA的 开销(死区)
我准备用PEX8311, 我想了解下 我 进行2次BLOCK DMA传输 中间 的 协议等开销时间(死区),我想这段时间板子要有足够空间存储数据,吧, 希望有经验的朋友告诉我下, 假设我 每次BLOCK DMA 的数据量为64K , 方向为从板子到PC, 这个情况 每次BLOCK DMA 之间的 时间(不读板子数据)大约为多少 . 我算了下 如果 这段时间 在1.6MS 内 那么 目前方案的板子的缓冲还够用 不会丢数.
走过路过的朋友 帮帮忙吧!!非常感谢!!! 有做PEX8311 的朋友也可以一起交流 QQ 1105849886 |
|
沙发#
发布于:2009-07-19 00:48
要知道两次dma操作之间的时间,要确定
1 使用的是什么操作系统,windows系统的实时性比较差,两次dma操作之间的时间很不稳定,短的时候只需要几十微秒,但是长的时候会达到毫秒级,你的1.6ms会出现丢数现象。VXWORKS操作系统可以解决实时性问题。 2 启动DMA操作采用了什么方式,是用中断方式启动还是用查询方式,如果用中断,就涉及到中断响应时间WINDOWS下中断响应时间不稳定,查询方式稍微稳定一点,就是比较耗费资源 建议: 如果数据是进入FPGA的话,把LOCAL端数据的最低位连接到测试管脚,然后主机启动DMA操作(传送递增或者递减数),这时候用示波器观测,就能看出两次DMA之间的时间了,这是比较准确的,别人告诉你的数据只能作为参考 |
|
板凳#
发布于:2009-07-23 07:56
谢谢 前辈的指点和建议, 现在还没板,所以没法测试,只能向各位前辈了解下,然后做板。 如果要加大缓冲就一定要用2片SDRAM了,这个麻烦多了, 现在就是想只用一片128K 的FIFO ,半满启动一次64K传输, 如果不是经常性出现死区大与1.6MS 那估计还是可以忍受的。 哎 怎么办呢?????????
|
|