ARM 之DMA分析

1. DMA(Driect Memory Access )

   简单理解:数据交换速度匹配:

    产生背景:数据与CPU数据交换方式 查询方式    中断方式 ,DMA方式  

                       查询方式:效率低,响应时间慢

                       中断方式: 对于查询方式来说,可以提高CPU的利用率和保证对外设响应的实施性,但对于高速外设,终端方式不能够满足速度要求,因为每次终端都需要保护现场

                      DMA: 在一定的时间内,由DMA取代CPU,这里是取代,但是并不影响CPU征程工作,

 2工作过程:

     1.当外设准备就绪,希望进行DMA传送的时候,向DMA控制器(DMAC)发出DMA请求信号(DREQ).DMAC收到后,向CPU发送请求总线请求信号HOLD

     2.当CPU在完成当前总线操作后立即对DMA请求信号做出响应:先放弃对总线的操作立即对DMA请求信号做出响应:先放弃对总线控制(包括控制总线,数据总线,地址总线)

然后将有效的HLDA信号家到DMA上,此时,CPU便放弃对总线的控制,DMAC获得总线的控制权。

    3.DMAC获得总线控制权后,向地址总线发出地址信号,指出传送过程使用的内存地址,DMAC操作过程中,没传送一字节数据,DMAC自动修改寄存器地址值,同时,向外设发出DMA应答信号(DACK),实现外设与内存之间进行DMA传送,

   4.在DMA传送期间,DMAC发出内存和外设的读/写信号

   5.为了决定数据传输的字节数,在DMAC内部必须有一个“字节计数器”。在开始的时候由软件设置其传输的长度,在DMA传送过程,每传送一个字节,字节计数器减一,当减到0的时候结束DMA传输

   6.DMA过程结束,DMAC向CPU发送结束信号,将总线交给CPU
3DMA传送方式:

      IO接口到存储器        存储器到IO接口   存储器到存储器         

    1. IO接口道存储器

         IO-->DMAC--->D0-D7------>存储单元

     2.存储器到IO口

         正好相反

     3 存储器道存储器

          存储器----》数据块-----》 

4工作模式

     单个字节传输

     burst传输,一次传输 多字节传输


DMA工作流程

        1、选择通道

         2.设置源地址 DISRC 

         3.设置数据源地址控制寄存器(DISRCC)

         4.DMA目标地址(DIDST)

        5.DMA数据源地址控制寄存器 DISRCC

        6.初始化DMA控制器    DCON

        7.打开DMA通道寄存器


注意:DMACCxCONTROL0[D|S]从而决定是AHB Master 1 AXI_SYSTEM 内存总线还是AHB Master 2 AXI_PERI 外设总线


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值