嵌入式实时图像处理系统中SDRAM控制器的实现

发布者:草莓熊猫最新更新时间:2009-07-23 来源: 现代电子技术关键字:SDRAM  控制器  嵌入式  实时系统 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  SDRAM作为大容量、高速度、低价格、低功耗的存储器件,在嵌入式实时图像处理系统中具有很高的应用价值,但其控制机制复杂,因此需要设计控制器,以简化系统对SDRAM的访问。虽然目前许多微处理器及DSP都提供了与SDRAM的直接接口,但这种通用控制器的执行效率很低,难以满足实时系统对速度的要求。鉴于此,介绍一种基于FPGA设计而实现高效SDRAM控制器的方案。结合实际系统,该方案将SDRAM配置为全页突发模式,并采用异步FIFO作为FPGA与SDRAM间的数据缓冲器。分析表明,全页突发操作模式能够很好地发挥SDRAM高速读写的性能;同时,设计成乒乓操作结构的异步FIFO,在保证数据连续性的同时,更能降低低速前端对高速SDRAM访问的影响。

  1 SDRAM简介

  1.1 SDRAM的特点

  相对于其他存储器件,SDRAM具备以下特性。

  (1)上电后必须通过一个初始化进程配置模式寄存器的值,以决定SDRAM的工作模式;

  (2)基于三极管和电容的存储结构SDRAM决定了必须对其定时执行刷新操作,以免数据丢失;

  (3)访问SDRAM时,先由Active命令激活要读写的Bank及行并锁存行址,然后在Read/Write命令有效时锁存列址。当访问当前Bank的其他行时,须先使用Pre-charge命令关闭当前行;

  (4)SDRAM的内部操作由命令控制,CS_N,RAS_N,CAS_N和WE_N在时钟上升沿的状态决定了具体的操作,Bank及行列地址线在部分操作中作为辅助参数输入。

  1.2 全页(Full-page)模式突发操作

  进行大量数据读写时,全页突发模式是充分利用SDRAM性能,提高读写速度的良好选择。

  激活Bank的某一行后即可对该行进行读写操作。

  写入数据在发出写命令的当前时钟周期即可有效,因此写操作可以在单周期内完成;而读出数据将在发出读命令之后CL(CAS Latency)时钟周期才能输出到总线,即随机读取单个数据至少需要1+CL时钟周期。可见,随机读操作会大大降低系统效率。若采用全页突发方式,对于列宽度为n的SDRAM存储器,整页输出所需的总周期数为2n+CL,平均单个数据输出所需周期为(2n+CL)/2n△1,由此读操作延迟对系统效率的影响可降至最低。

  2 SDRAM控制器设计

  实际的实时红外热成像系统采用了ISSI公司生产的型号为IS42S16160B的SDRAM作为数据缓存,其存储单元组织结构为4 Bank×8 192行×512列×16位。

  SDRAM控制器主要由时钟锁相环模块、初始化模块、刷新计数模块、数据通路模块、输入/输出FIFO模块、FIFO接口模块和主控制器模块组成,如图1所示。

  在该SDRAM控制器中,片上时钟锁相环模块的作用是将输入时钟倍频为所需要的时钟,并根据电路板布局进行移相,以保证在时钟上升沿准确采样命令及数据。初始化模块负责产生规定了时间、顺序和个数的控制命令对SDRAM进行配置,并在进程结束后发出ini_end信号,以启动主控制器。刷新控制模块的作用是每隔最长7.812 5μs发出刷新请求信号ref_req,并接收主控制器发出的ref_ack信号重置刷新计数器。数据通路模块用于控制数据的有效输入/输出。

  由于系统对控制器中读写操作的数据连续性要求很高,且读写速度比较低,而控制器对SDRAM中读写操作的数据连续性并无要求,且读写速度很高,因此需要使用异步FIFO作为输入/输出缓存。输入/输出FIFO的数据宽度为16 b,深度可视系统需要而定,但应大于一次读写的数据长度LENGTH。另外,为配合SDRAM的全页突发模式,并充分发挥SDRAM高速读写的特点,FIFO采用了乒乓操作的流水线结构。现以输入FIFO为例,当某个输入FIFO写满LENGTH数据时,主控制器从该输入FIFO读出数据写入SDRAM,同时系统向另一个输入FIFO写入数据。

  FIFO接口模块的主要信号如图2所示。其作用是将FIFO的状态信号转换为主控制器的读写请求信号,并控制切换输入/输出的两个FIFO。以向SDRAM写入数据为例,若某个输入FIFO的写人数据个数标志信号in_wr_used与LENGTH相等,则向主控制器发出写SDRAM请求,并将该输入FIFO中的LENGTH数据一次写入SDRAM,同时控制系统向另一个输入FIFO写入数据。

  SDRAM支持多种工作模式,将其全部包含在主控制器状态机中会大大增加设计难度,并降低运行速度。考虑到一些模式在实时图像处理系统中并不需要,所以对SDRAM主控制器韵状态进行了简化,如图3所示。

  对该主控制器有以下两点需要说明:

  (1)器件仅在上电后进行一次初始化配置,进入正常工作状态后就不再改变工作模式。初始化时序仿真结果,如图4所示。

  (2)当SDRAM工作在全页突发模式时,读写操作所访问的地址将在页内循环,直至收到Burst-Termi-nate命令或Pre-charge命令。由于在Burst-Termi-nate命令后还需发出Pre-charge命令,才能保证芯片正常工作,因此设计采用了Pre-charge命令终止页模式。为保证LENGTH数据中正确读出或写入SDRAM,发出Pre-charge命令时必须满足一定的时序要求。对于读操作,Pre-charge应在最后一个有效输出数据之前CL-l时钟发出;对于写操作,Pre-charge应在最后一个有效输入数据之后tDPL时间发出。图5和图6给出SDRAM控制器的读写操作时序仿真结果,其中,OUT_VALID及IN_VALID信号分别表明输出及输入数据有效。

  3 结 语

  针对实时图像处理系统的特点,定制SDRAM控制器。在Altera公司的主流芯片Cyclone II(EP2C70F896C6)上成功地使用了Verilog HDL编程语言,其占用355个逻辑单元(不到FPGA总逻辑资源的1%);4个M4K块和1个PLL锁相环。在320×240的实时红外热成像系统中,该SDRAM控制器的工作状态良好,并可通过改变LENGTH参数而方便地用于任意分辨率的实时图像处理系统中,可移植性强。

关键字:SDRAM  控制器  嵌入式  实时系统 引用地址:嵌入式实时图像处理系统中SDRAM控制器的实现

上一篇:ARM与TLV5637的模拟SPI接口的应用设计
下一篇:基于嵌入式ARM9 S3C2440A 的USB设计与实现

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

基于UC3906的太阳能充电控制器设计方案
目前,光伏发电装置往往因为充放电不合理,造成控制器故障较多、蓄电池使用寿命短、维修麻烦,影响其正常使用,所以有必要设计一款结构简单、性能优良的太阳能充电控制器。   1 光伏发电充电控制系统   光伏发电充电控制系统主要由太阳能电池板、蓄电池和控制器组成,其系统框图如图1所示。为了提高控制器的可靠性、延长蓄电池的使用寿命以及提高允电速度,本设计特别采用了UC3906芯片进行充电控制。并且在设计中加入了Buck-Boost变换器,调节太阳能电池的输出,提高了整个系统的效率。        2 UC3906的结构及工作原理   UC3906是美周TI公司专门针对铅酸电池充电设计的。内部的逻辑电路提供三种
[电源管理]
基于UC3906的太阳能充电<font color='red'>控制器</font>设计方案
采用HC05/HC088位微控制器的数字电容放电点火系统
引言 两化机动车:低座小摩托、摩托车、机动脚踏两用车,普遍使用电容放电点火(CDI)一种基于电容放电技术的引擎点火系统。点火系统将能量从磁电机转移到存储电容,然后通过升压变压器在火花塞处以高压脉冲形式释放出来,将汽缸中的混合烧油点烧。 目前,考虑到效率更高引擎设计的要求和污染控制中新的管理规定,变定时CDI已成为最经济实用的选择。在变定时CDI解决方案中,以监测引擎速度来提供火花的最佳定时。在空转速度状态,点火定时在压缩冲程中较迟产生,因此当活塞开始动和冲程时有充分时间完成烧烧;在高速状态,点火则在压缩冲程中较早产生。变定时可用MCU实现,如Motorola的廉价MC68HC705P6A。该MCU配置了带独立输入捕捉和输出
[半导体设计/制造]
利用FPGA平台解决接口的总线速度瓶颈
  目前,嵌入式系统已经广泛应用于通信、消费类电子产品等许多领域。然而,在许多应用中,处理器的接口总线速度成为制约系统性能的瓶颈。本文将以嵌入式实时视频数据存储系统为例,说明如何利用FPGA作为嵌入式处理器的数据协处理器,利用CPLD进行主处理器与协处理器之间数据通信的方案来解决处理器接口总线速度对系统性能的影响。该方案对解决类似的问题具有一定的参考作用。   1 系统组成   如图l所示,系统主要由4部分组成:嵌入式处理器、CPLD、FPGA及视频图像压缩输入部分。   (1)嵌入式处理器   采用Sigma Design生产的双核结构的数字图像处理芯片EM8560。它内嵌ARM7 TDMI内核和一个MEPG
