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

华强商城公众号

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

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

华强商城M站

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

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

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

华强微电子公众号

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

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

华强电子网公众号

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

基于AXI总线的DMA控制器的设计

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

摘要: 随着微电子技术的飞速发展,集成电路规模按照摩尔定律(微芯片上集成的晶体管数目每18个月翻一番)飞速提高,片上系统(SvstemOnChip,简称SOC)技术成为国际超大规模集成电路的发展趋势。

  随着微电子技术的飞速发展,集成电路规模按照摩尔定律(微芯片上集成的晶体管数目每18个月翻一番)飞速提高,片上系统(SvstemOnChip,简称SOC)技术成为国际超大规模集成电路的发展趋势。
 
       在SOC系统设计中,为了能够快速、稳定的形成产品,IP核积累和复用技术逐渐成为各个芯片厂商的首选。在这样的背景下,IP复用技术成为了集成电路设计的一个重要分支,很多设计厂商在购买其它公司的IP核的同时,也越来越重视本公司的IP核设计和积累。

  DMA控制器是常见的总线设备之一,很多厂商都有自己的DMA控制器IP核。比如嵌入式处理器的龙头ARM公司就有自己的DMA控制器解决方案提供给客户,另外像Freescale,Fuiitsu等芯片制造厂商都有自己的解决方案。本文通过介绍一种基于ARM总线之一的AHB总线的DMA控制器的IP核设计,简述了IP核设计的流程和需要重点注意的地方。

DMA控制器功能框图-IC芯片

  DMA控制器

  功能描述

  一般而言,DMA控制器的功能与结构是由本单位特定的系统结构决定的。但是作为IP而言,DMA控制器又要有其一般性。DMA是指外部设备直接对计算机存储器进行读写操作的I/O方式。这种方式下数据的读写无需CPU执行指令,也不经过CPU内部寄存器,而是利用系统的数据总线,由外设直接对存储器写入或读出,从而达到极高的传速率

  现在DMA也可以在。内存之间或是外设之间直接进行数据操作。DMA技术的重要性在于,利用它进行数据存取时不需要CPU进行干预,可提高系统执行应用程序的效率。利用DMA传送数据的另一个好处是数据直接在源地址和目的地址之间传送,不需要是中间媒介。

  通用的DMA控制器应具有一下功能:

  1.编程设定DMA的传输模式及其所访问内存的地址区域。

  2.屏蔽或接受外设或软件的DMA请求。当有多个设备同时请求时,还要进行优先级排队,首先响应最高级的请求。

  3.向CPU或总线仲裁设备提出总线请求。

  4.接收总线响应信号,接管总线控制。

  5.在DMA控制器的管理下实现外设和存储器、外设和外设或存储器之间的数据直接传输。

  空则自动停止写数据。当读数据部分完成了此次DMA传输要求的长度后,状态机进入下一个子状态,等待写数据部分将数据全部写完。

        当完成全部操作后,DMA控制器会向发起DMA传输请求的设备发出信号,告知DMA传输顺利完成,要求该设备撤销DMA传输请求,并归还总线控制权。至此DMA控制器回到空闲状态,等待下一次DMA传输请求。

  一般而言,DMA控制器在总线仲裁器中是优先级最低的设备。因此,当有其它更高优先级的总线主设备要求总线资源时,DMA控制器会被剥夺总线使用的权利,此时DMA控制器将进入等待状态,直到优先级更高的总线主设备释放总线控制权后再进入传输状态。当软件提出申请,完成内存之间的大量DMA传输时,一般会使用LLI功能。LLI功能针对的虚拟内存空间

  与物理内存空间映射的不一致性,为了提高传输性能而引入的一种传输机制。作为LLI传输,ARM需要编程给DMA控制器,告知LLI列表的地址,并启动DMA传输。

        当DMA控制器发现是LLI传输时,它会到LLI列表中读取第一次DMA传输的源地址、目的地址、传输长度以及下一个LLI列表的地址并存入寄存器。当此次DMA传输结束后,DMA控制器会自动到下一个LLI列表中读取下一次DMA传输的信息。这个链表传输过程直到LLI寄存器中的内容为“0”时中止。

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

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

社群二维码

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

调查问卷

请问您是:

您希望看到什么内容: