DSP片外高速海置SDRAM存储系统设计

发布者:brian808090最新更新时间:2006-09-26 来源: 单片机及嵌入式系统应用关键字:寄存器  时序  刷新 手机看文章 扫描二维码
随时随地手机看文章

  在数字图像处理、航空航天等高速信号处理应用场合,需要有高速大容量存储空间的强力支持,来满足系统对海量数据吞吐的要求。通过使用大容量同步动态RAM(SDRAM)来扩展嵌入式DSP系统存储空间的方法,选用ISSI公司的IS42S16400高速SDRAM芯片,详细论述在基于TMS320C6201(简称C6201)的数字信号处理系统中此设计方法的具体实现。

1 IS42S16400芯片简介
  IS42S16400是ISSl公司推出的一种单片存储容量高达64 Mb(即8 MB)的16位字宽高速SDRAM芯片。SDRAM的主要特点是:①同步访问,读写操作需要时钟;②动态存储,芯片需要定时刷新。IS42S16400采用CMOS工艺,它的同步接口和完全流水线的内部结构使其拥有极大的数据传输速率,可以工作在高达133 MHz的时钟频率下,刷新频率每64 ms为4096次。该SDRAM芯片内部有4个存储体(bank),通过行、列地址分时复用系统地址总线,对不同存储体内不同页面的具体存储单元进行读写访问寻址。在进行读操作之前,必须预先激活SDRAM内对应的存储体,并选择存储器的某一行,然后送人列地址读取需要的数据。从输出列地址到SDRAM返回相应数据之间存在一个存取延迟。如果访问新的页面,则先需要关闭所有的存储体,否则已打开的页面将一直有效。在写操作之前,由于已经预先激活了有关的行地址,因此可以在输出列地址的同时输出数据,没有延迟。IS42S16400提供自刷新模式的设置,可以使芯片运行在低功耗的状态下,从而大大减少嵌入式系统的功率消耗。

2 C6201与SDRAM的外部存储器接口
  DSP芯片访问片外存储器时必须通过外部存储器接口EMlF(External Memory Interface)。C6000系列DSPs的EMIF具有很强的接口能力,不仅具有很高的数据吞吐率(最高达1200 MB/s),而且可以与目前几乎所有类型的存储器直接接口。在C6201系统中,提供了4个彼此独立的外存接口(CEX)。除CEl空间只支持异步接口外,所有的外部CEx空间都支持对SDRAM的直接接口。表1总结了C620XDSPs的EMIF所兼容的SDRAM配置。表2给出了C6000系列DSPs的EMIF所支持的SDRAM控制命令。


2.1 SDRAM的刷新
  为了提高存储容量,SDRAM采用硅片电容来存储信息。随着时间的推移,必须给电容重新充电才能保持电容里的数据信息,这就是所谓的“刷新”。它的存在也使得SDRAM的应用变得略显复杂,带来了一定的应用难度。

  C6000系列DSPs有专门的SDRAM控制寄存器(SDTCL)和SDRAM时序控制寄存器(SDTIM),用来进行SDRAM的各种时序控制,大大减轻了设计人员的开发难度。SDCTL寄存器中的RFEN位控制是否由EMIF完成对SDRAM的刷新。如果RFEN=1,EMIF会控制向所有的SDRAM空间发出刷新命令(REFR);而SDTIM寄存器中的PERIOD位段则控制具体的刷新周期。

  在REFR命令之前,会自动插入一个DCAB命令,以保证刷新过程中所有的SDRAM都处于未激活状态。DCAB命令之后,EMIF开始按照SDTIM寄存器中PERD字段设置的值进行定时刷新。刷新前后,页面信息会变为无效。

  对于C620X,EMIF SDRAM控制模块内部有一个2位的计数器,用来监测提交的刷新申请的次数。每提交一个申请,计数器加1;每次刷新周期之后,计数器减1。复位时,计数器自动置为11b,以保证在存取访问之前先进行若干次刷新。计数器的值为llb,代表紧急刷新状态,此时页面信息寄存器变无效,迫使控制器关闭当前的SDRAM页面。然后,EMIF SDRAM控制器在DCAB命令后执行3次REFR命令,使计数器的值减为0,再继续完成余下的存取操作。

2.2 SDRAM的初始化

  当某个CE空间配置为SDRAM空间后,必须首先进行初始化。用户不需要控制初始化的每一个步骤,只需要向EMIF SDCTL寄存器的INIT位写1,申请对SDRAM作初始化。然后,EMIF就会自动完成所需要的各步操作。初始化操作不能在进行SDRAM存取过程中进行。整个初始化过程包括下面几个步骤:
  ①对所有的SDRAM空间发出DCAB命令;
  ②执行3个REFR命令;
  ③对所有的SDRAM空间发出MRS命令。

