精华内容
下载资源
问答
  • 基于多通道DMA控制器的媒体播放器SoC设计与验证
  • 利用FPGA芯片设计PCI总线接口的多通道DMA控制器的基本原理及实现方法。
  • 基于多通道DMA控制器的媒体播放器SoC设计与验证,曾文龙,周游,提出了一种基于多通道直接内存存取DMA(Direct Memory Access)控制器的媒体播放器片上系统SoC(System on Chip)设计方案,不仅实现了内外部存储空间
  • 文中提出了一种功能较为完备的通用多通道 DMA 控制器的设计方法,给出了系统仿真和测试结果.该控制器具有8 通道,支持优先级和轮转相结合的仲裁机制,利用地址掩码和指针实现 FIFO 型环形缓冲.采用流水线结构设计...
  • zynq DMA控制器

    2018-11-17 20:35:00
    Zynq-7000系列器件PS端的DMA控制器采用ARM的IP核DMA-330(PL-330)实现。 特点: 1.8个独立的通道,4个可用于PL—PS间数据管理,每个通道有1024Byte的MFIFO 2.使用CPU_2x 时钟搬运数据,CPU_2x= (CPU frq/6)*2 ...

    Zynq-7000系列器件PS端的DMA控制器采用ARM的IP核DMA-330(PL-330)实现。

    特点:

     1.8个独立的通道,4个可用于PL—PS间数据管理,每个通道有1024Byte的MFIFO

    2.使用CPU_2x 时钟搬运数据,CPU_2x = (CPU frq/6)*2

    3.执行自定义内存区域内的DMA指令运行DMA

    4. AHB控制寄存器支持安全和非安全模式

    5.每个通道内置4字Cache

    6. 可以访问SoC的以下映射物理地址:

    DDR、OCM、PL、Linear QSPI Read、SMC和M_AXI_GP设备

     

    DMA控制器可以访问连接到Central Interconnect上的所有设备,并提供了四个通道的外设管理接口可用于控制PL的数据搬运。

     

    DMA控制器由指令加速引擎,AXI Master数据接口,AXI APB寄存器访问接口以及可以连接到PL的外设请求接口,数据缓冲FIFO和控制及状态产生单元组成。

    MA控制器通过DMA指令执行引擎执行自己的指令,并将执行状态通过APB总线和中断等形式反馈给CPU,达到数据搬运不占用CPU的目的。

    MA控制器共有八个通道,其中四个通道负责互联到Central Interconnectcun存储单元上的数据搬运;四个数据通道为外设请求接口,可用于PL AXI互联接口的数据访问管理。

     每个DMA通道都执行自己的指令,拥有自己的独立线程,通道间互不影响。指令执行引擎有自己独立的Cache。

    DMAGO启动DMA

    DMASEV事件信号

    DMAKILL终止进程

    1.编程启动DMA通道

    2.将程序存储在系统内存中

    使用DMAC上的一个APB接口编写DMAGO指令

    3.DBGSTATUS寄存器以确保调试是空闲的,即DBGSTATUS位为0。

    4.写dmac,DBGINST0寄存器

    a. DMAGO的指令字节0编码。

    b. DMAGO的指令字节1编码。

    c.调试线程位到0。这将选择DMA管理器。参考调试指令-0

    5.写DMAC DBGINST1指令

    6,。写0给dmac DBGCMD寄存器

     

    Programming Guide for DMA Controller

    DMA控制器编程分为以下几个部分:

     DMA控制器初始化

    组织DMA引擎执行代码

    启动或停止DMA传输

    异常处理。

     

     

     

                                                                    

     

    转载于:https://www.cnblogs.com/hcr1995/p/9975489.html

    展开全文
  • 双轴按键摇杆控制器控制TFTLCD(使用ADC1双通道DMA传输)Channel_10和Channel_11 代码简介与使用实例:http://www.ciast.net/post/20151227.html
  • ZYNQ-DMA控制器

    千次阅读 2018-01-31 17:18:23
    DMA控制器为DMAC。在不需要CPU的基础上, DMAC可以移动大量数据,数据源和目的源存储器可以是PS或PL上的任何存储器资源,包括DDR、OCM、SPIflash、SMC(静态存储控制器)或者PL外设。 DMAC能配置最多8个通道,每个...

    掌握DMA,才能掌握PS内高性能数据传输,以及PL内实现DMA传输。

    DMA控制器为DMAC。在不需要CPU的基础上, DMAC可以移动大量数据,数据源和目的源存储器可以是PS或PL上的任何存储器资源,包括DDR、OCM、SPIflash、SMC(静态存储控制器)或者PL外设。

    DMAC能配置最多8个通道,每个通道能支持一个单独并发的DMA操作线程。对应8个DMA中断号,IRQ【75:72】以及】49:46】。

    两个经典的DMA交易如下:

    1.存储器到存储器交易,即OCM到DDR存储器;

    2.存储器到PL外设之间的交易,即DDR存储器到PL外设。

    DMAC管理与PL外设之间的数据流量:

    1.PL外设长度管理:由PL外设控制一个DMA周期内所包含的数据量。

    2.DMAC长度管理:由DMAC控制一个DMA周期内所包含的数据量。


    展开全文
  • 摘要:在分析传统DMA控制器结构的基础上,针对实时图象处理系统的数据传输要求,提出了多端口模块设计、增加RoundRobin通道优先级仲裁算法和优化数据传输通道等优化方法,以提高数据传输速度,并改进了地址产生模式...
  • STM32F103系列实战之DMA控制器

    万次阅读 2018-03-13 10:20:36
    DMA简介直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他...2个DMA控制器支持环形缓冲区的管理,避免了...

    DMA简介
    直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。灵活的12路通用DMA(DMA1上有7个通道, DMA2上有5个通道)可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;还有一个仲裁器来协调各个DMA请求的优先权。2个DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。
    每个通道都有专门的硬件DMA请求逻辑,同时可以由软件触发每个通道;传输的长度、传输的源地址和目标地址都可以通过软件单独设置。DMA可以用于主要的外设: SPI、I2C、 USART,通用、基本和高级控制定时器TIMx, DAC、 I2S、SDIO和ADC。

    DMA主要特性
    1.12
    个独立的可配置的通道(请求): DMA1有7个通道, DMA2有5个通道;
    2.每个通道都直接连接专用的硬件DMA请求,每个通道都同样支持软件触发。这些功能通过软件来配置;
    3.在同一个DMA模块上,多个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),优先权设置相等时由硬件决定(请求0优先于请求1,依此类推) ;
    4.独立数据源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐;
    5.支持循环的缓冲器管理;
    6.每个通道都有3个事件标志(DMA半传输、 DMA传输完成和DMA传输出错),这3个事件标志逻辑或成为一个单独的中断请求;
    7.存储器和存储器间的传输;
    8.外设和存储器、存储器和外设之间的传输;
    9.闪存、 SRAM、外设的SRAM、 APB1、 APB2和AHB外设均可作为访问的源和目标;
    10.可编程的数据传输数目:最大为65535。

    DMA框图:

    注:1.DMA2仅存在于大容量产品和互联型产品。
           2.SPI/I2S3、UART4、TIM5、TIM6、TIM7和DAC的DMA请求仅存在于大容量产品和互联型产品。

           3.ADC3、SDIO和TIM8的DMA请求仅存在于大容量产品。

    每次DMA传送由3个操作组成:
    1.从外设数据寄存器或者从当前外设/存储器地址寄存器指示的存储器地址取数据,第一次传输时的开始地址是DMA_CPARx或DMA_CMARx寄存器指定的外设基地址或存储器单元。
    2.存数据到外设数据寄存器或者当前外设/存储器地址寄存器指示的存储器地址,第一次传输时的开始地址是DMA_CPARx或DMA_CMARx寄存器指定的外设基地址或存储器单元。
    3.执行一次DMA_CNDTRx寄存器的递减操作,该寄存器包含未完成的操作数目。

    通道配置过程
    下面是配置DMA通道x的过程(x代表通道号):
    1. 在DMA_CPARx寄存器中设置外设寄存器的地址。发生外设数据传输请求时,这个地址将是数据传输的源或目标。
    2. 在DMA_CMARx寄存器中设置数据存储器的地址。发生外设数据传输请求时,传输的数据将从这个地址读出或写入这个地址。
    3. 在DMA_CNDTRx寄存器中设置要传输的数据量。在每个数据传输后,这个数值递减。
    4. 在DMA_CCRx寄存器的PL[1:0]位中设置通道的优先级。
    5. 在DMA_CCRx寄存器中设置数据传输的方向、循环模式、外设和存储器的增量模式、外设和存储器的数据宽度、传输一半产生中断或传输完成产生中断。
    6. 设置DMA_CCRx寄存器的ENABLE位,启动该通道。

    一旦启动了DMA通道,它既可响应连到该通道上的外设的DMA请求。当传输一半的数据后,半传输标志(HTIF)被置1,当设置了允许半传输中断位(HTIE)时,将产生一个中断请求。在数据传输结束后,传输完成标志(TCIF)被置1,当设置了允许传输完成中断位(TCIE)时,将产生一个中断请求。

    中断
    每个DMA通道都可以在DMA传输过半、传输完成和传输错误时产生中断。为应用的灵活性考虑,通过设置寄存器的不同位来打开这些中断。

    DMA中断请求

    注意:在大容量产品中,DMA2通道4和DMA2通道5的中断被映射在同一个中断向量上。在互联型产品中,DMA2通道4和DMA2通道5的中断分别有独立的中断向量。所有其他的DMA通道都有自己的中断向量。

    DMA请求映像
    DMA1
    控制器
    从外设(TIMx[x=1、2、 3、 4]、ADC1、 SPI1、 SPI/I2S2、I2Cx[x=1、 2]和USARTx[x=1、2、 3])产生的7个请求,通过逻辑或输入到DMA1控制器,这意味着同时只能有一个请求有效。参见下图的DMA1请求映像。外设的DMA请求,可以通过设置相应外设寄存器中的控制位,被独立地开启或关闭。

    DMA1请求映像

     

    各个通道的DMA1请求一览

    DMA2控制器
    从外设(TIMx[5、 6、 7、 8]、 ADC3、 SPI/I2S3、 UART4、DAC通道1、 2和SDIO)产生的5个请求,经逻辑或输入到DMA2控制器,这意味着同时只能有一个请求有效。参见下图的DMA2请求映像。外设的DMA请求,可以通过设置相应外设寄存器中的DMA控制位,被独立地开启或关闭。
    注意: DMA2控制器及相关请求仅存在于大容量产品和互联型产品中。

    DMA2请求映像

    各个通道的DMA2请求一览

     

    下面我们以DMA的ADC1通道传送功能为例介绍一下其简单用法:

    //ADC1采样地址
    #define ADC1_DR_Address ((uint32_t)0x4001244C)	
    
    //ADC1 DMA配置
    static void BSP_DMAAdc1_Init(void)
    {
        DMA_InitTypeDef   DMA_AdcInit;	
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);                          //启动DMA1时钟,ADC1对应DMA1通道1
        DMA_AdcInit.DMA_PeripheralBaseAddr = ADC1_DR_Address;                       //外设地址,
        DMA_AdcInit.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;       //外设数据字长,半字、16位双字节长度,根据ADC寄存器ADC_DR说明确定
        DMA_AdcInit.DMA_PeripheralInc = DMA_PeripheralInc_Disable;                  //设置DMA的外设递增模式,禁止递增,只读取一个外设数据
        DMA_AdcInit.DMA_MemoryBaseAddr = (u32)ADCSampleValue;                       //内存地址,存放读取ADC数据的缓存,根据实际情况确认缓存大小
        DMA_AdcInit.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;               //内存数据字长,同外设长度,必须相同、防止传输错乱
        DMA_AdcInit.DMA_MemoryInc = DMA_MemoryInc_Enable;	                        //设置DMA的内存递增模式,允许递增,读取ADC1多通道数据,不同的通道数据存放在不同的缓存中
        DMA_AdcInit.DMA_BufferSize = SAMPLETIMES*SAMPLEPORT;                        //DMA通道的DMA缓存的大小,根据实际情况设定,即内存地址缓存的size
        DMA_AdcInit.DMA_DIR = DMA_DIR_PeripheralSRC;                                //dma传输方向单向,由于读取的是外设ADC上的数据,左移设定从外设到内存
        DMA_AdcInit.DMA_M2M = DMA_M2M_Disable;                                      //设置DMA的2个memory中的变量互相访问,关闭内存间传输功能
        DMA_AdcInit.DMA_Mode = DMA_Mode_Circular;                                   //设置DMA的传输模式,循环传输模式,保证一直读取外设数据
        DMA_AdcInit.DMA_Priority = DMA_Priority_VeryHigh;	                        //设置DMA的优先级别,级别最高
        DMA_Init(DMA1_Channel1, &DMA_AdcInit);	                                //初始化DMA
        DMA_Cmd(DMA1_Channel1,ENABLE);                                              //使能DMA1
        DMA_ITConfig(DMA1_Channel1, DMA_IT_TC, ENABLE);                             //使能DMA传输完成中断,传输完成中断,及一次循环结束
        BSP_NVIC_Init(DMA1_Channel1_IRQn, 1, 4);                                    //初始化中断,具体参看中断相关内容
    }

    代码分析参见代码注释。简单点说使用DMA就得确认外设对应的DMA通道,确认传输方向,外设到内存、内存到外设等等。根据传输方向设定源地址和目的地址,上面的ADC1外设就是源地址、没存内存就是目的地址。然后再根据实际需要传输的方式设定相关参数,初始化DMA并使能DMA。中断根据实际情况来决定是否需要。



    展开全文
  • 读书小记04- DMA控制器

    2010-06-24 12:59:00
    第三章 存储控制器 ... DMA控制器架构   DMAC通道     DMA信号 <br />  DMA 通道优先级 DMA 通道分为4个优先级,每个类型包含4个通道 类型0 最高

    第三章            存储控制器

    DMA控制传输(DMAC)是使得cpu处理其他与数据总线无关的处理,而由DMA控制器负责数据传输的机制。

    Flow through 数据传输方式:PXA255 16DMA通道提供。

    DMA控制器架构

     

    DMAC通道

     

     

    DMA信号

     

    DMA 通道 优先级

    DMA 通道分为4个优先级,每个类型包含4个通道

    类型0 最高

    类型 1 次高

    类型 23 一样高。

     

    DMA 描述符

    两种模式:无描述符存取模式。

     

     

     

              描述符存取模式

     

     

     

    DMA 通道状态

    1.      未初始

    2.      有效描述符存取,未运行

    3.      描述符存取,运行

    4.      等待请求

    5.      数据传输

    6.      通道错误

    7.      停止状态

     

    DMAC 不能保证cpuIO上的读写顺序。

    必须由软件保证

     

    字节传输顺序

    DCMD 0 代表小端模式顺序

     

     

    数据传输

     

     

    展开全文
  • 采用Altera公司FPGA提供的PCIe PHY IP和Synopsys公司提供的PCIe Core IP提出了一种PCIe总线接口的DMA控制器的实现方法,并搭建了4通道的PCIe传输系统。利用Synopsys VIP验证环境对系统进行了仿真验证,利用Altera ...
  • STM32----DMA控制器

    2019-07-29 10:59:15
    当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。 DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得...
  • 在使用串口DMA试验过程中,遇到了一些问题,通过试验找到了问题所在,也对DMA的应用...// 串口对应的DMA请求通道 #define USART_TX_DMA_CHANNEL DMA1_Channel4 #define USART_TX_DMA_IRQ DMA1_Channel4_IRQn #defin...
  • STM32再学习——DMA控制器

    千次阅读 2013-10-18 22:09:41
    DMA这简单的三字母表示Direct Memory Access,直译过来就是“直接存储器存取”,... STM32F103系统MCU的DMA控制器有7个通道,每个通道专门用来管理来自一个或多个硬件外设对存储器的访问请求。该访问请求可以通过硬件
  • 控制器STM32F103 DMA通道配置过程 1、设置外设地址: 在DMA_CPARX寄存器中设置外设地址,发生外设数据传输请求时,该地址将作为DMA传输的源或目标地址: 2、设置存储器地址: 在DMACMARX寄存器中设置存储器地址,发生...
  • 4,配置DMA通道,将DR设置为外设地址,将数组,结构体等设置为内存地址,这里用数组做测试。 5,使能串口DMA,开启DMA,数组的元素一个个发送到DR,从DR再到移位寄存器,数组地址递增,DR地址不能变,故不递增。 ...
  • 31 DMA控制器(SAM9G25[DATASHEET])

    千次阅读 2015-03-31 08:00:18
    DMA控制器(DMAC)是一个AHB-central DMA控制器内核,它通过一个或多个AMBA总线将一个源外设的数据传送到目的外设。每一个“源/目的”对都需要一路通道。在最基本的配置里,DMAC有一个主站接口和一个通道。主站接口从...
  • 实验四、8237DMA控制器实验

    千次阅读 2012-03-22 17:03:05
    编写程序,使用DMA通道进行RAM——RAM的通道传送。将6264中0000:8000H—0000:80FF单元的数据传送至0000:8200H—0000:82FFH单元中。 本实验中8237实验地址从X20H—X2FH 实验代码: CODE SEGMENT ASSUME ...
  • DMA通道

    2013-03-28 16:20:43
    DMA通道 DMA(Direct Memory Access) ,即直接存储器存取,是一种快速传送数据的机制。...每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来
  • ②、中断控制方式中的数据传送在中断处理时由CPU控制完成,而DMA控制方式则在DMA控制器下完成。不过,在DMA的控制方式中,数据的传送方向,存放数据的内存始址及传送数据的长度等信息仍然由CPU控制。 ③、中断控制...
  •   每个DMA控制器8个数据流,每个数据流都能够提供源和目标之间的单向传输链路 仲裁器   仲裁器用于在多个数据流同时请求时,解决请求冲突的问题。在硬件上,数据流的编号越低,请求优先级越高,仲裁器优先响应...
  • 分类I/O控制器思维导图I/O控制器功能I/O控制器的组成内存映像I/O vs 寄存器独立编址 基础知识 思维导图 什么是I/O设备? 分类 ![ I/O控制器 思维导图 I/O控制器功能 I/O控制器的组成 内存映像I/O vs 寄存器...
  • DMA对象

    2019-07-26 09:31:41
    在运行Windows 8及更高版本的基于SoC的系统平台上,该框架还支持系统模式DMA,即多个设备共享一个多通道DMA控制器。 框架的DMA支持包括: 一组框架 DMA 对象和方法,供驱动程序用于将 I/O 请求转换为...
  • 本文根据《TMS320VC5509 Direct Memory Access (DMA) Controller Reference Guide (Rev. A)》——TI官方提供的文档,翻译整理得到。 TMS320VC5509A资料的官方下载路径: TMS320VC5509A官方提供...当一条DMA通道...
  • DMA设备驱动(一)————DMA简介

    千次阅读 2017-04-25 10:28:00
    DMA,Direct Memory Access,直接存储器访问。其主要功能是在不需要处理器参与的...1. 简介S3C2440A有一个位于系统总线和外设总线间的4通道DMA控制器。每个通道都支持在位于系统总线上和(或)位于外设总线上的设备间进
  • DMA

    2020-12-14 19:07:05
    DMA定义 DMA(Direct Memory Access,直接存储器存取),是一种完全由硬件执行数据交换的工作方式。...STM32微控制器上集成了2个DMA控制器,DMA1有7个通道,DMA2有5个通道。 资料来自老师所发ppt,感谢! ...
  • 对于高速数据采集系统,为实现数据的高速传输,以免在A/D转换完后因为没有及时将数据取走而被下一次转换的数据覆盖,我们必须设计一个数据...在本系统中我们采用DMA控制器8237配以8位总线收发器74HC574等实现DMA控制。
  • STM32 DMA和I/O端口

    2021-03-22 16:25:48
    7通道DMA控制器 支持外设;定时器,ADC,SPI,I2C,USART。 **7通道的意思是 ;先不用知道(手动狗头)。 DMA主要用途; 上一篇讲过,DMA帮助我们把ADC的数据直接放入SRAM中,方便我们后续读取和操作。DMA属于CPU小...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 644
精华内容 257
关键字:

通道dma控制器