本节书摘来自异步社区《嵌入式Linux软硬件开发详解——基于S5PV210处理器》一书中的第2章,第2.2节,作者 刘龙,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.2 DDR2 SDRAM芯片
SDRAM全称为同步动态随机存储器(Synchronous Dynamic Random Access Memory)。由于SDRAM集成度高,单片存储容量大,并且读写速度快,在设计嵌入式系统时,经常用其作为主存储器(或称为内存)。SDRAM发展至今,经历了SDRAM、DDR、DDR2、DDR3等几代产品,DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器,较SDRAM速度更快。在SDRAM或DDR RAM定义中,同步是指其时钟频率与CPU前端总线的系统时钟频率相同,并且内部命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是*指定地址进行数据的读写。
Smart210开发板使用的是DDR2 SDRAM,型号为K4T1G084QQ,单芯片容量设计为16MBit×8BANK×8I/Os,共128MByte,板载一共4片,总计512MB。注意,芯片内部的8Bank不是指该芯片需要占用S5PV210芯片的8个存储块,而是指SDRAM芯片内部把128MB容量分成了8块存储区,每块存储区的容量为16Mx8bit。
2.2.1 DDR2 SDRAM工作原理
如图2-4所示,SDRAM内部是一个存储阵列,我们可以把它想象成一个表格,和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元。这个表格的整体则称为BANK。DDR2 SDRAM具有8个BANK。对SDRAM的访问,我们应该先找到读写地址,才能对其进行访问。找到地址的流程为首先指定BANK,然后指定行地址,最后指定列地址。
K4T1G084QQ采用的是FBGA球形封装,不同于普通的贴片封装。K4T1G084QQ的引脚分布及封装示意图如图2-5、图2-6所示。
K4T1G084QQ引脚功能如表2-2所示。
上述引脚中,比较特殊的是ODT引脚。ODT(On-Die Termination)的含义为内建核心终结电阻器。所谓的终结,就是让电路的终端将信号吸收掉,而不会在电路上面形成反射,对后面的信号造成影响。在DDR时代,控制与数据信号的终结在主板上面完成,每块DDR主板在内存槽的旁边都会有一个终结电压部分的设计,它主要由一排终结电阻构成。随着SDRAM技术的发展,ODT技术将终结电阻移植到了芯片内部。主板上面不再有终结电路,而且DDR2可以根据自己的特点内建合适的终结电阻,这样可以保证最佳的信号波形。ODT技术允许CPU通过配置DDR2 SDRAM的内部寄存器以及控制ODT信号,来实现对匹配电阻的值及其开关状态的控制,从而实现读、写操作时最佳的信号完整性。在Smart210开发板上面,DDR2 RAM芯片的ODT引脚与S5PV210的ODT1引脚连接,信号由S5PV210来控制。
2.2.2 DDR2 SDRAM硬件设计
DDR2 SDRAM与S5PV210的地址线、数据线及控制引脚连接方式如图2-7所示。Smart210开发板一共有4片K4T1G084QQ,4片DRAM的连接方式不同:第1片的8位数据引脚连接至CPU的Xm1DATA0~Xm1DATA7;第2片的8位数据引脚连接至CPU的Xm1DATA8~Xm1DATA15;第3片的8位数据引脚连接至CPU的Xm1DATA16~Xm1DATA23;第4片的8位数据引脚连接至CPU的Xm1DATA24~Xm1DATA31。可以看出,4片DDR2 RAM采用的是并接到一起组成32位数据总线的方式。
Smart210开发板具有4片K4T1G084QQ,共计512MB。在CPU的内部寻址空间中,字节BYTE(8位)是表示存储容量的唯一单位,而在DDR2 RAM中存储单位为位Bit(1位),K4T1G084QQ的存储容量为1GBit,折合成BYTE为128MB。Smart210开发板设计中K4T1G084QQ采用8位的数据输出方式,所以4片DDR2 SDRAM的数据引脚并接(4×8Bit=32Bit),正好组成S5PV210处理器的32位数据总线宽度。
K4T1G084QQ的地址总线A0~A13连接到S5PV210的Xm1ADDR0~Xm1ADDR13引脚,共14根地址总线,采用的是8位的数据输出方式,因此地址总线给出的地址范围为214×8Bit=16MB,K4T1G084QQ的BA0、BA1和BA2引脚为内部8个Bank的选择引脚(23=8),连接到S5PV210的Xm1BA0、Xm1BA1和Xm1CSn1/BA2引脚。S5PV210控制对K4T1G084QQ内部Bank的选择使用。3条Bank选择引脚和14根地址总线共完成23×214×8Bit=128MB内存空间的访问。
4片DDR2 SDRAM的片选信号nCS引脚连接的皆为S5PV210的Xm1CSn0引脚,即S5PV210的DRAM0控制引脚,从表2-1可以看出,DDR2 SDRAM的地址应该是从0x20000000开始的连续512MB地址空间。