嵌入式系统中DRAM控制器的CPLD解决方案

发布者:幸福时刻最新更新时间:2010-01-25 来源: 单片机与嵌入式系统应用关键字:刷新控制单元(RCU)  DRAM控制器  状态机  CPLD  VHDL语言 手机看文章 扫描二维码
随时随地手机看文章
      80C186XL16位嵌入式微处理器是Intel公司在嵌入式微处理器市场的上导产品之一,已广泛应用于电脑终端、程控交换和工控等领域。在该嵌入式微处理器片内,集成有DRAM RCU单元,即DRAM刷新控制单元。RCU单元可以自动产生DRAM刷新总线周期,它工作于微处理器的增益模式下。经适当编程后,RCU将向将处理器的BIU(总线接口)单元产生存储器读请求。对微处理器的存储器范围编程后,BIU单元执行刷新周期时,被编程的存储器范围片选有效。

  存储器是嵌入式计算机系统的重要组成部分之一。通常采用静态存储器,但是在系统需要大容量存储器的情况下,这种方式将使成本猛增。如果采用DRAM存储器,则可以大幅度降低系统设计成本;但DRAM有复杂的时序要求,给系统设计带来了很大的困难。

  为了方便地使用DRAM,降低系统成本,本文提出一种新颖的解决方案:利用80C186XL的时序特征,采用CPLD技术,并使用VHDL语言设计实现DRAM控制器。

  一、80C186XL RCU单元的资源

  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 刷新周期的引脚状态

二、80C186XL DRAM控制器的设计与运行

  DRAM存在着大量、复杂的时序要求,其中访问时间的选择、等待状态以及刷新方法是至关重要的。DRAM控制器必须正确响应80C186XL的所有总线周期,必须能将DRAM的部周期和其它访问周期分辨出来,其访问速度必须足够快,以避免不必要的等待周期。

  在设计时,我们采用XC95C36-15 CPLD[2]以及4Mbits的V53C8258[3]DRAM作范例。15ns的CPLD,速度相对较高,价格比较便宜。用它设计成的DRAM控制器允许80C186XL的工作速度高达20MHz,并且XC95C36有异步时钟选择项。这种特性对本设计有很大的好处。

  图3是80C186XL DRAM控制器和存储器的功能框图。

  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给cnhsx@sina.com索取。

  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处于状态A2(DRAM访问)或状态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。

  三、80C186XL RCU单元的编程

  要使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×10 6/(512+512×0.05),约为297.

  刷新基地址寄存器(RFBASE寄存器)的编程。该寄存器的高7位,规定了DRAM容量大小。系统使用两片V53C8258情况下,RFBASE的取值为00H,DRAM占用微处理器的存储空间的00000H~7FFFFH(512KB)。

  最后通过将刷新控制寄存器(RFCON寄存器)的REN位置位,来启动刷新控制单元。

  若使用80C186XL的节电模式,则要求重新编程这些值。在写节电控制寄存器前,必须先用要时钟分频值去除原先设置在刷新间隔寄存器的值,来重新设置寄存器。

  四、结束语

  现在DRAM、CPLD的价格非常低,这样设计者有机会在嵌入式计算机系统设计中考虑采用DRAM。80C186XL嵌入式微处理器广泛应用于嵌入式计算机、程控通信和工业控制系统中,具有良好的性价比,其性能和功能是80C31、80C196等单片机无法比拟的,并能充分利用大量的PC平台软件。本解决方案已在家庭电子证券产品中采用,获得了良好的经济效益和社会效益。

  掌握CPLD技术和VHDL语言设计技巧是提升产品技术含量的重要途径。上述CPLD还留在一些引脚和内部资源未使用,只要设计者将VHDL源代码稍微作一些修改,就可以用这些引脚控制新增加的DRAM,提供总线准备输出信号或DMA响应信号。

  如果采用引脚数和宏单元较多的XC9672或XC95108CPLD,就可以将D触发器(74HC74)、多路地址切换器(74HC157)、数据收发器(74HC245)和地址总线锁存器(74HC373)等其它分立逻辑器件的功能全部集成到CPLD中,这样系统集成度和可靠性将更加提高。

