精华内容
下载资源
问答
  • DMA 突发模式

    千次阅读 2016-07-05 21:13:05
    这里的4个节拍,8个节拍,16个节拍的增量突发传输要如何解释? DMA传输需要用到总线矩阵,有个总线仲裁管理总线事务,由它来控制该谁谁用总线 普通的DMA传输可能传一个数据就必须跟总线仲裁提要求,总线仲裁才...

    这里的4个节拍,8个节拍,16个节拍的增量突发传输要如何解释?


    DMA传输需要用到总线矩阵,有个总线仲裁管理总线事务,由它来控制该谁谁用总线
    普通的DMA传输可能传一个数据就必须跟总线仲裁提要求,总线仲裁才来安排传输
    如果是增量突发传输,就是一次性就传输4、8、16个数据,其间不被中断
    因为要求不被中断也就会产生一个问题,总线给你占用了,其他组件就没得用了

    展开全文
  • DMA突发模式的理解

    千次阅读 2020-03-07 10:43:17
    DMA传输类型分为直接模式和突发模式 FIFO一共16个字节 MBURST = INCR8意思是每次传输8*MSIZE数据,且FIFO必须是此乘积的整数倍, 比如: MBURST = INCR8 MSIZE = 字节 一次传输的数据量 = 8 x 字节 = 8字节 此时FIFO...

    在这里插入图片描述
    DMA传输类型分为直接模式和突发模式

    FIFO一共16个字节
    MBURST = INCR8意思是每次传输8*MSIZE数据,且FIFO必须是此乘积的整数倍,
    比如:
    MBURST = INCR8
    MSIZE = 字节
    一次传输的数据量 = 8 x 字节 = 8字节
    此时FIFO有两种可能, 8 x 1 = 8 或者 8 x 2 = 16
    如果选择FIFO = 8 ,那么一次突发就刚好满足FIFO大小
    如果选择FIFO = 16, 那么需要两次突发 2 x 8 = 16,因此需要两次突发

    注意:
    1.这里突发后的目的地是FIFO,当FIFO达到对应的阈值后开始发送。
    2.突发模式需要配合FIFO使用!
    3.这里的MSIZE不会决定最后输出数据的宽度,输出的数据宽度由数组的类型确定,此MSIZE只是用来确定突发的次数。
    4.在这里插入图片描述
    这里16个节拍的一次突发和4个节拍的一次突发效果是一样的,效果都是1次DMA请求后传输4个字。

    展开全文
  • 突发数据中很容易错过接收到的字符 仅适用于低波特率 应用程序必须非常快速地检查是否收到新的数据 中断模式(无DMA): UART触发中断,CPU跳转到服务程序处理数据接收 优点 目前程序中最常用的方法 在低速率下...

    当预先不知道要接收的数据时,如何使用 DMA 在 UART 上读取数据的信息。
    在STM32中,通常有以下几种模式:

    • 轮询模式
      程序必须轮询状态位以检查是否已收到新字符并以足够快的速度读取它以获得所有字节
      优点
      很容易实现,但在真正项目中的应用很少
      缺点
      在突发数据中很容易错过接收到的字符
      仅适用于低波特率
      应用程序必须非常快速地检查是否收到新的数据

    • 中断模式(无DMA):
      UART触发中断,CPU跳转到服务程序处理数据接收
      优点
      目前程序中最常用的方法
      在低速率下工作良好,115200 波特
      缺点
      为每个接收到的字符执行中断服务程序
      可能会在具有许多中断的高性能 MCU 中停止其他任务
      一次接收突发数据时可能会停止操作系统

    • DMA 模式:
      DMA 用于在硬件级别将数据从 USART RX 数据寄存器传输到用户存储器。 除了在必要时由应用程序处理接收到的数据,此时不需要应用程序交互
      优点
      i.从 USART 外设到内存的传输是在硬件完成的,无需 CPU干涉
      ii.可以很容易地与操作系统一起工作
      iii.针对最高波特率 > 1Mbps 和低功耗应用进行了优化
      vi.在大量数据突发的情况下,增加数据缓冲区大小可以改进功能
      缺点
      i.DMA 硬件必须事先知道要传输的字节数
      ii.如果通信失败,DMA 可能不会通知应用程序所有传输的字节

      本文仅关注接收未知数据长度的 DMA 模式。

    STM32中的DMA

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

    • Normal mode:
      DMA 开始传输数据,当它传输完成后就会停止。下一次开始需要手动处理。
    • Circular mode:
      DMA从传输开始,当它传输完成后会自动按照相同配置重新传输,周而复始直至被控制停止或传输发生错误。

    在这两种mode中有两种中断模式:

    • 达到半传输(Half-Transfer complete (HT) interrupt):DMA 数据传输达到一半时 HTIF 标志位被置 1,如果使能 HTIE 中断控制位将产生达到半传输中断;
    • 传输完成(Transfer-Complete (TC) interrupt):DMA 数据传输完成时 TCIF 标志位被置 1,如果使能 TCIE 中断控制位将产生传输完成中断;

    我们通过 DMA 收到有关 HT 或 TC 事件的通知。 想象一下假设要接收 20 个字节,但它仅接收 14 个会发生什么呢:

    1. 程序会等待数据到达20个时才会处理
    2. 如果设置了HT中断,则会知道目前至少已经接受到了10个数据,不会告知剩下的4个数据。

    我们必须解决这种情况!

    U(S)ART

    大多数 STM32 系列U(S)ART都有带空闲(IDLE )检测。 如果没有IDLE检测,其中一些具有可编程延迟的接收器超时功能。 如果这甚至不可用,则应用程序可以仅使用带有 DMA 的轮询模式,示例如下。

    IDLE模式或接收超时中断,可用于判断数据有么有接收完整。

    假设我们以 115200 波特接收了 10 个字节。 115200 波特的每个字节在 UART 线上大约需要 10us,总共 100us。 
    IDLE中断将在检测到 RX 线上的 1 个字符不活动时通知应用程序,这意味着在最后一个字符后 10us 之后。
    应用程序可以对此事件做出反应并相应地处理数据。
    

    DMA+U(S)ART

    还是上述例子,程序等待接收20个字节,但实际只接收到了14个数据,如何解决这一问题。

    解决方案

    • 将 DMA 置于循环模式以避免 DMA 传输完成后还得手动配置。

    • 申请一块大的内存,足够装下最大长度数据包

      • 如果波特是11500,突发最大数据长度100,要保证可以装下这100个数据。
      • 最好将接收缓冲区设置为至少 100 字节,除非可以确保处理方法比数据突发更快
      • 在 115200 波特时,100 字节也就用1ms 时间就传输完成了

    DMA HT/TC + U(S)ART IDEl

    本节描述了可能的 4 种可能情况和另外一种情况,解释了应用程序需要 HT/TC 事件的原因
    在这里插入图片描述

    图片上使用的缩写

    R: 下次读取数据的位置
    W: DMA 将在内存中保存下一个字节位置
    HT: 由 DMA 触发的半传输事件
    TC: 由 DMA 触发的传输完成事件
    IDLE: UART是否空间

    DMA

    • DAM采用循环模式(Circular mode)
    • 20字节的数据缓存,HT事件表示已接收10个数据

    会出现的情况

    • A:程序由 HT 中断通知,可以读取/处理数据,由 UART 接收

    • B:DMA 传输接下来的 10 个字节。 在这种情况下,读取/处理到最后一个数据后,因为是Circular mode所以会自动回到开始的位置。

    • C:DMA接收了10个字节,但不是对齐的,无法触发HT/TC事件。 .

      • 当剩余6个数据接收完成后,才会触发TC事件
      • 使用UART的IDLE检测,来接收剩余的4个字节,当IDLE中断后说明已经没有数据传输了,来完成数据接收,或者使用数据超时也可以
    • D:DMA接收了10个字节数据,不是对齐的缓存读位置在下,写位置在上。

      • 通过TC事件可以接收4个字节
      • 使用UART的IDLE检测,来接收剩余的6个字节,当IDLE中断后说明已经没有数据传输了,来完成数据接收,或者使用数据超时也可以
    • E:如果我们只依赖 IDLE检测。 如果在突发中接收到的字节数超过了 DMA 所能容纳的字节数,会发生什么? 在这种情况下,可以容纳 20 个字节,但是我们在突发中收到了 30 个字节如何处理呢

      • IDLE事件说明已经接收完最后一帧数据。
      • 数据的红色部分表示溢出前一个数据的最后一个数据 = 我们丢失了 10 个字节
      • 避免采用轮询 DMA,而是 更改比接收突发数据可能发生的更快,或者通过使用 HT/TC 事件

    UART IDLE 线路检测 + DMA HT&TC 中断
    应用程序通过 IDLE 线路检测或 DMA TC/HT 事件获得通知
    应用程序只有在收到 3 个中断中的任何一个时才必须处理数据
    P:应用程序不需要轮询新的变化
    P:应用程序接收事件中断
    P:应用程序可能会进入低功耗模式以延长电池寿命(如果使用电池)
    C:在中断中读取(处理)数据。 我们努力尽快执行中断程序
    C:长时间中断执行可能会破坏应用程序中的其他兼容性
    传入数据的处理来自 2 个中断向量,因此重要的是它们不会相互抢占。 将两者设置为相同的抢占优先级!

    例程代码

    https://github.com/MaJerle/stm32-usart-uart-dma-rx-tx

    展开全文
  • DMA传送方式

    2020-11-13 02:27:44
     块传送方式意味着在连续4个字的DMA写周期前有连续的4个字的DMA读周期,即4个字突发读,然后4个字突发写,因此传输的数据个数应该是16字节的倍数。  如果传送大小或者DMA计数值不是16的倍数,则DMA将不能完整地...
  • DMA操作原理

    2020-11-13 02:45:19
    概括地说,通过应用DMA进行数据传输可在固定源和外部存储器之间、外部存储器和外部存储器之间、外部存储器和固定目标之间进行。DMA操作由S/W或外部DMA请求信号来启动。如图1所示,给出了ZDMA控制器框架图。  图...
  • 调试AXI DMA

    2019-12-24 13:51:18
    调试AXI DMA ...此接口可以无限制的突发传输,意思是只用一次握手协议,此后传输的全部都是有效数据。并把有效数据写入DDR中。写接口为 S2MM,读接口为MM2S。 由此联想到AXI GP接口此接口是PS端访...

    调试AXI DMA

    AXI DMA由两个通道一个是AXI lite的数据寄存器控制信号。

    1. AXI lite是AXI总线中的一种,应用于ps端写寄存器用。
    2. AXI stream 是pl端与ps端大型数据接收发送。此接口可以无限制的突发传输,意思是只用一次握手协议,此后传输的全部都是有效数据。并把有效数据写入DDR中。写接口为 S2MM,读接口为MM2S。
    3. 由此联想到AXI GP接口此接口是PS端访问外设的告诉接口,已PS为主机,另一个接口时AXI HP接口此接口已PL为主机,另外最后一个接口为AXI ACP接口,此接口专门管理不带fifo的DMA接口。
    4. AXI的写接口bug问题 有时调试到此DMA不能改变随着数据输入主机改变数据位宽。但有时候可以手动调节,注意此时的端口默认是AUTO模式,意思是随着数据输入改变数据位宽。bug。。。。。
    5. sg模式好麻烦不用。。。
    展开全文
  • stm32 DMA2D使用中断LVGL,提高LVGL帧率

    千次阅读 2020-12-14 13:27:27
    我看了很多DMA2D教程都是用阻塞方式来刷新屏, 这样就消耗...LTDC刷新率45MHZ, 开启SDRAM 突发传输, LVGL 2个全尺寸缓冲区 1 LVGL不使用DMA2D, 使用寄存器DMA2D传输 LVGL配置 #define LV_USE_GPU 1 /*Only enabl.
  • 中断与DMA的区别

    千次阅读 2019-03-02 13:41:49
    DMA:是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制,使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率. 中断:是指CPU在执行程序的过程中,出现了...
  • 本人菜鸟,... //传输完成以后关闭串口DMA  HAL_UART_DMAStop(&uart4Handle);  }  //调用中断处理公共函数  HAL_DMA_IRQHandler(uart4Handle.hdmatx); }</p>
  • 以PCI9054为桥接器件,FPGA为微控制器,设计了将PCI Target单周期模式读写指令和DMA突发模式传输数据相结合的传输模式,在保证数据可靠传输的同时,提高了数据的传输速度。经实践测试,该设计工作稳定,传输准确,...
  • 使用DMA 控制器可以神不知鬼不觉地在外设与内存,内存与内存,外设与外设之间直接进行数据传输,不需要CPU的涉足即可达到目的。前提是必须在DMA工作之前,把相关寄存器配置好。  有几个概念容易混淆:  transfer...
  • 在Windows 2000 下,利用Driver Studio 为其开发的WDM 驱动程序,采用DMA结合中断的数据传输方式,使其与上位机的通信速率在突发模式下能达到26.3Mbytes/s, 满足了系统对伺服控制器的实时性要求。  引言  在当前...
  • Burst: 突发传输 DMA传送不经过CPU的控制,假如硬盘的数据不能经过DMA控制器读到内存,那么每完成一次将硬盘的数据读出来,再存放到内存的操作,都要通过CPU运行几条读写指令来完成,这时CPU就做不了别的事了,如果...
  • DMA:是一种无须CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制,使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。  中断:是指CPU在执行程序的过程中,出现...
  • 在Windows 2000 下,利用Driver Studio 为其开发的WDM 驱动程序,采用DMA结合中断的数据传输方式,使其与上位机的通信速率在突发模式下能达到26.3Mbytes/s, 满足了系统对伺服控制器的实时性要求。  引言  在当前...
  • · 写数据 FIFO,用于存储要写入存储器的 AHB 数据(最多 32 位)以及 AHB 传输的一个控制位(突发或非连续模式)。 · 写地址 FIFO,用于存储 AHB 地址(最多 28 位)以及 AHB 数据大小(最多 2 位)。在
  • 1 McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多帧(Multi-Frame)方式通信的中断处理  在实际通信应用中,一个突发之后,程序必须为...但是在下一次突发传输直接使能DMA时却启动不了传输(相信会有许
  •  如图 PIO模式读/写时序 DMA传输为16位,主机控制DMACK信号有效,则会启动一次DMA突发数据传输,一个DMA突发为两位或更多位。DMARQ和DMACK信号用来指定什么时候会执行多字DMA传输,也被用来控制多字DIV队数据传输...
  • FPGA的逻辑设计着重讨论了对CY7C09449局部总线的同步传输控制逻辑的设计,这种逻辑支持局部总线的突发传输,可获得高达200Mb/s的局部总线数据传输速度。采集卡在WindowsXP下的驱动程序设计重点讨论了DMA数据传输...
  • 在实际通信应用中,一个突发之后,程序必须为下一个突发作准备。因此一般采用串口的DMA多帧方式但在串口以DMA方式传输数据时却有一些问题要讨论。
  • 这里采用 DMA方式传输数据,可实现大量数据的突发传输而不丢失,数据通过 PCI 9054内部的 FIFO进行双向传输。为此,核心控制芯片 FPGA内部专门设计了与 PCI 9054进行数据通信的逻辑控制单元,通过查询 FIFO的当前...
  • PLX9054是PCI接口专用主从器件,包括通信、网络、磁盘...PLX9054可以以多种方式实现从pci总线端到局部总线端的数据转移,如直接传输DMA控制传输等。pci总线和局部总线之间以6个可编程FIFO连接,可实现突发并行传输
  •  PDIUSBD 12是一款性价比很高的USB器件,它通常用作微控制器系统中实现与微控制器进行通信的高速通 用并行接口,它还支持本地的DMA传输。  1.芯片工作方式  PDIUSBD12可编程为单周期DMA突发模式DMA。在单...
  • 符合PCI本地总线规范2.2版,突发传输速率达到132MB/s,本地总线支持复用/非复用的32位地址/数据;有M、C、J三种模式;针对不同的处理器及局总线特性可选,尽量减少中间逻辑;具有可选的串行EEPROM接口,本地总线时钟...
  • AHB到APB总线转换的桥verilog代码 AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上...支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。
  • AHB学习笔记

    千次阅读 2018-04-18 21:06:00
    突发传输 拆分事务 主设备单时钟周期传输 单时钟沿操作 非三态实现 宽数据总线配置(64/128bit) 1.1.典型AHB系统 典型的AHB系统包括以下部分: 可支持高带宽传输的主干总线 AHB主设备(如高性能CPU和DMA...
  • AHB总线

    千次阅读 2019-07-22 17:17:45
    突发传输 拆分事务 主设备单时钟周期传输 单时钟沿操作 非三态实现 宽数据总线配置(64/128bit) 1.1.典型AHB系统 典型的AHB系统包括以下部分: 可支持高带宽传输的主干总线 AHB主设备(如高性能CPU和DMA...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

dma突发传输