一、SDRAM简介@TOC
SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器。同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。
SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器。同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。
SDRAM的内部是一个存储阵列,你可以把它想象成一张表格。我们在向这个表格中写入数据的时候,需要先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的“单元格”,这就是SDRAM寻址的基本原理。如图 1所示:
容量计算:
SDRAM总存储容量 = L-Bank的数量×行数×列数×存储单元的容量
操作时序
首先,在对SDRAM进行读写操作之前需要先对芯片进行初始化;其次,SDRAM读写是一个较为复杂的控制流程,其中包括行**、列读写、预充电、刷新等一系列操作。大家需要熟练掌握每一个操作所对应的时序要求,才能够正确地对SDRAM进行读写操作。
1、芯片初始化
SDRAM芯片上电之后需要一个初始化的过程,以保证芯片能够按照预期方式正常工作,初始化流程如图 2所示:
SDRAM上电后要有200us的输入稳定期,在这个时间内不可以对SDRAM的接口做任何操作;200us结束以后给所有L-Bank预充电,然后是连续8次刷新操作;最后设置模式寄存器。初始化最关键的阶段就在于模式寄存器(MR,Mode Register)的设置,简称MRS(MR Set)。
2、行**
行**主要完成了芯片的片选、L-BANK的地址确定和行地址的确认。
从上图可以看出,在片选CS#(#表示低电平有效)、L-Bank定址的同时,RAS(Row Address Strobe,行地址选通脉冲)也处于有效状态。此时An地址线则发送具体的行地址。如图中是A0-A11,共有12个地址线,由于是二进制表示法,所以共有4096个行(2^12=4096),A0-A11的不同数值就确定了具体的行地址。
3、列读写
列寻址信号与读写命令是同时发出的,读/写命令是通过WE(Write Enable,写使能)信号来控制的,WE为低时是写命令,为高时是读命令。