1 / 5
文档名称:

第6节 DMA 内核.docx

格式:docx   页数:5页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第6节 DMA 内核.docx

上传人:012luyin 2016/6/15 文件大小:0 KB

下载得到文件列表

第6节 DMA 内核.docx

相关文档

文档介绍

文档介绍:具有 Avalon 接口的直接存储器访问(DMA) 控制器内核执行大块的数据传输, 从一个源地址范围读数据,写数据到不同的地址范围。 Avalon 主外设,如 CPU ,能够将存储器传输任务下放给 DMA 控制器。而 DMA 控制器执行存储器传输,主外设能够并行地执行其它的任务。 DMA 控制器尽可能高效地传输数据,以源存储器和目的存储器所能允许的最大的速率读和写数据。 DMA 控制器能够执行具有流控制的 Avalon 传输,使得它能自动地以外设允许的最大速率,向/ 从一个具有流控制的低速外设传输数据。 DMA 控制器在 SOPC Builder 提供,并且很容易集成到系统中去。 功能描述 DMA 控制器用于执行从源地址空间到目的地址空间的直接存储器访问数据传输。源和目的可以是 Avalon 从外设( 即,固定的地址) 或是存储器内的一段地址范围。 DMA 控制器可以同具有流控制的外设联合使用,可以进行有固定和可变长度的数据处理。当 DMA 传输结束, DMA 控制器可以发一个中断请求信号。 DMA 数据传输定义为一个或多个由 DMA 控制器内核发起的 Avalon 传输的序列。 DMA 控制器具有两个 Avalon 主端口:一个主读端口和一个主写端口,和一个 Avalon 从端口用于控制 DMA ,如图 7-6 所示。典型的 DMA 处理过程如下: : 1. CPU 通过写控制端口来使 DMA 控制器为一次处理做好准备。 2. CPU 使能 DMA 控制器。 DMA 控制器可以开始不受 CPU 的干预进行传输数据。 DMA 的主端口从源地址读数据,源地址可以是存储器或外设。主写端口写数据到目的地址,目的地址也是可以是存储器或外设。主读端口和主写端口之间有 FIFO 来缓存数据。 3. 当传输了设定的数目比特(固定长度的 DMA 数据传输),或者 end-of-packet 信号被发送器或接收器置为有效(可变长度的 DMA 数据传输), DMA 数据传输结束。在 DAM 传输结束时, DMA 控制器产生一个中断请求(如果 CPU 设置 DMA 控制器可以产生中断)。 DMA 数据传输期间或之后, CPU 可以判断一个 DMA 数据传输是否正在进行或已经完成,通过检查 DMA 控制器的状态寄存器。 Avalon 主外设通过控制端口写寄存器来建立和发起 DMA 传输。 Avalon 主外设设置 DMA 引擎使用字节对齐的地址。主外设配置如下的选项: ?读(源)地址位置?写(目的)地址位置?传输的宽度: Byte (8-bit) 、半字(16-bit) 、字(32-bit) 、双字(64-bit) 或四字(128-bit) ? DMA 传输完成后使能中断?使能源或目的外设使用 endofpacket 信号来结束 DMA 传输。?指定源或目的是外设还是存储器。主外设然后设置控制寄存器的一位来发起 DMA 传输。 DMA 控制器通过主读端口从源地址读数据,然后通过主写端口写数据到目的地址。 DMA 控制器使用字节地址编程。读和写的起始地址应该和传输宽度对齐。例如,要传输数据字,如果起始地址为 0 ,地址应该增加到4、8和 12 。对于具有很多不同宽度的从设备的系统,读和写主设备匹配的数据宽度为被读或写主外设寻址的从地址中最宽的数据宽度。对于