首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >飞思卡尔MCU 增强型DMA简介

飞思卡尔MCU 增强型DMA简介

作者头像
用户1605515
发布2018-04-10 11:43:36
1K0
发布2018-04-10 11:43:36
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿
DMA简介

直接内存存取(DMA)是快速数据交换的重要技术,它具有独立于CPU的后台批量数据传输能力,能够满足处理中高速数据传输要求,随着技术的发展,现在大部分的MCU都有集成DMA控制器,我们就以飞思卡尔块kv4x系列MCU位列来学习嵌入式开发中的DMA应用,飞思卡尔微处理器kv4x是基于ARM cortex M4 核的MCU,集成有增强型DMA控制器,称为eDMA,硬件体系结构主要包括DMA引擎和本地内存内容传输控制描述符TCD(Transfer Control Descriptor)

系统款图

从框图中可以明显的看出主要分为eDMA 引擎和TCD。在学习嵌入式时候一定注意阅读参考手册或数据手册上的图,能 够很好的帮助你理解。图看懂了基本上就理解了原理。从图中还看以看出DMA引擎主要分为四个部分,Data Path, Address Path, Control, Program mode/Channel arbitration. 系统框图如下图所示

特性

增强型eDMA控制器是高度可编程的数据传输引擎,可以最小化减少CPU的干预,主要用在数据大小已知且速度要求高的场合,主要特性有:

所有数据通过双地址传输,从源地址读取,写入目标地址

16通道实现复杂数据传输,最大限度减少CPU干预

TCD可以支持两级深度嵌套的传输

可以支持三种不同的通道激活方法

固定优先级或者循环的通道仲裁

每个通道都有完成传输中断

可选的集中/分散DMA处理

支持复杂数据结构

操作模式

正常模式:在正常模式下,eDMA在源地址和目标地址之间传输数据

调试模式:调试模式顾名思义是为调试用的,可以通过控制寄存器的调 试位配置。

等候模式:在进入等候模式之前,DMA会尝试完成当前的传输,在当前 传输完成后,进入等候模式

DMA的操作设计到很多寄存器,在飞思卡尔的KV4XMCU上与DMA相关的寄存器非常多,从0x4000_8000到0x4000_91FE的绝对地址都是相关的寄存器。具体的寄存器含义请参照飞思卡尔官方数据手册仔细研读。

TCD结构

弄懂TCD的结构是理解DMA工作的基础,每一个传输通道需要32个字节来定义数据的传输,TCD结构如下图所示

SADDR,源地址,SOFF,源地址偏移量,等等每个字段的具体含义可以参考数据手册寄存器定义章节。具体详细的TCD操作描述请参考官方文档,本文只是给大家简单介绍下DMA。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档