一种基于双AHB Master接口的片上DMA控制器实现方法技术

技术编号:4070053 阅读:353 留言:0更新日期:2012-04-11 18:40
一种基于双AHB?Master接口的片上DMA控制器实现方法,包括以下步骤:1,对DMA配置寄存器单元进行初始化配置;2,仲裁单元根据DMA请求信号仲裁出当前需要响应的通道号给AHB_master0接口单元,或等待执行;3,AHB_master0接口单元完成数据传递,并发送信息给AHB_master1接口单元;4,AHB_master1接口单元完成数据传递,并发送信息给AHB_master0接口单元;5,若完成当前响应的本次DMA请求全部的数据传输跳到步骤7;否则跳到步骤6;6,不作任何信号调整,直接跳转到步骤2;7,重新配置配置寄存器单元,跳到步骤2。本发明专利技术采用双AHB_Master接口减少了数据传输的延时,只需要较小的内部FIFO;能同时适用于多层AHB总线系统,易于重用到以其它高性能ARM微处理器为基础的SoC设计中。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统芯片中先进高性能总线的数据传输,具体的说是一种基于 双AHB (Advanced High-performance Bus,先进高性能总线)Master (主设备)接口的片上 DMA (Direct Memory Access,直接内存存取)控制器实现方法。
技术介绍
集成电路制作工艺进入深亚微米之后,ICdntegrated Circuit,集成电路)设计 能力滞后于工艺水平日甚,势必要提出新的设计思想和设计方法,SoC(System on Chip, 片上系统)是基于嵌入式系统的一种新的设计思想和设计方法,是将微处理器、模拟IP核 (Intellectual Property core,知识产权核)、数字IP核和存储器(或片外存储控制接口) 集成在单一芯片上,不仅提高了产品的集成度,而且大大降低了制造成本,使得最终产品的 价格为普通消费者能够承担。其中 AMBA(Advanced Micocontroller Bus Architecture, 先进微控制器总线体系结构)总线是ARM公司(Advanced RISCMachines,先进RISC机器 公司)提出的总线结构,由于其开放的总线规范,这种总线得到了广泛的应用。AMBA总线 的目的是推出芯片内部总线的规范。AMBA总线有三个版本:AMBA1. 0,AMBA2. O和AMBA3. O。 目前AMBA2. O规范作为SoC的一种较为成熟的总线标准,其定义了 3种不同的系统总线 1)AHB (先进高性能总线);2) ASB (Advanced System Bus,先进系统总线);3) APB (Advanced Peripheral Bus,先进外围设备总线)。AHB总线是新一代AMBA总线,作为高性能系统骨干总线,用于连接高性能、高时 钟速率的系统模块,如完成处理器、片上存储器、存储器控制器、中断控制器等模块间的通fn °ASB总线是第一代AMBA系统总线,用于高性能系统模块间通信。目前已被AHB所 取代。APB总线主要用于低速且低功率的外围,可针对外围作功率消耗及复杂接口的最 佳化。在具有AHB总线的片上系统中,DMA控制器作为与ARM微处理器并列的主器件出现。 对于AHB总线而言,片上DMA控制器既是AHB总线的从设备,又与ARM微处理器一样是AHB 总线的主设备。增加一个用于完成存储器直接存取的DMA控制器,以减少ARM微处理器传 输数据的压力。DMA控制器技术本身就是一种代替微处理器完成存储器与外部设备之间大量数 据传送的方法,也称直接存储器存取方法。目前广泛应用的DMA控制器,当有输入设备需 要进行DMA数据传输时,其通过DMA请求触发器向DMA控制器发出DMA请求。在此之前 CPU (Central Processing Unit,中央处理单元)已经将地址等控制信息配给DMA控制器内 的地址寄存器中。当DMA控制器接到DMA请求时,其向CPU发起总线占用请求。CPU通常在 执行完当前的指令后将总线控制权交给DMA控制器,此时DMA控制器的控制和状态寄存器 发生变化,表明已经获得总线控制权,并发起一次DMA数据传输。在数据传输过程中,计数 器对传输的数据量进行计数,直到计数器值等于传输长度时停止计数,并改变控制和状态寄存器的内容。DMA控制器向CPU归还总线控制权。这样就能使CPU节省对外设的查询时 间。这种DMA控制器大部分仅适用于单层总线,需要的缓存FIF0(First In First Out,先入先出队列)数据缓存器过大,DMA控制器的每个通道未能实现灵活的流控管理,并 且未能与以AMBA2. 0总线规范为标准的SoC这种新的嵌入式设计方法结合起来。导致这些 DMA控制器产品效率难以提高,无法适应多层的AHB总线结构,无法满足日益增长的对性能 的需求,并且难以集成到自主设计的SoC系统中,重用性不高。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种基于双AHB Master接口 的片上DMA控制器实现方法,即在具有AHB总线的片上系统中,设计具有双master接口的 片上DMA控制器,解决目前的DMA控制器,大部分仅适用于单层总线,内部缓存过大,无法有 效的提高总线的利用率,每个DMA通道也未能实现灵活的流控管理的问题。为达到以上目的,本专利技术采取的技术方案是,其特征在于包括以下步 骤步骤1,在DMA控制器开始工作前,由ARM微处理器通过APB总线对DMA控制器中 的DMA配置寄存器单元进行初始化配置,所述初始化配置包括对32个DMA通道的通道配 置寄存器,源地址寄存器,目的地址寄存器,传输数据长度寄存器进行初始化配置,即确定 每个DMA通道的使能,工作模式,有效数据宽度,数据源的起始地址,数据目的的起始地址, 以及传输数据长度;所述工作模式包括主动模式,被动模式,软件模式;所述有效数据宽度 包括 byte,half word, word ;步骤2,开始数据传输过程,DMA控制器等待出现的DMA请求信号,所述DMA请求信 号为在主动模式,被动模式,软件模式下均有效的dma_req,或仅在被动模式下有效的dma_ last_req,在dma_req对应的通道的使能有效的情况下,根据有效的请求信号DMA控制器的 仲裁单元仲裁出当前需要响应的通道号,并同时产生pahb_req信号和Current_laSt_req, 给AHBjiiasterO接口单元,如果没有请求则继续在此步骤中等待执行;步骤3,当AHBjnasterO接口单元在pahb_req信号为高的情况下,得到仲裁单元仲 裁出的通道号后,根据这个通道号对应通道的配置信息,所述对应通道的配置信息包括对 应通道的工作模式,有效数据宽度,数据源的起始地址,数据目的的起始地址,以及传输数 据长度,将其转变为一次INCR4类型或4个连续SINGLE类型的AHBjnasterO的ARB总线 信号,根据p_ram_select的指示将从源地址读回的数据存储在DMA数据缓存寄存器组中, 并对这个通道读回的数据量进行计数,每次INCR4类型或者4个连续SINGLE类型的传输完 成时产生pahb_aCk完成信号,给仲裁单元,同时将产生的qahbjeq信号、该通道的配置信 息以及数据存储的位置q_ram_SeleCt传递给AHBjnasterl接口单元;步骤4,AHBjnasterl接口单元在qahb_req信号为高的情况下,获得AHBjnasterO 接口单元传递的信息后,将其转变为一次INCR4类型或4个连续SINGLE类型的AHB_ masterl的AHB总线信号,根据q_ram_SeleCt的指示从DMA数据缓存寄存器组里面读出相 应的数据,并通过AHBjnasterl接口单元的AHB总线写到目的地址上去;每次INCR4类型或6者4个连续SINGLE类型的传输完成时产生qahb_ack完成信号,给AHBjnasterO接口单元,步骤5,当DMA控制器完成当前响应通道本次DMA请求全部的数据传输,AHB_ masterO接口单元同时将该通道对应的DMA中断信号dma_int和DMA请求清零信号dma_clr 信号拉高,并用dma_Clr信号清本文档来自技高网
...

