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 外设总线


你可能感兴趣的:(ARM)