版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章DMA原理及应用基于STM32的嵌入式系统原理与应用主讲老师:胡兰兰ONTENTS目录C01STM32处理器DMA原理02DMA功能框图03DMA数据配置04DMA传输数据到串口案例01STM32处理器DMA原理外设到存储器将外设数据寄存器中的数据快速转移到指定的内存空间。例如,在ADC数据采集过程中,利用DMA传输可以快速将AD转换数据转移至预设的存储区域,这对于多通道、高采样频率以及连续数据输出的AD采集场景尤为高效。存储区到外设将特定内存区域的数据转移至外设的数据寄存器,这种模式常用于外设的数据发送通信。存储器到存储器将一个内存区域的数据复制到另一个内存区域,其功能类似于C语言中的memcpy函数。但利用DMA传输可以显著提升数据传输效率,且由于不占用CPU资源,因此能极大节省CPU的运算能力。传输模式DMA支持三种主要传输模式:外设到存储器、存储器到外设以及存储器到存储器。其中,外设通常指的是如ADC、SPI、I2C、DCMI等的数据寄存器,而存储器则涵盖片内SRAM、外部存储器以及片内Flash等。双AHB主总线架构:一个用于存储器访问,另一个用于外设访问仅支持32位访问的AHB从编程接口。支持外设到存储器、存储器到外设和存储器到存储器每个数据流也支持通过软件触发存储器到存储器的传输(仅限DMA2控制器)。5个事件标志(DMA半传输、DMA传输完成、DMA传输错误、DMAFIFO错误、直接模式错误)每个DMA控制器有8个数据流:每个数据流有多达8个通道DMA数据流请求之间的优先级可用软件编程(4个级别:非常高、高、中、低)独立的源和目标传输宽度:源和目标的数据宽度不相等时,DMA自动封装/解封必要的传输数据来优化带宽。主要特征02DMA功能框图DMA功能框图DMA独立于STM32内核,包含有DMA请求、DAM通道和DMA仲裁三个部分DMA通道请求STM32F40xx系列有2个DMA控制器,每个DMA控制器有8个数据流,每个数据流对应着8个外设请求。DMA请求可以从8个可能的通道请求中选出。在实现DMA传输之前,DMA控制器会通过DMA数据流x配置寄存器DMA_SxCR(x为0~7,对应8个DMA数据流)的CHSEL[2:0]位选择对应的通道作为该数据流的目标外设。外设请求数据流
0数据流
1数据流
2数据流
3数据流
4数据流
5数据流
6数据流
7通道0SPI3_RX
SPI3_RXSPI2_RXSPI2_TXSPI3_TX
SPI3_TX通道1I2C1_RX
TIM7_UP
TIM7_UPI2C1_RXI2C1_TXI2C1_TX通道2TIM4_CH1
I2S3_EXT_RXTIM4_CH2I2S2_EXT_TXI2S3_EXT_TXTIM4_UPTIM4_CH3通道3I2S3_EXT_RXTIM2_UP
TIM2_CH3I2C3_RXI2S2_EXT_RXI2C3_TXTIM2_CH1TIM2_CH2TIM2_CH4TIM2_UP
TIM2_CH4通道4UART5_RXUSART3_RXUART4_RXUSART3_TXUART4_TXUSART2_RXUSART2_TXUART5_TX通道5UART8_TX(1)UART7_TX(1)TIM3_CH4TIM3_UPUART7_RX(1)TIM3_CH1
TIM3_TRIGTIM3_CH2UART8_RX(1)TIM3_CH3通道6TIM5_CH3
TIM5_UPTIM5_CH4TIM5_TRIGTIM5_CH1TIM5_CH4TIM5_TRIGTIM5_CH2
TIM5_UP
通道7
TIM6_UPI2C2_RXI2C2_RXUSART3_TXDAC1DAC2I2C2_TX表10-1DMA1请求映射DMA通道请求外设请求数据流
0数据流
1数据流
2数据流
3数据流
4数据流
5数据流
6数据流
7通道0ADC1
TIM8_CH1TIM8_CH2TIM8_CH3
ADC1
TIM1_CH1TIM1_CH2TIM1_CH3
通道1
DCMIADC2ADC2
SPI6_TX(1)SPI6_RX(1)DCMI通道2ADC3ADC3
SPI5_RX(1)SPI5_TX(1)CRYP_OUTCRYP_INHASH_IN通道3SPI1_RX
SPI1_RXSPI1_TX
SPI1_TX
通道4SPI4_RX(1)SPI4_TX(1)USART1_RXSDIO
USART1_RXSDIOUSART1_TX通道5
USART6_RXUSART6_RXSPI4_RX(1)SPI4_TX(1)
USART6_TXUSART6_TX通道6TIM1_TRIGTIM1_CH1TIM1_CH2TIM1_CH1TIM1_CH4TIM1_TRIG
TIM1_COMTIM1_UPTIM1_CH3
通道7
TIM8_UPTIM8_CH1TIM8_CH2TIM8_CH3SPI5_RX(1)SPI5_TX(1)TIM8_CH4TIM8_TRIGTIM8_COM表10-2DMA2请求映射仲裁器仲裁器的职责是协调两个AHB主端口的DMA数据流请求,这些端口分别连接到存储器和外设,确保数据流能够根据其设定的优先级顺序来执行访问任务。优先级设置包括两个层面:软件设置和硬件裁决。在软件层面,通过DMA_SxCR寄存器,可以为每个数据流设定四个不同的优先级等级:最高、较高、中等和最低。当涉及到硬件层面时,如果遇到两个数据流具有相同软件优先级的情况,会根据它们的编号来确定执行顺序,编号较小的数据流将获得优先处理权,例如,数据流编号2的请求会排在编号4之前。03DMA数据配置DMA数据配置DMA传输模式源目标流控制器循环模式传输类型直接模式双缓冲区模式外设到存储器AHB外设端口AHB存储器端口DMA允许单独允许允许突发禁止外设禁止单独允许禁止突发禁止存储器到外设AHB存储器端口AHB外设端口DMA允许单独允许允许突发禁止外设禁止单独允许禁止突发禁止存储器到存储器AHB外设端口AHB存储器端口仅DMA禁止单独禁止禁止突发在进行DMA数据传输之前,需要配置DMA控制器。通常包括设置传输的源地址(比如设备的数据寄存器或内存地址)、目的地址(内存地址)、传输的数据量以及传输方向(从设备到内存或者从内存到设备)等参数。表10-3DMA配置情况源和目标地址源传输和目标传输在整个4GB区域(地址在0x00000000和0xFFFFFFFF之间)都可以寻址外设和存储器。传输方向使用DMA_SxCR寄存器中的DIR[1:0]位进行配置,有三种可能的传输方向:存储器到外设、外设到存储器或存储器到存储器。DMA_SxCR寄存器的位DIR[1:0]方向源地址目标地址00外设到存储器DMA_SxPARDMA_SxM0AR01存储器到外设DMA_SxM0ARDMA_SxPAR10存储器到存储器DMA_SxPARDMA_SxM0AR11保留--表10-4源和目标地址传输模式DMA2支持全部三种传输模式,包括外设到存储器、存储器到外设和存储器到存储器。而DMA1只支持外设到存储器和存储器到外设两种模式。模式选择可以通过DMA_SxCR寄存器的DIR[1:0]位控制,其中DIR位域指定了数据传输的方向:00:外设到存储器(PeripheraltoMemory);01:存储器到外设(MemorytoPeripheral);10:存储器到存储器(MemorytoMemory)。一旦设置了传输方向,通过将DMA_SxCR寄存器的EN位置1,可以使能DMA传输,启动数据传输操作。流控制器流控制器用于管理要传输的数据数目,通过DMA_SxCR寄存器中的PFCTRL位对每个数据流进行独立配置。在DMA控制器模式下,数据项数目在启用DMA数据流之前由软件编程到DMA_SxNDTR寄存器中。而在外设流控制模式下,外设通过硬件向DMA控制器发出指示,当传输完成时,数据流会自动关闭。即使在外设流控制模式下,DMA在单独的事务中最多处理65535个数据项。通过读取DMA_SxNDTR寄存器并应用特定的计算公式(传输的数据数目=0xFFFF—DMA_SxNDTR),可以确定在DMA传输期间传输的数据项数目。循环模式在DMA传输中用于处理循环缓冲区和连续数据流,例如ADC的扫描模式。通过设置DMA_SxCR寄存器中的CIRC位,可以启用循环模式这一特性。在循环模式下如果为存储器配置了突发模式,必须遵循特定的规则以确保DMA行为和数据完整性。具体来说,DMA_SxNDTR必须是((Mburst节拍)×(Msize)/(Psize))的倍数,其中Mburst节拍取决于DMA_SxCR寄存器中的MBURST位,而(Msize)/(Psize)与字节相关,表示DMA_SxCR寄存器中的MSIZE和PSIZE位设置。NDTR也必须是外设突发大小与外设数据大小乘积的倍数。如果不满足这个条件,同样会导致错误的DMA行为。循环模式传输类型DMA控制器支持单次传输或4、8、16个节拍的增量突发传输,通过软件配置AHB端口的突发大小,使用DMA_SxCR寄存器的MBURST和PBURST位。突发大小指示节拍数而非字节数,并为确保数据一致性,每组形成的突发传输不可分割,期间AHB传输会被锁定,保持DMA主总线授权。根据单次或突发配置,每个DMA请求在AHB外设端口上启动不同数量的传输,根据PSIZE位的设置产生字节、半字或字的数据传输。在AHB协议下,突发传输不得跨越1KB地址边界,因为单个从设备被分配的最小地址空间是1KB。突发块传输不能超过1KB地址边界,否则将导致AHB错误且DMA寄存器不会报告该错误。在使能指针递增模式时允许突发模式,需注意当PINC位为“0”时,应将PBURST位清零,当MINC位为“0”时,应将MBURST位清零,以确保配置的正确性和一致性。双缓冲模式双缓冲区模式是一种可用于所有DMA1和DMA2数据流的模式,通过将DMA_SxCR寄存器中的DBM位置为1来使能。DMA_SxCR寄存器的位DIR[1:0]方向源地址目标地址00外设到存储器DMA_SxPARDMA_SxM0AR/DMA_SxM1AR01存储器到外设DMA_SxM0AR/DMA_SxM1ARDMA_SxPAR10不允许11保留--DMA中断对于每个DMA数据流,中断是一种重要的机制,可在多种事件发生时产生。这些事件包括达到半传输阶段、完全传输完成、传输错误、FIFO错误(如上溢、下溢或FIFO级别错误)以及直接模式错误。达到半传输阶段:DMA数据流在传输过程中会达到一半的传输量时,可以产生中断。传输完成:当整个数据传输过程完成时,DMA数据流会触发传输完成中断。传输错误:如果在数据传输过程中发生错误,比如数据丢失或传输异常,DMA数据流会产生传输错误中断。FIFO错误:FIFO错误可能包括FIFO上溢、下溢或FIFO级别错误。这些错误可能是由于数据缓冲区溢出或下溢出引起的。直接模式错误:直接模式错误是指在DMA直接模式下发生的错误,可能涉及到指针的配置或其他直接模式相关的问题。DMA寄存器寄存器名称作用DMA_SxCRDMA数据流x配置寄存器用于配置DMA(核心控制寄存器)DMA_(H/L)ISRDMA(低/高)中断状态寄存器用于查询当前DMA传输状态DMA_(H/L)IFCRDMA(低/高)中断标志清除寄存器用来清除DMA_(H/L)ISR对应位DMA_SxNDTRDMA数据流x传输数量寄存器用于控制DMA数据流x每次传输的数据量DMA_SxPARDMA数据流x外设地址寄存器用于存储STM32外设地址DMA_SxM0ARDMA数据流x存储器地址寄存器用于存放存储器的地址USART_CR3USART控制寄存器3用于使能DMA发送表10-6DMA相关寄存器04DMA传输数据到串口案例硬件设计由于DMA为STM32F407内部功能模块,因此只需要将按键与开发板连接。本案例目标要求:利用外部按键KEY1来控制DMA的传送,每按一次KEY1,DMA就传送一次数据到USART1,然后在TFTLCD模块上显示进度等信息。DS0还是用来做为程序运行的指示灯。软件设计DMA的使用主要工作是DMA的初始化设置,包括以下几个步骤:(1)开启DMA时钟;(2)定义DMA通道外设基地址(DMA_InitStructure.DMA_PeripheralBaseAddr);(3)定义DMA通道存储器地址(DMA_InitStructure.DMA_MemoryBaseAddr);
(4)指定源地址(方向)(DMA_InitStructure,DMA_DIR);(5)定义DMA缓冲区大小(DMA_InitStructure,DMA_BufferSize);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江产权交易所有限公司第七期招聘1人笔试历年典型考点题库附带答案详解
- 2025年江西吉安青源发展集团有限公司及下属子公司招聘22人笔试历年常考点试题专练附带答案详解
- 2025东风汽车集团股份有限公司法务合规中心招聘4人笔试历年常考点试题专练附带答案详解
- 地面与地下行人通道规划设计方案
- 大同市广灵县2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 城市生活垃圾提升改造项目规划设计方案
- 2026辽宁铁岭市调兵山市4月份公益性岗位招聘18人备考题库含答案详解(夺分金卷)
- 2026江西省妇幼保健院产科科研助理招聘2人备考题库含答案详解(考试直接用)
- 2026广东广州市黄埔区新龙镇面向社会招聘政府聘员5人备考题库附参考答案详解(完整版)
- 2026诏安县霞葛中心卫生院编外人员招聘2人备考题库附答案详解【完整版】
- 放化疗相关口腔黏膜炎预防及护理课件
- 农业机械设计手册上册
- 智慧高速无人机巡检
- 第三版基本公共卫生服务项目健康教育服务规范解读
- MSA测量系统线性分析报告
- 多维度空间课件
- 景观生态学课件
- 第3章-转座子与遗传重组课件
- 奋战五十天扶摇九万里-高考50天冲刺主题班会 高考倒计时主题班会课件
- 水下作业工程监理实施细则(工程通用版范本)
- GB/T 4393-2008呆扳手、梅花扳手、两用扳手技术规范
评论
0/150
提交评论