[嵌入式]
利用FPGA平台解决接口的总线速度瓶颈
如何实现车规微控制器的ECC机制?使用时有哪些注意事项?
引言 ECC是微控制器系统中用于保障信息安全的常用机制,主要是避免存储设备中存放的数据因硬件干扰被篡改。国产车规微控制器原厂云途半导体设计和发布的YTM32微控制器芯片,全系配备了存储器的ECC机制,可以有效的增强芯片运行稳定性,避免因为内存位翻转导致芯片产生严重故障。本文将以YTM32微控制器芯片为例,对内存ECC的基本机制、实现原理和使用时的注意事项等进行介绍。 ECC的基本原理 ECC全称 Error Checking and Correcting,属于一种错误检查和纠正算法,典型的ECC算法一般可以做到纠正单比特错误和检查2比特错误。 在介绍ECC算法之前,先看一种简单的校验算法:奇偶校验。奇偶校验是在传输数据流的末尾
[嵌入式]
如何实现车规微<font color='red'>控制器</font>的ECC机制?使用时有哪些注意事项?
一种用于航管雷达供电的测控系统设计
  摘 要: 为了实现对雷达供电系统中直流电源的电压、电流参数和机柜温度的实时监测,以及各种电源之间的互锁控制,设计了一种用于航管雷达供电电源的测控系统。阐述了系统的测控原理和硬件实现方法,并给出了系统软件的设计思路及流程。   随着航管雷达体制的快速发展及其技术的不断进步,对航管雷达机内测控系统的要求也越来越高 。作为航管雷达正常工作的动力源泉,对航管雷达供电系统的测控更显得尤为重要。电源工作正常与否,会直接影响航管雷达整机的性能,因此电源测控系统是航管雷达必不可少的重要组成部分 。   为了排除电源故障,需要实时地了解电源发生故障时的状态 。这就要求在电源发生故障的瞬间,能够捕捉到电源实时的故障数据,并能在故障环境下稳定地
[测试测量]
一种用于航管雷达供电的测控<font color='red'>系统</font>设计
方程式赛车进入电动时代
自打汽车一百多年前诞生以来,赛车运动就没停止过,随着电动时代的到来,狂奔的赛车又会做如何改变呢? 震耳欲聋的引擎轰鸣声,伴随着滚滚的热浪,一辆辆赛车伴随着激动的观众呐喊声中呼啸而过,这就是激动人心的方程式赛车运动。方程式赛车作为汽车检验最尖端技术的最理想途径,一直活跃在汽车技术的最前沿。 随着电动时代的到来,FIA国际汽联适时主导推动了一个全新的赛事 Formula E,其赛车的动力性能最大功率一般在在200千瓦,也就是270马力,从数据上来看这跟动辄接近1000马力的F1方程式赛车简直不在一个量级上,但由于电动车的特殊结构,电动赛车在加速和操作性能上显得无比的优越,比如在3秒以内完成0-100公里/小时的
[汽车电子]
方程式赛车进入电动时代
燃料电池汽车整车控制器硬件在环实时仿真测试平台设计
  随着汽车工业的发展和进步,人们对汽车的动力性、经济性、安全性及排放等方面提出了更高的要求,传统的机械式控制系统已经远远不能满足这些需要。电子化控制系统以其高精度、高速度、控制灵活、稳定可靠等特点逐渐取代了机械式控制系统,是汽车控制系统的发展趋势。   由于对控制性能的要求越来越严格,使得汽车电子控制系统对控制器的要求越来越高。控制器的开发与设计一般都要经过如图1所示的步骤,即由上层到底层,再由底层到上层的一个V字形过程。首先是控制器的上层功能设计,详细确定控制器将要实现的功能;然后生成目标程序代码;最后是控制器的底层软、硬件实现。   从控制器实现到实车测试的过程中还需要进行硬件在环实时仿真测试。这是因为在整车控制器的
[测试测量]
嵌入式DSP访问片外SDRAM的低功耗设计研究
DSP有限的片内存储器容量往往使得设计人员感到捉襟见肘,特别是在数字图像处理、语音处理等应用场合,需要有高速大容量存储空间的强力支持。因此,需要外接存储器来扩展DSP的存储空间。 在基于DSP的嵌入式应用中,存储器系统逐渐成为功耗的主要来源。例如Micron公司的MT48LC2Mx32B2-5芯片,在读写时功耗最大可以到达924 mW,而大部分DSP的内核功耗远远小于这个数值。如TI的 TMS320C55 x系列的内核功耗仅仅为0.05 mW/MIPS。所以说,优化存储系统的功耗是嵌入式DSP极其重要的设计目标。本文主要以访问外部SDRAM为例来说明降低外部存储系统功耗的设计方法。 1 SDRAM功耗来源 SDRAM内部一般分为多
[嵌入式]
<font color='red'>嵌入式</font>DSP访问片外<font color='red'>SDRAM</font>的低功耗设计研究
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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