标签:
UDQM、LDQM:数据输入输出屏蔽引脚。
用于在读模式下控制输出缓冲,在写模式下屏蔽输入数据。
LDQM,UDQM这些信号线是为了实现字节访问和半字访问,LDQM控制低八位,UDQM控制高八位,这样当要按字节写的时候,就把高八位屏蔽掉。
介绍SDRAM电路设计之前先了解下SDRAM的寻址原理。SDRAM内部是一个存储阵列,可以把它想象成一个表格,和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元,这是内存芯片寻址的基本原理,这个表格称为逻辑Bank。由于技术、成本等原因,不可能只做一个全容量的Bank,而且由于SDRAM工作原理限制,单一的Bank会造成非常严重的寻址冲突,大幅降低内存效率,所以在SDRAM内部分割成多个Bank,目前的SDRAM基本都是4个Bank。存储阵列示意如图1所示:
图1 SDRAM存储阵列示意图
图2 SDRAM引脚配置方案
图2是S3C2440A手册提供的SDRAM bank地址的配置方案,维护系统使用的SDRAM是HY57V561620FTP-H,它的规格是4*4M*16bit(使用两片是为了配置成32位的总线宽度),BANK大小是4M*16=64MB,总线宽度是32位,器件大小是4*BANK大小=256Mb,寄存器配置就是(4M*16*4B)*2,根据图2可知,SDRAM上的BANK地址引脚(BA[1:0])与S3C2440的A[25:24]相连。
图3 S3C2440A控制地址总线连接
图3是寄存器控制地址总线连接方式,我们使用2片SDRAM配置成32位的总线宽度,所以SDRAM上的A[12:0]接到S3C2440的A[14:2]引脚。具体的SDRAM电路连接如图4所示:
图4 SDRAM电路连接图
SDRAM的地址引脚是复用的,在读写SDRAM存储单元时,操作过程是将读写地址分两次输入到芯片中,每一次由同一组地址线送入,两次送入到芯片上去的地址分别称为行地址和列地址,它们被锁存到芯片内部的行地址锁存器和列地址锁存器。下面是该芯片的部分信号说明:
nSRAS:SDRAM行地址选通信号
nSCAS:SDRAM列地址选通信号
nSCS:SDRAM芯片选择信号(选用Bank6作为sdram空间,也可以选择Bank7)
nWBE[3:0]:SDRAM数据屏蔽信号
SCLK0[1]:SDRAM时钟信号
SCKE:SDRAM时钟允许信号
LDATA[0:31]:32位数据信号
LADDR[2:14]:行列地址线
LADDR[25:24]:bank选择线
(1)NOR FLASH(2M):ROM存储器,通常用来保存BootLoader,引导系统启动
(2)NAND FLASH(256M,型号不一样,Nandflash大小不一样):保存操作系统映像文件和文件系统
(3)SDRAM(64M):内存,执行程序
NOR
NAND FLASH:它能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。其成本较低,不支持XIP。可做嵌入式里的数据存储介质。如:手机存储卡,SD卡等。
S3C2440地址空间:
S3C2440对外引出了27根地址线ADDR0~ADDR26,它最多能够寻址128MB,而S3C2440的寻址空间可以达到1GB,这是由于S3C2440将1GB的地址空间分成了8个BANKS(Bank0~Bank7),其中每一个BANK对应一根片选信号线nGCS0~nGCS7,当访问BANKx的时候,nGCSx管脚电平拉低,用来选中外接设备,
SDRAM存储结构:
先来介绍一下CPU提供的一组用于SDRAM的信号:
1.
2.
3.
4.
5.
6.
7.
SDRAM的内部是一个存储阵列,阵列就类似于表格一样,有行、列之分,这样我们要访问(读、写)一个单元,就要先指定一个行地址,一个列地址,这样就找到了该单元,这就是SDRAM的寻址的基本原理。这里的单元我们一般称为存储单元,而整个表格称为逻辑BANK(Logical
jz2440是选用2片HY57V561620FTP-H组成64MB、32位的内存,每片32MB容量、16位数据总线。原理图如下:
在图中可以看到,行地址、列地址共用地址线ADDR2~ADDR14(BANK6位宽为32,ADDR0、1没有使用),使用nSRAS、nSCAS两个信号来区分它们。在jz2440开发板中,使用两根地址线ADDR24、ADDR25作为L-Bank的选择信号;SDRAM芯片K4S561632的行地址数为13,列地址数为9,所以当nSRAS信号有效时,ADDR2~ADDR14上发出的是行地址信号,它对应32位地址空间的bit[23:11];当nSCAS信号有效时,ADDR2~ADDR10发出的是列地址信号,它对应32位地址空间的bit[10:2]。
重点关注SDRAM芯片K4S561632地址线 A0~A12的说明:
该芯片每一个Bank有13行(RA0~RA12),9列(CA0~CA8),行寻址时使用A0~A12,列寻址分时复用,只使用了CA0~CA8。nRAS、nCAS引脚,用于标识当前是行寻址还是列寻址,从而实现地址线的分时复用。
jz2440开发板是由两块16位的SDRAM芯片并联组成32位的位宽,与CPU的32根数据线DATA0~DATA1相连。SDRAM是连接在BANK6上的,起始地址为0x30000000,所以SDRAM的访问地址为0x30000000~0x33FFFFFF,大小为64MB。
看了上面那些内容,里面有某些东西令我百思不得其解,可能是自己太笨了,不过最后还是想明白了。
1、为什么两块SDRAM芯片并联起来,容量大小是64MB呢?
原因是这样的:SDRAM芯片有4个bank,每个bank的行地址数是13、列地址数是9,由两块16位的SDRAM芯片并联组成32位的位宽,与CPU的32根数据线DATA0~DATA1相连。则其存储空间为(2^13*2^9*4*32bit)/8 = 2^26*8bit/ 8 = 2^26 Byte = 64MB
2、为什么SDRAM芯片的A0地址引脚连接的是ARM芯片的A2引脚呢?
根据上一问可知,该SDRAM存储空间为64MB,S3C2440要寻址64MB需要地址线26根。由原理图可知SDRAM的数据总线位宽为32位,即一次传输4个字节的数据。因此,我们可以这样理解,即一个地址空间其实对应着4个字节的数据,实际上真正的寻址空间只有16MB而已,只需24根地址线(行地址线13根,列地址线9根,还有L-Bank选择信号的A24、A25两根地址线,总共24根)就已经足够了,这样S3C2440端并不需要将26根地址线全部连接到SDRAM芯片上,只需要给出高24位地址(A2~A25),相当于数据总线上每传输4个字节的数据,地址空间的第三位(A2)才增加1,即A0和A1可以不接。此时的A0和A1应该是低电平。然后,SDRAM芯片即根据S3C2440给的行地址、列地址和L-Bank选择信号找到对应的地址空间,将该地址空间的4个字节发送到数据总线上。以此类推,数据位宽为8位,就arm芯片的A0接SDRAM的A0,16位就A1接A0,32位就A2接A0。
还有一个细节,即为什么SDRAM芯片的BA0~BA1连接的是S3C2440芯片的LADDR24~LADDR25引脚?
标签:
原文地址:http://blog.csdn.net/blackberrytcl/article/details/51361441