DSP片外高速海置SDRAM存储体系计划
发布日期:2011-04-17
摘 要:先容利用同步动态RAM(SDRAM)扩展嵌入式DSP体系高速超大容量外部存储空间的计划要领;连合已告成实现的、基于TMS320C6201的数字信号处理惩罚体系,叙述利用IS42S16400 SDRAM芯片计划DSP片外同步存储体系的详细实现方案;细致讨论TMS320c6201的EMI与SDRAM的接口计划及编程要领。
关毽词:DSP SDRAM EMIF存储体系
在数字图像处理惩罚、航空航天等高速信号处理惩罚应用场合,必要有高速大容量存储空间的强力支持,来餍足体系对海量数据吞吐的请求。通过利用大容量同步动态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.h>
: /*其他用户步伐*/
/*读出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在嵌人式体系中的精良应用远景。