一种CPLD的DMA控制器IP核设计_第1页
一种CPLD的DMA控制器IP核设计_第2页
一种CPLD的DMA控制器IP核设计_第3页
一种CPLD的DMA控制器IP核设计_第4页
一种CPLD的DMA控制器IP核设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、【Word版本下载可任意编辑】 一种CPLD的DMA控制器IP核设计 1、前言 单片机以其高可靠性,高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用。在单片机家族的众多成员中,MSC一51系列单片机占领了广阔的市场,成为国内单片机应用领域的主流。 但是由于8013硬件构造和指令系统的限制,当需要高速率大批量数据传送时,数据吞吐速率往往不能满足设计要求。即使采用提升振荡器频率的方法,结果仍不尽如人意,所以寻找一种新的数据传输方法显得很有必要,这不仅使人想到通用计算机的DMA数据传输技术。 2、DMA简介 DMA数据传送是由DMA控制器完成的。开展

2、数据传输时,DMA控制器从CPU完全接收对总线的控制,数据交换不经过CPU,而直接在内存和FO设备之间开展。DMA控制器将向内存发出地址和控制信号,修改地址,对传送字的个数计数,并且以中断方式向CPU传送操作的结束。 DMA方式的主要优点是速度快。由于CPU不参与数据传送操作,因此就省去了CPU取指令、取数、送数等操作。在数据传送过程中,没有保存现场、恢复现场之类的工作。内存地址修改、传送字个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。所以DMA方式能满足高速FO设备的要求,也有利于CPU效率的发挥。 3、标准8031数据传输与DMA数据传输比照 MCS一15单片机读写外部数据存

3、储器的时序如图1所示。 在图(1)a的外部数据存储器读周期中,P2口输出外部RAM单元的高八位地址,P0口分时传送低八位地址及数据。当地址锁存信号ALE为高电平时,印口输出的地址信息有效,A比的下降沿将此地址打人外部地址锁存器,接着即口变为输人方式,读信号RD有效,选通外部RAM,相应存储单元的内容送到印口上,由CPU读人累加器。 外部数据存储器的写周期波形如图(1)b所示,其操作过程与读周期类似。写操作时,在A比下降为低电平以后,WR信号才有效,PO口上出现的数据写人相应的RAM单元。 CPU把数据从存储器传输到FO口,需要以下步骤: MovxA,DPrR;从存储器读取一字节数据(24个振荡

4、周期) MOVXDPrR,A;将数据写人到FO口(24个振荡周期) DMA控制器把数据从存储器传输到FO设备称为读传送,在这个周期里,产生存储器地址,并输出存储器读(MEMR)和10口写(row)信号。其时序如图2所示。 当数据准备好以后,设备向DMA控制器发出DMA请求DREQ信号,DMA控制器接到请求后向CPU发出总线请求信号HRQ,CPU在现行的机器周期结束后,发出总线保持信号HLDA,于是DMA控制器就接收总线,向地址总线发出地址信号,给出存储器读和ro口写的命令,就可把存储器中的数据送到FO口上。然后修改地址指针,增或减数据宽度计数器,检查传送是否结束,若未结束则循环至整个数据传送完

5、。 整个数据传送完后,DMA控制器撤销总线请求信号HRQ,同时输出传送结束信号EOP。CPU接收到EOP信号后,在下一个周期就可以重新控制总线。 从以上比照分析可以看出,从存储器往FO口传送一字节数据,使用标准8031至少需要48个振荡周期,而用DMA控制器仅需2个振荡周期,效率大大高于前者,尤其是在做块传送时,效果更为显着。 4、用CPLD实现DMA传输在显示屏扫描卡上的应用 显示屏扫描卡的功能是将存储在RAM中的图像数据按照预定的显示方式开展处理,再发送到比D显示屏上。其中绝大部分时间,CPU的工作是将处理好的数据以很高的速率发送到LED显示屏上,来保证良好的视觉效果。 考虑到系统的简化、

6、灵活、高集成度,这里选择用CPLD实现CPU停机方式DMA读传输功能来完成数据从存储器到LED显示屏的传送工作。 整个数据传输工作分以下几个步骤:CPu准备数据;CPU配置DMA控制器。例如数据传送首地址,传送字节数;CPU向DMA控制器提出DMA请求(DREQ)。由于数据准备工作是由CPU完成的,所以传送请求也由CPU提出;DMA接到请求后,向CPU提出总线请求(HRQ);CPU释放总线,同时向DMA发出总线保持信号(HLDA);DMA接收总线,开展数据传输。 由于本系统中准备数据是由CPU完成的,也就是说CPU完全清楚何时需要释放总线开展DMA传送,所以可将步骤3、4省略,即DREQ和HR

7、Q信号省略。其原理图如图3所示。 图3中,CTRL为中心控制核,它按照设定的传输字节数产生地址计数脉冲CLK,读信号MR(该信号经742科驱动后成为存储器读和FO口写信号),传输结束信号EOP。CTRL内部定义了一个8位锁存器和一个9位减法计数器。WIDTH为置数控制端,当饥DTH为低电平时,数据总线上的传送字节数送入CTRL中,WID仪为高电平时数据锁存。EN为计数使能,为高时传送字节数送人9位减法计数器的高8位中,减法计数器的位置0,同时CTRL将EOP脚(传送结束信号)置高,EN变低后,减法计数器在时钟XT下降沿作用下做减1计数,计数值减到0时CTRL停止减计数并将EOP信号置低,通知C

8、PU传送结束。其控制时序如图4所示。 cTRL的vHDL程序 BEGIN cKL=cnt(0);一地址计数脉冲输出 MEMR=NOTcnt(0);一RAM读信号输出 PROCESS(WIDTH) BEGIN FIiwDTH=0THEN一置人传送字节数 图3中,COUNT16是16位加法计数器。DPH、DPL是地址高8位和低8位置数控制端,低电平有效。EN为计数使能,为低时,在由CTRL产生的脉冲作用下做加1计数。 平时CPU具有地址总线的控制权,DMA控制器的地址线A15一AO、存储器读MEMR、FO口写IOW输出均为高阻。当需要做DMA数据传送时,首先CPu将传送的数据宽度、被传送数据在存储

9、器的首地址写人DMA控制器,然后将HDLA置高,让出地址总线控制权。DMA控制器检测到HLDA变高后,cTRL按照预定的传送数据宽度,输出地址计数脉冲和数据存储器读信号MEMR,couN1T6在地址计数脉冲作用下,在首地址根底上做加1计数,输出16位地址。当数据传送完毕,EOP输出低电平,通知CPU数据传送结束。CPU通过查询或中断方式检测到EOP的低电平信号后,将HLDA拉低,DMA控制器接到HDLA变低的信号后将EOP信号置高,释放地址总线控制权,结束整个DMA传送过程。图5是DMA控制器的仿真波形图。 8031操作DMA控制器的5C1程序 void DMA(unsigned int address,unsignedcha len) WIDTH ADDL =len;/*设置传送数据宽度*/ =(unsi卯edchar)address%256;/*设置传送数据首地址*/ ADDH=(unsignedchar)a

温馨提示

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

评论

0/150

提交评论