关键字:刷新控制单元(RCU)  DRAM控制器  状态机  CPLD  VHDL语言 引用地址:嵌入式系统中DRAM控制器的CPLD解决方案

上一篇:电子纸显示控制器S1D13521的人机交互设计
下一篇:基于uC/GUI的数据显示系统的设计及实现方法研究

推荐阅读最新更新时间:2024-05-02 20:59

系统设计工程师不可不知的DRAM控制器核心结论(一)
DRAM控制器藏在您的系统核心芯片系统(SoC)中,可能有两个,甚至是四个。有一些精心制作的逻辑小模块,用于连接SoC内部和外部DRAM,它们并没有引起系统设计人员的注意。它们有可能造成很大的问题,浪费带宽,占用太多的能耗,甚至导致数据被破坏。   DRAM控制器能否正常工作会使得系统有很大的不同,有的系统能够满足其设计要求,而有的系统则运行缓慢,过热,甚至失败。不论哪种情况,最终是由系统设计团队承担责任,他们一般很少掌握控制器的信息。   成功还是失败都源自我们要求DRAM控制器所做的工作。模块不仅仅是一个接口。在高级系统设计中,DRAM控制器必须很好的处理SoC体系结构复杂而又难以预测的存储器申请,以及一侧的系统软件申请,
[模拟电子]
系统设计工程师不可不知的<font color='red'>DRAM</font><font color='red'>控制器</font>核心结论(一)
基于状态机的51单片机独立按键检测与消抖思路
状态机的按键检测思路2 先回顾一下定义: 状态机有如下性质 按键状态机发生状态迁移的条件 如何准确检测条件是否发生并进行状态迁移 确保状态机能稳定地进行迁移 按键消抖的原理:状态切换 按键操作触发的时机 先回顾一下定义: 按键从未按下到按下,再到弹起,可以视为一个有4个状态的有限状态机。 分别是未按下、前沿抖动、按下、后沿抖动。 即按键只在这4个状态间进行迁移,而且是当条件满足时按一定的顺序进行迁移: 未按下­­(条件1)­ 前沿抖动­­(条件2)­ 按下­­(条件3)­ 后沿抖动­­(条件4)­ 未按下 当且仅当条件成立时,才进行状态的迁移,当条件不成立时,状态机会保持当前状态不变。 状态机有如下性质 1.状态机会在条件满足时
[单片机]
基于<font color='red'>状态机</font>的51单片机独立按键检测与消抖思路
状态机在嵌入式前后台软件系统中的应用
      在嵌入式前后台系统中,外部的异步事件通过中断来捕获并运行在后台,而其他的任务则运行于前台。提高系统中的任务处理能力,是嵌入式前后台系统设计的重点。本文描述了利用状态机来提高嵌入式前后台系统任务处理能力的实现方法。为了便于研究和描述状态机在嵌入式前后台软件系统中的应用,本文将以移动2G光纤直放站近端机的监控软件案例来阐述和说明。 1  移动2G光纤直放站近端机监控单元       对于移动2G光纤直放站近端机监控单元,只介绍与本文有关部分的原理框图,如图1所示。图中GSM Modem通过AT91SAM7S256的串口1相连。由于GSM Modem的特性和短消息的收发,其通信收发处理相对比较繁琐和复杂。例如,发送短
