直接存储器存取(Direct Memory Access,DMA)详细讲解

发布者:leader5最新更新时间:2024-08-14 来源: cnblogs关键字:直接存储器存取  Direct  Memory  Access  DMA 手机看文章 扫描二维码
随时随地手机看文章

一、理论理解部分。

1、直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。

2、无须CPU干预,数据可以通过DMA快速移动,这就节省了CPU的资源来做其他操作。

3、两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自一个或者多个外设对存储器访问的请求。

4、还有一个冲裁器协调各个DMA请求的优先权。在同一个DMA模块上,多个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中和低),优先权设置相等时由硬件决定(请求0优先请求1,)

5、每个通道都有三个事件标志(DMA半传输、DMA传输完成和DMA传输出错),这三个事件标志逻辑或成为一个单独的中断请求。

6、闪存、SRAM、外设的SRAM、APB1、APB2和AHB外设均可作为访问的源和目标。

7、可编程的数据传输数目:最大为65535

8、如果外设要想通过DMA 来传输数据,必须先给DMA 控制器发送DMA 请求,DMA 收到请求信号之后,控制器会给外设一个应答信号,当外设应答后且DMA 控制器收到应答信号之后,就会启动DMA 的传输,直到传输完毕。DMA 有DMA1 和DMA2 两个控制器,DMA1 有7 个通道,DMA2有5 个通道,不同的DMA 控制器的通道对应着不同的外设请求,这决定了我们在软件编程上该怎么设置,具体见DMA 请求映像表。

 

 

 

 

9、

仲裁器当发生多个DMA 通道请求时,就意味着有先后响应处理的顺序问题,这个就由仲裁器也管理。仲裁器管理DMA 通道请求分为两个阶段。第一阶段属于软件阶段,可以在DMA_CCRx 寄存器中设置,有4 个等级:非常高、高、中和低四个优先级。第二阶段属于硬件阶段,如果两个或以上的DMA通道请求设置的优先级一样,则他们优先级取决于通道编号,编号越低优先权越高,比如通道0 高于通道1。

 (为了解决多个DMA请求时,就有先后顺序,有一个仲裁器管理,分为两部分:1、软件处理,可以设置非常高、高、中、和低四个优先级,2、优先级一样,则看他们的编号,编号越低优先权越高)

 

 DMA数据配置的详细解说:

使用DMA,最核心就是配置要传输的数据,包括数据从哪里来,要到哪里去,传输的数据的单位
是什么,要传多少数据,是一次传输还是循环传输等等。
从哪里来到哪里去
我们知道DMA 传输数据的方向有三个:从外设到存储器,从存储器到外设,从存储器到存储器。
具体的方向DMA_CCR 位4 DIR 配置:0 表示从外设到存储器,1 表示从存储器到外设。

这里面涉及到的外设地址由DMA_CPAR 配置,存储器地址由DMA_CMAR 配置。

 

要传多少,单位是什么
当我们配置好数据要从哪里来到哪里去之后,我们还需要知道我们要传输的数据是多少,数据的
单位是什么。以串口向电脑发送数据为例,我们可以一次性给电脑发送很多数据,具体多少由
DMA_CNDTR 配置,这是一个32 位的寄存器,一次最多只能传输65535 个数据。要想数据传输正
确,源和目标地址存储的数据宽度还必须一致,串口数据寄存器是8 位的,所以我们定义的要发送的
数据也必须是8 位。外设的数据宽度由DMA_CCR 的PSIZE[1:0]配置,可以是8/16/32 位,存储器
的数据宽度由DMA_CCR 的MSIZE[1:0]配置, 可以是8/16/32 位。
在DMA 控制器的控制下,数据要想有条不紊的从一个地方搬到另外一个地方,还必须正确设置
两边数据指针的增量模式。外设的地址指针由DMA_CCRx 的PINC 配置,存储器的地址指针由
MINC 配置。以串口向电脑发送数据为例,要发送的数据很多,每发送完一个,那么存储器的地址指
针就应该加1,而串口数据寄存器只有一个,那么外设的地址指针就固定不变。具体的数据指针的增量
模式由实际情况决定。
什么时候传输完成
数据什么时候传输完成,我们可以通过查询标志位或者通过中断的方式来鉴别。每个DMA 通道
在DMA 传输过半、传输完成和传输错误时都会有相应的标志位,如果使能了该类型的中断后,则会
产生中断。有关各个标志位的详细描述请参考DMA 中断状态寄存器DMA_ISR 的详细描述。传输完
成还分两种模式,是一次传输还是循环传输,一次传输很好理解,即是传输一次之后就停止,要想再传
输的话,必须关断DMA 使能后再重新配置后才能继续传输。循环传输则是一次传输完成之后又恢复
第一次传输时的配置循环传输,不断的重复。具体的DMA_CCR 寄存器的CIRC 循环模式位控制。

 

 

