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

下载本文档

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

文档简介

第4章嵌入式系统

的存储器系统教学目的1)了解常见嵌入式系统存储器;2)学习ROM和SRAM型存储器扩展方法;3)学习NORFLASH和NANDFLASH存储器接口方法;4)学习SDRAM存储器接口方法4.1存储器系统概述4.1.1存储器系统的层次结构4.1.2高速缓冲存储器在主存储器和CPU之间采用高速缓冲存储器(cache)用来提高存储器系统的性能。cache能够减少内存平均访问时间。指令预取时和数据读写时使用同一个cache-统一的cache。指令预取时和数据读写时使用不同的cache-独立的cache。

(S3C2410采用此种结构)4.1.3存储管理单元(MMU)MMU(MemoryManageUnit,存储管理单元)MMU主要完成以下工作:(1)虚拟存储空间到物理存储空间的映射。(2)存储器访问权限的控制。(3)设置虚拟存储空间的缓冲特性。嵌入式系统中常常采用页式存储管理。页式存储管理:把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。MMU实现的就是从虚拟地址到物理地址的转换。页表是存储在内存中的一个表,页表用来管理这些页。页表的每一行对应于虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的方位权限和该页的缓冲特性等。从虚拟地址到物理地址的变换过程就是查询页表的过程。例如在ARM嵌入式系统中,使用系统控制协处理器CP15的寄存器C2来保存页表的基地址。嵌入式系统支持的内存块大小有以下几种:段(section)大小为1MB的内存块;大页(LargePages)大小为64KB的内存块;小页(SmallPages)大小为4KB的内存块;极小页(TinyPages)大小为1KB的内存块。极小页只能以1KB大小为单位不能再细分,而大页和小页有些情况下可以在进一步的划分。MMU中的域指的是一些段、大页或者小页的集合。每个域的访问控制特性都是由芯片内部的寄存器中的相应控制位来控制的。例如在ARM嵌入式系统中,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。MMU中的快速上下文切换技术(FastContextSwitchExtension,FCSE)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。4.2.1存储器部件的分类1.按在系统中的地位分类主存储器(MainMemory简称主存或内存)辅助存储器(AuxiliaryMemory,SecondaryMemory,简称辅存或外存)。4.2嵌入式系统存储设备分类内存内存是计算机主机的一个组成部分,一般都用快速存储器件来构成,内存的存取速度很快,但内存空间的大小受到地址总线位数的限制。内存通常用来容纳当前正在使用的或要经常使用的程序和数据CPU可以直接对内存进行访问。系统软件中如引导程序、监控程序或者操作系统中的基本输入/输出部分BIOS都是必须常驻内存。更多的系统软件和全部应用软件则在用到时由外存传送到内存。外存外存存放的是相对来说不经常使用的程序和数据容量大,速度相对内存较慢常见的外存有软盘、硬盘、U盘、光盘等CPU要使用外存的这些信息时,必须通过专门的设备将信息先传送到内存中2.按存储介质分类磁存储器(MagneticMemory)半导体存储器(SemiconductorMemory)光存储器(OpticalMemory)激光光盘存储器(LaserOpticalDisk)。3.按信息存取方式分类RAM:随机存取存储器(RandomAccessMemory)

运行期间可读、可写ROM:只读存储器(ReadOnlyMemory)

运行期间只能读出信息,不能随时写入信息4.2.2存储器的组织和结构容量是描述存储器的最基本参数,如1MB。存储器容量的表示不唯一,不同的数据宽度有不同容量。在存储器内部,数据是存放在二维阵列存储单元中。n位地址被分成行地址和列地址(n=r十c)。r是行地址数,c是列地址数。行列选定一个特定存储单元。嵌入式系统的存储器与通用系统的存储器有所不同,通常由ROM、RAM、EPROM等组成。嵌入式存储器一般采用存储密度较大的存储器芯片,存储容量与应用的软件大小相匹配。4.2.3常见的嵌入式系统存储设备1.RAM(随机存储器)RAM可以被读和写,地址可以以任意次序被读。常见RAM的种类有SRAM(StaticRAM,静态随机存储器)DRAM(DynamicRAM,动态随机存储器)DDRAM(DoubleDataRateSDRAM,双倍速率随机存储器)。SRAM比DRAM运行速度快SRAM比DRAM耗电多DRAM需要周期性刷新DDRAM是RAM的下一代产品,200MHz时钟频率时内存带宽可达3.2GB/s海量