[嵌入式]
LabVIEW程序设计模式(三)—消息队列型状态机模式
针对基本状态机模式的第(1~3)个问题,需要对模式进行改进。本节将一一分析这些问题对应的解决方案,并最终形成一种新的状态机模式 消息队列型状态机模式。 状态的分类不清晰。 这是一个涉及各个状态分类管理的问题,是一个组织问题。我们可以做一个类比,在一个书桌上有许多种类的书籍(通信、计算机、机械、法律等),这些书都摆放在书桌上很整齐。但是我们在寻找一本书时并不会觉得很迅速和随意,因为书籍的摆放是无序的,每次寻找书籍我们不得不从第一本开始浏览直至找到我们想要的书籍。或许可以做一些改变,我们设置一些书立,将不同种类的书使用书立分开。并且在书立上标明这些书籍表示的种类。这样我们在寻找某一种书籍时就不需要从第一本书开始寻找了,只需要找到对
[测试测量]
LabVIEW程序设计模式(三)—消息队列型<font color='red'>状态机</font>模式
采用单片机和CPLD器件实现仿人手臂形假肢控制系统的设计
假肢是人体缺损肢体的替代物,用以弥补缺损肢体的形状和功能。本文针对失去整个手臂的情况,设计出一种仿人手臂形假肢的控制系统。使用者可以补偿部分缺失的功能,达到生活自理甚至于可以从事基本劳动,减少身心痛苦,同时也相应地解放了护理工作用。在设计中,采用C8051F020单片机作为主控制器,并通过CPLD(Complex Programmable Logic Device)完成对各个关节控制量的检测以及凌阳61单片机实现语音控制功能。 1、 机器人假肢结构 多自由度机器人型假肢(上肢)拥有6个自由度,其结构原理图如图1所示。 2、 假肢控制系统的硬件设计 2.1 控制器的工作原理 控制系统原理框图如图2所示,主要由控制、驱动、被控
[单片机]
采用单片机和<font color='red'>CPLD</font>器件实现仿人手臂形假肢<font color='red'>控制</font>系统的设计
基于CPLD的单片机PCI接口设计
    摘要: 详细阐述一种利用CPLD实现的8位单片机与PCI设备间的通信接口方案,给出用ABEL HDL编写的主要源程序。该方案在实践中检验通过。     关键词: 单片机 CPLD PCI 8位单片机在嵌入式系统中应用广泛,然而让它直接与PCI总线设备打交道却有其固有缺陷。8位单片机只有16位地址线,8位数据端口,而PCI总线2.0规范中,除了有32位地址数据复用AD 外,还有FRAME、IRDY、TRDY等重要的信号线。让单片机有限的I/O端口来直接控制如此众多的信号线是不可能的。一种可行的方案就是利用CPLD作为沟通单片机与PCI设备间的桥梁,充分利用CPLD中I/O资源丰富,用户可自定制
[应用]
CPLD与TMS320VC55x的McBSP接口设计
【摘 要】 根据McBSP和CPLD的时序分析,采用VHDL语言设计了CPLD模拟McBSP并与之进行全双工通信,给出了实际的接口时序结果。 关键词:McBSP,CPLD,VHDL,DSP      在许多数字信号处理应用系统中,DSP担任的工作是快速而复杂的核心运算,但是,在运算的同时DSP对数据输入输出的控制是有限的,DSP与CPLD(复杂可编程逻辑器件)或FPGA(现场可编程阵列)相结合的设计则可以有效地弥补这种不足。笔者设计的基于DSP实时视频编解码系统,采用TI(德州仪器)公司的最新高性能低功耗TMS320VC55x系列DSP芯片TMS320VC5509做视频双向编解码运算,但如果DSP还承担视频输入输出的工作
[模拟电子]
<font color='red'>CPLD</font>与TMS320VC55x的McBSP接口设计
基于DSP+CPLD的嵌入式高速图像通信系统设计
   1 引言   随着现代的图形采集技术发展迅速,各种基于ISA,PCI,USB1.1等总线的图形采集卡速度已经不能满足用户的需求,而采用 USB2.0以后就可以解决这个传输速度上的瓶颈,USB2.0的速度是480Mbits/s,完全可以满足图像采集、传输以及后续处理的要求。系统中采用 DSP+CPLD的硬件设计方案,采用现场可编程芯片 CPLD及两片 SRAM构成的图像采集和存储系统,可以根据不同的需要进行现场编程,具有通用性好、价格相对便宜,易于系统调试,升级等特点。系统中 CPLD选择的型号是 ALTERA公司的MAX7000系列低功耗芯片EPM7128A。片外大容量 SRAM是DSP与 CPLD的联系桥梁,系统设计也
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved