DMA的工作过程

    

DMA的工作过程

DMADirect Memory Access的缩写,意为存储器直接访问。可以不通过CPU而在DMA控制器的控制下,高速地与I/O设备和存储器之间交换数据。CPU除了在数据传输开始和结束时做一些处理外,在传输过程中,CPU可以进行其他工作。这样,在大部分时间里,CPU和输入/输出都处于并行操作状态。所以,使整个计算机系统的效率大提高。DMA控制器是实现DMA输入/输出方式的具体执行操作。

ARM9S3C2440拥有4通道的DMA控制器,与系统总线的外围总线相连。DMA控制器的每一个通道可以在系统总线上的存储器与外围总线之间、系统总线上的设备之间以及外围总线之间操作数据传输而不被限制。

S3C2440DMA在以下四种情况可运行:

1.  源设备和目标都在系统总线AHB上;

2.  源设备和目标都在外围总线APB上;

3.  源设备在系统总线,而目标设备位于外围总线;

4.  源设备在外围总线,而目标设备位于系统总线;

DMA的主要优点是:可以不通过CPU的中断来实现数据的传输,DMA的运行可以通过软件或者通过外围设备的中断和请求来初始化。

DMA的工作过程(如图):

DMA的工作过程 - ♂苹果 - 眼睛想旅行

 

DMA的工作过程

1)  外设向DMAC发出请求;

2)  DMAC通过HOLDCPU发出总线请求;

3)  CPU响应释放三总线,并且发应答HLDA

4)  DMAC向外设发DMA应答;

5)  DMAC发出地址、控制信号,为外设传送数据;

6)  传送完规定的数据后,DMAC撤销HOLD信号,CPU也撤销HLDA信号,并且恢复对三总线的控制。

 

加个广告,我自已写的一个关于54/74和4000系列的集成电路数据手册应用,我是集成电路硬件工程师出身,所以写了这个应用:https://itunes.apple.com/us/app/logic-circuits/id578183596?ls=1&mt=8

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DMA(Direct Memory Access,直接内存访问)是一种计算机系统中用于实现高速数据传输的技术。在STM32中,DMA被广泛应用于外设与内存之间的数据传输,可以大大提高系统的效率。下面对DMA的原理和工作流程进行详细解析。 DMA的原理是通过将CPU的主存访问请求拦截下来,直接从外设(如UART、SPI、ADC等)读取或写入数据到内存,或者从内存读取数据写入外设,从而避免了CPU的参与。这样,CPU可以同时进行其他运算任务,而不需要等待数据传输的完成。 DMA的工作流程主要分为配置、启动和中断处理三个步骤。 首先,需要进行DMA的配置。配置包括选择DMA通道、外设和内存的地址、数据宽度、传输方向、传输模式等参数。可以使用STM32提供的DMA控制器进行配置,通过设置相应的寄存器来完成。 接着,启动DMA传输。启动传输的方式可以是软件触发或硬件触发。软件触发是通过设置DMA控制器的相关位来启动传输。硬件触发是通过外设的中断或事件信号触发DMA传输。一旦传输启动,DMA将依据配置的参数进行数据传输。 最后,当DMA传输完成时,会触发相关的中断处理函数,去执行一些必要的操作,如数据处理、状态更新等。可以通过检查DMA相关寄存器的标志位来确定传输是否完成,并进行相应的处理。 总结起来,DMA技术可以在不占用CPU的情况下实现高速数据传输。通过配置、启动和中断处理等步骤,DMA可以灵活地控制外设和内存之间的数据传输,提高系统的效率和性能。在STM32中,DMA是实现高速数据传输的重要技术之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值