《嵌入式系统的存储器系统4课件》由会员分享,可在线阅读,更多相关《嵌入式系统的存储器系统4课件(83页珍藏版)》请在金锄头文库上搜索。
1、ARM9ARM9嵌入式系统基础教程嵌入式系统基础教程7/25/20241嵌入式系统的存储器系统(4)第第4章章 嵌入式系统的存储器系统嵌入式系统的存储器系统7/25/20242嵌入式系统的存储器系统(4)4.1 存储器系统概述4.1.1 4.1.1 存储器系统的层次结构存储器系统的层次结构计算机系统的存储器被组织成一个计算机系统的存储器被组织成一个6 6个层次的金字塔形的个层次的金字塔形的层次结构,如图层次结构,如图4.1.14.1.1所示,位于整个层次结构的最顶所示,位于整个层次结构的最顶部部S0S0层为层为CPUCPU内部寄存器内部寄存器S1S1层为芯片内部的高速缓存(层为芯片内部的高速缓
2、存(cachecache)内存内存S2S2层为芯片外的高速缓存(层为芯片外的高速缓存(SRAMSRAM、DRAMDRAM、DDRAMDDRAM)S3S3层为主存储器(层为主存储器(FlashFlash、PROMPROM、EPROMEPROM、EEPROMEEPROM)S4S4层为外部存储器(磁盘、光盘、层为外部存储器(磁盘、光盘、CFCF、SDSD卡)卡)S5S5层为远程二级存储(分布式文件系统、层为远程二级存储(分布式文件系统、WebWeb服务器)服务器)7/25/20243嵌入式系统的存储器系统(4)图4.1.1 存储器系统层次结构 7/25/20244嵌入式系统的存储器系统(4)n在这种
3、存储器分层结构中,上面一层的存储器作为下在这种存储器分层结构中,上面一层的存储器作为下一层存储器的高速缓存。一层存储器的高速缓存。CPUCPU寄存器就是寄存器就是cachecache的高速的高速缓存,寄存器保存来自缓存,寄存器保存来自cachecache的字;的字;cachecache又是内存层又是内存层的高速缓存,从内存中提取数据送给的高速缓存,从内存中提取数据送给CPUCPU进行处理,并进行处理,并将将CPUCPU的处理结果返回到内存中;内存又是主存储器的的处理结果返回到内存中;内存又是主存储器的高速缓存,它将经常用到的数据从高速缓存,它将经常用到的数据从FlashFlash等主存储器中等
4、主存储器中提取出来,放到内存中,从而加快了提取出来,放到内存中,从而加快了CPUCPU的运行效率。的运行效率。嵌入式系统的主存储器容量是有限的,磁盘、光盘或嵌入式系统的主存储器容量是有限的,磁盘、光盘或CFCF、SDSD卡等外部存储器用来保存大信息量的数据。在卡等外部存储器用来保存大信息量的数据。在某些带有分布式文件系统的嵌入式网络系统中,外部某些带有分布式文件系统的嵌入式网络系统中,外部存储器就作为其他系统中被存储数据的高速缓存。存储器就作为其他系统中被存储数据的高速缓存。7/25/20245嵌入式系统的存储器系统(4)4.1.2 4.1.2 高速缓冲存储器高速缓冲存储器n在主存储器和在主存
5、储器和CPUCPU之间采用高速缓冲存储器(之间采用高速缓冲存储器(cachecache)被广泛用)被广泛用来提高提高存储器系统的性能,许多微处理器体系结构都把它来提高提高存储器系统的性能,许多微处理器体系结构都把它作为其定义的一部分。作为其定义的一部分。cachecache能够减少内存平均访问时间。能够减少内存平均访问时间。nCacheCache可以分为统一可以分为统一cachecache和独立的数据程序和独立的数据程序cachecache。在一个。在一个存储系统中,指令预取时和数据读写时使用同一个存储系统中,指令预取时和数据读写时使用同一个cachecache,这,这时称系统使用统一的时称系
6、统使用统一的cachecache。如果在一个存储系统中,指令预。如果在一个存储系统中,指令预取时使用的一个取时使用的一个cachecache,数据读写时使用的另一个,数据读写时使用的另一个cachecache,各自,各自是独立的,这时称系统使用了独立的是独立的,这时称系统使用了独立的cachecache,用于指令预取的,用于指令预取的cachecache称为指令称为指令cachecache,用于数据读写的,用于数据读写的cachecache称为数据称为数据cachecache。n当当CPUCPU更新了更新了cachecache的内容时,要将结果写回到主存中,可以采的内容时,要将结果写回到主存中
7、,可以采用写通法(用写通法(write-throughwrite-through)和写回法()和写回法(write-backwrite-back)。写通)。写通法是指法是指CPUCPU在执行写操作时,必须把数据同时写入在执行写操作时,必须把数据同时写入cachecache和主存。和主存。采用写通法进行数据更新的采用写通法进行数据更新的cachecache称为写通称为写通cachecache。写回法是指。写回法是指CPUCPU在执行写操作时,被写的数据只写入在执行写操作时,被写的数据只写入cachecache不写入主存。仅不写入主存。仅当需要替换时,才把已经修改的当需要替换时,才把已经修改的ca
8、checache块写回到主存中。采用块写回到主存中。采用写回法进行数据更新的写回法进行数据更新的cachecache称为写回称为写回cachecache。7/25/20246嵌入式系统的存储器系统(4)n当进行数据写操作时,可以将当进行数据写操作时,可以将cachecache分为读操作分配分为读操作分配cachecache和写操作分配和写操作分配cachecache两类。对于读操作分配两类。对于读操作分配cachecache,当进行,当进行数据写操作时,如果数据写操作时,如果cachecache未命中,只是简单地将数据写未命中,只是简单地将数据写入主存中。主要在数据读取时,才进行入主存中。主要
9、在数据读取时,才进行cachecache内容预取。内容预取。对于写操作分配对于写操作分配cachecache,当进行数据写操作时,如果,当进行数据写操作时,如果cachecache未命中,未命中,cachecache系统将会进行系统将会进行cachecache内容预取,从主存中将内容预取,从主存中将相应的块读取到相应的块读取到cachecache中相应的位置,并执行写操作,把中相应的位置,并执行写操作,把数据写入到数据写入到cachecache中。对于写通类型的中。对于写通类型的cachecache,数据将会同,数据将会同时被写入到主存中,对于写回类型的时被写入到主存中,对于写回类型的cach
10、ecache数据将在合适数据将在合适的时候写回到主存中。的时候写回到主存中。7/25/20247嵌入式系统的存储器系统(4)4.1.3 4.1.3 存储管理单元存储管理单元MMUMMU(Memory Manage Unit, Memory Manage Unit, 存储管理单元)在存储管理单元)在CPUCPU和物理内和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个转换过程一般称为内存映射。这个转换过程一般称为内存映射。MMUMMU主要完成以下工作:主要完成以下工作:(1 1)虚拟存储空间到物理存储空间的映射。采用了页式虚)虚拟
11、存储空间到物理存储空间的映射。采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大小的块,拟存储管理,它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小每一块称为一页,把物理内存的地址空间也分成同样大小的页。的页。MMUMMU实现的就是从虚拟地址到物理地址的转换。实现的就是从虚拟地址到物理地址的转换。(2 2)存储器访问权限的控制。)存储器访问权限的控制。(3 3)设置虚拟存储空间的缓冲的特性。)设置虚拟存储空间的缓冲的特性。7/25/20248嵌入式系统的存储器系统(4)n嵌入式系统中常常采用页式存储管理。页表是存储在内存中的一嵌入式系统中常常采用
12、页式存储管理。页表是存储在内存中的一个表,页表用来管理这些页。页表的每一行对应于虚拟存储空间个表,页表用来管理这些页。页表的每一行对应于虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的方位权限和该页的缓冲特性等。从虚拟地址到物理地址的该页的方位权限和该页的缓冲特性等。从虚拟地址到物理地址的变换过程就是查询页表的过程。例如在变换过程就是查询页表的过程。例如在ARMARM嵌入式系统中,使用系嵌入式系统中,使用系统控制协处理器统控制协处理器CP15CP15的寄存器的寄存器C2C2来保存页表的基地址。来保存页表的基地址。
13、n基于程序在执行过程中具有局部性的原理,在一段时间内,对页基于程序在执行过程中具有局部性的原理,在一段时间内,对页表的访问只是局限在少数几个单元。根据这一特点,增加了一个表的访问只是局限在少数几个单元。根据这一特点,增加了一个小容量(通常为小容量(通常为8 81616字)、高速度(访问速度和字)、高速度(访问速度和CPUCPU中通用寄存中通用寄存器相当)的存储部件来存放当前访问需要的地址变换条目,这个器相当)的存储部件来存放当前访问需要的地址变换条目,这个存储部件称为地址转换后备缓冲器(存储部件称为地址转换后备缓冲器(Translation Look aside Translation Loo
14、k aside BufferBuffer,TLBTLB)。当)。当CPUCPU访问内存时,首先在访问内存时,首先在TLBTLB中查找需要的地址中查找需要的地址变换条目,如果该条目不存在,变换条目,如果该条目不存在,CPUCPU在从位于内存中的页表中查询,在从位于内存中的页表中查询,并把相应的结果添加到并把相应的结果添加到TLBTLB中,更新它的内容。中,更新它的内容。7/25/20249嵌入式系统的存储器系统(4)n当当ARMARM处理器请求存储访问时,首先在处理器请求存储访问时,首先在TLBTLB中查找虚拟地址。如果中查找虚拟地址。如果系统中数据系统中数据TLBTLB和指令和指令TLBTLB
15、是分开的,在取指令时,从指令是分开的,在取指令时,从指令TLBTLB查找查找相应的虚拟地址,对于内存访问操作,从数据相应的虚拟地址,对于内存访问操作,从数据TLBTLB中查找相应的虚中查找相应的虚拟地址。拟地址。n嵌入式系统中虚拟存储空间到物理存储空间的映射以内存块为单嵌入式系统中虚拟存储空间到物理存储空间的映射以内存块为单位来进行。即虚拟存储空间中一块连续的存储空间被映射到物理位来进行。即虚拟存储空间中一块连续的存储空间被映射到物理存储空间中同样大小的一块连续存储空间。在页表和存储空间中同样大小的一块连续存储空间。在页表和TLBTLB中,每一中,每一个地址变换条目实际上记录了一个虚拟存储空间
16、的内存块的基地个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相应的一个内存块的基地址的对应关系。根据址与物理存储空间相应的一个内存块的基地址的对应关系。根据内存块大小,可以有多种地址变换。内存块大小,可以有多种地址变换。7/25/202410嵌入式系统的存储器系统(4)n嵌入式系统支持的内存块大小有以下几种:段嵌入式系统支持的内存块大小有以下几种:段(sectionsection)大小为)大小为1MB1MB的内存块;大页(的内存块;大页(Large PagesLarge Pages)大小为大小为64KB64KB的内存块;小页(的内存块;小页(Small PagesSm
17、all Pages)大小为)大小为4KB4KB的内存块;极小页(的内存块;极小页(Tiny PagesTiny Pages)大小为)大小为1KB1KB的内存块。的内存块。极小页只能以极小页只能以1KB1KB大小为单位不能再细分,而大页和小页大小为单位不能再细分,而大页和小页有些情况下可以在进一步的划分,大页可以分成大小为有些情况下可以在进一步的划分,大页可以分成大小为16KB16KB的子页,小页可以分成大小为的子页,小页可以分成大小为1KB1KB的子页。的子页。nMMUMMU中的域指的是一些段、大页或者小页的集合。每个域中的域指的是一些段、大页或者小页的集合。每个域的访问控制特性都是由芯片内部
18、的寄存器中的相应控制的访问控制特性都是由芯片内部的寄存器中的相应控制位来控制的。例如在位来控制的。例如在ARMARM嵌入式系统中,每个域的访问控嵌入式系统中,每个域的访问控制特性都是由制特性都是由CP15CP15中的寄存器中的寄存器C3C3中的两位来控制的。中的两位来控制的。 nMMUMMU中的快速上下文切换技术(中的快速上下文切换技术(Fast Context Switch Fast Context Switch ExtensionExtension, FCSE FCSE)通过修改系统中不同进程的虚拟地)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址,避免在
19、进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。址的重映射,从而提高系统的性能。7/25/202411嵌入式系统的存储器系统(4)n在嵌入式系统中,在嵌入式系统中,I/OI/O操作通常被映射成存储器操作,操作通常被映射成存储器操作,即输入输出是通过存储器映射的可寻址外围寄存器即输入输出是通过存储器映射的可寻址外围寄存器和中断输入的组合来实现的。和中断输入的组合来实现的。I/OI/O的输出操作可通过存的输出操作可通过存储器写入操作实现;储器写入操作实现;I/OI/O的输入操作可通过存储器读取的输入操作可通过存储器读取操作实现。这些存储器映射的操作实现。这些存储器映射的I/O
20、I/O空间不满足空间不满足cachecache所所要求的特性,不能使用要求的特性,不能使用cachecache技术,一些嵌入式系统使技术,一些嵌入式系统使用存储器直接访问(用存储器直接访问(DMADMA)实现快速存储。)实现快速存储。7/25/202412嵌入式系统的存储器系统(4)4.2 4.2 嵌入式系统存储设备分类嵌入式系统存储设备分类存储器是嵌入式系统硬件的重要组成部分,用来存放嵌入式系统工作时存储器是嵌入式系统硬件的重要组成部分,用来存放嵌入式系统工作时所用的程序和数据。嵌入式系统的存储器由片内和片外两部分组成。所用的程序和数据。嵌入式系统的存储器由片内和片外两部分组成。4.2.1
21、4.2.1 存储器部件的分类存储器部件的分类1 1按在系统中的地位分类按在系统中的地位分类在微机系统中,存储器可分为主存储器(在微机系统中,存储器可分为主存储器(Main MemoryMain Memory简称内存或主存)简称内存或主存)和辅助存储器(和辅助存储器(Auxiliary MemoryAuxiliary Memory,Secondary MemorySecondary Memory,简称辅存,简称辅存或外存)。或外存)。内存是计算机主机的一个组成部分,一般都用快速存储器件来构成,内内存是计算机主机的一个组成部分,一般都用快速存储器件来构成,内存的存取速度很快,但内存空间的大小受到地
22、址总线位数的限制。存的存取速度很快,但内存空间的大小受到地址总线位数的限制。内存通常用来容纳当前正在使用的或要经常使用的程序和数据,内存通常用来容纳当前正在使用的或要经常使用的程序和数据,CPUCPU可以直接对内存进行访问。系统软件中如引导程序、监控程序或者可以直接对内存进行访问。系统软件中如引导程序、监控程序或者操作系统中的基本输入输出部分操作系统中的基本输入输出部分BIOSBIOS都是必须常驻内存。更多的都是必须常驻内存。更多的系统软件和全部应用软件则在用到时由外存传送到内存。系统软件和全部应用软件则在用到时由外存传送到内存。7/25/202413嵌入式系统的存储器系统(4)n外存也是用来
23、存储各种信息的,存放的是相对来说不经常使用的外存也是用来存储各种信息的,存放的是相对来说不经常使用的程序和数据,其特点是容量大。外存总是和某个外部设备相关的,程序和数据,其特点是容量大。外存总是和某个外部设备相关的,常见的外存有软盘、硬盘、常见的外存有软盘、硬盘、U U盘、光盘等。盘、光盘等。CPUCPU要使用外存的这些要使用外存的这些信息时,必须通过专门的设备将信息先传送到内存中。信息时,必须通过专门的设备将信息先传送到内存中。2 2按存储介质分类按存储介质分类n根据存储介质的材料及器件的不同,可分为磁存储器(根据存储介质的材料及器件的不同,可分为磁存储器(Magnetic Magnetic
24、 MemoryMemory),半导体存储器、光存储器(),半导体存储器、光存储器(Optical MemoryOptical Memory)及激光)及激光光盘存储器(光盘存储器(Laser Optical DiskLaser Optical Disk)。)。n3 3按信息存取方式分类按信息存取方式分类n存储器按存储信息的功能,分为随机存取存储器(存储器按存储信息的功能,分为随机存取存储器(Random Access Random Access MemoryMemory,RAMRAM)和只读存储器()和只读存储器(Read Only MemoryRead Only Memory,ROMROM)。
25、随机)。随机存取存储器是一种在机器运行期间可读、可写的存储器,又称读存取存储器是一种在机器运行期间可读、可写的存储器,又称读写存储器。随机存储器按信息存储的方式,可分为静态写存储器。随机存储器按信息存储的方式,可分为静态RAMRAM(Static RAMStatic RAM,SRAMSRAM),动态),动态RAMRAM(Dynamic RAMDynamic RAM,DRAMDRAM)及准)及准静态静态RAMRAM(Pseudostatic RAMPseudostatic RAM,简称,简称PSRAMPSRAM)。)。n在机器运行期间只能读出信息,不能随时写入信息的存储器称为在机器运行期间只能读
26、出信息,不能随时写入信息的存储器称为只读存储器。只读存储器按功能可分为掩模式(只读存储器。只读存储器按功能可分为掩模式(ROMROM)、可编程只)、可编程只读存储器(读存储器(Programmable ROMProgrammable ROM,PROMPROM)和可改写的只读存储器)和可改写的只读存储器(Erasable Programmable ROMErasable Programmable ROM,EPROMEPROM)。)。7/25/202414嵌入式系统的存储器系统(4)4.2.2 4.2.2 存储器的组织和结构存储器的组织和结构n存储器的容量是描述存储器的最基本参数,如存储器的容量是
27、描述存储器的最基本参数,如1MB1MB。存。存储器的表示并不唯一,有不同表示方法,每种有不同储器的表示并不唯一,有不同表示方法,每种有不同的数据宽度。在存储器内部,数据是存放在二维阵列的数据宽度。在存储器内部,数据是存放在二维阵列存储单元中。阵列以二维的形式存储,给出的存储单元中。阵列以二维的形式存储,给出的n n位地址位地址被分成行地址和列地址(被分成行地址和列地址(n nr r十十c c)。)。r r是行地址数,是行地址数,c c是列地址数。行列选定一个特定存储单元。如果存储是列地址数。行列选定一个特定存储单元。如果存储器外部宽度为器外部宽度为1 1位,那么列地址仅一位;对更宽的数据,位,
28、那么列地址仅一位;对更宽的数据,列地址可选择所有列的一个子集。嵌入式系统的存储列地址可选择所有列的一个子集。嵌入式系统的存储器与通用系统的存储器有所不同,通常由器与通用系统的存储器有所不同,通常由ROMROM、RAMRAM、EPROMEPROM等组成。嵌入式存储器一般采用存储密度较大的等组成。嵌入式存储器一般采用存储密度较大的存储器芯片,存储容量与应用的软件大小相匹配。存储器芯片,存储容量与应用的软件大小相匹配。 7/25/202415嵌入式系统的存储器系统(4)4.2.3 4.2.3 常见的嵌入式系统存储设备常见的嵌入式系统存储设备1 1RAMRAM(随机存储器)(随机存储器)RAMRAM可
29、以被读和写,地址可以以任意次序被读。常见可以被读和写,地址可以以任意次序被读。常见RAMRAM的种的种类有类有SRAMSRAM(Static RAMStatic RAM,静态随机存储器)、,静态随机存储器)、DRAMDRAM(Dynamic RAMDynamic RAM,动态随机存储器)、,动态随机存储器)、DDRAMDDRAM(Double Double Data Rate SDRAMData Rate SDRAM,双倍速率随机存储器)。其中,双倍速率随机存储器)。其中,SRAMSRAM比比DRAMDRAM运行速度快,运行速度快,SRAMSRAM比比DRAMDRAM耗电多,耗电多,DRAMD
30、RAM需要周期性需要周期性刷新。而刷新。而DDRAMDDRAM是是RAMRAM的下一代产品。在的下一代产品。在133MHz133MHz时钟频率,时钟频率,DDRAMDDRAM内存带宽可以达到内存带宽可以达到13364b/8213364b/822.1GB/s2.1GB/s,在,在200MHz200MHz时钟频率,其带宽可达到时钟频率,其带宽可达到20064b/8220064b/823.2GB/s3.2GB/s的海量。的海量。7/25/202416嵌入式系统的存储器系统(4)2ROM(只读存储器)nROM在烧入数据后,无需外加电源来保存数据,断电后数据不丢失,但速度较慢,适合存储需长期保留的不变数
31、据。在嵌入式系统中,ROM用固定数据和程序。n常见ROM有Mask ROM(掩模ROM)、PROM(Programmable ROM,可编程ROM)、EPROM(Erasable Programmable ROM,可擦写ROM)、EEPROM(电可擦除可编程ROM,也可表示为E2PROM)、Flash ROM(闪速存储器)nMask ROM一次性由厂家写入数据的ROM,用户无法修改。PROM出厂时厂家并没有写入数据,而是保留里面的内容为全0或全1,由用户来编程一次性写入数据。EPROM可以通过紫外光的照射,擦掉原先的程序,芯片可重复擦除和写入。E2PROM是通过加电擦除原编程数据,通过高压脉冲
32、可以写入数据,写入时间较长。Flash ROM断电不会丢失数据(NVRAM),可快速读取,电可擦写可编程。7/25/202417嵌入式系统的存储器系统(4)3Flash MemorynFlash memory(闪速存储器)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失。但在使用Flash Memory时,必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。nFlash Memory是一种非易失性存储器NVM(Non-Volatile Memory),根据结构的不同可以将其分成NOR Flash和NAND Flash两种。nFlash Memory在物理结
33、构上分成若干个区块,区块之间相互独立。NOR Flash把整个存储区分成若干个扇区(Sector),而NAND Flash把整个存储区分成若干个块(Block),可以对以块或扇区为单位的内存单元进行擦写和再编程。7/25/202418嵌入式系统的存储器系统(4)n由于由于Flash MemoryFlash Memory的写操作只能将数据位从的写操作只能将数据位从1 1写成写成0 0,而不能从而不能从0 0写成写成1 1,所以在对存储器进行写入之前必须,所以在对存储器进行写入之前必须先执行擦除操作,将预写入的数据位初始化为先执行擦除操作,将预写入的数据位初始化为1 1。擦操。擦操作的最小单位是一
34、个区块,而不是单个字节。作的最小单位是一个区块,而不是单个字节。NAND NAND FlashFlash执行擦除操作是十分简单的,而执行擦除操作是十分简单的,而NORNOR型内存则要型内存则要求在进行擦除前先要将目标块内所有的位都写为求在进行擦除前先要将目标块内所有的位都写为0 0。n由于擦除由于擦除NOR FlashNOR Flash时是以时是以6464128KB128KB为单位的块进行为单位的块进行的,执行一个写入擦除操作的时间为的,执行一个写入擦除操作的时间为5s5s,与此相反,与此相反,擦除擦除NAND FlashNAND Flash是以是以8 832KB32KB的块进行的,执行相同的
35、的块进行的,执行相同的操作最多只需要操作最多只需要4ms4ms。nNOR FlashNOR Flash的读速度比的读速度比NAND FlashNAND Flash稍快一些,稍快一些,NAND NAND FlashFlash的写入速度比的写入速度比NOR FlashNOR Flash快很多。快很多。NAND FlashNAND Flash的的随机读取能力差,适合大量数据的连续读取。随机读取能力差,适合大量数据的连续读取。n除了除了NOR FlashNOR Flash的读,的读,Flash MemoryFlash Memory的其他操作不能像的其他操作不能像RAMRAM那样,直接对目标地址进行总线
36、操作。例如执行一那样,直接对目标地址进行总线操作。例如执行一次写操作,它必须输入一串特殊的指令(次写操作,它必须输入一串特殊的指令(NOR Flash NOR Flash ),或者完成一段时序(),或者完成一段时序(NAND FlashNAND Flash)才能将数据写)才能将数据写入到入到Flash MemoryFlash Memory中。中。7/25/202419嵌入式系统的存储器系统(4)nNOR FlashNOR Flash带有带有SRAMSRAM接口,有足够的地址引脚来寻址,可接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。以很容易地存取其内部的每一个字节。NAND
37、 FlashNAND Flash地址、地址、数据和命令共用数据和命令共用8 8位总线位总线/16/16位总线,每次读写都要使用复位总线,每次读写都要使用复杂的杂的I/OI/O接口串行地存取数据,接口串行地存取数据,8 8位总线位总线/16/16位总线用来传位总线用来传送控制、地址和资料信息。送控制、地址和资料信息。nNAND FlashNAND Flash读和写操作采用读和写操作采用512B512B的块,类似硬盘管理操作。的块,类似硬盘管理操作。因此,基于因此,基于NANDNAND的闪存可以取代硬盘或其他块设备。的闪存可以取代硬盘或其他块设备。nNOR FlashNOR Flash容量通常在容
38、量通常在1 MB1 MB8MB8MB之间。而之间。而NAND FlashNAND Flash用在用在8MB8MB以上的产品当中。以上的产品当中。NOR FlashNOR Flash主要应用在代码存储介质主要应用在代码存储介质中,中,NAND FlashNAND Flash适用于资料存储。适用于资料存储。n所有所有Flash MemoryFlash Memory器件存在位交换现象。器件存在位交换现象。Flash MemoryFlash Memory在在读写数据过程中,偶然会产生一位或几位数据错误,即位读写数据过程中,偶然会产生一位或几位数据错误,即位反转。位反转无法避免,只能通过其他手段对产生的
39、结果反转。位反转无法避免,只能通过其他手段对产生的结果进行事后处理。位反转的问题多见于进行事后处理。位反转的问题多见于NAND FlashNAND Flash。NAND NAND FlashFlash的供货商建议使用的供货商建议使用NAND FlashNAND Flash的时候,同时使用的时候,同时使用EDC/ECCEDC/ECC(错误探测错误纠正)算法,以确保可靠性。(错误探测错误纠正)算法,以确保可靠性。 7/25/202420嵌入式系统的存储器系统(4)nFlash MemoryFlash Memory在使用过程中,可能导致某些区块的损坏。在使用过程中,可能导致某些区块的损坏。区块一旦损
40、坏,将无法进行修复。区块一旦损坏,将无法进行修复。NAND FlashNAND Flash中的坏块是中的坏块是随机分布的,尤其是随机分布的,尤其是NAND FlashNAND Flash在出厂时就可能存在这样在出厂时就可能存在这样的坏块(已经被标识出)。的坏块(已经被标识出)。NAND FlashNAND Flash需要对介质进行初需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。如果对已始化扫描以发现坏块,并将坏块标记为不可用。如果对已损坏的区块进行操作,可能会带来不可预测的错误。损坏的区块进行操作,可能会带来不可预测的错误。n应用程序可以直接在应用程序可以直接在NOR FlashN
41、OR Flash内运行,不需要再把代码内运行,不需要再把代码读到系统读到系统RAMRAM中运行。中运行。NOR FlashNOR Flash的传输效率很高,在的传输效率很高,在1 14MB4MB的小容量时具有很高的成本效益,但是很低的写入和的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。擦除速度大大影响了它的性能。NAND FlashNAND Flash结构可以达到结构可以达到高存储密度,并且写入和擦除的速度也很快,应用高存储密度,并且写入和擦除的速度也很快,应用NAND NAND FlashFlash的困难在于需要特殊的系统接口。的困难在于需要特殊的系统接口。n在在
42、NOR FlashNOR Flash上运行代码不需要任何的软件支持。在上运行代码不需要任何的软件支持。在NAND NAND FlashFlash上进行同样操作时,通常需要驱动程序,也就是内上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(存技术驱动程序(MTD MTD )。)。NAND FlashNAND Flash和和NOR FlashNOR Flash在进在进行写入和擦除操作时都需要行写入和擦除操作时都需要MTDMTD。7/25/202421嵌入式系统的存储器系统(4)n在在NAND FlashNAND Flash中每个块的最大擦写次数是一百万次,中每个块的最大擦写次数是一百万次
43、,而而NOR FlashNOR Flash的擦写次数是十万次。的擦写次数是十万次。NAND FlashNAND Flash除了具除了具有有10:110:1的块擦除周期优势,典型的的块擦除周期优势,典型的NAND FlashNAND Flash块尺寸块尺寸要比要比NORNOR型闪存小型闪存小8 8倍,每个倍,每个NAND FlashNAND Flash的内存块在给的内存块在给定的时间内删除次数要少一些。定的时间内删除次数要少一些。n4 4标准存储卡(标准存储卡(Compact FlashCompact Flash,CFCF卡)卡)nCFCF卡是利用卡是利用FlashFlash技术的存储卡,内部结
44、构如图技术的存储卡,内部结构如图4.2.14.2.1所示,接口具有所示,接口具有PCMCIA-ATAPCMCIA-ATA功能,可以工作在功能,可以工作在IDEIDE接口接口模式,也可以工作在模式,也可以工作在PC CardPC Card模式。衍生出来的模式。衍生出来的CF+CF+卡卡物理规格和物理规格和CFCF完全相同,在手持设备上应用,如完全相同,在手持设备上应用,如CFCF串串口卡、口卡、CF Modem. CFCF Modem. CF蓝牙、蓝牙、CF USBCF USB卡、卡、CFCF网卡、网卡、CF CF GPSGPS卡、卡、CF GPRSCF GPRS卡等。按照卡等。按照CF+CF+
45、卡标准,它不一定要支卡标准,它不一定要支持持ATAATA接口。通常建议接口。通常建议CF+CF+卡工作在卡工作在PCMCIAPCMCIA模式。模式。CFCF卡卡可以看作是可以看作是PCMCIAPCMCIA卡的一个子集,可以通过物理上的卡的一个子集,可以通过物理上的转换器,直接转换成转换器,直接转换成PCMCIAPCMCIA卡使用。卡使用。7/25/202422嵌入式系统的存储器系统(4)nCFCF卡可分为卡可分为I I型和型和IIII型两类,二者的规格和特性基本相同,只是型两类,二者的规格和特性基本相同,只是IIII型比型比I I型略厚一些(型略厚一些(5.0mm5.0mm,3.3mm3.3m
46、m),),IIII型插座可以同时兼容型插座可以同时兼容I I型型卡。卡。图4.2.1 CF卡内部结构7/25/202423嵌入式系统的存储器系统(4)nCFCF卡有卡有3 3种工作模式:种工作模式:PCPC卡卡ATA I/OATA I/O模式、模式、PCPC卡卡ATAATA存储存储模式和实模式和实IDEIDE模式。实模式。实IDEIDE模式与模式与IDEIDE接口完全兼容。接口完全兼容。CFCF卡遵循卡遵循ATAATA协议,属于块存储设备,存储单元是通过磁协议,属于块存储设备,存储单元是通过磁头(头(headhead)、柱面()、柱面(cylindercylinder,也称磁道)和扇区,也称磁
47、道)和扇区(sector sector )组织起来的。在物理寻址()组织起来的。在物理寻址(CHSCHS)方式下,)方式下,每一组每一组H/C/SH/C/S参数唯一确定存储卡中的一个扇区,通常参数唯一确定存储卡中的一个扇区,通常一个扇区拥有一个扇区拥有512B512B的数据空间。一个驱动数格式化后的数据空间。一个驱动数格式化后的容量为磁头数的容量为磁头数柱面数柱面数扇区数扇区数512512字节。在物理字节。在物理寻址模式下,扇区(寻址模式下,扇区(S S)是最低的地址单位,其次是磁)是最低的地址单位,其次是磁头(头(H H),最后的柱面(),最后的柱面(C C)为最高寻址单位。此外,)为最高寻
48、址单位。此外,还有逻辑寻址方式(还有逻辑寻址方式(LBALBA)。在这种寻址方式下,)。在这种寻址方式下,CFCF卡卡按照以连续序列的逻辑扇区编号进行寻址,主机不必按照以连续序列的逻辑扇区编号进行寻址,主机不必知道知道CFCF卡的物理几何结构。使用卡的物理几何结构。使用2828个数据位来表示逻个数据位来表示逻辑扇区的地址,可以寻址辑扇区的地址,可以寻址228228个扇区,理论上可以寻址个扇区,理论上可以寻址136GB136GB的容量。物理寻址方式与逻辑寻址方式的对应关的容量。物理寻址方式与逻辑寻址方式的对应关系如下所示:系如下所示: 7/25/202424嵌入式系统的存储器系统(4)nLBA=
49、NHNSC+NCH+S-1LBA=NHNSC+NCH+S-1;nC=C=(LBA div NSLBA div NS)div NHdiv NH;nH=H=(LBA div NSLBA div NS)mod NHmod NH;nS=S=(LBA mod NSLBA mod NS)+1+1。n其中:其中:NSNS为每磁道扇区数,为每磁道扇区数,NHNH为磁头数,为磁头数,C C、H H、S S分别表分别表示磁盘的柱面、磁头和扇区编号,示磁盘的柱面、磁头和扇区编号,LBALBA表示逻辑扇区号,表示逻辑扇区号,divdiv为整除计算,为整除计算,modmod为求余计算。为求余计算。 7/25/20242
50、5嵌入式系统的存储器系统(4)5安全数据卡(Secure Digital Card,SD卡)n由日本Panasonic公司、TOSHIBA公司和美国SanDisk公司共同开发研制的SD卡是一种全新的存储卡产品,在MP3、数码摄像机、数码相机、电子图书及AV器材等中应用。SD存储卡采用一个完全开放的标准(系统),外形与MultiMedia卡保持一致,比MMC卡略厚,具有更大的容量,兼容MMC卡接口规范。SD卡具有加密功能,可以保证数据资料的安全保密。SD卡具有版权保护技术,所采用的版权保护技术是DVD中使用的CPRM技术(可刻录介质内容保护)。6硬盘存储器n硬盘存储器具有存储容量大,使用寿命长,
51、存取速度较快的特点,也是在嵌入式系统中常用的外存。7/25/202426嵌入式系统的存储器系统(4)n硬盘存储器的硬件包括硬盘控制器(适配器)、硬盘硬盘存储器的硬件包括硬盘控制器(适配器)、硬盘驱动器以及连接电缆。硬盘控制器(驱动器以及连接电缆。硬盘控制器(Hard Disk Hard Disk ControllerController,简称,简称HDCHDC)对硬盘进行管理,并在主机和)对硬盘进行管理,并在主机和硬盘之间传送数据。硬盘控制器以适配卡的形式插在硬盘之间传送数据。硬盘控制器以适配卡的形式插在主板上或直接集成在主板上,然后通过电缆与硬盘驱主板上或直接集成在主板上,然后通过电缆与硬盘
52、驱动器相连。硬盘驱动器(动器相连。硬盘驱动器(Hard Disk DriveHard Disk Drive,简称,简称HDDHDD)中有盘片、磁头、主轴电机(盘片旋转驱动机构)中有盘片、磁头、主轴电机(盘片旋转驱动机构)、磁头定位机构、读写电路和控制逻辑等。、磁头定位机构、读写电路和控制逻辑等。n硬盘存储器可分为温彻斯特盘和非温彻斯特盘两类。硬盘存储器可分为温彻斯特盘和非温彻斯特盘两类。温彻斯特盘是根据温彻斯特技术设计制造的,它的磁温彻斯特盘是根据温彻斯特技术设计制造的,它的磁头、盘片、磁头定位机构、主轴、甚至连读写驱动头、盘片、磁头定位机构、主轴、甚至连读写驱动电路等都被密封在一个盘盒内,构
53、成一个头一盘组合电路等都被密封在一个盘盒内,构成一个头一盘组合体。温彻斯特盘的防尘性能好,可靠性高,对使用环体。温彻斯特盘的防尘性能好,可靠性高,对使用环境要求不高。非温彻斯特盘磁盘的磁头和盘片等不是境要求不高。非温彻斯特盘磁盘的磁头和盘片等不是密封的,通常只能用于中型、大型计算机机房中。密封的,通常只能用于中型、大型计算机机房中。n最常见的硬盘接口是最常见的硬盘接口是IDEIDE(ATAATA)和)和SCSISCSI两种,一些移两种,一些移动硬盘采用动硬盘采用PCMCIAPCMCIA或或USBUSB接口。接口。7/25/202427嵌入式系统的存储器系统(4)nIDEIDE( Integra
54、ted Drive Electronics Integrated Drive Electronics)接口也称为)接口也称为ATAATA(美国国家标准协会)接口,是一个通用的硬盘接(美国国家标准协会)接口,是一个通用的硬盘接口。口。IDEIDE接口的硬盘可细分为接口的硬盘可细分为ATA-1ATA-1(IDEIDE)、)、ATA-ATA-2 2(EIDEEIDE)、)、ATA-3ATA-3(Fast ATA-2Fast ATA-2)、)、ATA-4ATA-4(包括(包括Ultra ATAUltra ATA、Ultra ATA/33Ultra ATA/33、Ultra ATA/66Ultra AT
55、A/66)与)与Serial Serial ATAATA(包括(包括Ultra ATA/100Ultra ATA/100及其他后续的接口类型)。及其他后续的接口类型)。基本的基本的IDEIDE接口数据传输率为接口数据传输率为4.1 MB/s4.1 MB/s,传输方式有,传输方式有PIOPIO和和DMADMA两种,支持总线为两种,支持总线为ISAISA和和EISAEISA。ATA-2ATA-2、ATAPIATAPI和针对和针对PCIPCI总线的总线的FAST-ATAFAST-ATA、FAST-ATA2FAST-ATA2等数据传输率等数据传输率达到了达到了16.67MB/s16.67MB/s。Ul
56、tra DMA/33Ultra DMA/33接口(称为接口(称为EIDEEIDE接口)接口),采用,采用PIOPIO模式,数据传输率达到模式,数据传输率达到33MB/s33MB/s。UltraDMA/66UltraDMA/66接口的传输率为接口的传输率为Ultra DMA/33Ultra DMA/33的两倍,采的两倍,采用用CRCCRC(循环冗余循环校验)技术以保证数据传输的安(循环冗余循环校验)技术以保证数据传输的安全性,并且使用了全性,并且使用了8080线的专用连接电缆,是现在市场线的专用连接电缆,是现在市场上主流的硬盘接口类型。上主流的硬盘接口类型。Ultra ATA/ 100Ultra
57、 ATA/ 100是最有前景是最有前景的硬盘接口,它的理论最大外部数据传输率可以高达的硬盘接口,它的理论最大外部数据传输率可以高达100MB/s100MB/s。7/25/202428嵌入式系统的存储器系统(4)nSCSISCSI(Small Computer System InterfaceSmall Computer System Interface,小型计算,小型计算机系统接口)不是专为硬盘设计的,是一种总线型接机系统接口)不是专为硬盘设计的,是一种总线型接口。口。SCSISCSI独立于系统总线工作,其系统占用率极低,独立于系统总线工作,其系统占用率极低,但其价格昂贵,具有这种接口的硬盘大
58、多用于服务器但其价格昂贵,具有这种接口的硬盘大多用于服务器等高端应用场合。等高端应用场合。7/25/202429嵌入式系统的存储器系统(4)4.3 NOR Flash接口电路4.3.1 NOR Flash4.3.1 NOR Flash存储器存储器Am29LV160DAm29LV160DnAm29LV160DAm29LV160D是是AMDAMD公司的一款公司的一款NOR FlashNOR Flash存储器,存储容量为存储器,存储容量为2M8Bit/1M16Bit2M8Bit/1M16Bit,接口与,接口与CMOS I/OCMOS I/O兼容,工作电压为兼容,工作电压为2.72.73.6V3.6V
59、,读操作电流为,读操作电流为9mA9mA,编程和擦除操作电流为,编程和擦除操作电流为20mA20mA,待机电流,待机电流为为200nA200nA。采用。采用FBGA-48FBGA-48、TSOP-48TSOP-48、SO-44 SO-44 三种封装形式。三种封装形式。nAm29LV160DAm29LV160D仅需仅需3.3V3.3V电压即可完成在系统的编程与擦除操作,通电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对过对其内部的命令寄存器写入标准的命令序列,可对FlashFlash进行编进行编程(烧写)、整片擦除、按扇区擦除,以及其他操作。以程(烧写)、整片
60、擦除、按扇区擦除,以及其他操作。以1616位位(字模式)数据宽度的方式工作。更多的内容请登录,查找资料(字模式)数据宽度的方式工作。更多的内容请登录,查找资料“Am29LV160D 16 Megabit (2 M8-Bit/1 M16-Bit) CMOS 3.0 “Am29LV160D 16 Megabit (2 M8-Bit/1 M16-Bit) CMOS 3.0 Volt-only Boot Sector Flash Memory”Volt-only Boot Sector Flash Memory”。nAm29LV160DAm29LV160D的逻辑框图如图的逻辑框图如图4.3.14.3.
61、1所示,引脚端功能如表所示,引脚端功能如表4.3.14.3.1所所示。示。 7/25/202430嵌入式系统的存储器系统(4)引脚类型功能A19A0输入地址输入。提供存储器地址DQ14DQ0输入/输出数据输入/输出DQ15/A-1输入/输出在字模式,DQ15为数据输入/输出;在字节模式,A-1为 LSB地址输入BYTE#输入选择8bit 或者16bit 模式CE#输入片选。当CE# 为低电平时,芯片有效OE#输入输出使能。当OE# 为低电平时,输出有效WE#输入写使能,低电平有效,控制写操作RESET#输入硬件复位引脚端,低电平有效RY/BY#输出就绪/忙标志信号输出,SO-44封装无此引脚端
62、VCC电源3 V电源电压输入VSS地器件地NC未连接。空脚图4.3.1 Am29LV160D的逻辑框图表4.3.1 Am29LV160D引脚端功能7/25/202431嵌入式系统的存储器系统(4)4.3.2 S3C2410A4.3.2 S3C2410A与与NOR FlashNOR Flash存储器的接口电路存储器的接口电路nS3C2410AS3C2410A与与Am29LV160DAm29LV160D的接口电路如图的接口电路如图4.3.24.3.2所示。所示。FlashFlash存储器在系统中通常用于存放程序代码,系统上存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行,
63、因此,应将存电或复位后从此获取指令并开始执行,因此,应将存有程序代码的有程序代码的FlashFlash存储器配置到存储器配置到Bank0Bank0,即将,即将S3C2410AS3C2410A的的nGCS0nGCS0接至接至Am29LV160DAm29LV160D的的CECE(nCEnCE)端。)端。Am29LV160DAm29LV160D的的OEOE(nOEnOE)端接)端接S3C2410XS3C2410X的的nOEnOE;WEWE(nXEnXE)端)端S3C2410XS3C2410X的的nWEnWE相连;地址总线相连;地址总线A19A19A0A0与与S3C2410XS3C2410X的地址总线
64、的地址总线ADDR20ADDR20ADDR1ADDR1(A20A20A1A1)相连;)相连;1616位数据总线位数据总线DQ15DQ15DQ0DQ0与与S3C2410XS3C2410X的低的低1616位数据总线位数据总线DATA15DATA15DATA0DATA0(D15D15D0D0)相连。)相连。n注意:此时应将注意:此时应将BWSCONBWSCON中的中的DW0DW0设置为设置为0101,即选择,即选择1616位位总线方式。总线方式。n如果需要更大的如果需要更大的NOR FlashNOR Flash存储容量,可以采用容量更存储容量,可以采用容量更大的大的NOR FlashNOR Flas
65、h存储器芯片,如存储器芯片,如28F128J3A28F128J3A、28F640J3A28F640J3A等。更多的内容请登录,查找资料等。更多的内容请登录,查找资料“3 Volt Intel “3 Volt Intel Strata FlashStrata Flash Memory 28F128J3A, 28F640J3A, Memory 28F128J3A, 28F640J3A, 28F320J3A (x8/x16)”28F320J3A (x8/x16)”。7/25/202432嵌入式系统的存储器系统(4)图4.3.2 S3C2410A与Am29LV160D的接口电路7/25/202433嵌
66、入式系统的存储器系统(4)nS3C2410AS3C2410A与与28F128J3A28F128J3A的接口电路如图的接口电路如图4.3.34.3.3所示。所示。S3C2410XS3C2410X的的nGCS0nGCS0接至接至28F128J3A28F128J3A的的CE0CE0(nCEnCE)端。)端。28F128J3A28F128J3A的的OEOE(nOEnOE)端接)端接S3C2410XS3C2410X的的nOEnOE;WEWE(nWEnWE)端)端S3C2410XS3C2410X的的nWEnWE相连;地址总线相连;地址总线A24A24A1A1与与S3C2410XS3C2410X的地址总线的
67、地址总线ADDR24ADDR24ADDR1ADDR1(A24A24A1A1)相连,)相连,A0A0直接接地;直接接地;1616位数据总线位数据总线DQ15DQ15DQ0DQ0与与S3C2410XS3C2410X的低的低1616位数据总线位数据总线DATA15DATA15DATA0DATA0(D15D15D0D0)相连。)相连。7/25/202434嵌入式系统的存储器系统(4)图4.3.3 S3C2410A与28F128J3A的接口电路7/25/202435嵌入式系统的存储器系统(4)4.4 NAND Flash接口电路接口电路4.4.1 S3C2410A NAND Flash4.4.1 S3C
68、2410A NAND Flash控制器控制器1 1S3C2410A NAND FlashS3C2410A NAND Flash控制器特性控制器特性nS3C2410AS3C2410A可以在一个外部可以在一个外部NAND FlashNAND Flash存储器上执行启动代存储器上执行启动代码,用来实现这一想法。为了支持码,用来实现这一想法。为了支持NAND FlashNAND Flash的启动装载的启动装载(boot loaderboot loader),),S3C2410AS3C2410A配置了一个叫做配置了一个叫做“Steppingstone”“Steppingstone”的内部的内部SRAMS
69、RAM缓冲器。当系统启动时,缓冲器。当系统启动时,NAND FlashNAND Flash存储器的前存储器的前4KB4KB将被自动加载到将被自动加载到SteppingstoneSteppingstone中,然后系统自动执行这些载入的启动代码。中,然后系统自动执行这些载入的启动代码。n在一般情况下,启动代码将复制在一般情况下,启动代码将复制NAND FlashNAND Flash的内容到的内容到SDRAMSDRAM中。使用中。使用S3C2410AS3C2410A内部硬件内部硬件ECCECC功能可以对功能可以对NAND FlashNAND Flash的数的数据的有效性进行检查。在复制完成后,将在据
70、的有效性进行检查。在复制完成后,将在SDRAMSDRAM中执行主中执行主程序。程序。nNAND FlashNAND Flash控制器具有以下特性。控制器具有以下特性。nNAND FlashNAND Flash模式:支持读擦除编程模式:支持读擦除编程NAND FlashNAND Flash存储器。存储器。7/25/202436嵌入式系统的存储器系统(4) 自动启动模式:复位后,启动代码被传送到自动启动模式:复位后,启动代码被传送到SteppingstoneSteppingstone中。传送完毕后,启动代码在中。传送完毕后,启动代码在SteppingstoneSteppingstone中执行。中执
71、行。 具有硬件具有硬件ECCECC产生模块(硬件生成校验码和通过软件校产生模块(硬件生成校验码和通过软件校验)。验)。 在在NAND FlashNAND Flash启动后,启动后,Steppingstone 4KBSteppingstone 4KB内部内部SRAMSRAM缓缓冲器可以作为其他用途使用。冲器可以作为其他用途使用。 NAND Flash NAND Flash控制器不能通过控制器不能通过DMADMA访问,可以使用访问,可以使用LDM/ LDM/ STMSTM指令来代替指令来代替DMADMA操作。操作。2 2S3C2410A NAND FlashS3C2410A NAND Flash控
72、制器结构控制器结构nNAND FlashNAND Flash控制器的内部结构方框图如图控制器的内部结构方框图如图4.4.14.4.1所示。所示。NAND FlashNAND Flash的工作模式如图的工作模式如图4.4.24.4.2所示。所示。7/25/202437嵌入式系统的存储器系统(4)图4.4.1 NAND Flash控制器内部结构方框图7/25/202438嵌入式系统的存储器系统(4)图4.4.2 NAND Flash的操作模式7/25/202439嵌入式系统的存储器系统(4)自动启动模式的时序如下:自动启动模式的时序如下:(1 1)完成复位;)完成复位;(2 2)当自动启动模式使能
73、时,首先将)当自动启动模式使能时,首先将NAND FlashNAND Flash存储器的存储器的前前4 KB4 KB内容自动复制到内容自动复制到Steppingstone 4 KBSteppingstone 4 KB内部缓冲器中;内部缓冲器中;(3 3)SteppingstoneSteppingstone映射到映射到nGCSOnGCSO;(4 4)CPUCPU开始执行在开始执行在Steppingstone 4 KBSteppingstone 4 KB内部缓冲器中的启内部缓冲器中的启动代码。动代码。注意:在自动启动模式,不进行注意:在自动启动模式,不进行ECCECC检测。因此,应确保检测。因此,
74、应确保NAND FlashNAND Flash的前的前4 KB4 KB不能有位错误。不能有位错误。NAND FlashNAND Flash模式配置:模式配置:(1 1)利用)利用NFCONFNFCONF寄存器设置寄存器设置NAND FlashNAND Flash配置;配置;(2 2)写)写NAND FlashNAND Flash命令到命令到NFCMDNFCMD寄存器;寄存器;(3 3)写)写NAND FlashNAND Flash地址到地址到NFADDRNFADDR寄存器;寄存器;(4 4)在检查)在检查NAND FlashNAND Flash状态时,利用状态时,利用NFSTATNFSTAT寄
75、存器读写寄存器读写数据。在读操作之前或者编程操作之后应该检查数据。在读操作之前或者编程操作之后应该检查R/nBR/nB信号。信号。 7/25/202440嵌入式系统的存储器系统(4)nNAND Flash存储器的时序如图4.4.3所示。图4.4.3 NAND Flash存储器的时序(TACLS0,TWRPH01,TWRPH10) 7/25/202441嵌入式系统的存储器系统(4)nNAND Flash控制器的引脚配置如表4.4.1所列。表4.4.1 NAND Flash控制器的引脚配置引脚配置D7:0数据/命令/地址输入/输出端口(用数据总线分派)CLE命令锁存使能(输出)ALE地址锁存使能(
76、输出)nFCENAND Flash芯片使能(输出)nFRENAND Flash读使能(输出)nFWENAND Flash写使能(输出)R/nBNAND Flash准备就绪/忙使能(输出)7/25/202442嵌入式系统的存储器系统(4)nBOOT(启动)和NAND Flash配置如下:n(1)OM1: 0=00b:使能NAND Flash控制器为自动启动模式;n(2)NAND Flash存储器的页面大小应该为512字节;n(3)NCON:NAND Flash存储器寻址步选择。0为3步寻址;1为4步寻址。n512字节ECC奇偶校验码分配表如表4.4.2所示。表4.4.2 512字节ECC奇偶校验
77、码分配表7/25/202443嵌入式系统的存储器系统(4)n在写读操作期间,在写读操作期间,S3C2410AS3C2410A自动生成自动生成512512字节的字节的ECCECC奇偶校验码。奇偶校验码。每个每个512512字节数据的字节数据的ECCECC奇偶校验码由奇偶校验码由3 3字节组成。字节组成。n2424位位ECCECC奇偶校验码奇偶校验码=18=18位行奇偶位行奇偶6 6位列奇偶位列奇偶nECCECC生成模块执行以下操作:生成模块执行以下操作:(1 1)当)当MCUMCU写数据到写数据到NANDNAND时,时,ECCECC生成模块产生生成模块产生ECCECC代码。代码。(2 2)当)当
78、MCUMCU从从NANDNAND读数据时,读数据时,ECCECC生成模块产生生成模块产生ECCECC代码,同时用户代码,同时用户程序将它与先前写入的程序将它与先前写入的ECCECC代码进行比较。代码进行比较。4.4.2 S3C2410A4.4.2 S3C2410A与与NAND FlashNAND Flash存储器的接口电路存储器的接口电路n与与NOR FlashNOR Flash存储器相比,存储器相比,NAND FlashNAND Flash的接口相对比较复杂。一些的接口相对比较复杂。一些嵌入式处理器芯片内部配置了专门的嵌入式处理器芯片内部配置了专门的NAND FlashNAND Flash控
79、制器,如控制器,如S3C2410AS3C2410A。7/25/202444嵌入式系统的存储器系统(4)nS3C2410AS3C2410A与与NAND FlashNAND Flash存储器存储器K9F1208UDM-YCB0K9F1208UDM-YCB0接口电接口电路如图路如图4.4.44.4.4所示。所示。K9F1208UDM-YCB0K9F1208UDM-YCB0的存储容量为的存储容量为64M64M字节,数据总线宽度为字节,数据总线宽度为8 8位,工作电压为位,工作电压为2.7V2.7V3.6V,3.6V,采用采用TSOP-48TSOP-48封装。仅需单封装。仅需单3.3V3.3V电压即可完
80、成在系统的电压即可完成在系统的编程与擦除操作,引脚端功能如表编程与擦除操作,引脚端功能如表4.4.34.4.3所示。更多的所示。更多的内容请登录,查找资料内容请登录,查找资料“K9F1208U0M-YCB0“K9F1208U0M-YCB0,K9F1208U0M-YIB0 64M8 Bit NAND Flash Memory”K9F1208U0M-YIB0 64M8 Bit NAND Flash Memory”。7/25/202445嵌入式系统的存储器系统(4)表4.4.3 K9F1208UDM的引脚功能引脚类型功能I/O7 I/O0输入/输出数据输入输出、控制命令和地址的输入CLE输入命令锁存
81、信号ALE输入地址锁存信号/CE输入芯片使能信号/RE输入读有效信号/WE输入写有效信号/WP输入写保护信号R/nB输出就绪/忙标志信号输出Vcc电源电源电压2.7V3.3VVss接地器件地7/25/202446嵌入式系统的存储器系统(4)nK9F1208UDMK9F1208UDM的的I/OI/O口既可接收和发送数据,也可接收地口既可接收和发送数据,也可接收地址信息和控制命令。在址信息和控制命令。在CLECLE有效时,锁存在有效时,锁存在I/OI/O口上的口上的是控制命令字;在是控制命令字;在ALEALE有效时,锁存在有效时,锁存在I/OI/O口上的是地口上的是地址;址;/RE/RE或或/WE
82、/WE有效时,锁存的是数据。这种一口多用有效时,锁存的是数据。这种一口多用的方式可以大大减少总线的数目,只是控制方式略微的方式可以大大减少总线的数目,只是控制方式略微有些复杂。利用有些复杂。利用S3C2410XS3C2410X处理器的处理器的NAND FlashNAND Flash控制器控制器可以解决这个问题。可以解决这个问题。n在图在图4.4.44.4.4中,中,K9F1208UDMK9F1208UDM的的ALEALE和和CLECLE端分别与端分别与S3C2410AS3C2410A的的ALEALE和和CLECLE端连接,端连接,8 8位的位的I/O7I/O7I/O0I/O0与与S3C2410
83、AS3C2410A低低8 8位数据总线位数据总线DATA7DATA7DATA0DATA0相连,相连,/WE/WE、/RE/RE和和/CE/CE分别与分别与S3C2410AS3C2410A的的nFWEnFWE、nFREnFRE和和nFCEnFCE相连,相连,R/BR/B与与RnBRnB相连,为增加稳定性相连,为增加稳定性R/nBR/nB端口连接了一个上拉电端口连接了一个上拉电阻。同时,阻。同时,S3C2410AS3C2410A的的NCONNCON配置端口必须连接一个上配置端口必须连接一个上拉电阻拉电阻. .7/25/202447嵌入式系统的存储器系统(4)图4.4.4 S3C2410A与K9F1
84、208UDM-YCB0接口电路(注意:原理图中LDATA修改为DATA,U4删除,VDD33V修改为VDD33,U-K9F1208UDM-YC80修改为K9F1208UDM-YCB0)7/25/202448嵌入式系统的存储器系统(4)4.5 SDRAM接口电路接口电路nSDRAMSDRAM可读可写,不具有掉电保持数据的特性,但其存取速度大可读可写,不具有掉电保持数据的特性,但其存取速度大大高于大高于FlashFlash存储器。在嵌入式系统中,存储器。在嵌入式系统中,SDRAMSDRAM主要用做程序的运行主要用做程序的运行空间、数据及堆栈区。当系统启动时,空间、数据及堆栈区。当系统启动时,CPU
85、CPU首先从复位地址首先从复位地址0x00x0处读处读取启动代码,在完成系统的初始化后,程序代码一般应调入取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAMSDRAM中运行,以提高系统的运行速度。同时,系统及用户堆栈、运行数中运行,以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都放在据也都放在SDRAMSDRAM中。中。nSDRAMSDRAM在各种嵌入式系统中应用时,为避免数据丢失,必须定时刷在各种嵌入式系统中应用时,为避免数据丢失,必须定时刷新。因此要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新。因此要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。
86、新控制逻辑电路。S3C2410XS3C2410X及其他一些及其他一些ARMARM芯片在片内具有独立的芯片在片内具有独立的SDRAMSDRAM刷新控制逻辑,可方便地与刷新控制逻辑,可方便地与SDRAMSDRAM接口。但某些接口。但某些ARMARM芯片则没芯片则没有有SDRAMSDRAM刷新控制逻辑,不能直接与刷新控制逻辑,不能直接与SDRAMSDRAM接口,在进行系统设计时接口,在进行系统设计时应注意这一点。应注意这一点。n目前常用的目前常用的SDRAMSDRAM为为8 8位位/16/16位的数据宽度,工作电压一般为位的数据宽度,工作电压一般为3.3V3.3V。主要的生产厂商为主要的生产厂商为H
87、YUNDAIHYUNDAI,WinbondWinbond等,同类型器件一般具有相同等,同类型器件一般具有相同的电气特性和封装形式,可以通用。的电气特性和封装形式,可以通用。7/25/202449嵌入式系统的存储器系统(4)nS3C2410XS3C2410X与与SDRAMSDRAM存储器存储器HY57V561620HY57V561620接口电路如图接口电路如图4.4.54.4.5所示。所示。nHY57V561620HY57V561620存储容量为存储容量为4 4组组64M64M位,工作电压为位,工作电压为3.3V3.3V,常见封装为,常见封装为TSOP-54TSOP-54,兼容,兼容LVTTLL
88、VTTL接口,支持自动刷接口,支持自动刷新(新(Auto-RefreshAuto-Refresh)和自刷新()和自刷新(Self-RefreshSelf-Refresh),),1616位数据宽度。位数据宽度。HY57V561620HY57V561620引脚功能如表引脚功能如表4.4.44.4.4所示。所示。更多的内容请登录,查找资料更多的内容请登录,查找资料“HY57V561620(L)T “HY57V561620(L)T 4Banks x 4M x 16Bit Synchronous DRAM”4Banks x 4M x 16Bit Synchronous DRAM”。 7/25/20245
89、0嵌入式系统的存储器系统(4)表4.4.4 HY57V561620引脚功能 引脚类型功能CLK输入时钟,芯片时钟输入。所有的输入中CLK的上升沿有效CKE输入时钟使能,片内时钟信号控制/CS输入片选。禁止或使能除CLK、 CKE和DQM外的所有输入信号BAO,BA1输入组地址选择。用于片内4个组的选择A12A0输入地址总线。行地址:A12A0;列地址:A8A0/RAS输入行地址锁存。时钟沿和/RAS有效时,锁存行地址,允许行的访问和改写/CAS输入列地址锁存。时钟沿和/CAS有效时,锁存列地址,允许列的访问/WE输入写使能。使能写信号和允许列改写,WE和/CAS有效时开始锁存数据LDQM,UD
90、QM输入数据I/O屏蔽。在读模式下控制输出缓冲;在写模式下屏蔽输入数据DQ15DQ0输入/输出数据总线。数据输入/输出VDD/VSS电源地内部电路及输入缓冲器电源地VDDQ/VSSQ电源地输出缓冲器电源地NC空脚。未连接7/25/202451嵌入式系统的存储器系统(4)(引脚端19 nGCS0修改为nGCS6)图4.4.5 S3C2410X与SDRAM存储器HY57V561620的接口电路7/25/202452嵌入式系统的存储器系统(4)n根据系统需求,可构建根据系统需求,可构建1616位或位或3232位的位的SDRAMSDRAM存储器系统,存储器系统,但为充分发挥但为充分发挥3232位位CP
91、UCPU的数据处理能力,本设计采用的数据处理能力,本设计采用3232位位的的SDRAMSDRAM存储器系统。存储器系统。HY57V561620HY57V561620为为1616位数据宽度,单位数据宽度,单片容量为片容量为32MB32MB,系统选用两片,系统选用两片HY57V561620HY57V561620并联构建并联构建3232位位的的SDRAMSDRAM存储器系统,共存储器系统,共64MB64MB的的SDRAMSDRAM空间,可满足嵌入空间,可满足嵌入式操作系统及各种相对较复杂的算法的运行要求。与式操作系统及各种相对较复杂的算法的运行要求。与FlashFlash存储器相比,存储器相比,SD
92、RAMSDRAM的控制信号较多,其连接电路的控制信号较多,其连接电路也要相对复杂一些。也要相对复杂一些。n两片两片HY57V561620HY57V561620并联构建并联构建3232位的位的SDRAMSDRAM存储器系统,其存储器系统,其中一片为高中一片为高1616位,另一片为低位,另一片为低1616位,可将两片位,可将两片HY57V561620HY57V561620作为一个整体配置到作为一个整体配置到Bank6Bank6即将即将S3C2410XS3C2410X的的nGCS6nGCS6接至两片接至两片HY57V561620HY57V561620的的/CS/CS端。端。n高位高位HY57V561
93、620HY57V561620的的CLKCLK端连接到端连接到S3C2410XS3C2410X的的SCLK1SCLK1端,低端,低位位HY57V561620HY57V561620的的CLKCLK端连接到端连接到S3C2410XS3C2410X的的SCLK0SCLK0端;端;7/25/202453嵌入式系统的存储器系统(4)n两片两片HY57V561620HY57V561620的的CKECKE端连接到端连接到S3C2410XS3C2410X的的SCKESCKE端;端;n两片两片HY57V561620HY57V561620的的/RAS/RAS、/CAS. /WE/CAS. /WE端分别连接到端分别连
94、接到S3C2410XS3C2410X的的nSDRASnSDRAS端、端、nSDCASnSDCAS端、端、nDWEnDWE端;端;n两片两片HY57V561620HY57V561620的的A12A12A0A0连接到连接到S3C2410XS3C2410X的地址总的地址总线线ADDR14ADDR14ADDR2ADDR2(A14A14A2A2););n两片两片HY57V561620HY57V561620的的BA1BA1、BA0BA0连接到连接到S3C2410XS3C2410X的地址总的地址总线线ADDR25ADDR25(A25A25)、)、ADDR24ADDR24(A24A24););n高高1616位
95、片的位片的DQ15DQ15DQ0DQ0连接到连接到S3C2410XS3C2410X的数据总线的高的数据总线的高1616位位DATA8DATA8DATA16DATA16(D8D8D16D16),低),低1616位片的位片的DQ15DQ15DQ0DQ0连接到连接到S3C2410XS3C2410X的数据总线的低的数据总线的低1616位位DATA15DATA15DATA0DATA0(D15D15D0D0););n高高1616位片的位片的UDQMUDQM、LDQMLDQM分别连接到分别连接到S3C2410XS3C2410X的的nWEB3nWEB3、nWEB2nWEB2,低,低1616位片的位片的UDQM
96、UDQM、LDQMLDQM分别连接到分别连接到S3C2410XS3C2410X的的nWEB1nWEB1、nWEB0nWEB0。n注意:此时应将注意:此时应将BWSCONBWSCON中的中的DW6DW6设置为设置为1010,即选择,即选择3232位位总线方式。总线方式。 7/25/202454嵌入式系统的存储器系统(4)4.6 CF卡接口电路卡接口电路4.6.1 PCMCIA4.6.1 PCMCIA接口规范接口规范n19901990年年9 9月,月,PCMCIAPCMCIA(Personal Computer Memory Card Personal Computer Memory Card I
97、nternational AssociationInternational Association,PCPC机内存卡国际联合会)推出了机内存卡国际联合会)推出了PCMCIA 1.0PCMCIA 1.0规范,该规范是针对各类存储卡或虚拟盘设计的,其规范,该规范是针对各类存储卡或虚拟盘设计的,其目的是为了建立一个物理尺寸较小、低功耗的、灵活的存储卡标目的是为了建立一个物理尺寸较小、低功耗的、灵活的存储卡标准,采用准,采用1616位体系结构,位体系结构, JEIDA JEIDA(Janpanese Electronics Janpanese Electronics Industry Developm
98、ent AssociationIndustry Development Association)6868引脚的接口。引脚的接口。19911991年,年,PCMCIAPCMCIA推出了推出了2.02.0规范,添加了对规范,添加了对I/OI/O设备的规范,以方便用户扩设备的规范,以方便用户扩展展I/OI/O设备,但接口仍采用与设备,但接口仍采用与1.01.0规范兼容的规范兼容的6868引脚的接口;同时,引脚的接口;同时,PCMCIAPCMCIA对其驱动程序的架构也作了规范,以便于软件开发人员开对其驱动程序的架构也作了规范,以便于软件开发人员开发的驱动程序可以相互兼容。随着多媒体和高速网络的发展,发
99、的驱动程序可以相互兼容。随着多媒体和高速网络的发展,PCMCIAPCMCIA又开发了又开发了3232位的位的CardBUSCardBUS。现在,基于。现在,基于PCMCIAPCMCIA的设备已经在的设备已经在笔记本电脑、数码相机、机顶盒、车载设备、手持设备、笔记本电脑、数码相机、机顶盒、车载设备、手持设备、PDAPDA等方等方面被广泛的采用。越来越多的产品都需要接口具有可扩展模块化面被广泛的采用。越来越多的产品都需要接口具有可扩展模块化的功能,因此的功能,因此PCMCIAPCMCIA也将自己的目标定位为也将自己的目标定位为 “ “发展模块化外设的发展模块化外设的标准,并将他们推广到全世界标准,
100、并将他们推广到全世界”。7/25/202455嵌入式系统的存储器系统(4)nPCMCIAPCMCIA物理上定义了物理上定义了6868个引脚,卡片有个引脚,卡片有1616位和位和3232位之位之分。分。1616位的位的PCMCIAPCMCIA卡通常叫卡通常叫PCCardPCCard,其时序和,其时序和ISAISA总线总线类似,速度较慢。采用类似,速度较慢。采用3232位位PCMCIAPCMCIA标准的称做标准的称做CardBusCardBus卡,其运行频率达到卡,其运行频率达到33MHz33MHz,可以满足一般局域网及宽,可以满足一般局域网及宽带应用的要求。带应用的要求。CardBusCardB
101、us接口的信号传输协议起源于接口的信号传输协议起源于PCIPCI局部总线信号传输协议,支持以任何组合形式实现局部总线信号传输协议,支持以任何组合形式实现多个总线功能。总线主控功能可为处理器分担任务,多个总线功能。总线主控功能可为处理器分担任务,有利于在多任务环境中改善系统的吞吐量。有利于在多任务环境中改善系统的吞吐量。CardBusCardBus卡卡可以在移动环境下应用。可以在移动环境下应用。PCMCIAPCMCIA接口和系统总线接口接口和系统总线接口通常需要一个通常需要一个HBAHBA(Host Bus AdepterHost Bus Adepter)运行转换,这)运行转换,这个个HBAHB
102、A可以是一个芯片,也可以是一些逻辑。可以是一个芯片,也可以是一些逻辑。PCMCIAPCMCIA卡卡可以支持可以支持5V5V和和3.3V3.3V的供电电压,的供电电压,PCMCIAPCMCIA规范中采用电规范中采用电压敏感压敏感VSVS(Voltage SenseVoltage Sense)信号识别插入的)信号识别插入的PCMCIAPCMCIA卡卡的工作电压。的工作电压。7/25/202456嵌入式系统的存储器系统(4)nPCMCIAPCMCIA卡可以分为卡可以分为I I型(型(TYPEITYPEI)、)、IIII型(型(TYPEIITYPEII)、)、IIIIII型(型(TYPEIIITYPE
103、III)、扩展)、扩展TYPEITYPEI和扩展和扩展TYPEII 5TYPEII 5种,其种,其中中I I型型IIIIII型型PCMCIAPCMCIA卡的外形尺寸为卡的外形尺寸为85.60mm54.00mm85.60mm54.00mm,卡的厚度分别为,卡的厚度分别为3.3mm3.3mm、5.0mm5.0mm和和10.5mm10.5mm。而扩展。而扩展TYPEITYPEI和扩展和扩展TYPEIITYPEII的的PCMCIAPCMCIA卡可以兼卡可以兼容某些尺寸较大的接口,如容某些尺寸较大的接口,如RJ45RJ45接口等。接口等。nPCMCIAPCMCIA规范里一共定义了规范里一共定义了6 6类
104、类PCMCIAPCMCIA内存卡,分别是内内存卡,分别是内存卡、存卡、I/OI/O卡(内存或卡(内存或I/OI/O)、硬盘)、硬盘ATAATA(AT AT Attachment for IDE driversAttachment for IDE drivers)接口、)接口、DMADMA(Direct Direct Memory AccessMemory Access)接口、)接口、AIM SAIM S(Auto-Indexing Mass Auto-Indexing Mass StorageStorage)和)和3232位位PCPC卡接口卡接口CardBusCardBus。7/25/2024
105、57嵌入式系统的存储器系统(4)4.6.2 S3C2410A4.6.2 S3C2410A的的CFCF卡接口电路卡接口电路nCFCF卡接口采用卡接口采用5050个引脚,个引脚,IIII型卡并完全符合型卡并完全符合PCMCIAPCMCIA电电气和机械接口规格(气和机械接口规格(PCMCIAPCMCIA卡为卡为6868个引脚),同时支个引脚),同时支持持3.3V3.3V和和5V5V的电压。在的电压。在5050个引脚中,其中有个引脚中,其中有1616根数据根数据线、线、1111根地址线(在根地址线(在TureIDETureIDE模式下仅用模式下仅用3 3根地址线)、根地址线)、2 2根寄存器组选择信号
106、线(根寄存器组选择信号线(CS0CS0和和CS1CS1)、数据的读写线)、数据的读写线(IORDIORD和和IOWRIOWR)、)、1 1根中断信号请求线(根中断信号请求线(INTRQINTRQ)和)和1 1根根复位线(复位线(RESETRESET)。)。CFCF卡可以工作在卡可以工作在1616位或者位或者8 8位数据位数据总线方式。若选择总线方式。若选择8 8位工作方式,位工作方式,CS1CS1固定接于高电平,固定接于高电平,CS0CS0低电平有效。低电平有效。INTRQINTRQ用于判断用于判断CFCF卡是否处于读写卡是否处于读写忙状态。忙状态。 n与与S3C2410AS3C2410A连接
107、的连接的CFCF卡接口电路如图卡接口电路如图4.6.14.6.1所示。所示。7/25/202458嵌入式系统的存储器系统(4)图4.6.1 CF卡接口电路7/25/202459嵌入式系统的存储器系统(4)4.6.3 CF4.6.3 CF卡的读写操作卡的读写操作CFCF卡可以配置工作在存储模式和卡可以配置工作在存储模式和I/OI/O模式。模式。CFCF卡使用标准卡使用标准ATAATA命令实现存储块的读写操作。每个存储块包含命令实现存储块的读写操作。每个存储块包含512512字节,在访问字节,在访问CFCF卡之前,必须进行初始化操作。初卡之前,必须进行初始化操作。初始化过程包括始化过程包括GPIO
108、GPIO配置、卡检测和复位。配置、卡检测和复位。(1 1)存储模式访问)存储模式访问读取卡信息结构。卡信息结构包含读取卡信息结构。卡信息结构包含CFCF卡的相关信息。卡的相关信息。写存储块。写存储块。CFCF卡存储器一般采用卡存储器一般采用Nand FlashNand Flash,需要使,需要使用用ATAATA命令来完成读写操作。命令来完成读写操作。CFCF卡采用块方式进行读卡采用块方式进行读写操作,每块的大小为写操作,每块的大小为512512字节,写数据的操作步骤字节,写数据的操作步骤如下:如下:(a a)写块数到扇区计数器寄存器;)写块数到扇区计数器寄存器;(b b)写)写LBALBA地址
109、;地址;7/25/202460嵌入式系统的存储器系统(4)(c c)发送)发送0x300x30命令来启动传输。命令来启动传输。当当CFCF卡接收到该命令后,将会使能卡接收到该命令后,将会使能DRQDRQ信号并清除信号并清除BSYBSY信信号,等待主机写入数据,规定的数据写完后号,等待主机写入数据,规定的数据写完后DRQDRQ会被清会被清除。除。读存储块。与写存储块大致相同,只是命令不一样,读存储块。与写存储块大致相同,只是命令不一样,下面是一个典型的操作序列:下面是一个典型的操作序列:(a a)写块数到扇区计数器寄存器;)写块数到扇区计数器寄存器;(b b)写)写LBALBA地址;地址;(c
110、c)发送)发送0 x200 x20命令来启动传输。命令来启动传输。当当CFCF卡接收到该命令后,将会使能卡接收到该命令后,将会使能DRQDRQ信号并清除信号并清除BSYBSY信信号,等待主机读出数据,当规定的数据写完后号,等待主机读出数据,当规定的数据写完后DRQDRQ将会将会被清除。被清除。7/25/202461嵌入式系统的存储器系统(4)(2 2)I/OI/O模式访问模式访问配置配置CFCF卡工作在卡工作在I/OI/O模式。可以通过模式。可以通过CFCF卡的配置寄存器卡的配置寄存器将其配置为将其配置为I/OI/O模式。模式。写存储块。写存储块。I/OI/O模式下写存储块与存储模式类似,惟一
111、模式下写存储块与存储模式类似,惟一的区别就是需要使用正确的地址空间,步骤如下:的区别就是需要使用正确的地址空间,步骤如下:(a a)写块数到扇区计数器寄存器;)写块数到扇区计数器寄存器;(b b)然后写)然后写LBALBA地址;地址;(c c)发送)发送0x300x30命令来启动传输。命令来启动传输。读存储块。读存储块。I/OI/O模式下读存储块步骤如下:模式下读存储块步骤如下:(a a)写块数到扇区计数器寄存器;)写块数到扇区计数器寄存器;(b b)然后写)然后写LBALBA地址;地址;(c c)发送)发送0x200x20命令来启动传输。命令来启动传输。 7/25/202462嵌入式系统的存
112、储器系统(4)4.7 SD卡接口电路卡接口电路4.7.1 SD4.7.1 SD卡的接口规范卡的接口规范SDSD存储卡兼容存储卡兼容MMCMMC卡接口规范,采用卡接口规范,采用9 9芯的接口(芯的接口(CLKCLK为时为时钟线,钟线,CMDCMD为命令响应线,为命令响应线,DAT0DAT0DAT3DAT3为双向数据传为双向数据传输线,输线,VDDVDD、Vss1Vss1和和Vss2Vss2为电源和地),最大的工作频为电源和地),最大的工作频率是率是25MHz25MHz,标准,标准SDSD的外形尺寸是的外形尺寸是24mm32mm2.1mm24mm32mm2.1mm,SDSD卡的外形和接口如图卡的外
113、形和接口如图4.7.14.7.1所示,所示,SDSD卡引脚定义如卡引脚定义如表表4.7.14.7.1所示。所示。SDSD卡原理图如图卡原理图如图4.7.24.7.2所示。所示。SDSD卡系统支持卡系统支持SDSD和和SPISPI方式两种通信协议。方式两种通信协议。SDSD卡在结构上卡在结构上使用一主多从星型拓扑结构,拓扑图如图使用一主多从星型拓扑结构,拓扑图如图4.7.34.7.3所示。所示。7/25/202463嵌入式系统的存储器系统(4)图4.7.1 SD卡的外形和接口 图4.7.2 SD卡原理图图7/25/202464嵌入式系统的存储器系统(4)表4.7.1 SD卡引脚定义引脚SD模式S
114、PI模式名称类型描述名称类型描述1CD/DAT3I/O/PP卡检测数据线Bit 3CSI片选信号2CMDPP命令响应DII数据输入3Vss1S接地VssS接地4VDDS电源电压VDDS电源电压5CLKI时钟SCLKI时钟6Vss2S接地Vss2S接地7DAT0I/O/PP数据线Bit 0DOO/PP数据输出8DAT1I/O/PP数据线Bit 1RSV9DAT2I/O/PP数据线Bit 2RSV注:类型S:电源;I/O:输入/输出;PP:推挽方式7/25/202465嵌入式系统的存储器系统(4)图4.7.3 SD卡系统的总线拓扑图7/25/202466嵌入式系统的存储器系统(4)n4.7.2 S
115、3C2410A的SD卡接口电路nS3C2410A内部集成了SD模块,SD卡接口电路如图4.7.4所示。 图4.7.4 SD卡接口电路7/25/202467嵌入式系统的存储器系统(4)4.8 IDE接口电路接口电路4.8.1 S3C2410A 4.8.1 S3C2410A 的的IDEIDE接口电路接口电路IDEIDE采用采用4040线扁平电缆连接,在线扁平电缆连接,在IDEIDE的接口中,除了对的接口中,除了对ATAT总线上的信号作必要的控制之外,基本上是原封不动总线上的信号作必要的控制之外,基本上是原封不动地送往硬盘驱动器。地送往硬盘驱动器。IDEIDE接口电路如图接口电路如图4.8.14.8
116、.1所示。所示。7/25/202468嵌入式系统的存储器系统(4)图4.8.1 IDE接口电路7/25/202469嵌入式系统的存储器系统(4)4.8.2 IDE4.8.2 IDE硬盘读写操作硬盘读写操作IDEIDE接口是一种任务寄存器结构的接口,所有输入输出操接口是一种任务寄存器结构的接口,所有输入输出操作均是通过对相应寄存器的读写完成。一个作均是通过对相应寄存器的读写完成。一个IDEIDE硬盘硬盘驱动器中的寄存器及地址分配例见表驱动器中的寄存器及地址分配例见表4.8.14.8.1。硬盘驱动。硬盘驱动器执行命令后的状态如表器执行命令后的状态如表4.8.24.8.2状态寄存器所示。状态寄存器所
117、示。 7/25/202470嵌入式系统的存储器系统(4)表4.8.1 IDE硬盘驱动器中的寄存器及地址分配 7/25/202471嵌入式系统的存储器系统(4)表4.8.2 状态寄存器7/25/202472嵌入式系统的存储器系统(4)在向硬盘驱动器发出命令前,必须先检测硬盘驱动器是在向硬盘驱动器发出命令前,必须先检测硬盘驱动器是否忙碌(否忙碌(D7=1D7=1)。如果在规定时间内硬盘驱动器一直)。如果在规定时间内硬盘驱动器一直忙碌,则置超时错;否则表示硬盘驱动器空闲,可接忙碌,则置超时错;否则表示硬盘驱动器空闲,可接收命令。收命令。1 1CPUCPU对硬盘写数据操作对硬盘写数据操作如果如果CPU
118、CPU要对硬盘写数据操作,首先要把必要的参数写入要对硬盘写数据操作,首先要把必要的参数写入对应的地址寄存器,等待对应的地址寄存器,等待DRDYDRDY有效;然后将操作码写有效;然后将操作码写入命令寄存器,同时驱动器设置状态寄存器的入命令寄存器,同时驱动器设置状态寄存器的DRQDRQ位,位,表示准备好接收数据,表示准备好接收数据,CPUCPU通过数据寄存器将数据写入通过数据寄存器将数据写入扇区缓冲区。当扇区缓冲区填满后,驱动器清除扇区缓冲区。当扇区缓冲区填满后,驱动器清除 DRQ DRQ位,并置位位,并置位BSYBSY,驱动器将扇区缓冲区中数据写入磁盘。,驱动器将扇区缓冲区中数据写入磁盘。写盘结
119、束,清除写盘结束,清除BSYBSY位,发中断请求信号位,发中断请求信号DNTRQDNTRQ。CPUCPU接接收到中断信号后,读驱动器状态寄存器,同时将中断收到中断信号后,读驱动器状态寄存器,同时将中断信号信号INTRQINTRQ撤除。撤除。7/25/202473嵌入式系统的存储器系统(4)2 2CPUCPU对硬盘进行读数据操作对硬盘进行读数据操作如果如果CPUCPU要对硬盘进行读数据操作,首先把参数写入地址要对硬盘进行读数据操作,首先把参数写入地址寄存器和特性寄存器(如果需要)。然后把命令码写入寄存器和特性寄存器(如果需要)。然后把命令码写入命令寄存器,命令开始执行。这时驱动器置状态寄存器命令
120、寄存器,命令开始执行。这时驱动器置状态寄存器中的中的BSYBSY为为1 1,同时将硬盘上指定扇区内的数据送入扇区,同时将硬盘上指定扇区内的数据送入扇区缓冲区。当扇区缓冲区准备好数据后,置位缓冲区。当扇区缓冲区准备好数据后,置位DRQDRQ,清,清BSYBSY,发中断请求信号,发中断请求信号INTRQINTRQ。CPUCPU检测到中断后,读取状态检测到中断后,读取状态寄存器,测试寄存器,测试ERRERR位,若等于位,若等于1 1;则转入出错处理;否则;则转入出错处理;否则DRQDRQ位为位为1 1,CPUCPU从扇区缓冲区读取数据。数据读完后,从扇区缓冲区读取数据。数据读完后,驱动器复位驱动器复
121、位DRQDRQ位,驱动器重新设置位,驱动器重新设置BSYBSY位。位。3 3实验说明实验说明(1 1)硬盘的初始化)硬盘的初始化通过向通过向RESETRESET引脚发送一个低跳变来实现,可以按照如下引脚发送一个低跳变来实现,可以按照如下代码来完成:代码来完成:7/25/202474嵌入式系统的存储器系统(4)7/25/202475嵌入式系统的存储器系统(4)n(2)读扇区操作n硬盘扇区读操作有以下几个步骤:n主机设置扇区读操作的一些参数,如扇区数、扇区号、磁道号、柱面号及驱动器号。7/25/202476嵌入式系统的存储器系统(4)n主机发送读请求命令。n判断硬盘数据就绪:硬盘在收到命令后开始准
122、备数据,并将BUSY置位,就绪后将清除BUSY位,并且将DRQ置位。7/25/202477嵌入式系统的存储器系统(4)n主机读取数据。n读下一个扇区。7/25/202478嵌入式系统的存储器系统(4)(3 3)写扇区操作)写扇区操作硬盘扇区写操作有以下几个步骤:硬盘扇区写操作有以下几个步骤:主机设置扇区读操作的一些参数,如扇区数、扇区号、主机设置扇区读操作的一些参数,如扇区数、扇区号、磁道号、柱面号及驱动器号。磁道号、柱面号及驱动器号。主机发送写请求命令。主机发送写请求命令。检查硬盘就绪:硬盘在收到命令且就绪后将检查硬盘就绪:硬盘在收到命令且就绪后将DRQDRQ置位。置位。主机写一个扇区的数据
123、到硬盘缓冲区。主机写一个扇区的数据到硬盘缓冲区。硬盘在收到一个扇区的数据后,清除硬盘在收到一个扇区的数据后,清除BUSYBUSY位,并且将位,并且将DRQDRQ置位从而将数据从缓冲区写到磁盘上。置位从而将数据从缓冲区写到磁盘上。一个扇区写完毕后,若还有数据需要传送,硬盘会将一个扇区写完毕后,若还有数据需要传送,硬盘会将DRQDRQ重新置位,主机重复第重新置位,主机重复第4 4步操作,直到结束。步操作,直到结束。7/25/202479嵌入式系统的存储器系统(4)n(4 4)格式化扇区操作)格式化扇区操作n格式化扇区操作主要有以下步骤:格式化扇区操作主要有以下步骤:n主机设置扇区读操作的一些参数,
124、如扇区数、扇区主机设置扇区读操作的一些参数,如扇区数、扇区号、磁道号、柱面号及驱动器号。号、磁道号、柱面号及驱动器号。n主机发送格式化请求命令。主机发送格式化请求命令。n检查硬盘就绪:硬盘在收到命令且就绪后,将检查硬盘就绪:硬盘在收到命令且就绪后,将DRQDRQ置置位。位。n主机写一个扇区的数据到硬盘缓冲区。主机写一个扇区的数据到硬盘缓冲区。n硬盘在收到一个扇区的数据后,清除硬盘在收到一个扇区的数据后,清除BUSYBUSY位,并且位,并且将将DRQDRQ置位从而将数据从缓冲区写到磁盘上。置位从而将数据从缓冲区写到磁盘上。n一个扇区写完毕后,若还有扇区需要格式化,硬盘一个扇区写完毕后,若还有扇区
125、需要格式化,硬盘会将会将DRQDRQ重新置位,主机重复第重新置位,主机重复第4 4步操作,直到结束。步操作,直到结束。7/25/202480嵌入式系统的存储器系统(4)第第4章章 思考题与习题思考题与习题1.简述存储器系统层次结构及特点。简述存储器系统层次结构及特点。2.简述简述cache的分类与功能。的分类与功能。3.简述简述MMU的功能。的功能。4.简述内存映射概念。简述内存映射概念。5.简述嵌入式系统内存段、大页、小页、极小页、域的含义。简述嵌入式系统内存段、大页、小页、极小页、域的含义。6.简述在嵌入式系统中简述在嵌入式系统中I/O操作被映射成存储器操作的含义。操作被映射成存储器操作的
126、含义。7.简述嵌入式系统存储设备的分类。简述嵌入式系统存储设备的分类。8.简述存储器的组织和结构。简述存储器的组织和结构。9.简述常见的嵌入式系统存储设备。简述常见的嵌入式系统存储设备。10.简述简述NOR Flash与与NAND Flash的区别。的区别。11.简述简述Flash存储器在嵌入式系统中的用途。存储器在嵌入式系统中的用途。12.简述简述CF卡的内部结构和工作模式。卡的内部结构和工作模式。7/25/202481嵌入式系统的存储器系统(4)13.登录登录,查找,查找Am29LV160D资料,分析其内部结构、引脚端功能资料,分析其内部结构、引脚端功能与应用电路。与应用电路。14.登录登
127、录,查找,查找28F128J3A、28F640J3A资料,分析其内部结构、引资料,分析其内部结构、引脚端功能与应用电路。脚端功能与应用电路。15. 简述简述S3C2410A NAND Flash控制器的基本特性。控制器的基本特性。16.分析分析S3C2410A NAND Flash控制器内部结构,并简述其功能。控制器内部结构,并简述其功能。17.登录登录,查找,查找K9F1208U0M-YCB0,K9F1208U0M-YIB0资料,资料,分析其内部结构、引脚端功能与应用电路。分析其内部结构、引脚端功能与应用电路。 18.简述简述SDRAM的特点。的特点。19.登录登录,查找,查找HY57V561620(L)T资料,分析其内部结构、引脚端资料,分析其内部结构、引脚端功能与应用电路。功能与应用电路。 7/25/202482嵌入式系统的存储器系统(4)20.20.简述简述PCMCIAPCMCIA接口规范。接口规范。21.21.简述简述CFCF卡的读写操作过程。卡的读写操作过程。22.22.简述简述SDSD卡的接口规范。卡的接口规范。23.23.简述简述IDEIDE硬盘读写操作过程。硬盘读写操作过程。7/25/202483嵌入式系统的存储器系统(4)