资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,5,章 存储器控制器,本章重点:,存储器控制器概述;,与存储器有关的功能描述;,存储器定时举例;,特殊功能寄存器含义;,使用,Nor Flash,作为引导,ROM,的实例;,使用,SDRAM,的实例。,5.1,存储器控制器,5.1.1,存储器控制器概述,S3C44B0X,与存储器相关的特性,S3C44B0X,寻址空间,S3C44B0X,寻址空间见图,5.1,。,图,5.1 S3C44B0X,存储器寻址空间,图,5.1,中,,nGCS0nGCS7,分别作为,bank0bank7,的选择信号。,图,5.1,中,从地址,0 x01c00000,起的,4MB,的存储器空间,作为特殊功能寄存器使用。这部分存储空间不需要在,S3C44B0X,片外另外配置存储器芯片,,S3C44B0X,片内已经提供了这,4MB,存储器空间的物理实现,可以直接使用,具体用法在后续章节分别说明。,S3C44B0X,采用存储器与,I,O,端口统一编址的寻址方式,因此,nGCS0nGCS7,也可以作为选择外设端口的信号使用,如选择网卡、电子盘、,USB,等。,图,5.1,中并不要求,8,个,banks,对应的存储器(或外设端口)全部安装或物理实现,在较小的系统中,只使用,bank0,和,bank6,。,bank0,使用闪速存储器,存储引导程序等;,bank6,使用,SDRAM,,保存机器启动后从电子盘上装入的需要运行的操作系统和应用程序及数据等。,参见图,5.1,,对于,bank6,和,bank7,,系统允许只使用,bank6,,或既使用,bank6,又使用,bank7,。在后一种情况下,,bank6,和,bank7,应该有相同的存储空间,而,bank7,的起址,是随着,bank6,存储空间的不同而改变的,详见表,5.1,。,表,5.1 bank6,和,bank7,的地址,地 址,2MB,4MB,8MB,16MB,32MB,bank6,起址,0 x0c00_0000,0 x0c00_0000,0 x0c00_0000,0 x0c00_0000,0 x0c00_0000,终址,0 x0c1f_ffff,0 x0c3f_ffff,0 x0c7f_ffff,0 x0cff_ffff,0 x0dff_ffff,bank7,起址,0 x0c20_0000,0 x0c40_0000,0 x0c80_0000,0 x0d00_0000,0 x0e00_0000,终址,0 x0c3f_ffff,0 x0c7f_ffff,0 x0cff_ffff,0 x0dff_ffff,0 x0fff_ffff,5.1.2,与存储器有关的功能描述,选择大小端数据格式,表,5.2,大小端格式选择,在复位期间,ENDIAN,输入引脚逻辑电平 大小端格式选择,0,小端,1,大端,确定各,bank,数据总线的宽度,确定,bank0,数据总线的宽度,对于,bank0,,数据总线宽度允许被配置成,8,16,32,位中的一种,配置方法见表,5.3,。,表,5.3 bank0,数据总线宽度的确定,输入引脚,OM1,:,0,逻辑电平,bank0,(引导,ROM,)数据总线宽度,00 8,位,01 16,位,10 32,位,11,测试,确定,bank1bank7,数据总线的宽度,bank1bank7,数据总线的宽度是可编程的,可以分别设置为,8,16,32,位中的一种,设置方法详见,5.1.4,小节。应该在第一次使用,bank1bank7,之前设定,一般应由引导,ROM,芯片中的程序进行设定。,可编程的存储器控制器,存储器控制器中有,13,个特殊功能寄存器,可以对它们编程,编程方法详见,5.1.4,小节。,地址总线与存储器,bank,地址线的连接方法,由于数据总线的宽度可以设置为,8,16,32,位中的一种,因此,S3C44B0X,的地址总线与存储器,bank,地址线的连接有三种不同的方法,见表,5.4,。,表,5.4,地址总线与存储器,bank,地址线的连接,存储器,bank,地址线,8,位数据总线时,bank,使用的地址总线,16,位数据总线时,bank,使用的地址总线,32,数据总线时,bank,使用的地址总线,A0,A0,A1,A2,A1,A1,A2,A3,A2,A2,A3,A4,A3,A3,A4,A5,大小端、数据总线及存储器单元,(,见参考书,P179-180),SDRAM,连接举例,【,例,5.1】S3C44B0X,与,SDRAM,的连接。,假定,S3C44B0X,的,bank6,实际配置的容量为,32MB,,数据总线宽度为,32,位,使用的,SDRAM,芯片内部构成为,4M*16,位*,2Banks,,使用,2,片,原理图连线见图,5.3,。,图,5.3 S3C44B0X,与,SDRAM,芯片的连接,引导,ROM,连接举例,【,例,5.2】S3C44B0X,与引导,ROM,芯片的连接。,假定,S3C44B0X,的,bank0,实际配置的容量为,8MB,,数据总线宽度为,16,位,使用的,EEPROM,Flash,芯片内部构成为,4M*8,位,使用,2,片,原理图连线见图,5.4,。,图,5.4 S3C44B0X,与引导,ROM,芯片的连接,5.1.3,存储器定时举例,ROM,SRAM,读、写定时举例,对某些定时参数设定了具体数值以后,,S3C44B0X,对,ROM,SRAM,发出的读定时信号见图,5.5,。(,P183,),对某些定时参数设定了具体数值以后,,S3C44B0X,对,ROM,SRAM,发出的写定时信号见图,5.6,。(,P184,),外部,nWAIT,信号对,ROM,SRAM,读、写定时的影响,见图,5.7,。(,P185,),SDRAM,读、写定时,5.1.4,存储器控制器特殊功能寄存器(,P186-191,),存储器控制器,13,个特殊功能寄存器,总线宽度与等待状态控制寄存器,该寄存器各位具体含义见表,5.10,,注意课件的表,5.10,,相对书本,在表中,WS5,、,WS4,、,WS3,、,WS2,、,WS1,行,作了修改。,表,5.10,总线宽度与等待状态控制寄存器含义,BWSCON,位,描 述,初 态,ST7,31,如果,bank7,使用,SRAM,,这,1,位确定是否使用,UB,LB,:,0=,不使用,UB,LB,(引脚,14,:,11,作为,nWBE3,:,0,);,1=,使用,UB,LB,(引脚,14,:,11,作为,nBE3,:,0,),0,WS7,30,这,1,位确定,bank7,允许,WAIT,状态与否:,(如果,bank7,使用,DRAM,或,SDRAM,,不支持等待功能),0=,禁止等待,1=,允许等待,0,DW7,29,:,28,这,2,位确定,bank7,数据总线宽度:,00=8,位,01=16,位,10=32,位,00,ST6,27,如果,bank6,使用,SRAM,,这,1,位确定是否使用,UB,LB,:,0=,不使用,UB,LB,(引脚,14,:,11,作为,nWBE3,:,0,);,1=,使用,UB,LB,(引脚,14,:,11,作为,nBE3,:,0,),0,WS6,26,这,1,位确定,bank6,允许,WAIT,状态与否:,(如果,bank6,使用,DRAM,或,SDRAM,,不支持等待功能),0=,禁止等待,1=,允许等待,0,DW6,25,:,24,这,2,位确定,bank6,数据总线宽度:,00=8,位,01=16,位,10=32,位,00,ST5,23,如果,bank5,使用,SRAM,,这,1,位确定是否使用,UB,LB,:,0=,不使用,UB,LB,(引脚,14,:,11,作为,nWBE3,:,0,);,1=,使用,UB,LB,(引脚,14,:,11,作为,nBE3,:,0,),0,WS5,22,这,1,位确定,bank5,允许,WAIT,状态与否:,0=,禁止等待,1=,允许等待,0,DW5,21,:,20,这,2,位确定,bank5,数据总线宽度:,00=8,位,01=16,位,10=32,位,00,ST4,19,如果,bank4,使用,SRAM,,这,1,位确定是否使用,UB,LB,:,0=,不使用,UB,LB,(引脚,14,:,11,作为,nWBE3,:,0,);,1=,使用,UB,LB,(引脚,14,:,11,作为,nBE3,:,0,),0,WS4,18,这,1,位确定,bank4,允许,WAIT,状态与否:,0=,禁止等待,1=,允许等待,0,DW4,17,:,16,这,2,位确定,bank4,数据总线宽度:,00=8,位,01=16,位,10=32,位,00,ST3,15,如果,bank3,使用,SRAM,,这,1,位确定是否使用,UB,LB,:,0=,不使用,UB,LB,(引脚,14,:,11,作为,nWBE3,:,0,);,1=,使用,UB,LB,(引脚,14,:,11,作为,nBE3,:,0,),0,WS3,14,这,1,位确定,bank3,允许,WAIT,状态与否:,0=,禁止等待,1=,允许等待,0,DW3,13,:,12,这,2,位确定,bank3,数据总线宽度:,00=8,位,01=16,位,10=32,位,00,ST2,11,如果,bank2,使用,SRAM,,这,1,位确定是否使用,UB,LB,:,0=,不使用,UB,LB,(引脚,14,:,11,作为,nWBE3,:,0,);,1=,使用,UB,LB,(引脚,14,:,11,作为,nBE3,:,0,),0,WS2,10,这,1,位确定,bank2,允许,WAIT,状态与否:,0=,禁止等待,1=,允许等待,0,DW2,9,:,8,这,2,位确定,bank2,数据总线宽度:,00=8,位,01=16,位,10=32,位,00,ST1,7,如果,bank1,使用,SRAM,,这,1,位确定是否使用,UB,LB,:,0=,不使用,UB,LB,(引脚,14,:,11,作为,nWBE3,:,0,);,1=,使用,UB,LB,(引脚,14,:,11,作为,nBE3,:,0,),0,WS1,6,这,1,位确定,bank1,允许,WAIT,状态与否:,0=,禁止等待,1=,允许等待,0,DW1,5,:,4,这,2,位确定,bank1,数据总线宽度:,00=8,位,01=16,位,10=32,位,00,DW0,2,:,1,指示,bank0,数据总线宽度(只读):,00=8,位,01=16,位,10=32,位,这些状态是通过,OM1,:,0,引脚设置的,ENDIAN,0,指示大小端格式(只读):,0=,小端,1=,大端,该状态是由,ENDIAN,引脚设置的,BANKCON0BANKCON5,寄存器,BANKCON6,和,BANKCON7,寄存器,刷新控制寄存器,BANKSIZE,寄存器,SDRAM,模式寄存器设置寄存器,对,13,个存储器控制器寄存器设置参数,【,例,5.3】,复位,(reset),后对,13,个存储器控制器寄存器的配置程序。注意必须使用,STMIA,指令写入,13,个寄存器。另外,由于涉及到对,SDRAM,的,MRSR,(模式寄存器设置寄存器)的配置,以下程序不应该从,SDRAM,中取出运行,通常程序应在引导,ROM,中。(,P192,),5.2,存储器组成实例,5.2.1,使用,Nor Flash,作为引导,ROM,的实例,闪存基础知识,闪速存储器(,flash memory,)是半导体存储器的一种,简称闪存。闪存芯片在断电后仍能保持芯片内信息不丢失,而在正常供电时,系统自身(,In_System,)可以擦除和写入信息。,闪存具有低功耗、大容量、擦写速度快、可整片或分扇区由系统自身编程(烧写)、擦除等特点。目前常用的闪存主要有两种类型,一种是,Nor Flash,(称为或非型闪存、,Nor,闪存),另一种是,Nand,Flash,(称为与非型闪存、,Nand,闪存)。,Am29LV160,芯片介绍,芯片引脚逻辑符号表示见图,5.8,,芯片引脚信号含义见表,5.17,。,图,5.8 Am29LV160,引脚逻辑符号图,Am29LV160,芯片内部功能模块,芯片使用单一电源供电,内部有擦除电压发生器和编程电压发生器,产生擦除和编程各自需要的高压。片内命令寄存器可以保存片外送来的命令,由内嵌算法,变成适当的操作。引入的地址线锁存后,经由,X,和,Y,译码器,选中存储单元阵列中对应的单元;如果是读操作,读出数据经由数据锁存和,I,O,缓冲器,从,DQ15,(,A-1,),DQ0,引脚输出。,见图,5.9 (P195),Am29LV160,常用命令,通过写指定地址和数据命令或命令序列到芯片命令寄存器,使得芯片内部开始指定的操作。表,5.19,列出了定义的部分常用的合法的寄存器命令序列。写一个不正确的地址和数据,或以不正确的序列写它们,会导致进入复位(,reset,)。,(,表见,P195),读出数据命令,编程命令,整片擦除命令,Am29LV160,与,S3C44B0X,连接举例,使用,Am29LV160,闪存芯片,作为引导,ROM,,与,S3C44B0X,连接实例见图,5.10,。,图,5.10 Am29LV160,与,S3C44B0X,连接,5.2.2,使用,SDRAM,的实例,SDRAM,基础知识,SDRAM,(,Synchronous Dynamic Random Access Memory,,同步动态随机存储器)是在标准,DRAM,(动态随机存储器)中加入同步控制逻辑,利用一个单一的系统时钟同步所有的地址、数据和控制信号,使得,SDRAM,能够与系统工作在相同的频率上。,SDRAM,芯片由于存储密度大,读、写速度快,支持突发式读、写操作以及相对低廉的价格,在嵌入式系统中得到了广泛的应用。,SDRAM,芯片在嵌入式系统中常常作为主存储器(内存、系统存储器)使用。在,S3C44B0X,组成的系统中,,SDRAM,常常用作主存,保存需要运行的操作系统、用户程序、数据、堆栈和文字池等,关机以后,内容丢失。,SDRAM,内部操作可以分成多个命令,不同的命令是由芯片控制引脚不同的电平决定的。常用的命令有:模式寄存器设置、空操作、,Bank,激活、读、,,详见表,5.21,。对,SDRAM,的访问是由一系列的命令完成的。,SDRAM,内部可以分为多个,Banks,(体),每个,Bank,就是一块存储区(或称为一块存储阵列),常见的,SDRAM,有,2,个或,4,个,Banks,。选择芯片内部某一指定的存储单元,使用的地址可以分为,Bank,、行、列地址三部分。,SDRAM,初始化、常用命令和操作介绍,SDRAM,初始化,模式寄存器设置(,MRS,),预充电(,precharge,),自动预充电(,auto,precharge,),Bank,行激活和列地址送出及读(写),突发传输,自动刷新与自我刷新,HY57V561620,芯片介绍,HY57V561620,芯片是,Hynix,公司生产的一种,SDRAM,芯片,容量为,4M*4Banks*16,位,即,32MB,。,HY57V561620,芯片主要特点:,单一的,3.30.3V,电源;,所有引脚与,LVTTL,接口兼容;,所有输入与输出以系统时钟上升沿为基准;,使用,UDQM,、,LDQM,实现数据屏蔽功能;,片内有,4,个,Banks,;,支持自动刷新和自我刷新;,每,64ms,有,8192,个刷新周期;,可编程的突发长度和突发类型:,对顺序突发传输,传输长度为,1,,,2,,,4,,,8,或全页;,对交替(,interleave,)突发传输,传输长度为,1,,,2,,,4,,,8,。,行地址到列地址时间,Trcd,可编程:,2,个或,3,个系统时钟周期;,读或写突发周期能被命令停止,或能被中断。,HY57V561620,芯片引脚,芯片引脚逻辑符号表示见图,5.11,。,HY57V561620,芯片内部功能模块,HY57V561620,芯片内部功能模块见图,5.12,。,(,P200,),HY57V561620,芯片命令真值表,HY57V561620,芯片命令真值表,见表,5.21,。,(,P200,),模式寄存器设置命令,由存储器控制器控制完成一次突发读操作(突发长度,=1,),由存储器控制器控制完成一次突发读操作(突发长度,=8,),HY57V561620,芯片与,S3C44B0X,连接举例,S3C44B0X,为,SDRAM,预留了,bank6,和,bank7,的位置,,bank6,的起址为,0 x0c000000,,在本例中,选体信号,nGCS6,nSCS0,nRAS0,作为,SDRAM,的片选信号。,在系统的引导,ROM,中要编写初始化存储器控制器寄存器的代码,系统启动后存储器控制器要对,SDRAM,初始化。,图,5.13,给出了,HY57V561620,芯片与,S3C44B0X,的连接实例。,图,5.13 HY57V561620,芯片与,S3C44B0X,的连接,S3C44B0X,连接,SDRAM,读定时举例,在随后的图,5.14,和图,5.15,中,某些定时参数的时间长度是常数值,参数含义及时间长度见表,5.24,;另外一些定时参数的时间长度,可以通过设置存储器控制器寄存器的值而改变,或者由于,SDRAM,工作速度不同而不同,见表,5.25,。(具体内容见,P203-204,),END,
展开阅读全文