DMA模块详解.pdf

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DMA模块详解

//北京联合大学 实训基地 潘峰 //qq //微博:潘峰_buu //博客:/panpan_0315/blog/ DMA 模块 DMA 模块简介 所谓DMA 就是直接内存存取(Direct Memory Access),是计算机科学中的一种内存访 问技术。 以前我们向内存传送数据,都是通过CPU 来进行。比如AD 完成后,我们要把结果寄存 器中的值传送到内存的一个变量中,一种方法就是查询COCO 标志位(详见ADC 模块一节), 一旦置1,就读取结果寄存器并传送。这种方法CPU 需要不断查询标志位,耽误时间,降低 效率。 我们也可以使用中断的方式,CPU 并不需要轮询标志位,而是AD 转换完成后触发中断, CPU 中断当前的程序,转向执行中断服务程序,在中断服务程序中读取结果寄存器,然后传 送到内存中。这种方式虽然省去了轮询的时间消耗,但传送数据仍然是由 CPU 完成的,如 果是大批量数据高速传输的话,频繁的中断也将造成很重的CPU 负担,于是就有了DMA。 和轮询方式、中断方式不同的是,DMA 是通过DMA 控制器接管数据和地址总线,根据 事先设定好的源地址和目的地址,以及传送的字节数,将数据自动传送到指定的位置,而不 需要CPU 的介入,从而CPU 的负担大大减轻。如果CPU 正在执行指令,DMA 控制利用空闲 的地址和数据总线完成数据传送,某种程度上说,CPU 运算和数据传送是在并行进行的。 在制作智能车的应用中,摄像头组的同学,需要将摄像头采集的数据用最快的速度传送 到内存变量中,以采集更多的点。Kinetis 芯片的DMA 功能这个时候就能发挥重要的作用了。 首先我们需要了解一下和Kinetis 芯片的DMA 功能有关的一些概念。 1. DMA 源和DMA 通道 在Kinetis 芯片中,很多模块都可以请求DMA 模块进行数据传送。所谓 DMA 源,也就 是DMA 传送请求是谁发出的。以K60DN512Z 为例,共有63 个DMA 源。而DMA 源发出的 DMA 请求并不是直接提交到DMA 控制器,而是通过DMA 多路复用器的16 个DMA 通道提 交的。需要设置相关的寄存器建立DMA 源和DMA 通道之间的映射关系。如图 错误!文档中 没有指定样式的文字。-1 所示。 图 错误!文档中没有指定样式的文字。-1 DMA 多路复用器 2 . DMA 模块框图 DMA 控制模块分为两部分,一个是DMA 引擎(eDMA Engine )。一个是DMA 传输控制 描述符(TCD ),如图 错误!文档中没有指定样式的文字。-2 所示。 图 错误!文档中没有指定样式的文字。-2 DMA 控制框图 3 . DMA 描述符 每个通道需要一个32 个字节的传输控制描述符用于定义我们想要的数据传送操作。描 述符按通道0~通道 15 的顺序依次存放在DMA 模块的内存中。描述符中包含了对应的数据 传送的所有信息,主要有源地址,目的地址,传送次数,每次传送的字节数,传送完毕后源 地址和目的地址如何调整等等,当一个通道的DMA 传送结束后,源地址和目的地址需要加 上各自的调整量回写到TCD 中,传送计数也需要重新初始化并回写到TCD 中。如表 错误! 文档中没有指定样式的文字。-1 所示,详细含义参考相关寄存器中的内容。 SADDR (源地址) SOFF (源地址偏移) SMOD SSIZE DMOD DSIZE NBYTE (每次DMA 请求需要传输的字节数) SLAST (主循环结束后,源地址调整量) DADDR (目的地址) DOFF (目的地址偏移) CITER (传送计数) DLASTSGA (主循环结束后,目的地址调整量) BWC 0 MAJORLINKCH K BITER (传送计数初始值) N

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档