2.3页面边界控制

  SDRAM属于分页存储器,EMIF的SDRAM控制器会监测访问SDRAM时行地址的情况,避免访问时发生行越界。为了完成这一任务,EMIF在内部有四个页面寄存器,自动保存当前打开的行地址,然后与后续存取访问的地址进行比较。需要说明的是,当前存取操作结束并不会引起SDRAM中已经激活的行被立即关闭,EMIF的控制原则是维持当前的打开状态,除非必须关闭。这样做的好处是可以减少关闭/重新打开之间的命令切换时间,使接口在存储器访问的控制过程中充分利用地址信息。

  对于C620X,每个CE空间包含1个页面寄存器(只对配置为SDRAM空间有效),因此C620X每个CE空间1次只能激活1页。进行比较的地址位数取决于SDCTL寄存器中SDWID位的值。如果SDWID=O,该CE空间构成页面的大小为512,比较的逻辑地址是位23~11;如果SDWID=1,该CE空间SDRAM构成页面的大小为256,比较的逻辑地址是位23~10。一旦发现存取访问发生了页面越界,EMIF会自动执行DCAB操作,然后再开始新的行访问。

2.4访问地址的移位

  由于SDRAM行逻辑地址与列逻辑地址复用相同的EMIF 引脚,所以EMIF接口需要对行地址与列地址进行相应的移位处理。地址的移位处理由SDCRL寄存器中的SDWlD位控制。

  另外,对于SDRAM,因为输入地址也是控制信号,因此需要说明以下几点:
  ①RAS有效期间的高位地址信号会被EMIF内部SDRAM控制器锁存,以保证执行READ和WRT命令时选通正确的bank;
  ②READ/WRT操作期间,EMIF会保持pre-charge信号为低(C620X是SDAl0),以防止READ/WRT命令执行后发生auto pre—charge操作。

2.5接口时序的设计

  对于C620X,EMIF与SDRAM的接口时序由SDCTL寄存器控制。EMIF提供了5个时序参数,其中3个在SDCTL寄存器中设置,另外2个为固定值,如表3所列。在分析接口时序的配合情况时,需要计算“富裕时间”tmargin的大小,这是在考虑了SDRAM芯片的器件手册提供的最坏情况之后,得到的时序上的一个裕量。至于tmargin值的大小,是系统设计层需要考虑的问题,具体要求随不同的系统而异,而且与印制板的实际布线情况以及负载的情况密切相关。


3 系统设计中IS42S16400芯片的应用
3.1 C6201与IS42S16400的接口实现

  由于IS42S16400属于16位字宽的64 Mb SDRAM芯片,而C6201的EMIF只提供32位字宽的同步外存储接口,为了使整个系统的存储空间保持连续,使用2片SDRAM与DSP芯片组成实际大小为16 MB的外部存储系统,如图1所示。图1中IS42S16400芯片各引脚含义如下:CS,片选;CLK,系统同步时钟;RAS,行地址选择;CAS,列地址选择;WE,读/写使能;CKE,时钟使能;DQMU、DQML,高低字节使能;A[13:123],Bank地址选择线;A[11:0],行、列地址线;DQ[15:0],双向数据端口。

  由图1可以看出,虽然C620l提供32位地址寻址能力,但是经EMIF直接输出的地址信号只有EA[21:2]。一般情况下,EA2信号对应逻辑地址A2,但这并不意味着DSP芯片访问外存时只能进行word(32位)的存取。实际内部32位地址的最低2~3位经译码后由BEx输出,是能够控制字节访问的。更高位逻辑地址经译码后输出CE[3:0]。

  在实际的系统实现中,C6201的CLKOUT1时钟频率为200 MHz,故而SDRAM的实际工作频率为100 MHz(SDCLK=CLKOUT2=CLKOUT1 frequency/2),即tcyc=10 ns。SDRAM被配置在CE2空问(起始逻辑地址为0x02000000)。

3.2 06201 EMIF SDRAM寄存器设置
  表4列出了配置SDRAM需要设置的EMIF寄存器名称及相应的位或位段。

  EMIF全局控制寄存器中的SDCEN位(位6)设置为1,用来使能SDRAM同步时钟SDCLK的输出。EMIFCE2空间控制寄存器中的MTYPE位段(位6~4)设置为011b,用来配置CE2为32位宽的SDRAM空间。由IS42S16400数据手册可查得tRC=70 ns、tRp=18 ns、tRCD=18 ns,故而EMIF SDRAM控制寄存器中的TRC位段(位15~12)应设置为0110b,TRP位段(位19~16)应设置为0001b,TRCD位段(位23~20)应设置为0001b。INIT位(位24)置1,用来强制对SDRAM进行上电初始化。RFEN位(位25)置1,用来使能EMIF对SDRAM的刷新。SDWID位(位26)置1,用来向EMIF表明所使用的SDRAM芯片的字宽为16位。由于IS42S16400的刷新频率为每64 ms 4096次,故根据公式PERIOD=trefesh/tcyc,EMIF SDRAM时序控制寄存器中的PERIOD位段(位11~O)被设置为0x61A。

3.3 CCS开发环境中SDRAM配置程序源代码

  TI公司的集成开发环境CCS(Code Composer Studio)中,IS42S16400SDRAM芯片的配置程序C代码如下:
#include
: /*其他用户程序*/
/*读出EMIF控制寄存器的默认设置*/
unsigned int g_ctrl=GET_REG(EMIF_GCTRL);
unsigned int g_ctrl=GET_REG(EMIF_GCTRL);
unsigned int ce0_ctrl=GET_REG(EMIF_CE0_CTRL);
unsigned int ce1_ctrl=GET_REG(EMIF_CEl_CTRL);
unsigned int ce2_ctrl=GET_REG(EMIF_CE2_CTRL);
unsigned int ce3_ctrl=GET_REG(EMIF_CE3_CTRL);
unsigned int sdram_ctrl=GET_REG(EMIF_SDRAM_CTRL
unsigned int_sdram_ref=GET_REG(EMI_SDRAM_RE]
/*EMIF全局控制寄存器一使能SDCLK*/
SET_BIT(&g_ctrl,SDCEN);
/*设置CE2为SDRAM空间*/
LOAD_FIELD(&ce2_ctrl,MTYPE_32SDRAM,MTYPE,
MTYPE_SZ);
/*设置SDRAM控制寄存器*/
LOAD FIELD(&sdram_ctrl,6,TRC,TRC_SZ);
LOAD_FIELD(&sdram_ctrl,1,TRP,TRP_SZ);
LOAD_FIELD(&sdram_ctrl,l,TRCD,TRCD_SZ);
SET_BIT(&sdrrm_ctrl,SDWID);
SET_BIT(&sdram_ctrl,INIT);
SET_BIT(&sdram_ctrl,RFEN);
/*设置SDRAM的刷新周期*/
LOAD_FIELD(&sdram_ref,0x61A,PERIOD,PERIOD_SZ);
/*重配置EMIF控制寄存器*/
emif_init(g_ctrl,ce0一ctrl,ce1_ctrl,ce2_etrl,ce3_ctrl,
sdram_ctrl。sdram_ref);
: /*其他用户程序*/

结 语
  以上介绍了TMS320C6201 DSP芯片与SDRAM(IS42S16400)的具体硬件接口实现。由于SDRAM具有的大容量、高速度和低价格的优势,使用SDRAM构建嵌入式应用海量存储系统会成为一种行之有效的方法。目前该系统已调试完毕。使用SDRAM作为DSP系统外接高速、大容量主存储器具有非常明显的优势,充分显示了SDRAM在嵌人式系统中的良好应用前景。

关键字:寄存器  时序  刷新 引用地址:DSP片外高速海置SDRAM存储系统设计

上一篇:基于单片机的通用示波器存储功能扩展设计
下一篇:SST89E/V58RD2和SST89E/V516RD2的安全性设计

推荐阅读最新更新时间:2024-05-13 18:14

是德科技与Silicon Labs联手简化时序解决方案的验证
是德科技与Silicon Labs合作,结合双方产品技术优势,旨在简化对时序解决方案的验证工作,这些时序解决方案对于无线通信,高速数字,医学成像和汽车应用的系统级设计的开发至关重要。 是德科技与Silicon Labs联手,利用Keysight的实时Infiniium UXR系列示波器,新的相位噪声分析软件和Silicon Labs的产品来简化对相位噪声的测量。因此,是德科技UXR示波器的现有用户,例如振荡器,高速数字系统和功率放大器(PA)前端模块(FEM)的制造商,可以轻松表征其设计的时钟和振荡器的性能。 通过Keysight的UXR示波器及相位噪声分析软件,可在很宽的频率范围内提供信号保真度。使用相位噪声测量功能的用户可以评
[测试测量]
机器人刷新人类未来想象 共处时代来临了吗?
  漫步街头,不时可见饭馆里的“刀削面机器人”。科技的发展,不断刷新我们对未来世界的想象。不知不觉间,“机器人”已经渗透到生活的各个方面,而许多人可能并未察觉。    工业机器人:高精度的工业巨人   一说到机器人,大家眼前可能会浮现出电影里各种各样的机器人形象,“他们”有着比人类更加强健的体魄,有着比人类更加灵活的大脑,甚至成为“无所不能”的代名词。然而,现实生活和研究领域中的机器人,定义更加广泛。   不只是汽车生产线上的装配机器人,甚至军用无人机也是机器人家族的成员。据西安交通大学工程坊主任王晶老师介绍,机器人学是现今高科技发展的代表方向之一,其发展主要经过了四个阶段:第一阶段是工业机器人,其主要理论是力学和经典控制理论,
[机器人]
SD卡读CID寄存器
/** * @brief Card Identification Data: CID Register */ typedef struct { uint8 ManufacturerID; // 生产标识ID uint16 OEM_AppliID; // OEM/应用 ID uint32 ProdName1; // 产品名称1 uint8 ProdName2; // 产品名称2 uint8 ProdRev; // 产品版本 uint32 ProdSN; // 产品序号 uint8 Reserved1; // 保留 uint16 Manufa
[单片机]
51单片机内部特殊功能寄存器分析
1. Warning 280:’i’:unreferenced LOC al variable 说明局部变量i 在函数中未作任何的存取操作,解决方法消除函数中i 变量的宣告 2 Warning 206:’Mus IC 3’:missing function-prototype 说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用 解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3(void),即作外部宣告 3 Compling :C:\8051\MANN.C Error:318: CAN ’t open file ‘beep.h’
[单片机]
IAR中创建STM32工程步骤(寄存器版本)
先说明,是基于寄存器编程的。 1.从官网下载STM32固件库。我用的是3.5 2.创建一个STM32文件夹(不是存放工程的),存放创建STM32工程所需的基本文件。以后再次创建工程时,只需把这个文件夹的东西拷到相应工程里面即可。 此文件夹里面有CMSIS文件夹和Statup文件夹。 2.找到解压后的Libraries- CMSIS- CoreSupport,把里面的core_cm3.h和core_cm3放进上面的CMSIS文件夹。 找到Libraries- CMSIS- DeviceSupport- ST- STM32F10X- Statup- IAR里面的启动文件,这个启动文件根据STM32具体类型选择,我用的是STM32
[单片机]
接触STM32F407芯片的总结
今天开始弄了一下STM32F4的板子,板子的核心芯片是STM32F407,是Contex M4的内核,和之前接触的STM32F1的相比,功能真的强大了很多,而且设计上也更加容易使用,先介绍一下今天的成果。 今天看了数据手册的RCC部分和GPIO部分,在灵格斯的帮助下,还是能够看懂的,因为它和STM32F1差不多,应该是高级芯片的寄存器结构都很类似,所以看起来不是那么的难懂,很多东西都是相通的。 GPIO部分,他的寄存器包括4个参数设置寄存器用来设置IO口的工作方式,两个数据寄存器(一个输入一个输出),一个置位复位寄存器,一个LOCK寄存器,两个功能选择寄存器。寄存器的结构是十分的清晰的,Configure寄存器
[单片机]
AVR单片机寄存器 DDRx PORTx PINx 与对应IO端口之间的关系
AVR单片机寄存器 DDRx PORTx PINx 与对应IO端口之间的关系(x代表某个端口,如A端口、B端口等) 下表以端口B的第2位PB2为例子加以说明,并且假设PB2为悬空状态 DDRB.2 PORTB.2 读取PINB.2的结果 引脚PB2的状态 1 1 1 PB2推挽输出 1 1 0 0 PB2推挽输出 0 0 1 1 PB2弱上拉,可作输入 0 0 PB2高阻抗,可作输入 读取PINB.2时,就是读取PB2引脚的实际电平, 如果PB2直接接VCC,那么任何时候读取PINB.2的结果都是1 如果PB2直接接GND,那么任何时候读取PINB.2的结果都是0 下面是一个标准C语言例子:
[单片机]
PLC时序图的设计步骤
时序图(Timing Diagram)是信号随时间变化的图形。横坐标为时间轴,纵坐标为信号值,其值为 0 或 1。以这种图形为基础进行 plc 程序设计的方法称为时序图法。时序图是从使用示波器分析电器硬件的工作中而引申出来的,借用它可以分析与确定相关的逻辑量间的时序关系。采用时序图法设计 PLC 程序的一般步骤如下: 1)画时序图。根据要求画输入、输出信号的时序图,建立起准确的时间对应关系。 2)确定时间区间。找出时间的变化临界点,即输出信号应出现变化的时间点,并以这些点为界限,把时段划分为若干时间区间。 3)设计定时逻辑。可以使用多个定时器建立各个时间区间。 4)确定动作关系。根据各动作与时间区间的对应关系,建立相应的动作逻辑,
[嵌入式]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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