1、第五章 存储器,5.1 存储器系统基本知识 5.1.1 半导体存储器的分类1. 只读存储器(ROM) (1) 掩膜工艺ROM (2)可一次性编程ROM(PROM) (3)紫外线擦除可改写ROM(EPROM) (4)电擦除可改写ROM(EEPROM或E2PROM) (5)快擦写ROM(flash ROM),随机存储器RAM(也叫读写存储器) (1) 双极型RAM (2) 金属氧化物(MOS)型RAM动态RAM(DRAM)静态RAM(SRAM)非易失性RAM(NVRAM),5.1.2 存储器的主要性能指标1. 存贮容量存储器芯片容量=存储单元数×数据线位数2. 存取速度3. 可靠性4.
2、功耗,典型静态RAM芯片,典型EPROM芯片,5.2 CPU与存储器的连接用单片机组成应用系统时,首先要考虑单片机所具有的各种功能能否满足应用系统的要求。如能满足,则称这样的系统为最小应用系统。图5.1 (a)为MCS51系列中8051和8751单片机的最小系统。图5.1 (b)为由8031、8032单片机组成的最小系统。,为了使单片机能方便地与各种扩展芯片连接,应将单片机的外部连接变为一般的微型机三总线结构形式。即地址总线、数据总线和控制总线。对MCS51系列单片机,其三总线由下列通道口的引线组成:地址总线:由P2口提供高8位地址线(A8A15),此口具有输出锁存的功能,能保留地址信息。由P
3、0口提供低8位地址线。由于P0口是地址、数据分时使用的通道口,所以为保存地址信息,需外加地址锁存器锁存低8位的地址信息。一般都用ALE正脉冲信号的下降沿控制锁存时刻。数据总线:由P0口提供。此口是双向、三态控制的通道口。控制总线:扩展系统时常用的控制信号为地址锁存信号ALE,PSEN以及数据存储器RAM和外设接口共用的读、写控制信号等。,图5.2为单片机扩展成三总线的结构图。扩展芯片与主机相连的方法同一般三总线结构的微处理机完全一样。,图5.2 单片机的三总线结构,地址锁存器:,5.3 访问外部程序、数据存储器的时序 5.3.1 访问外部程序存储器时序 操作时序如图5.3所示,其操作过程如下。
4、(1)在S1P2时刻产生ALE信号。(2)由P0、P2口送出16位地址,由于P0口送出的低8位地址只保持到S2P2,所以要利用ALE的下降沿信号将P0口送出的低8位地址信号锁存到地址锁存器中。而P2口送出的高8位地址在整个读指令的过程中都有效,因此不需要对其进行锁存。从S2P2起,ALE信号失效。(3)从S3P1开始,PSEN开始有效,对外部程序存储器进行读操作,将选中的单元中的指令代码从P0口读入,S4P2时刻,PSEN失效。(4)从S4P2后开始第二次读入,过程与第一次相似。,图5.3 MCS-51系列单片机访问外部程序存储器的时序图,5.3.2 访问外部数据存储器时序 下面以读时序为例进
5、行介绍,其相应的操作时序如图5.4所示。图5.4 MCS-51系列单片机访问外部数据存储器的时序图,访问外部数据存储器的操作过程如下:(1)从第1次ALE有效到第2次ALE开始有效期间,P0口送出外部ROM单元的低8位地址,P2口送出外部ROM单元的高8位地址,并在PSEN有效期间,读入外部ROM单元中的指令代码。(2)在第2次ALE有效后,P0口送出外部RAM单元的低8位地址,P2口送出外部RAM单元高8位地址。(3)在第2个机器周期,第1次ALE信号不再出现,此时PSEN也失效,并在第2个机器周期的S1P1时,RD信号开始有效,从P0口读入选中RAM单元中的内容。,5.4 存储器扩展的编址
6、技术 5.4.1 线选法 所谓线选法,就是直接以系统的地址作为存储芯片的片选信号,为此只需把高位地址线与存储芯片的片选信号直接连接即可。特点是简单明了,不需增加另外电路。缺点是存储空间不连续。适用于小规模单片机系统的存储器扩展。【例5-1】现有2K×8位存储器芯片,需扩展8K×8位存储结构,采用线选法进行扩展。扩展8KB的存储器结构需2KB的存储器芯片4块。2K的存储器所用的地址线为A0A10共11根地址线和片选信号与CPU的连接如表5-1所示。,表5-1 80C51与存储器的线路连接,扩展存储器的硬件连接如图5.5所示。,图5.5 线选法连线图,这样得到四个芯片的地址分配
7、如表5-2所示 表5-2所示 线选方式地址分配表,5.4.2 译码法 所谓译码法就是使用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号。这是一种最常用的存储器编址方法,能有效地利用空间,特点是存储空间连续,适用于大容量多芯片存储器扩展。常用的译码芯片有:74LS139(双24译码器)和74LS138(38译码器)等,它们的CMOS型芯片分别是74HC139和74HC138。,74LS138译码器,图5.6 译码器管脚图,【例5-2】现有2K×8位存储器芯片,需扩展8K×8位存储结构采用译码法进行扩展。扩展8KB的存储器结构需2KB的存储器芯片4块。2K的
8、存储器所用的地址线为A0A10共11根地址线和片选信号与CPU的连接如表5-5所示。,表5-5 80C51与存储器的线路连接,P2.3、P2.4作为二-四译码器的译码地址,译码输出作为扩展4个存储器芯片的片选信号,P2.5、P2.6、P2.7悬空。扩展连线图如图5.7所示。 图5.7 采用译码器扩展8KB存储器连线图,这样得到四个芯片的地址分配如表5-6所示。 表5-6 译码方式地址分配表,5.5 程序存储器(EPROM)的扩展 5.5.1 程序存储器扩展使用的典型芯片 以2764作为单片机程序存储器扩展的典型芯片为例进行说明1 2764的引线2764是一块8K×8bit的EPROM
9、芯片,其管脚图如图5.8所示·A12A013位地址信号输入线,说明芯片的容量为8K213个单元。·D7D0 8位数据,表明芯片的每个存贮单元存放一个字节(8位二进制数)。· 为输入信号。当它有效低电平时,能选中该芯片,故又称为选片信号。· 为输出允许信号。当 为低电平时,芯片中的数据可由D7D0输出。· 为编程脉冲输入端。当对EPROM编程时,由此加入编程脉冲。读时 为高电平。,图5.8 EPROM2764管脚图 图5.9 SRAM6264管脚图,2 2764的连接使用 图5.10为系统扩展一片EPROM的最小系统。 图
10、5.10 单片ROM扩展连线图,存储器映像分析分析存储器在存储空间中占据的地址范围,实际上就是根据连接情况确定其最低地址和最高地址。图5.10所示,由于P2.7、P2.6、P2.5的状态与2764芯片的寻址无关,所以P2.7、P2.6、P2.5可为任意。从000到111共有8种组合,其2764芯片的地址范围是:最低地址:0000H(A15A14A13A12A11A10A9A8A7A6A5A4A3 A2A1A 0= 0000 0000 0000 0000)最高地址:FFFFH (A15A14A13A12A11A10A9A8A7A6A5A4A3 A2A1A 0=×××
11、1 1111 1111 1111) 共占用了64KB的存储空间,造成地址空间的重叠和浪费。,5.6 数据存储器的扩展 5.6.1 数据存储器的扩展概述 单片机与数据存储器的连接方法和程序存储器连接方法大致相同,简述如下:1. 地址线的连接,与程序存储器连法相同。2. 数据线的连接,与程序存储器连法相同。3 .控制线的连接,主要有下列控制信号:存储器输出信号和单片机读信号相连即和P3.7相连。存储器写信号 和单片机写信号相连即和P3.6相连。ALE:其连接方法与程序存储器相同。使用时应注意,访问内部或外部数据存储器时,应分别使用MOV及MOVX指令。外部数据存储器通常设置二个数据区:,(1) 低
12、8位地址线寻址的外部数据区。此区域寻址空间为256个字节。CPU可以使用下列读写指令来访问此存贮区。读存储器数据指令:MOVX A,R写存储器数据指令:MOVX R,A由于8位寻址指令占字节少,程序运行速度快,所以经常采用。(2)16位地址线寻址的外部数据区。当外部RAM容量较大,要访问RAM地址空间大于256个字节时,则要采用如下16位寻址指令。读存储器数据指令:MOVX A,DPTR写存储器数据指令:MOVX DPTR,A由于DPTR为16位的地址指针,故可寻址64KRAM字节单元,5.6.2 数据存储器扩展使用的典型芯片 1 数据存储器SRAM芯片数据存储器扩展常使用随机存储器芯片,用的
13、较多的是Intel公 司的6116容量为2KB和6264容量为8KB。下面以6264芯片为例进行说明,管脚图如图5.9所示。该芯片的主要引脚为:·A12A0 13根地址线,说明芯片的容量为8K213个单元。·D7D0 8根数据线 ·、CE2为片选信号。当为低电平,CE2为高电平时,选中该芯片。·为输出允许信号。当OE为低电平时,芯片中的数据可由D7D0输出。·WE为数据写信号。 其工作方式如表5-8所示,2 数据存储器扩展方法(1) 单片数据存储器扩展80C51与6264的连接如表5-9所示。 表5-9 80C51与6264的线路连接,数据存储
14、器扩展的硬件连接如图5.11所示。 图5.11 单片RAM扩展连线图,(2) 多片数据存储器扩展例如:用4片6116进行8KB数据存储器扩展,用译码法实现。 80C51与6116的线路连接如表5-10所示 表5-10 80C51与6116的线路连接,存储器扩展电路连接如图5.12所示。 图5.12 多片RAM扩展连线图,5.6.3 闪速存储器及其扩展1 引脚功能和读写操作AT29C256芯片的容量为32KB,引脚数量为28条,其引脚排列如图5.13所示。主要引脚功能如下:A0A14:地址线。I00一I07:三态双向数据线。/CE :片选信号线,低电平输入有效。/OE :输出允许(读允许)信号线
15、,低电平输入有效。/WE :写允许信号线,低电平输入有效。 (1) 读操作。当/CE=0,/OE=0,/WE=1时,被选中单元的内容读出到双向数据线I00I07上。当处于高电平,输出线处于高阻状态。,(2) 写操作。外部数据写入29C256芯片时,数据要先装入其内部锁存器,装入时/CE=0,/OE=1,/WE=0,数据写入以页为单位进行,即要改写某一单元的内容整页都要重写,没有被装入的字节内容被写成0FFH,在写入过程中,在/WE或/CE上升沿之后的150ns内,/WE和/CE要再次有效,以便写入新的字节。,图5.13 AT89C256芯片引脚排列图,3 MCS-51单片机与AT29C256的接口图5.14是80C51单片机与AT29C256芯片典型的接口电路图。80C51单片机的/PSEN和/RD相“与”后与AT29C256芯片的端相连,80C51的与AT29C256芯片的相连,可实现对AT29C256芯片的读写信号的选通,以上扩展的方法与数据存储器的扩展方法相同,单片机访问它时,也使用MOVX指令。,图5.14 80C51单片机与AT29C256芯片的接口电路,