UART中的DMA数据处理过程

一、DMA简介

        DMA (Direct Memory Access) ,直接内存存储器,使用它在做数据传输时能够大大减轻CPU的负担。

        DMA,全称 Direct Memory Access,即直接存储器访问。用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。DMA传输无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。

二、主要特性整理

        (1)存储器和存储器间的传输。

        (2)外设和存储器、存储器和外设之间的传输。

        (3)有12个独立的可配置的通道(请求):DMA1有7个通道,DMA2有5个通道。

        (4)可编程的数据传输数目:最大为65535。

        (5)源和目标地址必须按数据传输宽度对齐。

        (6)在同一个DMA模块上,多个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),优先权设置相等时由硬件决定(小的优先于大的)。

        (7)支持循环的缓冲器管理每个通道都有3个事件标志(DMA半传输、DMA传输完成和DMA传输出错),这3个事件标志逻辑或成为一个单独的中断请求。

        (8)每个通道都直接连接专用的硬件DMA请求,每个通道都同样支持软件触发。这些功能通过软件来配置。

        (9)闪存、SRAM、外设的SRAM、APB1、APB2和AHB外设均可作为访问的源和目标。

三、DMA处理过程

        (1)在发生一个事件后,外设向DMA控制器发送一个请求信号。

        (2)DMA控制器根据通道的优先权处理请求。

        (3)当DMA控制器开始访问发出请求的外设时,DMA控制器立即发送给外设一个应答信号。

        (4)当从DMA控制器得到应答信号时,外设立即释放它的请求。一旦外设释放了这个请求,DMA控制器同时撤销应答信号。

        (5)如果有更多的请求时,外设可以启动下一个周期。

四、在STM32中DMA有norma和circular两种模式,每种模式在数据进行传输时需要告知传输数据的大小

        1、Normal mode:
        DMA 开始传输数据,当它传输完成后就会停止。下一次开始需要手动处理。

        2、Circular mode:
        DMA从传输开始,当它传输完成后会自动按照相同配置重新传输,周而复始直至被控制停止或传输发生错误。

五、DMA的普通模式和循环模式

        DMA传输模式有两种,普通模式和循环模式。相关寄存器有DMA_CCRx的CIRC位和DMA_CNDTRx。

        当工作在普通模式,DMA搬运了设定长度的数据后,CNDTR清0,会产生中断标志,然后DMA就停止工作了,如果再有数据也不接收了。需关断 DMA 使能后再重新配置后才能继续传输。

        当工作在循环模式,DMA搬运了设定长度的数据后,CNDTR清0,会产生中断标志,如果再有数据,DMA会循环保存到内存中,覆盖前面的数据。在CNDTR=0时DMA会自动装载初始化时的配置,CNDTR重置为初始值。

        DMA传输完成关闭是需要:1、先关闭外设;2、再关闭DMA模块,否则有一定概率导致DMA再次使用时异常。异常表现为DMA不运作。

 关于在BP10上的DMA的结构体讲解:

DMA的工作(发送和接收)

1、在DMA接收,定义DMA接收的外设ID和DMA的各种参数

2、在DMA发送,定义DMA发送的外设ID和DMA的各种参数

3、了解DMA的结构体

第一个是DMA通道的传输方向(DMA CHANNEL DIR PERI2MEM意味着DMA将从外设读取数据到内存)(DMA_CHANNEL_DIR_MEM2PERI意味着DMA将内存读取数据到外设)(DMA_CHANNEL_DIR_MEM2MEM意味着DMA将一个内存模块数据读取到另一个内存模块)

第二个是DMA传输模式,分为(DMA_BLOCK_MODE 块传输和DMA_CIRCULAR_MODE循环传输)

第三个是循环模式下的一个阈值或者长度

第四个是DMA源的数据宽度

第五个是DMA目的地数据宽度

第六个是 DMA 操作中源地址的自动增量模式,当设置为 AINCR 时,源地址将会在每次传输后自动增加,以指向下一个数据。这是为了方便从源位置连续地读取数据。

第七个是DMA 操作中目的地地址的自动增量模式,当设置为 AINCR 时,目的地地址将会在每次传输后自动增加,以指向下一个数据。这是为了方便从目的地位置连续地读取数据。

第八个是源地址

第九个是目的地地址

第十个是数据缓存长度Bufferlen

DMA的外设ID值表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/628797.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言学习笔记

学习资料: 菜鸟教程:https://www.runoob.com/r/r-setup.html 1、查看 R 包的安装目录.libPaths() 查看已安装的包:library() search()函数可以输出当前加载的环境: 2、利用conda创建新的环境,并安装包(…

经验分享智能产品从0到1全流程

大家好,今天继续分享文章,这篇文章在网络上搜索资料时,有感而发,分享一个智能产品从0到1的整个生命周期中需要经历哪些阶段,我这里以开发一个mini补光灯为例,深入探索各个阶段可能涉及的具体活动和考虑事项…

鸿蒙OS开发:【一次开发,多端部署】(应用UX设计原则)

应用UX设计原则 设计原则 当为多种不同的设备开发应用时,有如下设计原则: 差异性 充分了解所要支持的设备,包括屏幕尺寸、交互方式、使用场景、用户人群等,对设备的特性进行针对性的设计。 一致性 除了要考虑每个设备的特性…

EE-SX670 槽型光电开关 5MM 限位检测感应器 使用案例

EE-SX670是一款槽型光电开关,也被称为U形传感器或限位检测感应器。它是光电传感器中的一种,通过检测物体是否插入其感应槽来触发开关。这种传感器通常用于自动化生产线上的位置检测、对象计数以及安全设备中的运动检测。 EE-SX670作为一款高性能的光电传…

