飞思卡尔MCU 增强型DMA简介

0?wx_fmt=gif

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. 系统框图如下图所示

0?wx_fmt=jpeg

特性

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

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

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

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

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

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

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

可选的集中/分散DMA处理

支持复杂数据结构

操作模式

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

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

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

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

TCD结构

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

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

0

嵌入式

程序猿

微信号:InterruptISR

嵌入式程序猿致力于打造程序猿工程师交流分享的精品移动平台,欢迎各位猿友加入和分享。微信搜索嵌入式程序猿添加关注,或者长按下方二维码,选择识别图中二维码添加关注。

0?wx_fmt=jpeg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值