目前在单片机应用中,已很少扩展程序存储器。如89C52芯片内部已有8K的Flash程序存储器,只有在需要大量常数存储器(如字库)等特殊应用中,才在外面扩展1片只读存储器ROM。这样的系统都是大系统,P0口、P2口都作为扩展总线口使用。
1.常见的程序存储器ROM的芯片
前面已述,扩展片外程序存储器所用的芯片一般采用ROM存储器芯片,它们可以是EPROM、E2 PROM、FLASH等类型的芯片。
(1)EPROM存储器。图7-17为常用的6种EPROM存储器的引脚图。其中2716(2K×8bit)、2732(4K×8bit)均为24脚,而2764(8K×8bit)、27128(16K×8bit)、27256(32K×8bit)、27512(64K×8bit)均为28脚。
图7-17 常用的6种EPROM芯片引脚
EPROM是紫外线可擦除电可编程的只读存储器,掉电以后信息不会丢失。用EPROM作为单片机外部程序存储器是经典的程序存储器扩展方法,虽然目前已基本不用EPROM,但目前使用的E2 ROM和Flash ROM的储器扩展方法与EPROM的扩展方法是一样的。
EPROM芯片上有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变为1,即处于擦除干净的状态。擦除干净的EPROM可以通过编程器将应用程序固化到芯片中,称为“写入”或“烧”程序。固化的过程就是按要求把芯片的“1”便为“0”,信息是“1”的保持不变。
(2)E2 PROM存储器。常用的E2 PROM芯片有2816(2K×8bit)、2817(2K×8bit)、2864(8K×8bit)等,图7-18为常用的3种E2 PROM芯片引脚图。在芯片的引脚设计上,2KB的E2 PROM 2816与EPROM 2716和RAM 6116兼容,8KB的E2 PROM 2864A与EPROM 2764和RAM 6264兼容,2816、2817和2864A的读出时间均为250ns,写入时间10ms。电可擦除只读存储器E2 PROM可像EPROM那样长期非易失地保存信息,又可像RAM那样随时用电改写,近年来出现了快擦FLASH ROM,它们被广泛用作单片机的程序存储器和数据存储器。
图7-18 常用的3种E2 PROM芯片引脚
E2 PROM芯片有如下共同特点:①单+5V供电,电可擦除可改写;②使用次数为1万次,信息保存时间为10年;③读出时间为ns级,写入时间为ms级;④芯片引脚信号与相应的RAM和EPROM芯片兼容,见表7-1。E2 PROM的使用非常简单方便。不用紫外线擦除,在单一的+5V电压下写入的新数据可覆盖旧数据。
表7-1 常用的E2 PROM芯片与相应的RAM和EPROM芯片兼容情况
下面以2817A为例说明E2 PROM和单片机的连接方法。
2817A为2KB E2 PROM维持电流为60m A,典型读出时间为200~350ns,字节编程写入时间为10~20μs,芯片内有电压提升电路,编程时不必增高压,单一+5V供电。引脚和6116,2716兼容。
8031单片机扩展2817A的硬件电路如图7-19所示。图中的2817A既可作为数据存储器RAM,又可作为程序存储器ROM。通过P1.0查询2817A的状态(RDY即为READY缩写),来完成对2817A的写操作。片选信号由P2.7提供。
MCS-51系列单片机中的数据存储器和程序存储器在逻辑上是严格分开的,但在实际设计和开发单片机系统时,程序和数据若放在E2 PROM或FLASH或SRAM,可_方便程序和数据调试和修改,为此需将程序存储器和数据存储器混合使用。在硬件上将信号和相“与”后连到RAM的读选通端即可以实现,见图7-19。当执行MOVX指令时产生读选通信号使有效,当执行该RAM中的程序时,由信号也使有效,选通RAM,读出其中的机器码。注意,信号依然连接RAM的WE端。
(3)FLASH存储器(闪速存储器)。FLASH存储器又称闪速存储器或PEROM(Programmable Erasable ROM),它是在EPROM工艺的基础上增添了芯片整体电擦除和可再编程功能,使其成为性价比高可靠性高、快擦写、非易失的E2 PROM存储器(后面简称Flash)。很多Flash内部集成有DC/DC变换器,使读、擦除、编程使用单一电压(根据不同型号,有的是单一+5V,也有的是单一+3V低压),从而使在系统编程(ISP)成为可能,目前很多单片机内均采用FLASH作为程序存储器。FLASH的扩展方法和E2 PROM一样。
2.程序存储器ROM的操作时序
图7-19 8031单片机与2817A E2 PROM的连接电路
单片机的地址总线为16位,扩展的片外ROM的最大容量为64KB,地址为0000 H~FFFFH。扩展的片外RAM的最大容量也为64KB,地址为0000 H~FFFFH。由于MCS-51单片机采用不同的控制信号和指令,尽管ROM与RAM共享数据总线和地址总线,ROM与RAM的地址重叠,但由于两者的控制总线不同,因此不会发生混乱。
图7-20为MCS-51单片机访问ROM 时序。单片机的CPU在访问或片外ROM的一个机器周期内,信号ALE出现两次正脉冲,ROM选通信号也两次有效,这说明在一个机器周期内,CPU两次访问片外ROM,也即在一个机器周期内可以处理两个字节的指令代码,所以MCS-51单片机指令系统中有很多单周期、双字节的指令。
图7-20 MCS-51单片机访问ROM时序
程序存储器扩展电路的安排应满足单片机从外存取指令的时序要求。从时序图中,可分析ALE、、P0和P2怎样配合使程序存储器完成取指操作,从而得出扩展程序存储器的方法。单片机一直处于不_断的取指令码-执行-取指令码-执行的工作过程中,在取指令码时和执行MOVC指令时会变为有效,和其他信号配合完成从程序存储器读取数据。
3.片外程序存储器ROM的扩展方法
程序存储器ROM的扩展是使用P0、P2端口作为地址总线、数据总线。
图7-21 单片机扩展程序存储器ROM电路
MCS-51单片机对片内、片外ROM的访问使用相同的指令MOVC,两者的选择是由硬件实现的。在时序中将产生信号,因此,将信号与片外ROM相应的读相连接,就能够实现系统对片外ROM的读控制。外部程序存储器ROM的扩展方法如图7-21所示。片外ROM芯片扩展时,芯片选择多采用线选法或直接接地法,地址译码法用的渐少。(www.xing528.com)
(1)不用片外译码器的单片程序存储器的扩展。
【例7-2】 MCS-51单 片 机 扩 展1片EPROM2732程序存储器的电路如图7-22所示。
EPROM2732的容量为4KB×8位。4KB表示有4×1024=4096=212个存储单元,8位表示每个单元存储数据的宽度是8位。前者确定了地址线的位数是12_位(A0~A11),后者确定了数据线的位数是8位(O0~O7)。EPROM的读选通信号与单片机的相连,如果要从EPROM中读出程序中定义的数据,需使用指令:MOVC A,@A+DPTR或MOVC A,@A+PC。
图7-22 单片机扩展2732 EPROM电路
由于本电路也只扩展1片程序存储器,可直接接地。由于剩余的高4位地址为任意值,因此本电路扩展存储器的地址有24=16个重叠的地址空间,它们分别是0000H~0FFFH、1000H~1FFFH、2000H~2FFFH、3000H~3FFFH、4000H~4FFFH、5000H~5FFFH、6000H~6FFFH、7000 H~7FFFH、8000 H~8FFFH、9000H~9FFFH、A000H~AFFFH、B0000H~BFFFH、C000 H~CFFFH、D000 H~DFFFH、E000H~EFFFH、F000H~FFFFH。地址计算如表7-2所示。
若设没用到的高位地址x为1,则扩展存储器的地址范围为F000 H~FFFFH。
表7-2 2732 EPROM的地址范围计算
(2)采用线选法的多片程序存储器的扩展。
【例7-3】 使用两片2764扩展16KB的程序存储器,采用线选法选中芯片。扩展连接图如图7-23所示。以P2.7作为片选,当P2.7=0时,选中2764(1);当P2.7=1时,选中2764(2)。因两根线(A13、A14)未用,故两个芯片各有22=4个重叠的地址空间。
图7-23 用两片2764 EPROM的扩展连接电路
两片2764的地址范围如下:
左片:00000000000000000~0001111111111111,即0000H~1FFFH;
00100000000000000~0011111111111111,即2000 H~3FFFH;
01000000000000000~0101111111111111,即4000 H~5FFFH;
01100000000000000~0111111111111111,即6000H~7FFFH;
右片:10000000000000000~1001111111111111,即8000H~9FFFH;
10100000000000000~1011111111111111,即A000 H~BFFFH;
11000000000000000~1101111111111111,即C000H~DFFFH;
11100000000000000~1111111111111111,即E000H~FFFFH。
(3)采用地址译码器的多片程序存储器的扩展。
【例7-4】 要求用2764芯片扩展8031的片外程序存储器,分配的地址范围为0000H~3FFFH。
本例要求的地址空间是唯一确定的,所以要采用全译码方法。由分配的地址范围知:扩展的容量为3FFFH-0000 H+1=4000 H=16KB,2764为8K×8位,故需要两片。第1片的地址范围应为0000 H~1FFFH;第2片的地址范围应为2000 H~3FFFH。由地址范围可确定译码器的连接方式,译码关系表见表7-3。
表7-3 2764的地址范围计算
图7-24为单片机扩展2片EPROM 2764程序存储器的电路图。2764共有13根地址线和8根数据线,分别与单片机相连,单片机剩余的3根地址线通过译码器输出端,分别控制两个存储器的片选线,这就保证了每个存储单元只有唯一的地址。
图7-24 全译码、2片2764 EPROM的扩展连接电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。