在只读存储器(ROM)中,它的“基本存储电路”中所存信息是固定的,非易失性和非挥发性的,不会因停电而消失。因此,只读存储器(ROM)又称为固定存储器(Fixed Memory)或永久性存储器(Permanent Memory)。在正常工作时,ROM中信息只能读不能写,常常用来存放控制程序,以便单片机应用系统开机后便可执行ROM中的控制程序而实现对被控系统的控制。
通常,只读存储器(ROM)中的控制程序和常数是在特殊条件下由计算机执行程序写入的,故又称为编程ROM。按照编程方式,只读存储器(ROM)可以分为掩膜ROM、PROM和EPROM这3类。
由地址译码器和存储矩阵组成,图5-12所示是ROM的内部结构示意图。
图5-12 ROM的内部结构示意图
(1)电路组成。
二极管ROM电路如图5-13所示。
图5-13 二极管ROM电路
输入地址码是A1A0,输出数据是D3D2D1D0。输出缓冲器用的是三态门,它有两个作用:一是提高带负载能力;二是实现对输出端状态的控制,便于和系统总线相连。
其中与门阵列组成译码器,或门阵列构成存储阵列,其存储容量为4×4=16b。
二极管与门和或门电路如图5-14所示。
(a)二极管与门 (b)二极管或门
图5-14 二极管与门和或门电路
(2)输出信号表达式。
与门阵列输出表达式:
或门阵列输出表达式:
(3)ROM输出信号的真值表。
ROM输出信号的真值表如表5-4所示。
表5-4 ROM输出信号真值表
A1 |
A0 |
D3 |
D2 |
D1 |
D0 |
A1 |
A0 |
D3 |
D2 |
D1 |
D0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
(4)功能说明。
从存储器角度看,A1A0是地址码,D3D2D1D0是数据。表5-4说明,在00地址中存放的数据是0101;01地址中存放的数据是1010,10地址中存放的数据是0111,11地址中存放的数据是1110。
从函数发生器角度看,A1、A0是两个输入变量,D3、D2、D1、D0是4个输出函数。表5-4说明,当变量A1、A0取值为00时,函数D3=0、D2=1、D1=0、D0=1;当变量A1、A0取值为01时,函数D3=1、D2=0、D1=1、D0=0;……
从译码编码角度看,与门阵列先对输入的二进制代码A1A0进行译码,得到4个输出信号W0、W1、W2、W3,再由或门阵列对W0~W34个信号进行编码。表5-4说明,W0的编码是0101;W1的编码是1010;W2的编码是0111;W3的编码是1110。
掩膜ROM又称为掩膜编程ROM(Mask Programmable ROM),这是因为ROM中信息是在制造芯片的掩膜工艺时编程写入而得名。掩膜ROM也有单译码编址和双译码编址两种结构形式,但二者的基本工作原理是相同的。现以单译码编址掩膜ROM为例加以介绍。
图5-15所示为4×4 MOS型掩膜ROM的结构。图中,两位地址码A1A0经“字地址寄存和译码器”译码后产生22=4条字选择线,每一条字(选择)线选择一个存储单元,每个存储单元共有4位,由D3~D0(D3为高位)位线输出。字线和位线交叉处有MOS管表示存“0”,无MOS管表示存“1”。例如:当A1A0=00B时,字线0输出高电平(其余字线为低电平),故D3~D0位线上输出数据为0110B。这是因为字线0和位线D3以及字线0和位线D0交叉处的MOS管导通而引起的。
上述分析表明,掩膜ROM存储“0”或“1”是由存储单元中各位是否有MOS管决定(有MOS管为存“0”,无MOS管为存“1”)的,归根结底是由制造芯片时二次光刻板掩膜图的设计确定的。按照制造工艺,掩膜ROM通常又可分为双极型掩膜ROM和MOS型掩膜ROM两大类,前者存储阵列中集成的晶体管是TTL型的,后者集成的晶体管是MOS型的。在掩膜ROM中,由于依靠有无晶体管存储信息,故它具有结构简单、集成度高、成本低和可靠性好等特点,适合批量生产。
图5-15 4×4 MOS型掩膜ROM
PROM(Programmable ROM)是可编程ROM的简称,它克服了掩膜ROM中程序和常数需要在制造时写入的缺点。PROM存储器在出厂时并无存储任何信息,用户可以根据需要来写入自己的程序和常数。
图5-16是一个32×8的熔丝式PROM原理图。图中,存储阵列由32只8发射极TTL晶体管组成,每只8发射极TTL晶体管构成一个存储单元,用于存储8位二进制信息。信息存储原理是:熔丝未烧断的位为存“0”,熔丝烧断的位为存“1”。PROM在工作时,A4~A0上地址编码信号经译码后选中32条字线中某一条输出高电平,未被选中的字线为低电平。若被选中存储单元中某位为“0”(熔丝通),则相位的W点(射极跟随点)为高电平,经T1管后在相应数据线上输出“0”;若被选中存储单元中某位为“1”(熔丝断),则相应位的W点悬空而使T1截止,输出为“1”。PROM出厂时,存储阵列中所有熔丝都是连着的,故所有存储单元读出均为全“0”,只有在编程时用户才根据需要烧断存储阵列中某些位的熔丝来达到存“1”的目的。“读/写控制电路”每位一套,共有8套,用于输出存储阵列中信息或作为编程写入用。在正常工作时,Ec接+5V,稳压二极管DW不导通,T2截止,输出端D7~D0上电平受输出晶体管T1控制。在编程写入时,Ec接+12V,被写存储单元由地址码经译码后的输出字线选取。编程分写“1”(熔丝断)和写“0”(熔丝通)两种状况:写“1”位的数据输出线DN(如:D7)悬空,+12V的Ec使DW导通,T2中的大电流使相应位熔丝烧断;写“0”位的数据输出线DN为低电平,DW截止,T2也截止,相应位熔丝不会烧断。
PROM克服了掩膜ROM需要在掩膜工艺编程的缺点,但它仍是一次性编程写入的只读存储器,一旦程序和数据被写错是无法更改的。
图5-16 32×8熔丝式PROM原理图
EPROM(Erasable PROM)是可擦洗PROM的简称。这种ROM可以多次复用,每次编程前只要先进行一次擦洗便可。因此,EPROM在微型机中的应用十分广泛,特别可以满足试验和研究工作的需要。按照擦洗方法,EPROM通常可以分为UVEPROM(紫外光擦洗PROM)和E2PROM(电可擦PROM)两种。前者的“基本存储电路”中信息可以通过紫外光照射来擦除,后者的“基本存储电路”中信息可以采用电脉冲擦除。
UVEPROM(Ultraviolet PROM)是一种紫外光擦洗的PROM,其“基本存储电路”通常由一只FAMOS管和一只普通MOS管构成。其中,FAMOS(Floating Gate Avalanche Injection MOS)管是浮置栅雪崩注入式MOS管的简称,通常可以分为P沟FAMOS管和N沟FAMOS管两种。
(1)P沟FAMOS管。
P沟FAMOS管的内部结构如图5-17所示。由图可见,FAMOS管有一个生长在同一基片上的源极和漏极,源极S和漏极D分别生长了一个高浓度P型区,源极和漏极间为绝缘物二氧化硅SiO2,其间埋设了一个浮置栅。若浮置栅内无电荷,表示管内存“1”;若浮置栅内有电荷,表示管内存“0”。因此,FAMOS管是通过浮置栅内有无电荷生成导电沟道而存储信息的。对于受过紫外光擦洗或新出厂的UVEPROM,源极和漏极间因浮置栅内无电荷而截止,这就是为什么新出厂的UVEPROM内所有存储单元能读出全“1”的原因。
P沟FAMOS管浮置栅内注入电荷的方法很简单,只要在源极S和漏极D间加上21V高压并在UVEPROM芯片的引脚上给一个52ms宽的负脉冲就行了。在负脉冲作用期间,源极S和漏极D之间在21V高压作用下雪崩击穿,电荷因此而被注入浮置栅内;负脉冲过去或21V电压撤除后,浮置栅内电荷因受SiO2包围和无处泄漏而保存下来。
(2)基本存储电路。
UVEPROM的基本存储电路如图5-18所示。图中,字线由字地址译码器输出端引来,T1是公共负载管,一条“位线”一个,T2和T3组成“基本存储电路”。电路的工作原理是:若要读“1”(即T3浮置栅内无电荷),则字线为高电平(+5V),T2管虽然可以导通,但因FAMOS管浮置栅中无电荷而截止,VCC电压经T1管后在位线上输出高电平“1”;若要读“0”(即T3浮置栅内有电荷),则T2和T3因FAMOS管浮置栅内有电荷而导通,故位线上输出低电平“0”。
图5-17 P沟FAMOS管结构 图5-18 P沟FAMOS管基本存储电路
UVEPROM存储芯片中央有一个石英玻璃窗口,当紫外光透过小窗口照射时,片内浮置栅内电荷便会泄漏。因此,编程后的UVEPROM切忌在阳光下暴晒,应该用不透光的过滤纸把窗口遮盖起来。UVEPROM通常是在专用擦除器内擦除的,操作方法极为简单。UVEPROM的优点是集成度高;缺点是工作速度慢、功耗大和擦除时间太长。
E2PROM(Electrically EPROM)是电可擦PROM,是一种利用电脉冲擦除所存信息的EPROM。UVEPROM在擦除信息时需要从所用系统上拆卸下来,放在专用的擦除器中擦除干净,然后再编程写入,编好程的UVEPROM还需贴上专用滤光纸再插到所用单片机控制系统的相应插座上。E2PROM在擦除信息时无需从所用系统上拆卸下来,可以通过长途通信线路对它进行远距离擦除和再编程。E2PROM可以分为字节擦除和片擦除两种方式:字节擦除时可以一次(50ms单脉冲)擦除一个字节;片擦除时可以一次擦除芯片上的所有存储信息。
E2PROM这种独特的擦除性能,使它可以用于远距离更新固件,进行ROM的插入、差错记录、诊断和图像存储等。
Intel 2764是一种+5V的8KB UVEPROM存储器芯片,采用HMOS工艺制成,标准存取时间为250ns。其中,27是系列号,64和存储容量有关。这个系列的产品如表5-5所示。
表5-5 27系列常用UVEPROM存储器
型 号 |
容 量 |
读出时间 |
制造工艺 |
所用电源 |
管 脚 数 |
2708 |
1KB |
350ns~450ns |
NMOS |
±5V,+12V |
24 |
2716 |
2KB |
300ns~450ns |
NMOS |
+5V |
24 |
2732A |
4KB |
200ns~450ns |
NMOS |
+5V |
24 |
2764 |
8KB |
200ns~450ns |
HMOS |
+5V |
28 |
27128 |
16KB |
250ns~450ns |
HMOS |
+5V |
28 |
27256 |
32KB |
200ns~450ns |
HMOS |
+5V |
28 |
27512 |
64KB |
250ns~450ns |
HMOS |
+5V |
28 |
27513 |
256KB |
250ns~450ns |
HMOS |
+5V |
28 |
为使读者对2764有一个全面了解,现分内部结构、引脚功能、擦除特性、工作方式和编程4个方面介绍如下。2764内部结构和引脚分配如图5-19所示。
(1)内部结构。
2764的内部结构如图5-19(a)所示。由图可见,2764采用双译码编程方式,A12~A0上地址信号经X和Y译码后在X选择线和Y选择线上产生选择信号,选中存储阵列中相应地址的存储单元,并在控制电路控制下对所选中存储单元进行读出(或编程写入),从存储单元读出的8位二进制信息经输出缓冲器输出到数据线O7~O0上。在编程方式下,O7~O0上编程信息在控制电路控制下写入存储阵列的相应存储单元。
(a)2764内部结构 (b)2764/27128引脚分配
图5-19 2764内部结构和引脚分配
(2)引脚功能(28条)。
2764和27128都是28引脚的UVEPROM,27128的存储容量为16KB,正好是2764的两倍,故27128的地址线应比2764多一条。图5-19(b)为它们的引脚分配图。图中,2764的26引脚的脚标为NC表示轮空不用;27128的26引脚脚标为A12用于传送27128的最高位地址码。其他引脚功能分述如下。
① 地址输入线A12~A0:2764的存储容量为8KB,共需13条地址线,2764的地址线应和MCS-51单片机的P2和P0口相接,用于传送单片机送来的地址编码信号,其中A12为最高位。
② 数据线O7~O0:O7~O0是双向数据总线,O7为最高位。正常工作时,O7~O0用于传送从2764中读出的数据或程序代码;编程方式时用于传送需要写入的编程代码(即程序的机器码)。
③ 控制线(3条):片选输入线,该输入线用于控制本芯片是否工作。若给上加一个高电平,则本片不工作;若给上加一个低电平,则本片工作。
编程输入线,该输入线用于控制2764处于正常工作状态还是编程/校验状态。若给它输入一个TTL高电平,则2764处于正常工作状态;若给输入一个50ms宽的负脉冲,则2764可以处于编程状态。
允许输出线也是一条由用户控制的输入线。若给它输入一个TTL高电平,则数据线O7~O0处于高阻状态;若给线上加一个TTL低电平,则O7~O0处于读出状态。
④ 其他引脚线(4条):VCC为电源输入线,GND为直流地线。VPP为编程电源输入线,当它接+5V时,2764处于正常工作状态;当VPP接21V电压时,2764处于编程/校验状态。NC为2764的空线。
(3)擦除特性。
2764存储阵列中的信息可以采用紫外光擦除,擦除后存储的代码全为“1”。2764在擦除时应先取下芯片中央小窗口上的贴纸,然后用紫外光照射,这就使FAMOS管浮栅中的电子获得高能量,从而形成光电流从浮栅流入基片。2764中信息擦除也不是十分容易的,把2764放在阳光下暴晒大约需要一星期才会擦干净,在普通荧光灯下需要3年才会擦除。
(4)工作方式和编程。
2764可以分为正常和编程两种工作方式。正常工作方式是指2764在它所用应用系统中的工作方式,常分为读出和维持两种工作状态;编程方式是指给2764写入程序时的工作方式,常常用在专用的计算机系统上,又可分为编程、禁止编程和校验3种工作状态。
总之,2764共有两种工作方式和5种工作状态,究竟处在哪一种方式和状态下工作是由2764的控制线和电源线上的信号决定的。表5-6列出了2764的工作状态和相应引脚线上电平的关系。
表5-6 2764工作方式选择表
引脚 工作方式 |
(20) |
(22) |
(27) |
VPP (1) |
VCC (8) |
输出端 O7~O0 |
读 出 |
VIL① |
VIL |
VIH |
VCC |
VCC |
输出 |
维 持 |
VIH② |
×③ |
× |
VCC |
VCC |
高阻 |
续上表
引脚 工作方式 |
(20) |
(22) |
(27) |
VPP (1) |
VCC (8) |
输出端 O7~O0 |
编 程 |
VIL |
VIH |
VIL |
VPP④ |
VCC |
输入 |
编程校验 |
VIL |
VIL |
VIH |
VPP |
VCC |
输出 |
禁止编程 |
VIH |
× |
× |
VPP |
VCC |
高阻 |
注:①VIL为TTL低电平;
② VIH为TTL高电平;
③×为任意(VIL/VIH);
④VPP为+5V,+21V。
2815是Intel公司研制的E2PROM,其中28是系列号,15是序号。在这个系列里,还有2816和2817芯片,其存储容量均为2KB。2815采用FLOTOX单元设计和大功率HMOS-E技术研制而成,最大存取时间为250ns,适宜于保存已存入的数据,而又允许内部电路重新编程。
2815依靠50ms宽的正脉冲来擦除每个存储单元中的程序代码,擦除方式分为字节擦除和片擦除两种。字节擦除是指在一个50ms宽的正脉冲作用期间擦除一个存储单元中的信息,片擦除是指用一个正脉冲擦除芯片内部所有存储单元中的信息。
2815内部采用双译码编址方式,其结构和前述2764类似,只是基本存储电路有所差别。2815有24条引脚,双列直插式封装,如图5-20所示。图中,A12~A0为地址线,I/O7~I/O0为数据线,、等功能和前述2764中定义的类似,在此不再赘述。
(a)引脚排列 (b)逻辑引脚
图5-20 Intel 2815引脚分配图
2815也有正常和编程两种工作方式:正常工作方式也有读出和维持两种状态;编程方式有4种工作状态,分别为字节擦除、字节写入、片擦除和禁止读/写状态。每种工作状态对有关引脚电平的依赖关系如表5-7所示。
结合2764,读者不难理解表5-7中各工作状态的引脚连接、作用和特点。
表5-7 2815工作状态选择表
引脚 工作方式 |
(18) |
(20) |
VPP (21) |
输出端 I/O7~I/O0 |
读 出 |
VIL① |
VIL |
+4V~+6V |
输出 |
维 持 |
VIH② |
X③ |
+4V~+6V |
高阻 |
字节擦险 |
VIL |
VIH |
+21 |
VIH |
字节写入 |
VIL |
VIH |
+21V |
被写入信息 |
片擦除 |
VIL |
+9V~+15V |
+21V |
VIH |
禁止读写 |
VIH |
X |
+4V~+22V |
高阻 |
注:①VIL为TTL低电平;
②VIH为TTL高电平;
③×为任意(VIL/VIH)。