1、2.12.1只读存储器只读存储器只读存储器(ROM)的特点是: 其内容是预先写入的而且一旦写入,使用时就只能读出不能改变,掉电时也不会丢失,ROM 器件还具有结构简单、信息度高,价格低,非易失性和可靠性高等特点。对 ROM 内容的设定(写入)称为编程,根据编程方式的不同,ROM可分为四类:掩膜 ROM(MaskROM)可编程 ROM(即 PROM)可擦除可编程 ROM(EPROM)电可擦除可编程 ROM(EEPROM)。211掩膜型 ROM掩模型 ROM 中的信息是由生产厂家根据用户要求(给定的程序和数据)对芯片图形掩膜后进行两次光刻而制成的,所以,生产第一片这样的 ROM 是很昂贵的,但复制
2、同样内容的 ROM 就很便宜,因而掩膜式 ROM 适用于成批生产的定型产品, 如用于存放 PC/XT 的 BIOS, BASIC语言解释程序,或系统监控程序等。掩膜 ROM 中的每个存储元电路只需用一个偶合元件, 一般可用二极管、MOS 晶体管、双极型晶体管构成。一般 MOS 型的集成度高、功耗小、但速度慢,双极型的速度快,但功耗大,所以只适用于速度要求较高的系统中。图所示为一个简单的 44 位 MOS 型 ROM,采用单译码结构,两位地址线 A1A0 译码后可译出四种状态(00, 01, 10, 11), 输出 4 条(字)选择线,可分别选中四个单元,每个单元有 4 位数据(D3 一 D0)
3、输出。掩膜 ROM 示意图在图中所示的矩阵中,在行和列的交叉点上,有的连有 MOS 管,有的没有连,这是生产厂家根据用户提供的程序来决定的。有管子表示该位为“0”,没有管子,表示该位为“1”。若地址线 A1A000,则选中 0 号单元,即字线 0 为高电平,则凡与该行相连的 MOS 管导通(如 D2、D0 列),对应的位(列线)输出为 0,而不与该行相连的列线(位)因无 MOS 管而输出为“1”,如 D3、D1 两列为 1,则第一行(即第 0 单元)输出 D3D01010。可见存储器的内容取决于制造工艺。下表为上图存储矩阵的存放内容。212可编程 ROM(PROM)为了方便用户根据自己的需要确
4、定 ROM 的内容,提供了一种可编程 ROM(即 PROM),它允许用户编程一次。在PROM中, 通常用二极管或双极型三极管作存储单元。右图所示是用双极型三极管作存储元电路的,在这种存储单元中, 每一位三极管的发射极上串接一个可熔金属丝,出厂时所有管子发射极上的熔丝是完整的,管子可将位线和字线连通,表示存有信息“0”(即整个芯片末使用前全为“0”)。用户编程时,根据程序要求,对需要写入“l”的位,通以足够大的脉冲电流典型的熔断电流为(50100)nA,周期为几个微秒,使相应位的熔丝烧断,该位便存入信息“l, , 。末被熔断的位仍为“0” ,从而实现了信息的一次性写入。虽然 PROM 可由用户自
5、由编程写入信息,但由于熔丝一旦编程烧断,就无法恢复,所以,PROM 只允许用户编程一次,这对需要经常修改程序内容的应用场合是很不方便的。目前,很多 OTP 型的单片机就是一次性编程的。213可擦除可编程 R0M(EPROM)1结构掩膜型 ROM 和 PROM 中的内容一旦写入,就无法再改变,为了开发方便,可以擦除重写的可编程只读存贮器应运而生。EPROM 由于是以浮栅型 MOS 管作存储单元,它里面存储的内容可以通过紫外线光的照射而被擦除, 而且又可再用电流脉冲对其重新编程写入程序或数据,而且还可多次进行擦除和重写,故称为可擦除可编程序 ROM,因而 EPROM 得到了广泛的应用。2典型 EP
6、ROM 芯片介绍 2764典型 EPROM 芯片有多种型号,常用的有:2716(2K8)、2732(4K8)、2764(8K8)、 27128 (16K8)、27256(32K8)等。下面以 2764(8K8)芯片为例,说明 EPROM 的性能和工作方式。Intel2764 是 8K8 的 EPROM。 图所示是 2764 的外引脚和功能框图。管脚定义如下:A0一 A12:地址线,13 位(对应 8K 存储单元),输入;O7 O0:数据线,8 位,双向,编程时作数据输入线,读出时作数据输出线;CE:片选允许,输入,低电平有效;OE:输出允许,输入,低电平有效,连读信号RD;PGM:编程脉冲控制
7、端,输入,连编程控制信号;Vpp:编程电压输入端;Vcc:电源电压,十 5V。(1)工作方式2764 有 4 种工作方式:读方式、编程方式、检验方式和备用方式,读方式这是 2764 最常使用的方式,在读方式下,Vcc 和 Vpp 均接十 5V电压,PGM接低电平,从地址线 A12A0 接收 CPU 送来的所选单元地址, 然后使CE、OE均有效(为低电平), 于是经过一个时间间隔,所选单元的内容即可读到数据总线上。 图为 2764 读方式时的时序图:由图可知,芯片允许信号面必须在地址稳定后有效,以保证正确读出所选单元数据。备用方式即 2764 工作于低功耗方式,该方式与芯片未选中时类似,这时芯片
8、从电源所取的电流从 l100mA 下降到 40mA,功耗降为读方式下的25。只要使PGM端输入一个 TTL 高电平信号即可使 2764 工作于备用方式,该方式使数据输出呈高阻态。由于读方式时CE和PGM是连在一起的,所以,当某芯片末被选中时CE和PGM处于高电平状态,则此芯片就相当处于备用方式,可大大降低功耗。编程方式在编程方式下,只要将 Vpp 接 25V(不同型号芯片所加电压不同,有的芯片仅需加 125V 电压加得不正确会烧坏芯片,应注意器件说明)Vcc 加十 5V,CE端和OE端为高电平,从地址线 A12 一 A0 端输入需要编程的单元地址,从数据线 D7D0 上输入编程数据,在PGM端
9、加入编程脉冲宽度为 50ms,幅度为 TTL 高电平,便可实现编程(写入)功能。应注意,必须在地址和数据稳定之后,才能加入编程脉冲。下图所示为 2764 的编程时序图。编程校验方式在编程过程中,为了检查编程时写入的数据是否正确,通常在编程过程中包含校验操作。在每个字节写入完成后,电源电压接法不变,而将OE,CE,PGM均改为低电平,便可紧接着将写入的数据读出,以检查写入的信息是否正确,检查时应如上图所示。2764 除以上工作方式外,实际上还有输出禁止方式和编程禁止方式。编程禁止方式,就是禁止编程,因此,在编程过程中,只要使CE为低,编程就立即禁止。其他型号的 EPROM,可参考: 何立民:单片
10、机外围器件实用手册(存储器分册) 北京航天航空大学出版社3EPROM 编程器由于对 EPROM 编程时,每写入一个字节都需要加 50ms 宽的 PGM脉冲电流,则编程速度太慢,而且容量越大,也导致编程速度变慢。为此,Intel 公司开发了一种新的编程方法,比标难方法快 56 倍,按照这一新的编程思路相继开发了多种型号的 EPROM 编程器,所以,目前对 EPROM 编程都使用专门的编程器来进行编程。编程器通常要依靠一台微机才能工作, 编程器通过一个接口卡与微机扩展槽相连,并配有一套编程软件,控制编程器工作方式及微机与编程器间的数据传送。编程器上有 EPROM 芯片插座,一般可对多种型号的 EP
11、ROM 芯片进行编程。EPROM 除一些常用的芯片如 2764、27128、27256、27512 等外,还有一些大容量的 EPKOM,如 27C010(128K8)、27C020(256K8)和 27C040(512K8)等芯片,适用于工业控制中固化监控程序、用户应用程序等内容。一般地,编程器除了对 PROM、EPROM、EEPROM 编程外,还可对CPU(MPU)、PAL、GAL、CPLD(FPGA)等器件进行编程。214电可擦除可编程 ROM(E2PROM)兼有 RAM 和 ROM 的双重功能EPROM 的优点是一块芯片可以多次反复使用,但是它有两个明显的缺点: 一是每次编程要从电路中拨
12、下来先用紫外线抹除器擦除原内容然后进行编程,这很麻烦。二是它的擦除是对芯片整体擦除,那怕只需要改一个字节,甚至一位,也必须把整个芯片内容都擦除,然后再重新写入,这是很不方便的。为了克服 EPROM 的这两个缺点,就产生了电可擦除可编程 ROMEEPROM 简称 E2PROM 方法。E2PROM 是一种在线(或叫在系统,即不用拨下来)可编程只读存储器。它能像 RAM 那样随机地进行改写,又能像 ROM 那样在掉电的情况下所存信息不丢失,即 E2PROM 兼有 RAM 和 ROM 的双重功能特点,因此,使用起来十分方便。下面以 Intel2864A 为例,说明 EEPROM 的基本特点和工作方式。
13、Intel2864A 容量为 8K8,28 个引脚双引直插式封装,下图为2864A 的引脚图,其引脚与 EPROM2764 兼容。A12一 Ao:地址线,输入, 其中 A7 一 Ao 为行地址,A12 一 A8 为列地址,8K 容量的 2864 内部结构为 256 行32列的矩阵。I07IO0: 数据输入输出线,双向,读出时为输出,写入擦除时为输入。2864 内部没有地址和数据输入锁存器,所以,在进行较长时间的写入擦除操作时,可释放这些总线。CE:片选和电源控制端,输入。WE:写入允许控制端,输入。当对 2864A 进行擦写、功率下降操作时,控制逻辑可以根据CE和WE线的电平状态和时序状态来控
14、制2864A 的操作。OE:数据输出允许端。2864A 使用单一的十 5V 电源,因为将编程时所需的 21V 编程升压电路已集成在芯片内。R/B:R/B是 RDY/BUSY 缩写,用来向 CPU 提供状态信号,即指示2864A 的准备就绪忙状态。其擦写过程是:当擦除时,将 R/B置为低电平,然后将新的数据写入,写入完成后,再将 R 成置为高电平,因此,CPU 可以通过检测此引脚的状态来控制芯片的擦写操作。此外,2864A 芯片内的写周期定时器还可通过 R/B引脚向 CPU 表示它所处的工作状态。在写一个字节的过程中, 此引脚为低电平, 写完后该引脚变为高电平。利用 R/B的这一功能,可在每写完
15、一个字节后向 CPU 请求外部中断,以继续写入下一个字节。2864A 有 4 种工作方式:读方式、写方式字节擦除,整片擦除和维持方式,如下表:(1)读方式在读方式时,W 更1,iz面0,允许 CPU 读取 2864A的数据。当 CPU发出地址信号和相应控制信号后,经一定延时(读取时间约 250ns)2864A 即可将数据送人数据总线。(2)写方式浮节擦除擦除和写入是同一种操作,即都是写入,只不过擦除是固定写“1”即数据输入恒为 TTL 高电平;写入时,数据线上是 0 或 1, 所以, 2864A 具有以字节为单位的擦写功能。以字节为单位进行擦除写入时:CE 为低电平,OE 为高电平,WE的脉冲
16、宽度最小为 2ms(低电平),最大一般不超过 70ms.(3)整片擦除方式整片擦除时,所有 8K 字节单元全置“l”。整片擦除时,不考虑地址信号,数据线置为 TTL 高电平(即写 1),WECE“0”(低电平),OE 为低(字节擦写时为高),WE 写脉冲宽度的典型值为 10ms,其他信号同字节擦写方式。(4)维持方式维持方式也就是低功耗方式,通常 2864A 在进行擦写或读操作时的最大电源消耗为 100mA。当器件不操作时,只需将 CE 端加一 TTL 高电平,2864A 便进入维持状态,此时最大电流消耗为 40mA,可见,维持状态可将功耗降 60,维持状态时,输出端为浮空状态。不同公司的 28C64,用法稍有区别,目前较流行的有:ATMEL28C64、X28C64(Xicor)、SEED28C64其他 EEPROM:28C16 (2K)28C256