【技术保护点】
一种基于双AHBMaster接口的片上DMA控制器实现方法,其特征在于包括以下步骤:步骤1,在DMA控制器开始工作前,由ARM微处理器通过APB总线对DMA控制器中的DMA配置寄存器单元进行初始化配置,所述初始化配置包括:对32个DMA通道的通道配置寄存器,源地址寄存器,目的地址寄存器,传输数据长度寄存器进行初始化配置,即确定每个DMA通道的使能,工作模式,有效数据宽度,数据源的起始地址,数据目的的起始地址,以及传输数据长度;所述工作模式包括主动模式,被动模式,软件模式;所述M发出的dma_req,使其不参加下一次的仲裁;DMA配置寄存器单元在检测到中断信号dma_int时,将对应的通道的通道完成状态寄存器置高,对应通道的使能信号关闭,此时表示该通道的请求响应完成,跳到步骤7;若DMA控制器未完成当前响应通道本次DMA请求全部的数据传输,则跳到步骤6;步骤6,当DMA控制器未完成当前响应通道本次DMA请求全部的数据传输,则不作任何信号调整,直接跳转到步骤2;此时该通道对应的DMA请求信号dma_req或dma_last_req依然有效,与其它未被DMA控制器响应的有效通道请求一起参与仲裁单元的下一次仲裁;步骤7,ARM微处理器通过APB总线对DMA控制器中,已完成本次DMA请求全部数据传输的当前响应通道的配置寄存器单元(源地址寄存器,目的地址寄存器,传输数据长度寄存器)进行重新配置,并重新打开当前响应通道的使能信号后跳到步骤2。有效数据宽度包括byte,halfword,word;步骤2,开始数据传输过程,DMA控制器等待出现的DMA请求信号,所述DMA请求信号为在主动模式,被动模式,软件模式下均有效的dma_req,或仅在被动模式下有效的dma_last_req,在dma_req对应的通道的使能有效的情况下,根据有效的请求信号DMA控制器的仲裁单元仲裁出当前需要响应的通道号,并同时产生pahb_req信号和current_last_req,给AHB_master0接口单元,如果没有请求则继续在此步骤中等待执行;步骤3,当AHB_master0接口单元在pahb_req信号为高的情况下,得到仲裁单元仲裁出的通道号后,根据这个通道号对应通道的配置信息,所述对应通道的配置信息包括:对应通道的工作模式,有效数据宽度,数据源的起始地址,数据目的的起始地址,以及传输数据长度,将其转变为一次INCR4类型或4个连续SINGLE类型的AHB_master0的AHB总线信号,根据p_ram_select的指示将从源地址读回的数据存储在DMA数据缓存寄存器组中,并对这个通道读回的数据量进行计数,每次INCR4类型或者4个连续SINGLE类型的传输完成时产生pahb_ack完成信号,给仲裁单元,同时将产生的qahb_req信号、该通道的配置信息以及数据存储的位置q_ram_select传递给AHB_master1接口单元;步骤4,AHB_master1接口单元在qahb_req信号为高的情况下,获得AHB_master0接口单元传递的信息后,将其转变为一次INCR4类型或4个连续SINGLE类型的AHB_master1的AHB总线信号,根据q_ram_select的指示从DMA数据缓存寄存器组里面读出相应的数据,并通过AHB_master1接口单元的AHB总线写到目的地址上去;每次INCR4类型或者4个连续SINGLE类型的传输完成时产生qahb_ack完成信号,给AHB_master0接口单元,步骤5,当DMA控制器完成当前响应通道本次DMA请求全部的数据传输,AHB_master0接口单元同时将该通道对应的DMA中断信号dma_int和DMA请求清零信号dma_clr信号拉高,并用dma_clr信号清零对应通道的外设或内存RA...

【技术特征摘要】

【专利技术属性】
技术研发人员:温玉屏刘婷张继勇张曦璐谢振新
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:83

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1