一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

dma控制器由什么组成

来源:http://www.elecfans.com/emb/danpianji/20171207597213.html 发布时间:2017-12-10

摘要: DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。

  DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。

  值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。

  DMAC可以在两种模式下运行:无描述符存取模式和描述符存取模式。模式的选取由DCSRx[NODESCFETCH]位决定。同样在同一时间内,不同的通道里可以分别使用这两种模式。

       通道在转换运行模式之前必须停止数据处理。如果出现错误,则通道停留在停止状态,等待程序处理。

  (1)无描述符存取模式

  在无描述符存取模式下,DDADRx被保留。程序不可以向DDADRx中写入数据,并且必须加载DSADRx、DTADRx和DCMDx寄存器。当运行位被设置,DMAC立刻运行以传输数据。无描述符存取在数据传输的开始时被执行。

  一个典型的无描述符存取操作顺序如下。

  1)复位后,通道处于未初始化状态。

  2)设置DCSR[RUN]位为0,设置DCSR[NODESCFETCH]位为1。

  3)程序将源地址写入DSADR寄存器,将目标地址写入DTADR寄存器,将命令写入DCMD寄存器。

  4)向DCSR[RUN]位中写入1,然后无描述符存取被执行。

  5)通道等待数据传输请求。

  6)通道传输数据,数据量由DCMD[SIZE]和DCMD[LENGTH]较小者决定。

  7)在DCMD[LENGTH]被设置为0之前,通道等待下一次数据请求。

  8)DDADR[STOP]被设置为1,通道运行终止。

  (2) 有描述符存取模式

  在有描述符存取模式下,DMAC的寄存器用内存中的DMA描述符数据填充。多个DMA描述符可以被链成一个链表。这就允许DMA通道在一系列不连续的地址上进行数据传输。一个典型的有描述符存取模式的操作步骤如下。

  1)复位后,通道处于未初始化状态。

  2)程序将描述符地址(16字节对齐)写入DDADR寄存器。

  3)程序向DCSR[RUN]中写入1。

  4)DMAC从DDADR标记的地址中读取4字长的描述符,其中各字加载情况如下:

  · Word [0] -》 DDADRx寄存器;

  · Word [1] -》 DSADRx寄存器;

  · Word [2] -》 DTADRx寄存器;

  · Word [3] -》 DCMDx寄存器。

  5)通道等待数据传输请求。

  6)通道传输数据,数据量由DCMD[SIZE]和DCMD[LENGTH]较小者决定。

  7)在DCMD[LENGTH]被设置为0之前,通道等待下一次数据请求。

  8)DDADR[STOP]被设置为1,通道运行终止,否则继续运行

  DMA控制器的基本组成

  一个DMA控制器,实际上是采用DMA方式的外围设备与系统总线之间的接口电路,这个接口电路是在中断接口的基础上再加DMA机构组成。习惯上将DMA方式的接口电路称为DMA控制器。

  (1)内存地址计数器:用于存放内存中要交换的数据的地址。在 DMA传送前,须通过程序将数据在内存中的起始位置(首地址)送到内存地址计数器。而当 DMA 传送时,每交换一次数据,将地址计数器加“1”,从而以增量方式给出内存中要交换的一批数据的地址。

  (2)字计数器:用于记录传送数据块的长度(多少字数)。其内容也是在数据传送之前由程序预置,交换的字数通常以补码形式表示。在DMA传送时,每传送一个字,字计数器就加“1”。当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起DMA控制器向CPU发出中断信号。

  (3)数据缓冲寄存器:用于暂存每次传送的数据(一个字)。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。

  (4)“DMA请求”标志:每当设备准备好一个数据字后给出一个控制信号,使“DMA

  请求”标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后发出DMA响应信号,使“DMA 请求”标志复位,为交换下一个字做好准备。

  (5)“控制/状态”逻辑:由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。

  (6)中断机构:当字计数器溢出时,意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。

  PCI Ccre的模块结构-电子元器件采购网

了解更多相关设计技术信息,请点击华强旗舰电子圈(http://www.hqbuy.com/dzq/dzqsy.html)!

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: