Stellaris LM3Sxxx------DMA【3-1】

由于EPI使用到DMA,故在此留下足迹。

概述

LM3S5R31 微控制器内置一个直接存储器访问(Direct Memory Access,简写为DMA)控制器,我们称之为微
型 DMA (μDMA) 控制器。μDMA控制器所提供的工作方式能够分载Cortex™-M3 处理器参与的数据传输任务,从
而更加高效地使用内核以及总线带宽。μDMA控制器能够自动执行存储器与外设之间的数据传输。片上每个支持
μDMA功能的外设都有专用的μDMA通道,通过合理的编程配置,当外设需要时能够自动在外设和存储器之间传
输数据。μDMA控制器具有以下特性:

■ ARM PrimeCell 32通道的可配置μDMA控制器
■ 支持存储器到存储器、存储器到外设、外设到存储器的μDMA传输
■ 通过优化设计,改进了μDMA控制器与处理器内核之间的总线访问性能
■ 优先级分为两级
■ 高度灵活的可配置的通道配置
■ 支持8位、16位或32位数据宽度
■ 待传输数目可编程为2的整数幂,有效范围1~1024
■ 源地址及目的地址可自动递增,递增单位可以是字节、半字、字、不递增
■ 可屏蔽的外设请求

功能描述

μDMA控制器是一种使用方便、配置灵活的DMA控制器,用于同微控制器 Cortex-M3处理器内核配合以实现高效工
作。μDMA控制器支持多种数据宽度以及地址递增机制,各DMA通道之间具有不同的优先级,还提供了多种传输模
式,能够通过预编程实现十分复杂的自动传输流程。

μDMA控制器对总线的占用总是次于处理器内核,因此绝不影响处理器的总线会话。由于μDMA控制器只会在总线
空闲时占用总线,因此它提供的数据传输带宽非常独立不会影响系统其它部分的正常运行。此外总线架构还经过了
优化,增强了处理器内核与μDMA控制器高效共享片上总线的能力,从而大大提高了性能。优化的内容包括RAM条
带处理以及外设总线分段,在大多数情况下允许处理器内核和μDMA控制器同时访问总线并执行数据传输通道分配。

优先级

每个通道μDMA的优先级由通道的序号以及通道的优先级标志位所决定。第0号μDMA通道的优先级最高;通道的序
号越大,其优先级越低。每个μDMA通道都有一个可设置的优先级标志位,由此可分为默认优先级和高优先级。若
某个通道的优先级位置位,则该通道将具有高优先级,其优先于所有未将此标志位置位的通道。假如有多个通道都
设为高优先级,那么仍将按照通道序号区分相互的优先级。通道优先级位可通过DMA通道DMAPRIOSET置位,通
过DMA通道优先清除(DMAPRIOCLR)清零。

仲裁数目

当某个μDMA通道请求传输时,μDMA控制器将对所有发出请求的通道进行仲裁,并且向其中优先级最高的通道提
供服务。一旦开始传输后,将持续传输一定数量的数据,之后再对发出请求的通道进行仲裁。每个通道的仲裁数
目都是可设置的,其有效范围为1~1024个数据单元。当μDMA控制器按照仲裁数目传输了若干个数据单元之后,
随后将检查所有发出请求的通道,并向其中优先级最高的通道提供服务。

如果某个优先级较低的μDMA通道仲裁数目设置得太大,那么高优先级通道的传输延迟将可能增加,因为μDMA控
制器需要等待低优先级的猝发传输完全结束之后才会重新进行仲裁,检查是否存在更高优先级的请求。基于以上
原因,建议低优先级通道的仲裁数目不应设得太大,这样可以充分保障系统对高优先级μDMA通道的响应速度。
仲裁数目也可以形象地看做一个猝发的大小。仲裁数目就是获得控制权后以猝发形式连续传输的数据单元数。

这里所说的“仲裁”是指μDMA通道优先级的仲裁,而非总线的仲裁。在竞争总线时,处理器内核始终优于μDMA
控制器。此外,只要处理器需要在同一总线上执行总线交互,μDMA控制器都将失去总线控制权;即便在猝发
传输的过程中,μDMA 控制器也将被暂时中断。


请求类型

μDMA控制器可响应来自外设的两种请求:单次请求或猝发请求。每种外设可能支持其中一种或两种类型。单次
请求表明外设已准备好传输一个数据单元,猝发请求表明外设已准备好传输多个数据单元。取决于外设发出的
是单次请求或猝发请求,μDMA控制器的响应也将有所不同。假如同时产生了单次请求和猝发请求,而且 μDMA
通道已按照猝发请求建立,那么优先响应猝发请求。

 猝发请求

当检测到猝发请求后,μDMA控制器将执行猝发传输,传输数目是以下两者的较小值:仲裁数目;尚未传输完
的数据单元数。因此,仲裁数目应与外设发出猝发请求时所包含的数据单元数相同。例如,UART模块可基于
FIFO触发深度产生猝发请求。此时仲裁数目应与满足触发深度条件后 FIFO能够传输的数据单元数相同。


由于篇幅较大,分两篇写,后半部分下一篇写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值