DMA设计实验题.doc_第1页
DMA设计实验题.doc_第2页
DMA设计实验题.doc_第3页
DMA设计实验题.doc_第4页
DMA设计实验题.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简单DMA设计实验题什么是DMA?DMA(DirectMemoryAccess),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。DMA技术的重要性在于,利用它进行数据传送时不需要CPU的参与,因而大大提高了数据传输速度。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成。这样大大提高了计算机运行速度和工作效率。要从适配卡到内存传送数据,DMA同时触发从适配卡读数据总线(即I/O读操作)和向内存写数据的总线。激活I/O读操作就是让适配卡把一个数据单位(通常是一个字节或一个字)放到PC数据总线上,因为此时内存写总线也被激活,数据就被同时从PC总线上拷贝到内存中。对于每一次写操作,DMA控制器都控制地址总线,通知应将数据写到哪段内存中去。DMA控制数据从内存传送到适配卡的方法与上面类似。对每一个要传送的单位数据,DMA控制器激活读内存和I/O写操作的总线。内存地址被放到地址总线上,像从适配卡到内存传送数据一样,以数据总线为通道,数据从源地址直接传送到目的地址。DMA从DMA请求线(DREQ)上接收DMA请求,正像中断控制器从中断请求线(IRQ)上接收中断请求一样。一个典型的从适配卡到内存的数据传送是这样进行的,首先,对DMA控制器编程,写入数据要到达的内存地址和要传送的字节数。适配器可以开始传送数据时,它将激活DREQ线,与DMA控制器连通。DMA控制器在与CPU取得总线控制权后,输出内存地址,发送控制信号,使得一个字节或一个字从适配器读出并写入相应内存中,然后更新内存地址,指向下一个字节(或字)要写入的地址,重复上面的操作,直至数据传送完毕。对控制器进行不同编程,就可以实现单字节传送(即每传送一个字节都要求一个DREQ信号)或块数据传送(即全部数据传送只需要一个DREQ信号)。1、DMA功能描述本实验要求设计实现一个简单的DMA控制器,具体功能如下:1 该DMA控制器有两套数据接口。一套用来配置DMA的各个寄存器,另一套用来传输数据。传输数据接口可并行对外发出读命令和写命令,更多信息见DMA使用说明的2.1.2节。2 DMA具有4个DMA通道(注1),各通道的触发相互独立,互不影响。但不同通道捕获的触发事件提交给传输控制器时具有固定优先级。更多信息详见DMA使用说明的2.1.1节。3 该DMA通过参数RAM来配置DMA传输方式,参数RAM的组织形式详见“参数RAM”。支持字节同步传输类型(A同步)和帧同步传输类型(AB同步)(注2);支持源、目的地址索引传输(地址自增、自减和不变),源地址索引和目的地址索引相互独立。详见DMA使用说明的2.2节和2.3节。4 该DMA的参数RAM组支持LINK更新模式(即通过更新地址直接把一组参数更新到另一组参数),以便构造Ping-Pong传输、循环传输等其他复杂传输类型(注3)。详见DMA使用说明的2.3.6节。5 一次DMA传输完成,可对DSP核发出传输完成中断。传输完成中断配置信息详见DMA使用说明的2.3.2节。6 该DMA可设计成具有一定的容错机制(注4)。更多信息详见DMA使用说明的2.1节和2.3.3节。注意:以上红色显示的字和标注为“注1”、“注2”、“注3”和“注4”的地方,是DMA可做扩展的几个方向,大作业中做了扩展部分会有加分。关于4出标注的更多详细信息见附录中的各个部分。该DMA 输入输出框图如下图和下表所示。图1DMA控制器输入输出框图表1DMA控制器输入输出信号描述信号名输入输出位宽功能描述CLKinput1时钟信号Resetinput1复位信号Ctrl_W_DMALC_Write/Readinput1配置读/写选择信号,高电平为写,低电平为读Ctrl_W_DMALC_Validinput1配置读写有效信号,高有效Ctrl_W_DMALC_RReadyInput1配置读有效反馈信号Ctrl_B_DMALC_Addrinput15配置寄存器地址信号Ctrl_B_DMALC_WrtDatainput32配置写数据Memory_W_BC_RdReadyinput1存储器读准备好信号Memory_W_BC_RdValidinput1读数据返回有效信号(源端反馈的有效信号)Memory_W_BC_WrtReadyinput1写准备好信号(目的端反馈的准备好信号)Memory_B_BC_RdDatainput32读返回数据(读源端返回的数据)DMALC_W_Ctrl_RValidoutput1配置读返回有效信号DMALC_W_Ctrl_AReadyoutput1可接受配置的有效信号DMALC_W_ERREvtoutput1事件丢失错误中断DMALC_W_ErrorSetoutput1参数配置错误中断DMALC_W_TranCompIntoutput1传输完成中断DMALC_B_Ctrl_RDataoutput32读配置信息返回数据DMALC_B_TCCoutput6传输完成码DMALC_B_MissEvtoutput4事件丢失错误码DMATC_W_BC_Readoutput1源端读有效信号DMATC_W_BC_Writeoutput1目的端写有效信号DMATC_B_BC_RdAddroutput32源端读地址信号DMATC_B_BC_WrtAddroutput32目的端写地址信号DMATC_B_BC_WrtDataoutput32目的写数据Eventinput4触发事件输入注:如果没有设计容错机制,输出端口DMALC_B_MissEvt、DMALC_W_ERREvt和DMALC_W_ErrorSet就用不上了。2、参数RAM:参数RAM是一个32x 128的RAM结构存储体。表2 DMA参数RAM目录PaRAM组编号偏移地址参数04000h到401FhPaRAM 014020h到403FhPaRAM 124040h到405FhPaRAM 2314EE0h到4EFFhPaRAM 31注:默认参数RAM的首地址从4000h开始。如果没有LINK功能,则有多少个通道就需要多组参数RAM组,如果有LINK功能,参数RAM组数应多于通道数,在这里要求有32组参数RAM组。每组参数RAM都是由8个32位的字或32字节组成,如图2和表3所示。OPTSRCBCNTACNTDSTDSTBIDXSRCBIDXBCNTRLDLINKDSTCIDXSRCCIDXRsvdCCNT图2 DMA PaRAM结构表3 DMA通道参数RAM 描述地址偏移(字节)缩写词参数描述0hOPT通道选项传输配置项4hSRC源地址数据来源的首字节地址8hACNT一维计数值无符号数,计阵列连续字节数。有效值从1到65535BCNT二维计数值无符号数,计阵列连续字节数。有效值从1到65535ChDST目的地址传输数据的目的地址10hSRCBIDX源BCNT索引值有符号数,同一帧中源阵列间的偏移量。有效值从-32768到32767DSTBIDX目的BCNT索引值有符号数,同一帧中源阵列间的偏移量。有效值从-32768到3276714hLINK连接地址参数连接地址,值为FFFFh时为无效连接BCNTRLDBCNT重载值当BCNT为0时重载BCNT,只用在A同步模式中18hSRCCIDX源CCNT索引值有符号数,同一帧中源阵列间的偏移量。有效值从-32768到32767。注意A同步和AB同步时的不同DSTCIDX目的CCNT索引值有符号数,同一帧中源阵列间的偏移量。有效值从-32768到32767。注意A同步和AB同步时的不同1ChCCNT三维计数值无符号数,计块中帧数。有效值从1到65535RSVD保留位保留关于参数组的更多信息,详见DMA使用说明的2.3节。3、附录3.1、注1:实际使用的DSP中,一般都有十几个DMA通道。TMS320C6678系列DSP芯片的单个DMA控制器就有64个DMA通道。在此,我们可以把4个DMA通道扩展成8个或者16个DMA通道(在本次实验中,最多扩展到16个DMA通道,如果同学想做更多的尝试,可以在课后做更多的扩展。但应注意,把通道做更多扩展的同时,也要增加参数RAM组数)。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论