二、编程要用的成员:

 

 

1、DMA_DIR : 传输方向选择, 可选外设到存储器、存储器到外设。它设定DMA_CCR 寄存器的DIR[1:0]位的值。这里并没有存储器到存储器的方向选择, 当使用存储器到存储器时,只需要把其中一个存储器当作外设使用即可。

(DMA_DIR_PeripheralDST:外设作为数据传输的目的地          DMA_DIR_PeripheralSRC:外设作为数据传输的来源)

2、DMA_PeripheralInc:

DMA_MemoryInc=         //内存地址寄存器递增与否
DMA_PeripheralInc=               //外设地址寄存器递增与否   

如果配置DMA_PeripheralInc_Enable,使能外设地址自动递增功能,它设定DMA_CCR 寄存器的PINC 位的值;一般外设都是只有一个数据寄存器,所以一般不会使能该位。(自动递增的意思就是:相当路边的自动出售饮料机器一样,当你买了一瓶汽水,拿出来了,然后后面有自动补上去,这就是自动递增,这里的数据也是一样,始终拿第一个数据,其他的会自动递增上来,不好意思,由于理解错误,现在做一下修改:是拿水瓶的手是)

3、DMA_BufferSize=          //设定待传输数目

4、DMA_M2M=          //使能DMA通道的内存到内存传输
5、DMA_MemoryBaseAddr=    //存储器地址
6、DMA_MemoryDataSize=      //内存数据宽度
7、DMA_PeripheralDataSize=  //外设数据宽度

8、DMA_Mode=          //工作模式,优先级
9、DMA_PeripheralBaseAddr=      //外设地址
10、DMA_Priority=          //软件设置通道的优先级


关键字:直接存储器存取  Direct  Memory  Access  DMA 引用地址:直接存储器存取(Direct Memory Access,DMA)详细讲解

上一篇:Systick时钟定时
下一篇:基于Systick系统时钟延时的LED闪烁灯

推荐阅读最新更新时间:2024-11-02 14:31

Galaxy A21s渲染图:6.5吋打孔屏+3GB内存+NFC
从Google Play Console以及诸多信息来看,三星Galaxy A21s有望在近期内发布。近日知名爆料达人Sudhanshu Ambhore分享了该机的最新渲染图,并透露了屏幕尺寸、内存和存储选项等规格细节。   三星Galaxy A21s会配备 6.5 英寸 @ 720×1600 分辨率的 HD+ IPS 显示屏,而不是早前 FCC 爆料的 6.4 英寸。存储方面,该机或采用 3GB RAM + 64GB ROM 的组合,且支持 microSD 扩展。 拍照方面,Galaxy A21s 或从 Galaxy A21 的后置四摄缩减为三摄,但主摄从 16MP 升级到 48MP,辅以 8MP 副摄
[手机便携]
Ramtron选择京元电子扩大F-RAM组装和测试能力
世界领先的低功耗铁电存储器(F-RAM)和集成半导体产品开发商及供应商Ramtron International Corporation (简称Ramtron) 宣布选择中国台湾京元电子股份有限公司 (KYEC) 来扩大其全部F-RAM产品系列的组装和测试能力。京元电子在半导体组装和测试服务领域拥有全球领导地位,可为Ramtron提供增量后端生产能力,满足日益增长的F-RAM产品需求。 Ramtron公司客户满意度部门副总裁萧颖表示:“我们非常高兴与京元电子这样的世界领先企业合作,以便为广泛的客户基群准时提供高质量的F-RAM产品。京元电子目前正在积极准备,务求满足Ramtron的组装和测试能力需求,我们预计2011年第
[嵌入式]
Gartner:Q1内存销售同比降41% 三星表现最好
据市场研究公司Gartner本周一发表的初步统计数字显示,全球DRAM内存行业今年第一季度继续萎缩,销售收入下降到了8年以来的最低的并且继续增加亏损。   Gartner称,今年第一季度全球DRAM内存行业的销售收入是35.7亿美元,同比下降了41%,是2001年第四季度以来销售收入最低的。第一季度的数字还显示比去年第四季度43.8亿美元的销售收入减少了18%。   DRAM内存行业的下降是从两年前开始的,过多地建设工厂导致了内存芯片过剩。全球经济衰退减少了内存芯片向PC的销售进一步损害了DRAM内存行业。Gartner称,今年第一季度全球PC出货量同比下降了6.5%。   Gartner称,德国芯片厂商奇梦达在今年第
[半导体设计/制造]
OPPO新机现身GeekBench:搭高通骁龙888、12GB RAM,运行安卓12
现有爆料表明,OPPO 正准备推出其首款折叠屏手机,即 Find N 曲面折叠屏手机。   此前有一款 OPPO 手机通过工信部认证,型号为 PEUM00。有网友称该机为 OPPO 即将推出的折叠屏手机。现在,OPPO PEUM00 已经出现在 Geekbench 基准测试网站上,并透露了一些细节。   Geekbench 显示,OPPO PEUM00 搭载高通骁龙 888 芯片或 888 Plus,基本频率为 1.80GHz ,运行 Android 12,还配备了 12 GB RAM,Geekbench 4 单核测试 4582 分,多核则为 14371 分;Geekbench 5 单核 925 分,多核 3364 分。
[手机便携]
OPPO新机现身GeekBench:搭高通骁龙888、12GB <font color='red'>RAM</font>,运行安卓12
采用段式管理的大容量外部RAM扩展技术
    摘要: 在MCS96系列单片机的应用开发中,经常会遇到需要大容量的数据存储器的情况。本文针对MCS96系列单片机的内存体系体系结构特点,介绍一种段式管理的大容量数据存储器扩展技术。此技术由于使用方便具有很高的实用性。     关键词: 单片机 段 物理地址 逻辑地址 MCS96系列单片机是一种16位字长,比MCS51系列单片机功能更全、性能更高的单片机,在仪器仪表、过程控制等领域应用极为广泛。在采用MCS96系列单片机的应用开发中,我们碰到一个难题:当需要大容量的数据存储时,数据存储器的扩展如采用与MCS51系列单片机同样的方法则无法工作。因为其内存体系结构采用程序存储器与数据存储器统一编址的普林斯顿结
