《第5章基于ARM7TDMI的S3C44B0X嵌入式微处理器技术.ppt》由会员分享,可在线阅读,更多相关《第5章基于ARM7TDMI的S3C44B0X嵌入式微处理器技术.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第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片外另外配置存储器芯片,S3C
2、44B0X片内已经提供了这4MB存储器空间的物理实现,可以直接使用,具体用法在后续章节分别说明。S3C44B0X采用存储器与IO端口统一编址的寻址方式,因此nGCS0nGCS7也可以作为选择外设端口的信号使用,如选择网卡、电子盘、USB等。图5.1中并不要求8个banks对应的存储器(或外设端口)全部安装或物理实现,在较小的系统中,只使用bank0和bank6。bank0使用闪速存储器,存储引导程序等;bank6使用SDRAM,保存机器启动后从电子盘上装入的需要运行的操作系统和应用程序及数据等。参见图5.1,对于bank6和bank7,系统允许只使用bank6,或既使用bank6又使用bank
3、7。在后一种情况下,bank6和bank7应该有相同的存储空间,而bank7的起址,是随着bank6存储空间的不同而改变的,详见表5.1。表5.1 bank6和bank7的地址地地 址址2MB4MB8MB16MB32MBbank6起址起址0 x0c00_00000 x0c00_00000 x0c00_00000 x0c00_00000 x0c00_0000终址终址0 x0c1f_ffff0 x0c3f_ffff0 x0c7f_ffff0 x0cff_ffff0 x0dff_ffffbank7起址起址0 x0c20_00000 x0c40_00000 x0c80_00000 x0d00_0000
4、0 x0e00_0000终址终址0 x0c3f_ffff0 x0c7f_ffff0 x0cff_ffff0 x0dff_ffff0 x0fff_ffff5.1.2 与存储器有关的功能描述 选择大小端数据格式表5.2 大小端格式选择在复位期间ENDIAN输入引脚逻辑电平 大小端格式选择 0 小端 1 大端 确定各bank数据总线的宽度 确定bank0数据总线的宽度 对于bank0,数据总线宽度允许被配置成81632位中的一种,配置方法见表5.3。表5.3 bank0数据总线宽度的确定输入引脚OM1:0逻辑电平 bank0(引导ROM)数据总线宽度 00 8位 01 16位 10 32位 11 测
5、试 确定bank1bank7数据总线的宽度 bank1bank7数据总线的宽度是可编程的,可以分别设置为81632位中的一种,设置方法详见5.1.4小节。应该在第一次使用bank1bank7之前设定,一般应由引导ROM芯片中的程序进行设定。可编程的存储器控制器 存储器控制器中有13个特殊功能寄存器,可以对它们编程,编程方法详见5.1.4小节。地址总线与存储器bank地址线的连接方法 由于数据总线的宽度可以设置为81632位中的一种,因此S3C44B0X的地址总线与存储器bank地址线的连接有三种不同的方法,见表5.4。表5.4 地址总线与存储器bank地址线的连接存储器存储器bank地址地址线
6、线8位数据总位数据总线时线时bank使用使用的地址总的地址总线线16位数据位数据总线时总线时bank使用使用的地址总线的地址总线32数据总数据总线时线时bank使用使用的地址总线的地址总线A0A0A1A2A1A1A2A3A2A2A3A4A3A3A4A5 大小端、数据总线及存储器单元 (见参考书P179-180)SDRAM连接举例【例5.1】S3C44B0X与SDRAM的连接。假定S3C44B0X的bank6实际配置的容量为32MB,数据总线宽度为32位,使用的SDRAM芯片内部构成为4M*16位*2Banks,使用2片,原理图连线见图5.3。图5.3 S3C44B0X与SDRAM芯片的连接 引
7、导ROM连接举例【例5.2】S3C44B0X与引导ROM芯片的连接。假定S3C44B0X的bank0实际配置的容量为8MB,数据总线宽度为16位,使用的EEPROMFlash芯片内部构成为4M*8位,使用2片,原理图连线见图5.4。图5.4 S3C44B0X与引导ROM芯片的连接 5.1.3 存储器定时举例 ROMSRAM读、写定时举例 对某些定时参数设定了具体数值以后,S3C44B0X对ROMSRAM发出的读定时信号见图5.5。(P183)对某些定时参数设定了具体数值以后,S3C44B0X对ROMSRAM发出的写定时信号见图5.6。(P184)外部nWAIT信号对ROMSRAM读、写定时的影
8、响 见图5.7。(P185)SDRAM读、写定时5.1.4 存储器控制器特殊功能寄存器(P186-191)存储器控制器13个特殊功能寄存器 总线宽度与等待状态控制寄存器 该寄存器各位具体含义见表5.10,注意课件的表5.10,相对书本,在表中WS5、WS4、WS3、WS2、WS1 行,作了修改。表5.10 总线宽度与等待状态控制寄存器含义BWSCON位描 述初 态ST731如果bank7使用SRAM,这1位确定是否使用UBLB:0=不使用UBLB(引脚14:11作为nWBE3:0);1=使用UBLB(引脚14:11作为nBE3:0)0WS730这1位确定bank7允许WAIT状态与否:(如果b
9、ank7使用DRAM或SDRAM,不支持等待功能)0=禁止等待 1=允许等待0DW729:28这2位确定bank7数据总线宽度:00=8位 01=16位 10=32位00ST627如果bank6使用SRAM,这1位确定是否使用UBLB:0=不使用UBLB(引脚14:11作为nWBE3:0);1=使用UBLB(引脚14:11作为nBE3:0)0WS626这1位确定bank6允许WAIT状态与否:(如果bank6使用DRAM或SDRAM,不支持等待功能)0=禁止等待 1=允许等待0DW625:24这2位确定bank6数据总线宽度:00=8位 01=16位 10=32位00ST523如果bank5使
10、用SRAM,这1位确定是否使用UBLB:0=不使用UBLB(引脚14:11作为nWBE3:0);1=使用UBLB(引脚14:11作为nBE3:0)0WS522这1位确定bank5允许WAIT状态与否:0=禁止等待 1=允许等待0DW521:20这2位确定bank5数据总线宽度:00=8位 01=16位 10=32位00ST419如果bank4使用SRAM,这1位确定是否使用UBLB:0=不使用UBLB(引脚14:11作为nWBE3:0);1=使用UBLB(引脚14:11作为nBE3:0)0WS418这1位确定bank4允许WAIT状态与否:0=禁止等待 1=允许等待0DW417:16这2位确定
11、bank4数据总线宽度:00=8位 01=16位 10=32位00ST315如果bank3使用SRAM,这1位确定是否使用UBLB:0=不使用UBLB(引脚14:11作为nWBE3:0);1=使用UBLB(引脚14:11作为nBE3:0)0WS314这1位确定bank3允许WAIT状态与否:0=禁止等待 1=允许等待0DW313:12这2位确定bank3数据总线宽度:00=8位 01=16位 10=32位00ST211如果bank2使用SRAM,这1位确定是否使用UBLB:0=不使用UBLB(引脚14:11作为nWBE3:0);1=使用UBLB(引脚14:11作为nBE3:0)0WS210这1
12、位确定bank2允许WAIT状态与否:0=禁止等待 1=允许等待0DW29:8这2位确定bank2数据总线宽度:00=8位 01=16位 10=32位00ST17如果bank1使用SRAM,这1位确定是否使用UBLB:0=不使用UBLB(引脚14:11作为nWBE3:0);1=使用UBLB(引脚14:11作为nBE3:0)0WS16这1位确定bank1允许WAIT状态与否:0=禁止等待 1=允许等待0DW15:4这2位确定bank1数据总线宽度:00=8位 01=16位 10=32位00DW02:1指示bank0数据总线宽度(只读):00=8位 01=16位 10=32位这些状态是通过OM1:
13、0引脚设置的ENDIAN0指示大小端格式(只读):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 Fl
14、ash作为引导ROM的实例 闪存基础知识 闪速存储器(flash memory)是半导体存储器的一种,简称闪存。闪存芯片在断电后仍能保持芯片内信息不丢失,而在正常供电时,系统自身(In_System)可以擦除和写入信息。闪存具有低功耗、大容量、擦写速度快、可整片或分扇区由系统自身编程(烧写)、擦除等特点。目前常用的闪存主要有两种类型,一种是Nor Flash(称为或非型闪存、Nor闪存),另一种是Nand Flash(称为与非型闪存、Nand闪存)。Am29LV160芯片介绍 芯片引脚逻辑符号表示见图5.8,芯片引脚信号含义见表5.17。图5.8 Am29LV160引脚逻辑符号图 Am29LV
15、160芯片内部功能模块 芯片使用单一电源供电,内部有擦除电压发生器和编程电压发生器,产生擦除和编程各自需要的高压。片内命令寄存器可以保存片外送来的命令,由内嵌算法,变成适当的操作。引入的地址线锁存后,经由X和Y译码器,选中存储单元阵列中对应的单元;如果是读操作,读出数据经由数据锁存和IO缓冲器,从DQ15(A-1)DQ0引脚输出。见图5.9 (P195)Am29LV160常用命令 通过写指定地址和数据命令或命令序列到芯片命令寄存器,使得芯片内部开始指定的操作。表5.19列出了定义的部分常用的合法的寄存器命令序列。写一个不正确的地址和数据,或以不正确的序列写它们,会导致进入复位(reset)。(
16、表见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芯片由于存储密度大,读、写速度快
17、,支持突发式读、写操作以及相对低廉的价格,在嵌入式系统中得到了广泛的应用。SDRAM芯片在嵌入式系统中常常作为主存储器(内存、系统存储器)使用。在S3C44B0X组成的系统中,SDRAM常常用作主存,保存需要运行的操作系统、用户程序、数据、堆栈和文字池等,关机以后,内容丢失。SDRAM内部操作可以分成多个命令,不同的命令是由芯片控制引脚不同的电平决定的。常用的命令有:模式寄存器设置、空操作、Bank激活、读、,详见表5.21。对SDRAM的访问是由一系列的命令完成的。SDRAM内部可以分为多个Banks(体),每个Bank就是一块存储区(或称为一块存储阵列),常见的SDRAM有2个或4个Ban
18、ks。选择芯片内部某一指定的存储单元,使用的地址可以分为Bank、行、列地址三部分。SDRAM初始化、常用命令和操作介绍 SDRAM初始化 模式寄存器设置(MRS)预充电(precharge)自动预充电(auto precharge)Bank行激活和列地址送出及读(写)突发传输 自动刷新与自我刷新 HY57V561620芯片介绍 HY57V561620芯片是Hynix 公司生产的一种SDRAM芯片,容量为4M*4Banks*16位,即32MB。HY57V561620芯片主要特点:单一的3.30.3V电源;所有引脚与LVTTL接口兼容;所有输入与输出以系统时钟上升沿为基准;使用UDQM、LDQM
19、实现数据屏蔽功能;片内有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。(P2
20、00)模式寄存器设置命令 由存储器控制器控制完成一次突发读操作(突发长度=1)由存储器控制器控制完成一次突发读操作(突发长度=8)HY57V561620芯片与S3C44B0X连接举例 S3C44B0X为SDRAM预留了bank6和bank7的位置,bank6的起址为0 x0c000000,在本例中,选体信号nGCS6nSCS0nRAS0作为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