智能文档处理:解析文档场景下多模态大模型的应用与研究前沿

解析文档场景下多模态大模型的应用与研究前沿 一、TextIn 文档解析技术1. 现有大模型文档解析问题2. 文档解析技术背景3. TextIn 文档解析技术架构4. 版面分析关键技术 Layout-engine 二、TextIn 文本向量化技术三、TextIn.com Text Intelligence 一、TextIn 文档解析技术 hell…

十二.吊打面试官系列-JVM优化-深入JVM内存模型

JVM内存模型 1.JVM的组成 整个JVM组成由 :运行时数据区 , 类加载子系统 , 执行引擎 , 本地方法库 几部分组成 上面是Java7的内存模型,Java8以后做了一些调整,把方法区变成了元空间,元空间不在…

Blender雕刻建模流程

1.构形 先构造一个大致相像的外形 可使用的方法包含 -多边形:表面细分,布尔 -曲线:曲线倒角 -融球(使用较少) -曲面(使用较少) 构形之后的准备 -应用缩放 -应用修改器 -曲线转网格 1.1…

【BOSS直聘爬取系统功能介绍】

完整代码关注公众号 : 爬取网站:BOSS直聘:https://www.zhipin.com/ 难点 1. boss直聘不论什么岗位都只会展示10页数据,就算在网页里加到了11,内容也会和10一样。 2.多次访问会有验证码需要登录,这部分需…

3SRB2516-ASEMI适配大功率充电桩3SRB2516

编辑:ll 3SRB2516-ASEMI适配大功率充电桩3SRB2516 型号:3SRB2516 品牌:ASEMI 封装:SGBJ-5 正向电流(Id):25A 反向耐压(VRRM):1600V 正向浪涌电流&…

【3dmax笔记】028:倒角的使用方法

一、倒角描述 在3dmax中创建倒角效果可以通过多种方法实现,以下是几种常见的方法: 使用倒角修改器。首先创建一个图形(如矩形和圆),然后对齐它们,将它们转化为可编辑样条线,并附加在一起,选择要倒角的边缘,然后使用倒角修改器来调整高度、轮廓等参数。使用倒角剖面修…

听劝!普通人千万别随意入门网络安全

一、什么是网络安全 网络安全是一种综合性的概念,涵盖了保护计算机系统、网络基础设施和数据免受未经授权的访问、攻击、损害或盗窃的一系列措施和技术。经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”…

校园防欺凌平台

校园霸凌事件很难被发现,发现者又可能迫于威胁而不敢告发,被霸凌者又因各种原因而选择忍耐,所以,如果能够在发生校园霸凌的时候,做出及时的预警,也许能够拯救挽回无数个家庭。本平台结合防欺凌设备&#xf…

【js刷题:数据结构链表之设计链表】

设计链表 一、题目二、题解 一、题目 二、题解 // 定义节点类,每个节点都有一个值和一个指向下一个节点的引用 class LinkNode{constructor(val,next){ // 构造函数,接收节点值和下一个节点的引用this.valval // 节点的值this.nextnext // 指…

查看Linux服务器的硬盘占用情况

查看Linux服务器的硬盘占用情况 一、查看各分区的使用情况和磁盘挂载1、查看磁盘分区使用和磁盘挂载2、结果解释(1)列名解释(2)各系统解释 二、查看一个目录及其所有子目录中文件的总占用大小1、查看指定目录的总大小2、列出目录下…

山东齐鲁文化名人颜廷利:汉语自媒体里面的真正文字智慧

在这个数字技术日新月异的时代,大数据和人工智能等技术的兴起已经深刻地改变了信息的传播方式。特别是随着自媒体的兴起,传统的物质形态的报刊杂志已迅速转变为无形的知识与智慧的流动,这种转变不仅改变了信息的传递手段,更释放出…

GIT基础02 多机器协作等命令

前言 首先我们知道git给我们提供了分支管理的功能 我们一般使用master分支作为线上环境,master分支一般是一个稳定的分支 我们通常是会创建一个其他分支进行开发,这样不会影响线上的机器运行 如果没有git提供这样的分支功能,就无法做到这一套了 指令学习 假设软件出现问题咋办…

SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析

原文链接:SWAT模型高阶应用暨SWAT模型无资料地区建模、不确定分析及气候、土地利用变化对水资源与面源污染影响分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247604401&idx4&snd2d39846dce07bee765c820de1cf92f3&chksmfa821956cdf5904…

长期的图片活码怎么做?在线制作图片活码的方法

现在通过扫描二维码来查看内容的方式,在日常生活中越来越常见,其中扫码看图就是很常用的一种方式。在很多的公共场所或者宣传单页上,扫码后即可查看相关的图片信息,从而获取我们需要的内容,那么在电脑上将图片生成二维…

Pencils Protocol Season 2 收官在即,Season 3 携系列重磅权益来袭

此前Scroll生态LaunchPad &聚合收益平台Pencils Protocol(原Penpad),推出了首个资产即其生态代币PDD的Launch,Season 2活动主要是用户通过质押ETH代币、组件战队等方式,来获得Point奖励,并以该Point为依…

高低温试验箱工厂分享:设备如何保养更节约成本

高低温试验箱在现代产业中起到重要的作用,能够帮助企业进行产品质量和性能的测试,而且这种设备也是一种常见的用于模拟各种极端温度环境的设备。所以这种在特殊环境下使用的设备,维护和保养是关键,正确的保养和维护可以延长设备的…