[工业控制]
ARM与Flash ROM
以ARM为核心的嵌入式设备,是一种以计算机为核心的产品,必须要有存储软件的存储器。单片机中软件存储在单片机芯片内的ROM存储器中,单片机的ROM容量很小,一般都小于1MBytes,所以ROM集成在芯片内。PC机要求的ROM比较大,主板上启动计算机用的BIOS存储在主板上一片1MBytes左右的Flash ROM中,操作系统和应用程序存储在硬盘中。ARM产品因为体积的缘故,通常都不用硬盘,但软件的体积一般都在几MBytes以上,通常在芯片外扩展联接容量较大的Flash ROM存储软件。 Flash ROM分为两种:NOR Flash ROM 和 NAND Flash ROM。NOR Flash ROM 用法类似于SDRAM 内存,有地
[单片机]
Ramtron F-RAM处理器提升cab热敏标签打印机系列性能
   世界领先的非易失性铁电随机存取存储器(F-RAM)和集成半导体产品开发商及供应商RamtronInternationalCorporation(简称Ramtron)和德国cabProdukttechnikGmbH&CoKG公布,RamtronFM31L278F-RAM处理器伴侣为cab最新EOS热敏标签打印机系列的用户带来卓越优势。    基于F-RAM存储器的FM31L278处理器伴侣实现高精确性、运作连续性和易于控制特性    Ramtron的256千位(Kb)FM31L278处理器伴侣的设计考虑了工业电子计量、电子销售点(POS)及库存管理产品应用,具有非易失性F-RAM存储器的快速读/写性能和无限次的耐用性,
[工业控制]
IBM发表新混合式内存内运算架构
IBM研究团队近日发布了一个全新的混合式精确内存内运算架构(Mixed-precision in-memory computing ),该架构将计算型内存单元(Computational memory unit)加入传统的冯纽曼架构( Von Neumann architecture),来提供AI训练的效能,降低训练成本。 由于认知运算需要处理非常大量的数据,如何有效率的处理这些数据就变得非常重要,而处理大量数据其中最大挑战在于现今的计算机架构都是用冯纽曼架构来运行,但是用冯纽曼架构执行AI应用时,处理器和内存之间需要大量传输数据, 而传输数据会耗费大量资源,造成效能不佳。 IBM提出的新架构是透过原本的冯纽曼架构,加上计算型内存
[半导体设计/制造]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved