80C186XL嵌入式系统中DRAM控制器的CPLD解决方案.docx
-
资源ID:17793520
资源大小:19.74KB
全文页数:8页
- 资源格式: DOCX
下载积分:15.18金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
80C186XL嵌入式系统中DRAM控制器的CPLD解决方案.docx
80C186XL嵌入式系统中DRAM控制器的CPLD解决方案80C186XL嵌入式系统中DRAM控制器的CPLD解决方案caojing导语:利用CPLD技术和80C196XL的时序特征设计一个低价格、功能完好的DRAM控制器的方法,并采用VHDL语言编程实现。摘要:介绍如何在嵌入式CPU80C186XLDRAM刷新控制单元的根底上,利用CPLD技术和80C196XL的时序特征设计一个低价格、功能完好的DRAM控制器的方法,并采用VHDL语言编程实现。关键词:刷新控制单元RCUDRAM控制器状态机CPLDVHDL语言80C186XL16位嵌入式微处理器是Intel公司在嵌入式微处理器市场的上导产品之一,已广泛应用于电脑终端、程控交换和工控等领域。在该嵌入式微处理器片内,集成有DRAMRCU单元,即DRAM刷新控制单元。RCU单元可以自动产生DRAM刷新总线周期,它工作于微处理器的增益形式下。经适当编程后,RCU将向将处理器的BIU总线接口单元产生存储器读恳求。对微处理器的存储器范围编程后,BIU单元执行刷新周期时,被编程的存储器范围片选有效。存储器是嵌入式计算机系统的重要组成局部之一。通常采用静态存储器,但是在系统需要大容量存储器的情况下,这种方式将使本钱猛增。假如采用DRAM存储器,那么可以大幅度降低系统设计本钱;但DRAM有复杂的时序要求,给系统设计带来了很大的困难。为了方便地使用DRAM,降低系统本钱,本文提出一种新奇的解决方案:利用80C186XL的时序特征,采用CPLD技术,并使用VHDL语言设计实现DRAM控制器。一、80C186XLRCU单元的资源80C186XL的BIU单元提供20位地址总线,RCU单元也为刷新周期提供20位地址总线。80C186XL可以产生刷新功能,并将刷新状态编码到控制信号中。图1是RCU单元的方框图。它由1个9位递减定时计数器、1个9位地址计数器、3个控制存放器和接口逻辑组成。当RCU使能时,递减定时计数器每一个CLKOUT周期减少1次,定时计数器的值减为1时,那么产生刷新总线恳求,递减定时计数器重载,操纵继续。刷新总线周期具有高优先级,旦80C186XL总线有空,就执行刷新操纵。设计者可将刷新总线周期看成是“伪读周期。刷新周期像普通读周期一样出如今80C186XL总线上,只是没有数据传输。从引脚BHE/RFSH和A0的状态可以判别刷新周期,如表1所列。刷新总线周期的时序要求如图2所示。表1刷新周期的引脚状态二、80C186XLDRAM控制器的设计与运行DRAM存在着大量、复杂的时序要求,其中访问时间的选择、等待状态以及刷新方法是至关重要的。DRAM控制器必须正确响应80C186XL的所有总线周期,必须能将DRAM的部周期和其它访问周期分辨出来,其访问速度必须足够快,以防止不必要的等待周期。在设计时,我们采用XC95C36-15CPLD2以及4Mbits的V53C82583DRAM作范例。15ns的CPLD,速度相对较高,价格比拟廉价。用它设计成的DRAM控制器允许80C186XL的工作速度高达20MHz,并且XC95C36有异步时钟选择项。这种特性对本设计有很大的好处。图3是80C186XLDRAM控制器和存储器的功能框图。DRAM控制器由80C186XL状态信号S2、S1和S0的解码来检测总线的开场、类型和完毕。这些状态线是在CLKOUT的上升沿开场有效,在CLKOUT的下降沿失效的。DRAM控制器发出的RAS和CAS信号应该在CLKOUT的下降沿同时有效,行列地址应该在CLKOUT上升沿附近提供。DRAM控制器应该在CLKOUT的两个沿都应能正常操纵。通过启用XC95C36的异步时钟选择项,每个XC95C36宏单元可以从可编程与阵列获得时钟。DRAM控制器使用80C186XL的CLKOUT信号作时钟输入。DRAM控制器主要由两个互相联的状态机构成。这两个状态机,使得DRAM的控制与80C186XL是否进展等待状态无关。状态机A和地址多路控制信号MUX在CLKOUT的上升沿锁存。状态机B和RAS及CAS的逻辑在CLKOUT的下降沿锁存。DRAM控制器完好的VHDL语言的源代码可Email给cnhsxsina索取。DRAM控制器的状态图如图4所示,状态机A和B的起始条件分别是A0和B0。状态机A初始化DRAM控制器的序列,状态机B终止该序列。在T2的下降沿,RAS逻辑采样状态机A的状态,锁存的地址线和总经状态信号。假如状态机A在A1状态存储器读、写或者刷新周期并且总线周期为DRAM使用,那么XC95C36插入RAS信号。在T2的上升沿,状态机A也采样锁存的地址线。假如总线周期被DRAM占用,状态机A将从状态A1转移到A2,否那么状态机A转换到A3。至此控制转移到状态机B。MUX逻辑采样RAS和BHE引脚的状态。假如RAS有效指示DRAM在访问,并且总线周期下是刷新周期,XC95C36将插入MUX。MUX在行列地址之间切换,以便进展DRAM的读写操纵。在T3的下降沿,状态机B采样状态机A。假如状态机A处于状态A2DRAM访问或者状态A3存储器读或者写,但不是DRAM访问,状态机B从状态B0转到B1。假如总线周期是一个DRAM访问周期,XC95C36继续保持RAS有效。CAS逻辑采样MUX的状态、锁存地址A0、BHE和总线周期状态。假如MUX有效指示DRAM读或者写,并且访问低字节,那么XC95C36插入LCAS;假如MUX有效,并且微处理器访问高字节,XC95C36插入UCAS。DRAM读访问和DRAM刷新访问不同之处在于:对刷新来讲,不需要MUX、UCAS和LCAS。在T3的上升沿,状态机A等待状态机B中断此序列。假如MUX有效DRAM读或者写,它将保持有效。有下一个降沿,状态机B采样总线状态信号。假如状态信号仍然有效,那么此状态为等待状态Tw,状态机B保持在状态B1。假如这个状态是等待状态,并且RAS有效DRAM访问,RAS保持有效;假如状态为等待状态,并且UCAS和LCAS有效DRAM读或者写,UCAS和LCAS保持有效。在等待状态的上升沿,状态机A继续等待状态机B来中断此序列。假如MUX有效DRAM读或者写,那么它在T3状态里保持有效。假如微处理器状态信号无效,这个状态那么是一个T4状态,状态机B从B1转到B2.假如状态是一个T4状态,并且RAS有效DRAM访问,那么RAST4状态,并且RAS有效DRAM访问,那么RAS逻辑也检测无效状态信号,并且XC95C36关闭RAS信号;假如状态是一个T4状态,并且UCAS和LCAS有效DRAM读或者写,那么CAS逻辑也采样总线状态信号;假如状态信号无效,那么XC95C36关闭UCAS和LCAS信号。在T4的上升沿,状态机A采样状态机B的状态。在状态机B处于B2状态的情况下,状态机A从A2状态DRAM访问或者A3状态存储器读或者写,但不是DRAM访问转到A0。假如MUX有效,MUX逻辑检查RAS的状态;假如RAS无效指示一个终止周期,XC95C36关闭MUX。在下一个CLKOUT下降沿,状态机B无条件地从状态B2转到B0,终止DRAM序列。控制转移给状态机A。三、80C186XLRCU单元的编程要使DRAM正常工作,就必须对80C186XL中与DRAM刷新有关的存放器进展正确编程。这些存放器包括:刷新时钟间隔存放器RFTIME存放器、刷新基地址存放器RFBASE存放器和刷新控制存放器RFCON存放器。刷新时钟间隔存放器RFTIME存放器的编程公式为:Trefresh×fcpu/Rrow+Rrows×补偿因子。V53C8258的技术参数规定,其刷新周期Trefresh为8ms,存储阵列行数Rrows为512。考虑到RCU获得总线控制权的延时,补偿因子取0.05。因此,微处理器在fcpu=20MHz工作频率下,RFTIME存放器的取值为:0.008×20×106/512+512×0.05,约为297.刷新基地址存放器RFBASE存放器的编程。该存放器的高7位,规定了DRAM容量大小。系统使用两片V53C8258情况下,RFBASE的取值为00H,DRAM占用微处理器的存储空间的00000H7FFFFH512KB。最后通过将刷新控制存放器RFCON存放器的REN位置位,来启动刷新控制单元。假设使用80C186XL的节电形式,那么要求重新编程这些值。在写节电控制存放器前,必须先用要时钟分频值去除原先设置在刷新间隔存放器的值,来重新设置存放器。四、完毕语如今DRAM、CPLD的价格非常低,这样设计者有时机在嵌入式计算机系统设计中考虑采用DRAM。80C186XL嵌入式微处理器广泛应用于嵌入式计算机、程控通讯和工业控制系统中,具有良好的性价比,其性能和功能是80C31、80C196等单片机无法比较的,并能充分利用大量的PC平台软件。本解决方案已在家庭电子证券产品中采用,获得了良好的经济效益和社会效益。把握CPLD技术和VHDL语言设计技巧是提升产品技术含量的重要途径。上述CPLD还留在一些引脚和内部资源未使用,只要设计者将VHDL源代码略微作一些修改,就可以用这些引脚控制新增加的DRAM,提供总线预备输出信号或者DMA响应信号。假如采用引脚数和宏单元较多的XC9672或者XC95108CPLD,就可以将D触发器74HC74、多路地址切换器74HC157、数据收发器74HC245和地址总线锁存器74HC373等其它分立逻辑器件的功能全部集成到CPLD中,这样系统集成度和可靠性将更加进步。0