LOGO嵌入式系统原理及接口技术4存储系统机制及存储器接口存储器是嵌入式系统中的主要硬件部件,用于存储指令码及相关的数据。目前有许多嵌入式CPU芯片内部集成有一定容量的易失性及易失性的存储器。但也有需要扩展外部存储器芯片的。总线总线是把微处理器与存储器、I/O端口及设备相连接的信息通道,但总线并不仅仅指的是一束信号线,而应包含相应的通信协议和规则。在嵌入式系统中,按照使用场合的不同,我们可以把总线分成:(1)片上总线(2)板级总线(3)系统级总线片上总线即是微处理器芯片内部的总线,典型的如ARM公司提出的AMBA总线。AMBA是AdvancedMicrocontrollerBusArchitecture的缩写,是一种开放的,用于高性能嵌入式系统中的总线规范。AMBA总线规范2.0版本中包含了4个部分:AHB、ASB、APB和TestMethodology。其中:①AHB是AdvancedHighPerformaceBus的缩写,用于芯片内高性能系统模块连接的总线,支持突发模式数据传输和事务处理。②ASB是AdvancedSystemBus的缩写,也是用于芯片内高性能系统模块的连接,支持突发模式数据传输。这是早期的系统总线格式,现在由AHB取代。③APB是AdvancedPeriPheralBus的缩写,是用于芯片内较低性能的I/O部件或模块的连接,一般是作为ARM系列微处理器芯片中二级总线用。④TestMethodology是AMBA总线规范中所制定的测试方法。板级总线是指板卡中芯片与芯片之间、或者板卡与板卡之间的连接总线。典型的如PC-104总线、PCI总线等。但是,嵌入式系统由于受到应用条件的约束,特别是体积方面的约束,因此,在构建板级目标系统时,往往并未采用标准化的总线,而是直接完成芯片与芯片引脚间的连接。嵌入式系统的板级目标系统硬件平台设计时,主要完成的任务是把微处理器芯片与其它芯片进行有机的连接。嵌入式系统的板级目标系统硬件平台设计时,主要完成的任务是把微处理器芯片与其它芯片进行有机的连接。S3C2440芯片FBGA封装中的289条引脚中,按功能分成以下几类:(1)地址类信号引脚:ADDR0~ADDR26和nGCS0~nGCS7(2)数据类信号引脚:DATA0~DATA31(3)控制类信号引脚又可以分成几个子类:1、总线控制信号·OM1、OM0:这2根信号线是S3C2440的模式选择信号引脚,用来确定芯片的模式以及数据线的宽度。·nWE(输出引脚):写使能信号引脚,用来指示当前总线周期为写周期。·nOE:读使能信号引脚,用来指示当前总线周期为读周期。·nWAIT(输入引脚):等待信号引脚,用来请求延长当前周期。·nXBREQ(输入引脚):总线请求。·nXBACK(输出引脚):总线应答。2、NANDFlash控制信号3、SDRAM控制信号(4)I/O部件接口引脚这类功能的引脚有许多,主要是完成相应的接口部件功能,例如:UART的串口通信引脚、LCD显示器接口引脚、摄像头接口引脚等。(5)其它功能类引脚其它功能类引脚主要包括:JTAG调试接口引脚、复位引脚、时钟电路引脚、以及电源引脚等。其它板级总线标准:(1)PC-104总线PC-104总线是专门为控制领域的应用而定义的嵌入式系统总线,它支持采用堆栈结构的总线形式,通过PC-104总线,可以把各板卡叠加在一起,从而构建小型的、高可靠性的嵌入式系统。(2)STD总线STD总线也是在工业控制领域被使用的一种嵌入式系统板级总线(3)PCI总线PCI总线是PC机中被广泛使用的板级总线标准。在有些嵌入式系统中,也会采用PCI总线作为其板级总线。存储系统及管理一、存储系统的组织结构在复杂的嵌入式系统中,存储系统的组织结构按作用可以划分为4级:寄存器、cache(缓存区)、主存储器和辅助存储器。如下图所示。注:对于简单的嵌入式系统来说,没有必要把存储器系统设计成4级,最简单的嵌入式系统只需要寄存器和主存储器即可。寄存器是包含在微处理器核内部的,是微处理器核的重要组成部分,它用来作指令执行时的数据存放单元。Cache是高速缓存,通常又分成数据缓存和指令缓存2种。主存储器是程序执行代码及数据的存放区,通常存放指令代码的存储器是非易失性的存储器。辅助存储器通常用来存储大容量数据,或者作为程序代码的备份存储空间,由NANDFlash类型的非易失性存储器芯片来承担。二、高速缓存机制高速缓存(cache)机制是为了提高嵌入式系统中存储系统的整体性能。它作为微处理器体系结构的一部分,对软件设计者来说是透明的。高速缓存是一种小型、快速的存储器,但价格较贵,在系统中它的容量不可能设计得很大,通常为几十K存储单元或几M存储单元。因而,所需访问的代码或数据很大时,不能全部放入高速缓存中,高速缓存中只保留了主存储器中部分代码或数据的拷贝。高速缓存控制器是微处理器用于控制访问高速缓存及主存系统的桥梁,它处于微处理器和高速缓存及主存系统之间,如下图所示。三、存储管理单元在复杂的嵌入式系统设计时,越来越多的会选用带有存储管理单元(MMU)的微处理器芯片。MMU完成的主要功能有:(1)将主存地址从虚拟存储空间映射到物理存储空间。(2)存储器访问权限控制。(3)设置虚拟存储空间的缓冲特性等。存储器接口设计方法在构建嵌入式系统的目标硬件平台时,有些微处理器芯片内部没有集成存储器或者集成的存储器容量不足,那么,就需要外接存储器芯片来构建所需容量的存储空间。下面讨论需要在微处理器芯片外部设计主存储器接口电路的问题,并讨论辅助存储器的接口电路设计问题。一、存储器芯片分类存储器根据其存取方式分成两大类:随机存储器(RAM)类和只读存储器(ROM)类。(1)随机存储器(具有易失性的特点)随机存储器又分为两大类:*静态随机存储器(SRAM)*动态随机存储器(DRAMSRAM(静态随机存储器)通俗的说,是在上电的情况下,其存储内容不会丢失的存储器。它们通常是以双稳态触发器为基础,数据一经写入,只要不掉电,数据就一直保存着。SRAM芯片内部的存储容量一般不大,通常约在几K~几百K范围内。典型的如:HM62256芯片,其容量为32KB。HM62256芯片引脚:地址线15根,数据线8根,控制信号线3根(读、写、片选),电源线及地线2根。流行的DRAM类别:SDRAM(SynchronousDynamicRandomAccessMemory的缩写,即同步动态随机存储器)。动态存储器中信息是存放在电容上的,需要定时刷新,需要有行选通RAS、列选通信号CAS,且地址信号线是复用的。SDRAM在内部结构及使用上与标准DRAM有很大不同。引起不同的基本出发点就是希望SDRAM的速度更快一些,满足微处理器对主存速度的要求。SDRAM的容量经常用XX存储单元×X体×每个存储单元的位数来表示。如:HY57V561620是一款SDRAM芯片。其容量为:4M×4Bank×16b(即32MB)。其典型的引脚图如:其中:A0~A12是地址线,行地址和列地址复用A0~A8。行地址为RA0~RA12,列地址为CA0~CA8。DQ0~DQ15是数据线。BA0、BA1是块(Bank)选择线。nRAS:行地址选通信号线。nCAS:列地址选通信号线。nCS:片选信号引线。(2)只读存储器(具有非易失性的特点)只读存储器(ROM)是指那种其内部存储单元中的数据不会随失电而丢失的存储器。在嵌入式系统中,只读存储器中通常存储程序代码和常数。只读存储器通常又分成EPROM、EEPROM和闪存(Flash)。Flash又有NORFlash和NANDFlash两大类。EPROM类型的芯片目前基本处于淘汰地位,只有在一些低端嵌入式系统还在使用。Flash是目前嵌入式系统中使用的主流非易失性存储器。几种ROM型芯片外形图。EPROM型芯片外形图EEPROM型芯片外形图二、存储器接口设计方法(1)SROM型存储器接口设计方法SROM型存储器,是SRAM型存储器、EPROM型存储器、NORFlash型存储器的统称。上述3类存储器芯片与微处理器之间的接口电路设计方法是相似的。SROM型存储器接口的信号线一般有:(1)片选信号线CE。(2)读/写控制信号线。(3)若干根地址线。(4)若干根数据线。接口电路原理框图如右图所示。(2)DRAM型存储器接口设计方法微处理器与这类型存储器芯片接口的信号线,除了有与SROM型存储器芯片相同的信号线外,还有RAS(行地址选择)信号线和CAS(列地址选择)信号线。DRAM的地址信号分成行地址和列地址两部分,因此,其地址引脚有些是复用的,在设计时要注意。另外,地址分配时还需提供行地址选通信号(RAS)和列地址选通信号(CAS),并且还需存储块的地址。(3)NANDFlash型存储器接口设计方法近年来,由于NANDFlash存储信息的非易失性且其数据存储密度大、价格适中,因此,在许多嵌入式系统中均设计有NANDFlash存储器,作为系统辅助存储器,可用来存储系统的应用程序文件。不同厂家生产的NANDFlash类型的存储器芯片,其接口没有统一的标准。NANDFlash存储器芯片的引脚分为三类:数据引脚、控制引脚和状态引脚。其中数据引脚高度复用,既用作地址总线,又用作数据总线和命令输入信号线。一个典型的支持NANDFlash芯片连接的接口内部结构如下图所示。引脚说明:I/O0~I/O7:8个I/O数据引脚,用来地址、数据和命令传输。CLE和ALE:分别是命令锁存使能引脚和地址锁存使能引脚,用来选择I/O端口输入的信号是命令还是地址。nCE:片选信号。nRE:读使能信号。nWE:写使能信号。R/nB:表示设备的状态,当数据写入、编程和随机读取时,R/nB处于高电平,表明芯片正忙,否则输出低电平。S3C2440存储系统S3C2440芯片内部没有集成主存储区,因此,若以S3C2440芯片为核心来开发嵌入式系统时,就需要外接存储器芯片从而构建其主存储区。S3C2440芯片采用了ARM920T核,虽然该核的地址空间总共为4GB,但S3C2440芯片只有1GB地址空间用于支持外部存储器的连接,另外的空间有一小部分用于I/O端口或部件的寻址,其他的地址空间没有用到。S3C2440芯片外部可寻址的存储空间是1GB,被分成8个存储块,每块128MB。如后图所示。S3C2440存储空间0号存储块可以外接SRAM类型的存储器或者具有SRAM接口特性的ROM存储器(如NORFlash类型的存储器)当0号存储块作为ROM区,完成引导装入工作时(从0x00000000启动),0号存储块的总线宽度应在第一次访问ROM前根据OM1、OM0在复位时的逻辑组合来确定。1号存储块到5号存储块也可以外接SRAM类型的存储器或者具有SRAM接口特性的ROM存储器(如NORFlash)。6号存储块、7号存储块可以外接SDRAM类型的存储器,它们的块容量可改变,且7号存储块的起始地址也可改变。(1)SDRAM接口电路示例(2)NORFlash接口电路示例(3)NANDFlash接口电路示例