SAM3U DMA控制器详解

5星 · 超过95%的资源 需积分: 3 2 下载量 73 浏览量 更新于2024-10-05 收藏 372KB PDF 举报
"AT91SAM3U数据手册的DMA部分,详细介绍了该微控制器的DMA控制器功能和特性,包括概述、方框图和功能描述。资料由武汉理工大学UP团队提供,适用于学习和交流。" 在AT91SAM3U这款微控制器中,DMA(Direct Memory Access,直接存储器访问)控制器是一个关键的组件,它允许数据在不经过CPU的干预下,直接从一个外设传输到另一个外设或内存。这对于高效的数据处理和减少CPU负载非常有帮助。 **39.1 概述** DMA控制器是基于AHB(Advanced High-performance Bus,高级高性能总线)的,它能够连接到一个或多个AMBA(Advanced Microcontroller Bus Architecture,先进微控制器总线架构)总线结构,执行从源外设到目标外设的数据传输。每个DMA通道都需要同时有源外设和目标外设。在基础配置中,DMAC包含一个主控接口和一个通道,通过两次AMBA传输完成一次数据转移,即双访问传输。 **39.2 方框图** 图39-1展示了DMA控制器的方框图,包括APB(Advanced Peripheral Bus,高级外设总线)接口,中断控制器,硬件握手接口,数据复用请求仲裁器等组成部分,这些都协同工作以实现高效的DMA传输。 **39.3 功能描述** - **39.3.1 基本定义** - **源外设**:位于AMBA总线层,DMA从源外设读取数据并存入通道的FIFO(First In First Out,先进先出)。 - **目标外设**:接收DMA传输的数据,数据是从FIFO读取的,通常是由源外设提供。 - **内存**:可以作为源外设或目标外设,始终准备好接收或发送数据,无需与DMAC进行握手操作。 - **通道**:配置好的数据传输路径,连接两个AMBA层上的外设,通过FIFO进行通信。如果源外设不是内存,通道需要配置特定的源和目标地址。 每个通道都有不同的FIFO大小,例如通道0、1和2的FIFO大小为8字节,而通道3的FIFO大小为32字节。这些FIFOs用于缓冲数据,确保连续的传输,即使源或目标设备的数据速率与DMA控制器不完全匹配。 **39.3.3 工作原理** 当启动一个DMA传输时,DMAC会根据预设的配置从源外设读取数据,然后通过AMBA总线将数据写入目标外设。在传输过程中,DMAC可以处理中断和错误条件,并通过中断控制器通知CPU传输的状态。硬件握手接口和数据复用请求仲裁器负责协调外设之间的通信,确保数据正确无误地传输。 总结来说,AT91SAM3U的DMA控制器是一个强大的工具,用于优化数据传输过程,减轻CPU负担,尤其适用于需要大量数据交换的实时系统。通过理解其工作原理和配置方法,开发者可以充分利用这一特性,提升系统性能。