存储器是用来存放数据的集成电路或介质,常见的存储器有半导体存储器(ROM、RAM)、光存储器(如CD、VCD、MO、MD、DVD)、磁介质存储器(如磁带、磁盘、硬盘)等。存储器是计算机极为重要的组成部分,有了它计算机才具有存储信息的功能,使计算机可以脱离人的控制自动工作。单片机系统中主要使用的存储器是半导体存储器,从使用功能上,可分为随机存取存储器(RAM)和只读存储器(ROM)两类。RAM主要用于存放各种现场数据、中间计算结果,以及主机与外设交换信息等,它的存储单元的内容既可读出,又可写入。ROM中存储的信息只能读出,不能写入,如PC机主板上的存放BIOS程序的芯片就是ROM存储器。
RAM存储器是指断电时信息会丢失的存储器,但是这种存储器可以现场快速地修改信息,所以RAM存储器是可读写存储器,一般都作为数据存储器使用,用来存放现场输入的数据或者存放可以更改的运行程序和数据。根据其工作原理不同,可分为以下两类:基于触发器原理的静态读写存储器(SRAM,StaticRAM)和基于分布电容电荷存储原理的动态读写存储器(DRAM,DynamicRAM)。
一般SRAM用于仅需要小于64KB数据存储器的小系统或作为大系统中高速缓冲存储器;而DRAM常用于需要大于64KB的大系统,这样刷新电路的附加成本会被大容量的DRAM低功耗、低成本等利益所补偿。
SRAM的基本结构如图所示。
RAM的结构大体由三部分组成:地址译码器,存储矩阵,输入/输出电路。
SRAM的基本结构
1. 地址译码方式
地址译码有两种方式,一种是单译码方式,或称为字结构方式;另一种是双译码方式,或称为X-Y译码结构。
1)单译码方式
16字×4位的存储器共有64个存储单元,排列成16行×4列的矩阵,每个小方块表示一个存储单元。电路设有4根地址线,可寻址24=16个地址逻辑单元,若把每个字的所有4位看成一个逻辑单元,使每个逻辑单元的4个存储单元具有相同的地址码,译码电路输出的这16根字线刚好可以选择16个逻辑单元。每选中一个地址,对应字线的4位存储单元同时被选中。选中的存储单元将与数据位线连通,即可按照要求实现读或写操作了。
16字×4位单译码存储器结构
2)双译码结构
下图是一个双译码结构的16字×1的地址译码存储器。视每个字的1位存储单元构成一个逻辑单元,图中每个小方块表示一个逻辑单元。16个可寻址逻辑单元排列成4×4的矩阵,为减少地址译码电路的输出数量,采用双重译码结构,每个地址译码的输出线数为22=4根(单译码方式需16根地址输出线)。图中A0、A1是行地址码,A2、A3是列地址码。行、列地址经译码后分别输出4根字线X0~X3和Y0~Y3。X字线控制矩阵中的每一行是否与位线连通,一行中究竟哪个逻辑单元被选中则由Y字线控制。被选中的单元将与数据线连通,以交换信息。
图2.3.3 双译码结构地址译码存储器
2. 读写控制电路
在RAM结构中,读出和写入的数据线是公用的,为控制电路中数据的流向,设立了专门的读写控制电路。
读写控制电路
门G1、G2是控制信号为高电平有效的三态门,I/O线即为RAM的外接数据总线。在控制信号的作用下,它可以和存储单元的内部数据线D接通或断开。
当片选信号CS = 0有效时,读写控制信号WE可以控制信号的流向。若WE =1时,外电路向存储器读取数据,门G4导通,输出高电平,门G3截止,对应输出给三态门G1的控制信号无效,G1输出高阻状态,G2开启,D上的数据通过G2送到总线I/O上,实现读操作。当WE =0时,情况刚好和前面相反,这时G1开启,G2输出高阻状态,数据只能由I/O送给D,实现写操作。
只读存储器(ROM)的特点是:其内容是预先写入的而且一旦写入,使用时就只能读出不能改变,掉电时也不会丢失。
1. ROM的结构与工作原理
ROM的结构与RAM十分相似,它由存储矩阵、地址译码器、读放与选择电路组成。地址译码器可以是单译码,也可以是双译码。
ROM的结构框图
2. ROM的点阵结构表示法
如图所示,将存储器字线和位线画成相互垂直的一个阵列,每一个交叉点对应一个存储元,交叉点上有黑点表示该存储元存1,无黑点表示该存储元存0,这就是存储器的点阵图表示方法。ROM点阵结构表示法是一种新思路,它对后来其他可编程器件的发展起到了奠基作用。
ROM的点阵结构表示图
如果把ROM看作组合逻辑电路,则地址码A1A0是输入变量,数据码D3~D0是输出变量,由上图可得输出函数表达式:
逻辑函数是与或表达式,每一条字线对应输入变量的一个最小项。由此可列出逻辑函数真值表。
上图中ROM存储器的内容
地址(输入端) |
| 数据(输出端) | ||||
A1 | A0 | D3 | D2 | D1 | D0 | |
0 | 0 | 0 | 1 | 0 | 1 | |
0 | 1 | 1 | 0 | 1 | 0 | |
1 | 0 | 0 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 0 | |
|
|
|
|
|
|
|
3. 闪速存储器
闪速存储器(Flash EEPROM)可以用来存放程序,但由于其读写方便,也可以像RAM一样存放经常需要修改的数据,所以又称为FlashMemory。与其他类型半导体存储器相比较,Flash EEPROM具有大容量、读写方便、非易失性和低成本4个显著优点,在单片机控制系统和移动信息设备中得到广泛的应用。
1)低电压在线编程,使用方便,可多次擦写
现代的Flash EEPROM存储器都只使用5V或3V单电源供电,而编程时所需的高压及时序均由片内的编程电路自动产生,外围电路少,编程就像装载普通RAM一样简单, 而高压编程电流也只有几毫安,因此非常适合于在应用系统中(尤其在低电压系统中)进行在线编程和修改,在智能化的工业控制和家电产品等方面都得到了很广泛的应用。其可重复擦写寿命也都在105次以上,能够满足许多场合的需要。
2)按块/按扇区擦除,按字节编程
Flash EEPROM产品,可以以小扇区为单位进行擦除(几十字节到几百字节为一个扇 区),也可以全片快速擦除。而编程则是按字节进行。
3)完善的数据保护功能
Flash EEPROM具有以下5种软、硬件保护功能,保证片内数据不会意外丢失。
(1)噪声滤波器:所有的控制线都有过滤电路,以消除任何小于15ns噪声脉冲。
(2)Vcc感应器:一般Vcc跌至3.8V以下(对3V器件为1.8V以下)时,编程将被禁止。
(3)上电延迟:Vcc在上电后的5ms内,编程被禁。
(4)三线控制:OE、CE及WE三条控制线只要一条不处于正确电平,编程将被禁止。
(5)软件数据保护:所有对Flash EEPROM的数据的改写都需要通过编程算法完成。
在单片机系统中主要采用大容量的FlashEEPROM,对Flash EEPROM的访问通过分页面的方法来进行,详细的接线方法见第7章。