2.ROM(只读存储器)ROM断电后数据不丢失,但速度较慢,适合存储需长期保留的不变数据。在嵌入式系统中,ROM用于固定数据和程序。常见ROM有:MaskROM(掩模ROM,厂家一次性写入用户无法修改)PROM(ProgrammableROM,可编程ROM,用户一次性写入)EPROM(ErasableProgrammableROM,可擦写ROM,紫外光可重复擦除和写入)EEPROM(电可擦除可编程ROM,也可表示为E2PROM,电擦除)FlashROM(闪速存储器,可快速读取,电可擦写可编程)3.FlashMemoryFlashmemory(闪速存储器)是一种非易失性存储器(NVM:Non-VolatileMemory)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失根据结构不同分成NORFlash和NANDFlash两种FlashMemory在物理结构上分成若干个区块,区块之间相互独立NORFlash把整个存储区分成若干个扇区(Sector);NANDFlash把整个存储区分成若干个块(Block);可以对以块或扇区为单位的内存单元进行擦写和编程。NORFlash和NANDFlash特性NANDFlash执行擦除操作是十分简单的,而NOR型内存则要求在进行擦除前先要将目标块内所有的位都写为0擦除时间:NORFlash执行一个写入/擦除操作的时间为5s;NANDFlash相同操作最多只需要4ms(快小+高速)NORFlash的读速度比NANDFlash稍快一些,NANDFlash的写入速度比NORFlash快很多。应用程序可以直接在NORFlash内运行,不需要再把代码读到系统RAM中运行。NANDFlash的随机读取能力差,适合大量数据的连续读取NORFlash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NANDFlash结构可以达到高存储密度,并且写入和擦除的速度也很快,应用NANDFlash的困难在于需要特殊的系统接口。NANDFlash地址、数据和命令共用8位总线/16位总线,每次读写都要使用复杂的I/O接口串行地存取数据除了NORFlash的读,FlashMemory的其他操作不能像RAM那样,直接对目标地址进行总线操作。例如执行一次写操作,它必须输入一串特殊的指令(NORFlash),或者完成一段时序(NANDFlash)才能将数据写入到FlashMemory中NORFlash容量通常在1MB~8MB之间。而NANDFlash用在8MB以上的产品当中。NORFlash主要应用在代码存储介质中,NANDFlash适用于数据存储。在NANDFlash中每个块的最大擦写次数是一百万次,而NORFlash的擦写次数是十万次。4.3NORFlash接口电路4.3.1NORFlash存储器Am29LV160DAMD公司的一款NORFlash存储器存储容量为2M×8Bit/1M×16Bit接口与CMOSI/O兼容工作电压为2.7~3.6V读操作电流为9mA编程和擦除操作电流为20mA待机电流为200nA采用FBGA-48、TSOP-48、SO-44三种封装形式。Am29LV160D仅需3.3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash进行编程(烧写)、整片擦除、按扇区擦除,以及其他操作。以16位(字模式)数据宽度的方式工作。引脚类型功能A19~A0输入地址输入。提供存储器地址DQ14~DQ0输入/输出数据输入/输出DQ15/A-1输入/输出在字模式,DQ15为数据输入/输出;在字节模式,A-1为LSB地址输入BYTE#输入选择8bit或者16bit模式CE#输入片选。当CE#为低电平时,芯片有效OE#输入输出使能。当OE#为低电平时,输出有效WE#输入写使能,低电平有效,控制写操作RESET#输入硬件复位引脚端,低电平有效RY/BY#输出就绪/忙标志信号输出,SO-44封装无此引脚端VCC电源3V电源电压输入VSS地器件地NC未连接。空脚Am29LV160D的逻辑框图表4.3.1Am29LV160D引脚端功能4.3.2S3C2410A与NORFlash存储器的接口电路

Flash存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行,应将存有程序代码的Flash存储器配置到Bank0S3C2410A的nGCS0接至Am29LV160D的CE#(nCE)端Am29LV160D的OE#(nOE)端接S3C2410X的nOE;WE#(nXE)端S3C2410X的nWE相连;地址总线A19~A0与S3C2410X的地址总线ADDR20~ADDR1(A20~A1)相连;16位数据总线DQ15~DQ0与S3C2410X的低16位数据总线DATA15~DATA0(D15~D0)相连。[不使用NANDFlash作为启动ROM][使用NANDFlash作为启动ROM]注意:①SROM表示是ROM或SRAM类型的存储器;②SFR指特殊功能寄存器。图4.3.2S3C2410A与Am29LV160D的接口电路4.4NANDFlash接口电路4.4.1S3C2410ANANDFlash控制器1.S3C2410ANANDFlash控制器特性NANDFlash模式:支持读/擦除/编程NANDFlash存储器。自动启动模式:复位后,启动代码被传送到Steppingstone中。传送完毕后,启动代码在Steppingstone中执行。具有硬件ECC产生模块(硬件生成校验码和通过软件校验)。在NANDFlash启动后,Steppingstone4KB内部SRAM缓冲器可以作为其他用途使用。

为了支持NANDFlash的启动装载(bootloader),S3C2410A配置了一个叫做“Steppingstone”的内部SRAM缓冲器。当系统启动时,NANDFlash存储器的前4KB将被自动加载到Steppingstone中,然后系统自动执行这些载入的启动代码。在一般情况下,启动代码将复制NANDFlash的内容到SDRAM中。在复制完成后,将在SDRAM中执行主程序。2.S3C2410ANANDFlash控制器结构

图4.4.1NANDFlash控制器内部结构方框图图4.4.2NANDFlash的操作模式NANDFlash的工作模式如图4.4.2所示。

自动启动模式的时序如下:(1)完成复位;(2)当自动启动模式使能时,首先将NANDFlash存储器的前4KB内容自动复制到Steppingstone4KB内部缓冲器中;(3)Steppingstone映射到nGCSO;(4)CPU开始执行在Steppingstone4KB内部缓冲器中的启动代码。注意:在自动启动模式,不进行ECC检测。因此,应确保NANDFlash的前4KB不能有位错误。NANDFlash模式配置:(1)利用NFCONF寄存器设置NANDFlash配置;(2)写NANDFlash命令到NFCMD寄存器;(3)写NANDFlash地址到NFADDR寄存器;(4)在检查NANDFlash状态时,利用NFSTAT寄存器读/写数据。在读操作之前或者编程操作之后应该检查R/nB信号。表4.4.1NANDFlash控制器的引脚配置引脚配置D[7:0]数据/命令/地址输入/输出端口(用数据总线分派)CLE命令锁存使能(输出)ALE地址锁存使能(输出)nFCENANDFlash芯片使能(输出)nFRENANDFlash读使能(输出)nFWENANDFlash写使能(输出)R/nBNANDFlash准备就绪/忙使能(输出)4.4.2S3C2410A与NANDFlash存储器的接口电路与NORFlash存储器相比,NANDFlash的接口相对比较复杂。一些嵌入式处理器芯片内部配置了专门的NANDFlash控制器,如S3C2410A。K9F1208UDM-YCB0的存储容量为64M字节数据总线宽度为8位工作电压为2.7V~3.6V仅需单3.3V电压即可完成在系统的编程与擦除操作表4.4.3K9F1208UDM的引脚功能引脚类型功能I/O7~I/O0输入/输出数据输入输出、控制命令和地址的输入CLE输入命令锁存信号ALE输入地址锁存信号/CE输入芯片使能信号/RE输入读有效信号/WE输入写有效信号/WP输入写保护信号R/nB输出就绪/忙标志信号输出Vcc电源电源电压2.7V~3.3VVss接地器件地CLE有效时,锁存在I/O口上的是控制命令字;ALE有效时,锁存在I/O口上的是地址;/RE或/WE有效时,锁存的是数据这种一口多用的方式可以大大减少总线的数目,只是控制方式略微有些复杂。S3C2410X处理器的NANDFlash控制器可以解决这个问题。图4.4.4S3C2410A与K9F1208UDM-YCB0接口电路4.5SDRAM接口电路SDRAM可读/可写,掉电不保持数据,存取速度大大高于Flash存储器。在嵌入式系统中,SDRAM主要用做程序的运行空间、数据及堆栈区。当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都放在SDRAM中。SDRAM为避免数据丢失,必须定时刷新。要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。S3C2410A在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM接口。目前常用的SDRAM为8位/16位的数据宽度,工作电压一般为3.3V。主要的生产厂商为HYUNDAI,Winbond等。HY57V561620存储容量为4组×64M位16位数据宽度。工作电压为3.3V常见封装为TSOP-54兼容LVTTL接口支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh)表4.4.4HY57V561620引脚功能引脚类型功能CLK输入时钟,芯片时钟输入。所有的输入中CLK的上升沿有效CKE输入时钟使能,片内时钟信号控制

温馨提示

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

评论

0/150

提交评论