嵌入式系统的存储器系统.ppt_第1页
嵌入式系统的存储器系统.ppt_第2页
嵌入式系统的存储器系统.ppt_第3页
嵌入式系统的存储器系统.ppt_第4页
嵌入式系统的存储器系统.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计 基于ARM9微处理器S3C2410A 第4章 嵌入式系统的存储器系统 南阳师范学院 张帅,4.1 存储器系统概述,4.1.1 存储器系统的层次结构 计算机系统的存储器被组织成一个6个层次的金字塔形的层次结构,如图4.1.1所示: S0层为CPU内部寄存器 S1层为芯片内部的高速缓存(cache) S2层为芯片外的高速缓存(SRAM、DRAM、DDRAM) S3层为主存储器(Flash、PROM、EPROM、EEPROM) S4层为外部存储器(磁盘、光盘、CF、SD卡) S5层为远程二级存储(分布式文件系统、Web服务器),图4.1.1 存储器系统层次结构,在这种存储器分层结构中,上面一层的存储器作为下一层存储器的高速缓存。 CPU寄存器就是cache的高速缓存,寄存器保存来自cache的字; cache又是内存层的高速缓存,从内存中提取数据送给CPU进行处理,并将CPU的处理结果返回到内存中; 内存又是主存储器的高速缓存,它将经常用到的数据从Flash等主存储器中提取出来,放到内存中,从而加快了CPU的运行效率。 嵌入式系统的主存储器容量是有限的,磁盘、光盘或CF、SD卡等外部存储器用来保存大信息量的数据。在某些带有分布式文件系统的嵌入式网络系统中,外部存储器就作为其他系统中被存储数据的高速缓存。,4.2.1 常见的嵌入式系统存储设备 1RAM(随机存储器) RAM可以被读和写,地址可以以任意次序被读。常见RAM的种类有SRAM(Static RAM,静态随机存储器)、DRAM(Dynamic RAM,动态随机存储器)、DDRAM(Double Data Rate SDRAM,双倍速率随机存储器)。其中,SRAM比DRAM运行速度快,SRAM比DRAM耗电多,DRAM需要周期性刷新。 2ROM(只读存储器) ROM在烧入数据后,无需外加电源来保存数据,断电后数据不丢失,但速度较慢,适合存储需长期保留的不变数据。在嵌入式系统中,ROM用固定数据和程序。,4.2 嵌入式系统存储设备分类,3Flash Memory Flash memory(闪速存储器)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失。但在使用Flash Memory时,必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。 Flash Memory是一种非易失性存储器,根据结构的不同可以将其分成NOR Flash和NAND Flash两种。 Flash Memory在物理结构上分成若干个区块,区块之间相互独立。NOR Flash把整个存储区分成若干个扇区(Sector),而NAND Flash把整个存储区分成若干个块(Block),可以对以块或扇区为单位的内存单元进行擦写和再编程。,NAND和NOR性能比较,NOR和NAND是现在市场上两种主要的非易失闪存技术 NOR的读速度比NAND稍快一些 NAND的写入速度比NOR快很多 NAND的擦除速度远比NOR的快 大多数写入操作需要先进行擦除操作 NAND的擦除单元更小,相应的擦除电路更少,NAND和NOR接口差别,NOR flash带有SRAM接口,线性寻址,可以很容易地存取其内部的每一个字节 NAND flash使用复用接口和控制I/O多次寻址存取数据 NAND读和写操作采用512字节的块,这一点有点像硬盘管理,此类操作易于取代硬盘等类似的块设备,NAND和NOR容量和成本,NAND flash生产过程更为简单,成本低 常见的NOR flash为128KB16MB,而NAND flash通常有512MB2GB NOR主要应用在代码存储介质中,NAND适合于数据存储 NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大,NAND和NOR可靠性和耐用性,在NAND中每块的最大擦写次数是100万次,而NOR的擦写次数是10万次 位交换的问题NAND flash中更突出,需要ECC纠错 NAND flash中坏块随机分布,需要通过软件标定产品量产的问题,应用程序可以直接在NOR Flash内运行,不需要再把代码读到系统RAM中运行。NOR Flash的传输效率很高,在14MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NAND Flash结构可以达到高存储密度,并且写入和擦除的速度也很快,应用NAND Flash的困难在于需要特殊的系统接口。 在NOR Flash上运行代码不需要任何的软件支持。在NAND Flash上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD )。NAND Flash和NOR Flash在进行写入和擦除操作时都需要MTD。在NAND Flash中每个块的最大擦写次数是一百万次,而NOR Flash的擦写次数是十万次。NAND Flash除了具有10:1的块擦除周期优势,典型的NAND Flash块尺寸要比NOR型闪存小8倍,每个NAND Flash的内存块在给定的时间内删除次数要少一些。,NAND和NOR软件支持,4标准存储卡(Compact Flash,CF卡) 5安全数据卡(Secure Digital Card,SD卡) 6硬盘存储器 最常见的硬盘接口是IDE(ATA)和SCSI两种,一些移动硬盘采用PCMCIA或USB接口。,4.4 NAND Flash接口电路,4.4.1 S3C2410A NAND Flash控制器 1S3C2410A NAND Flash控制器特性 目前,Nor Flash价格较高,而SDRAM和 Nand Flash存储器相对经济,这样促使一些用户在NAND Flash上执行启动代码,在 SDRAM 上执行主程序。 S3C2410A可以在一个外部NAND Flash存储器上执行启动代码,用来实现这一想法。为了支持NAND Flash的启动装载(boot loader),S3C2410A配置了一个叫做“Steppingstone”的内部SRAM缓冲器。当系统启动时,NAND Flash存储器的前4KB将被自动加载到Steppingstone中,然后系统自动执行这些载入的启动代码。 在一般情况下,启动代码将复制NAND Flash的内容到SDRAM中。使用S3C2410A内部硬件ECC功能可以对NAND Flash的数据的有效性进行检查。在复制完成后,将在SDRAM中执行主程序。,NAND Flash控制器具有以下特性: NAND Flash模式:支持读擦除编程NAND Flash存储器。 自动启动模式:复位后,启动代码被传送到Steppingstone中。传送完毕后,启动代码在Steppingstone中执行。 具有硬件ECC产生模块(硬件生成校验码和通过软件校验)。 在NAND Flash启动后,Steppingstone 4KB内部SRAM缓冲器可以作为其他用途使用。 NAND Flash控制器不能通过DMA访问,可以使用LDM/ STM指令来代替DMA操作。 2S3C2410A NAND Flash控制器结构 NAND Flash控制器的内部结构方框图如图4.4.1所示。NAND Flash的工作模式如图4.4.2所示。,图4.4.1 NAND Flash控制器内部结构方框图,图4.4.2 NAND Flash的操作模式,自动启动模式的时序如下: (1)完成复位; (2)当自动启动模式使能时,首先将NAND Flash存储器的前4 KB内容自动复制到Steppingstone 4 KB内部缓冲器中; (3)Steppingstone映射到nGCSO; (4)CPU开始执行在Steppingstone 4 KB内部缓冲器中的启动代码。 注意:在自动启动模式,不进行ECC检测。因此,应确保NAND Flash的前4 KB不能有位错误。 NAND Flash模式配置: 利用NFCONF寄存器设置NAND Flash配置; 写NAND Flash命令到NFCMD寄存器; 写NAND Flash地址到NFADDR寄存器; 在检查NAND Flash状态时,利用NFSTAT寄存器读写数据。在读操作之前或者编程操作之后应该检查R/nB信号。,在复制NAND FLASH的前4KB到Steppingstone的过程中,ECC不会被检查,这就必须保证所用NAND的前4KB没有坏位。如果使用三星的NAND FLASH,这一点是完全可以保证的,三星NAND FLASH的Block0是没有坏位的,访问时不用进行错误校验。使用其他品牌的NAND FLASH要看数据手册,确认其Block0在出厂时保证无错,方可与S3C2410配合使用,进行NAND方式的启动。 2410的手册上明白写着2410的NAND控制器可以自动LOAD 4K CODE到RAM,只是必须保证这4K FLASH 没坏块。nand FLASH手册,block0是保证出厂不是坏的,其他块就不保证了 在NAND FLASH用户手册中,三星NAND FLASH对于坏块已经做了很详细的说明: The 1st block, which is placed on 00h block address, is fully guaranteed to be a valid block, does not require Error Correction.,NAND Flash控制器的引脚配置如表4.4.1所列。,表4.4.1 NAND Flash控制器的引脚配置,BOOT(启动)和NAND Flash配置如下: (1)OM1: 0=00b:使能NAND Flash控制器为自动启动模式; (2)NAND Flash存储器的页面大小应该为512字节; (3)NCON:NAND Flash存储器寻址步选择。0为3步寻址;1为4步寻址。,相关寄存器: NAND Flash配置寄存器 NFCONF 地址0x4E000000 NAND Flash命令设置寄存器 NFCMD 地址0x4E000004 NAND Flash地址设置寄存器 NFADDR 地址0x4E000008 NAND Flash数据寄存器 NFDATA 地址0x4E00000C NAND Flash操作状态寄存器 NFSTAT 地址0x4E000010 NAND Flash ECC寄存器 NFECC 地址0x4E000014,4.4.2 NAND Flash的物理组成 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块Nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的: 1block = 32page 1page = 512bytes(datafield) + 16bytes(oob) NandFlash以页为单位读写数据,而以块为单位擦除数据。按照k9f1208的组织方式可以分四类地址: Column Address、halfpage pointer、Page Address 、Block Address。,Nand Flash地址周期表,这里以64MB 的NandFlash为例 A0:25表示数据在64M空间中的地址。 Column Address表示数据在半页中的地址,大小范围0-255,用A0:7表示;halfpage pointer表示半页在整页中的位置,即在0-255空间还是在256-511空间,用A8表示;Page Address表示页在块中的地址,大小范围0-31,用A13:9表示; Block Address表示块在flash中的位置,大小范围04095,A25:14 表示。,4.4.3 S3C2410A与NAND Flash存储器的接口电路 与NOR Flash存储器相比,NAND Flash的接口相对比较复杂。一些嵌入式处理器芯片内部配置了专门的NAND Flash控制器,如S3C2410A。 S3C2410A与NAND Flash存储器K9F1208UDM-YCB0接口电路如图4.4.4所示。K9F1208UDM-YCB0的存储容量为64M字节,数据总线宽度为8位,工作电压为2.7V3.6V,采用TSOP-48封装。仅需单3.3V电压即可完成在系统的编程与擦除操作,引脚端功能如表4.4.3所示。,表4.4.3 K9F1208UDM的引脚功能,K9F1208UDM的I/O口既可接收和发送数据,也可接收地址信息和控制命令。在CLE有效时,锁存在I/O口上的是控制命令字;在ALE有效时,锁存在I/O口上的是地址;/RE或/WE有效时,锁存的是数据。这种一口多用的方式可以大大减少总线的数目,只是控制方式略微有些复杂。利用S3C2410A处理器的NAND Flash控制器可以解决这个问题。 在图4.4.4中,K9F1208UDM的ALE和CLE端分别与S3C2410A的ALE和CLE端连接,8位的I/O7I/O0与S3C2410A低8位数据总线DATA7DATA0相连,/WE、/RE和/CE分别与S3C2410A的nFWE、nFRE和nFCE相连,R/B与RnB相连,为增加稳定性R/nB端口连接了一个上拉电阻。同时,S3C2410A的NCON配置端口必须连接一个上拉电阻。,图4.4.4 S3C2410A与K9F1208UDM-YCB0接口电路,4.5 SDRAM接口电路,SDRAM可读可写,不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器。在嵌入式系统中,SDRAM主要用做程序的运行空间、数据及堆栈区。当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都放在SDRAM中。 SDRAM在各种嵌入式系统中应用时,为避免数据丢失,必须定时刷新。因此要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。S3C2410A及其他一些ARM芯片在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM接口。但某些ARM芯片则没有SDRAM刷新控制逻辑,不能直接与SDRAM接口,在进行系统设计时应注意这一点。 那么要隔多长时间重复一次刷新呢?目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。,SDRAM是多Bank结构,例如在一个具有两个Bank的SDRAM的模组中,其中一个Bank在进行预充电期间,另一个Bank却马上可以被读取,这样当进行一次读取后,又马上去读取已经预充电Bank的数据时,就无需等待而是可以直接读取了,这也就大大提高了存储器的访问速度。 为了实现这个功能,SDRAM需要增加对多个Bank的管理,实现控制其中的Bank。 进行预充电。在一个具有2个以上Bank的SDRAM中,一般会多一根叫做BAn的引脚,用来实现在多个Bank之间的选择。,引脚连接:,1).数据线DQ0-DQ15 这个与2410的数据总线对应连接就可以了。 2).行/列地址线A0-A12 由于2410是按照字节寻址,但SDRAM是16Bit半字宽度,所以连接时需要错开一位,将A0连到处理器的A1,而如果系统是通过两块k4s561632串联实现32Bit数据宽度,所以需要进行字对齐连接,将A0接到A2地址总线上,其他顺次接。,3).Bank地址线BA0-BA1 在2410的手册里面,有个SDRAM BANK ADDRESS PIN CONNECTION表,里面规定了不同组织结构的SDARM的Bank地址线。所以首先要明白存储器的组织结构,看K4S56163的芯片手册,标注:4M*16Bit*4Banks。 这表示每个Bank有4M大小,即由行列地址确定的存储单元个数为4M个,16Bit是位宽,即每个存储单元存储的数据大小为16bit半字,一共包含有4个Bank,所以这个SDRAM的总容量为32MB(256Mbit)。根据这个就可以确定Bank地址线为A24:23。 4).控制引脚 由于2410集成了SDRAM的管理器,所以接到相应的管脚就是了,主要是行选通RAS,列选通CASE,写使能WE,LDQM和UDQM数据I/O屏蔽用于在读模式下控制输出缓冲,在写模式下屏蔽输入数据,CS片选接在nGS6,即是把SDARM挂接在Bank6上,另外还有时钟控制线,电源等。,SDRAM Bank地址配置,目前常用的SDRAM为8位/16位的数据宽度,工作电压一般为3.3V。主要的生产厂商为HYUNDAI,Winbond等,同类型器件一般具有相同的电气特性和封装形式,可以通用。 S3C2410A与SDRAM存储器HY57V561620接口电路如图4.4.5所示。 HY57V561620存储容量为4组64M位,工作电压为3.3V,常见封装为TSOP-54,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh),16位数据宽度。HY57V561620引脚功能如表4.4.4所示。,表4.4.4 HY57V561620引脚功能,(引脚端19 nGCS0修改为nGCS6) 图4.4.5 S3C2410X与SDRAM存储器HY57V561620的接口电路,根据系统需求,可构建16位或32位的SDRAM存储器系统,但为充分发挥32位CPU的数据处理能力,本设计采用32位的SDRAM存储器系统。 HY57V561620为16位数据宽度,单片容量为32MB,系统选用两片HY57V561620并联构建32位的SDRAM存储器系统,共64MB的SDRAM空间,可满足嵌入式操作系统及各种相对较复杂的算法的运行要求。与Flash存储器相比,SDRAM的控制信号较多,其连接电路也要相对复杂一些。 两片HY57V561620并联构建32位的SDRAM存储器系统,其中一片为高16位,另一片为低16位,可将两片HY57V561620作为一个整体配置到Bank6,即将S3C2410A的nGCS6接至两片HY57V561620的/CS端。 高位HY57V561620的CLK端连接到S3C2410A的SCLK1端,低

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论