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

发布时间:2010-11-17 15:51    发布者:designer
关键词: SDRAM , 处理系统 , 控制器 , 嵌入式 , 图像
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参数而方便地用于任意分辨率的实时图像处理系统中,可移植性强。
本文地址:https://www.eechina.com/thread-40124-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表