STM32 DMA结构框图概述

星空全站STM32 DMA结构框图概述

产品型号:电力电子变流控制驱动
时间:2024-04-01 14:20:35 | 来源:星空全站APP 作者:星空体育全站app在线平台

产品详情

  DMA叫做直接存储器访问,用于在外设与存储器之间与存储器之间提供高速数据传输。可以在无需任何CPU操作的情况下通过DMA快速移动数据。这样节省的CPU资源可供其他操作使用。从硬件层次上来说,DMA是独立于 Cortex-M4内核的,有点类似 GPIO、USART 外设一般,只是 DMA的功能是可以快速移动内存数据。

  要实现把外设数据写入内存,或把内存数据送至外设,一般由CPU控制完成,可采用标记查询或中断的方式。利用中断传送数据,可大大提高CPU的利用率。但当批量传输数据时,由于进出中断需保护现场和断点,无形之中增加了CPU的中断负载。另外,CPU的核心工作是算法处理,借用CPU进行大量数据传输,会降低CPU处理算法的效率。引入DMA技术,在一定程度上解放了CPU,提高了CPU的处理能力。

  STM32F4xx的两个 DMA总共有 16 个数据流(每个8 个),每一个DMA都用于管理一个或多个外设的存储器访问请求。每个数据流总共可以有多达 8 个通道(或称请求)。每个通道都有一个仲裁器,用于处理 DMA 请求间的优先级。

  DMA执行直接存储器传输:因为采用 AHB 主总线,它可以控制 AHB总线矩阵来启动 AHB 事务。

  每个数据流可连接8个通道,某一时刻具体使用数据流的哪个通道,需通过DMA_SxCR寄存器中的CHSEL[2:0]位控制。通道选择如下图所示:

  仲裁器为两个 AHB 主端口(存储器和外设端口)提供基于请求优先级的 8 个 DMA 数据流请求管理,并启动外设/存储器访问序列。

  ● ** 软件** :每个数据流优先级都可以在 DMA_SxCR 寄存器中配置。分为四个级别:

  ● 硬件:如果两个请求具有相同的软件优先级,则编号低的数据流优先于编号高的数据流。例如,数据流 2 的优先级高于数据流 4。

  DMA的核心设置集中在配置寄存器、指定内存地址、外设地址及数据项目。下面描述DMA的相关寄存器。

  DMA使用状态寄存器LISR和HISR,来描述8个数据流的状态标记。LISR描述低4个数据流,而HISR描述高4个数据流。每个流对应5个状态,下面以数据流x来进行说明。

  由DMA_LIFR/DMA_HIFR寄存器可知,DMA的标记是只读的,不能直接擦除。DMA含有中断标记清零寄存器,用户通过向中断标记清零寄存器对应位写1,可清除对应的中断标记。

  只有 EN 为“0”时,此位才可以写入,以指示第一次传输的目标存储区。在使能数据流后,此位相当于一个状态标志,用于指示作为当前目标的存储区。

  如果选择直接模式或者 PBURST 不等于“00”,则当使能数据流(位 EN =“1”)时,此位由硬件强制置为低电平。

  在直接模式下,当位 EN =“1”时,MSIZE 位由硬件强制置为与 PSIZE 相同的值。

  如果外设为流(位PFCTRL=1)且使能数据流(位 EN=1),此位由硬件自动强制清零。

  此位读作 0 时,软件可以对配置和 FIFO 位寄存器编程。EN 位读作 1 时,禁止向这些寄存器执行写操作。

  另外,在EN位置1(启动流前),与数据流相对应的事件标记都要清0。DMA 数据流 x 数据项数寄存器 (DMA_SxNDTR) (x = 0..7)

  使能数据流后,此寄存器为只读,用于指示要传输的剩余数据项数。每次 DMA 传输后,此寄存器将递减。

  传输完成后,此寄存器保持为零(数据流处于正常模式时),或者在以下情况下自动以先前编程的值重载:

  DMA相当于CPU的助理,通过软件对DMA的以上寄存器进行合理配置,就可以启动DMA来传输数据了。此时CPU就可以专注于运算或事务的处理了。

  由于DMA的传输速度较快,所以把串口的波特率调到最高460800,但是速度还是太快,串口接收的速度跟不上,如下图所示:

  因此在大循环的最后加上500ms的延时,就可以看到传输的数据被完整地打印出来了。可见DMA传输速度之快。

  串口DMA发送数据测试成功。串口DMA发送数据是属于内存到外设的,对于外设到内存和内存到内存的应用同样只要根据以上寄存器的描述进行配置,就可以实现DMA的数据传输了。

  4 1 SysTick概述Cortex-M3内核的处理器,内部包含了一个SysTick定时器,SysTick是一个24位的倒计数定时器,当计数到0时,将从ReLoad寄存器 ...

  有人使用STM32F446做产品开发,用到TIM1的4个通道做PWM输出。具体使用是这样的,选择CHI1采样PMW模式做PMW输出。CH2、CH3、CH4采用比较切换 ...

  我们讲了内核、存储器和时钟,它们都是单片机核心功能的一部分,没有它们中的任何一个,单片机都不能正常工作。而核心功能还包括复位和电源 ...

  1 定义首先需要明确下,位段,位带和别名区这三个名词名词定义位段STM32用户参考手册使用的名字位带CortexM3参考手册使用的别名区地址总线定时器(二)定时器中断

  一、STM32定时器的分类1 1 按照内核、外核、特定、常规分为4大类:1)内核定时器:Systick2)外设定时器:特定应用定时器+常规定时器3)特 ...

  综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程词云:


星空全站 上一篇:控制流和数据流的区别 下一篇:三维天地助力科研实验室提质增效
分享到:
快捷导航: 星空全站 星空全站APP 新闻中心 产品中心 案例中心 星空体育全站app在线平台 网站地图

Copyright © 2016 星空全站APP在线平台(中国)注册登录下载 ALL RIGHTS RESERVED星空体育全站app在线平台
电话:0731-85133451/22201682地址:湖南长沙雨花区长沙国际研创中心A3栋