ARM 之DMA分析

1. DMA(Driect Memory Access )
简单理解:数据交换速度匹配:
产生背景:数据与CPU数据交换方式 查询方式中断方式 ,DMA方式
查询方式:效率低,响应时间慢
【ARM 之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 外设总线


    推荐阅读