您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 第6章__外部存储器的扩展.
•6.1系统的扩展结构•6.2地址空间分配和地址锁存器•6.3程序存储器EPROM的扩展•6.4数据存储器RAM的扩展•6.5程序存储器和数据存储器的综合扩展第6章单片机存储器的扩展问题的提出在单片机应用系统的设计中,往往出现RAM,ROM或者I/O口不够的情况,怎么办?ROM的扩展RAM的扩展综合扩展最小应用系统单片机系统的扩展是以基本的最小系统为基础的,故应首先熟悉最小应用系统的结构。实际上,内部带有程序存储器的8051或8751单片机本身就是一个最简单的最小应用系统,许多实际应用系统就是用这种成本低和体积小的单片结构实现了高性能的控制。对于内部无程序存储器的芯片8031来说,则要用外接程序存储器的方法才能构成一个最小应用系统。EAPSEN1.片内带程序存储器的最小应用系统片内带程序存储器的8051、8751本身即可构成一片最小系统,只要将单片机接上时钟电路和复位电路即可,同时接高电平,ALE、信号不用,系统就可以工作。(1)系统有大量的I/O线可供用户使用:P0、P1、P2、P3四个口都可以作为I/O口使用。(2)内部存储器的容量有限,只有128B的RAM和4KB的程序存储器。P0P1P2P3+5V+5VEA80518751XTAL1XTAL288882.片内无程序存储器的最小应用系统片内无程序存储器的芯片构成最小应用系统时,必须在片外扩展程序存储器。由于一般用作程序存储器的EPROM芯片不能锁存地址,故扩展时还应加1个锁存器,构成一个3片最小系统。该图中74LS373为地址锁存器,用于锁存低8位地址。当单片机最小系统不能满足系统功能的要求时,就需要进行扩展。6.1系统扩展结构•扩展方法:必须先要构造扩展线路,也就是要构造一系列总线(Bus),然后在总线上“挂”上需要扩展的芯片,就完成了扩展。对于扩展出来的部件,我们称之为外部器件,比如外部ROM、外部RAM等。图6-151单片机的系统扩展结构8由图6-1可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。51单片机的存储器扩展即包括程序存储器扩展又包括数据存储器扩展。51单片机采用程序存储器空间和数据存储器空间截然分开的哈佛结构。扩展后,系统形成了两个并行的外部存储器空间。9系统扩展是以51为核心,通过总线把单片机与各扩展部件连接起来。因此,要进行系统扩展首先要构造系统总线。单片机系统的扩展是建立在地址总线(AB)、数据总线(DB)和控制总线(CB)基础上的,这些总线都是并行的,能够理想地匹配CPU的处理速度。任何单片机之外的芯片和硬件资源必须通过总线与单片机相连,才能被单片机有效地管理,成为系统的有机组成部分。MCS-51单片机对外没有专用的地址总线(AB)、数据总线(DB)和控制总线(CB),在进行系统扩展时,首先需要扩展系统的三总线。10数据总线用于在单片机与存储器之间或单片机与I/O端口之间传送数据。数据总线是双向的,可以进行两个方向的数据传送。80C51单片机数据总线为8位,由P0口提供。在数据总线上可以连接多个外围芯片,但在某一时刻只能有一个有效的数据传送通道。1.数据总线DB(DataBus)地址总线用于传送单片机送出的地址信号,以便进行存储单元和I/O端口的选择。地址总线的位数决定着可访问的存储器或I/O口的容量。80C51单片机有16条地址线。所以能寻址64KB空间。80C51单片机的16位地址线分为两部分:高8位地址线:由P2口提供;低8位地址线:由P0口提供。由于P0口是低8位地址和8位数据的复用线,因此必须外接锁存器,用于将先发送出去的低8位地址锁存起来,然后才能传送数据。需要注意:P0、P2口在系统扩展中用作地址线后就不能作为一般I/O口使用。2.地址总线AB(AddressBus)地址总线的构造P0+P2=A0~A15(A8~A15)不固定,需要用几根就从P2口引出几条口线3.控制总线CB除地址线和数据线外,还要有系统的控制总线。这些信号有的就是单片机引脚的第一功能信号,有的则是P3口第二功能信号。包括:(1)作为外扩程序存储器的读选通控制信号。(2)和为外扩数据存储器和I/O的读、写选通控制信号。(3)ALE作为P0口发出的低8位地址锁存控制信号。(4)为片内、片外程序存储器的选择控制信号。可见,51的4个并行I/O口,由于系统扩展的需要,真正作为数字I/O用,就剩下P1和P3的部分口线了。13PSENRDWREA8051扩展的三总线P2ALE8051P0PSENWRRD地址锁存器地址总线数据总线控制总线A8~A15A0~A7D0~D7程序存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)EA=1EA=0读写控制RAM芯片/I/O接口芯片EPROM芯片MCS-51RDWRMCS-51PSENOEWEOE6.2地址空间分配和外部地址锁存器接下来讨论如何进行存储器空间的地址分配,并介绍用于输出低8位地址的常用的地址锁存器。6.2.1存储器地址空间分配实际系统设计中,既需要扩展程序存储器,又需要扩展数据存储器,如何把片外的两个64KB地址空间分配给各个程序存储器、数据存储器芯片,使一个存储单元只对应一个地址,避免单片机发出一个地址时,同时访问两个单元,发生数据冲突。这就是存储器地址空间分配问题。1751单片机发出的地址码用于选择某个存储器单元,外扩多片存储器芯片中,单片机必须进行两种选择:一是选中该存储器芯片,这称为“片选”,未被选中的芯片不能被访问。二是在“片选”的基础上再根据单片机发出的地址码来对“选中”芯片的某一单元进行访问,即“单元选择”。为实现片选,存储器芯片都有片选引脚。同时也都有多条地址线引脚,以便进行单元选择。注意,“片选”和“单元选择”都是单片机通过地址线一次发出的地址信号来完成选择。18通常把单片机系统的地址线笼统地分为低位地址线和高位地址线,“片选”都是使用高位地址线。实际上,16条地址线中的高、低位地址线的数目并不是固定的,只是习惯上把用于“单元选择”的地址线,都称为低位地址线,其余的为高位地址线。常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法),下面介绍。1.线选法是直接利用系统的某一高位地址线作为存储器芯片(或I/O接口芯片)的“片选”控制信号。为此,只需要把用到的高位地址线与存储器芯片的“片选”端直接连接即可。20例某一系统,需要外扩8KB的EPROM(2片2732),4KB的RAM(2片6116),两片程序存储器的地址范围:2732(1)的地址范围:7000H~7FFFH;2732(2)的地址范围:B000H~BFFFH;6116(1)的地址范围:E800H~EFFFH;6116(2)的地址范围:D800H~DFFFH。P2.7P2.6P2.5P2.401112732(1)10112732(2)11016116(2)11106116(1)优点:电路简单,不需要地址译码器硬件,体积小,成本低。缺点:可寻址的器件数目受到限制,地址空间不连续,地址不唯一。特点:只适于外扩芯片不多,规模不大的单片机系统。线选法小结:2.译码法使用译码器对51单片机的高位地址进行译码,译码输出作为存储器芯片的片选信号。这种方法能够有效地利用存储器空间,适用于多芯片的存储器扩展。常用的译码器芯片有74LS138(3线-8线译码器)、74LS139(双2线-4线译码器)和74LS154(4线-16线译码器)。若全部高位地址线都参加译码,称为全译码;若仅部分高位地址线参加译码,称为部分译码。部分译码存在着部分存储器地址空间相重叠的情况。下面介绍常用的译码器芯片。24时,译码器才工作,见真值表122100ABGGG输入:CBA输出:76543210YYYYYYYY(1)74LS1383线-8线译码器,有3个数据输入端,经译码产生8种状态。26G2AG2BY7Y6Y5Y4Y3Y2Y1Y0由表可见,当译码器的输入为某一固定编码时,其输出仅有一个固定的引脚输出为低电平,其余的为高电平。输出为低电平的引脚就作为某一存储器芯片的片选信号。(2)74LS139双2线-4线译码器。有2个数据输入端,经译码产生4种状态。27图6-474LS139引脚图32100GAYBYYY时,解:6264:8K=2133根地址线留下8片3-8译码:采用74LS138译码器分析地址?例子:要扩展8片8KB的RAM6264(8K×8),如何通过译码器把64KB空间分配给各个芯片?P2.7、P2.6、P2.5(高3位地址线)分别接74LS138的C、B、A端,实现8选1的片选。低13位地址(P2.4~P2.0,P0.7~P0.0)完成对选中的6264芯片中的各个存储单元的“单元选择”。这样就把64KB存储器空间分成8个8KB空间了。这里采用全地址译码方式。因此,51发出16位地址时,每次只能选中某一芯片及该芯片的一个存储单元。地址无重叠,64KB空间:0000H~FFFFH地址连续解:64KB=4KB×8块×2部分4K=21212根+译码3根,P2.7未参加译码如何用74LS138把64K空间划分为每块4KB?引出问题1:由于P2.7没有参加译码,就不是全译码方式,前后两个32KB空间就重叠了。那么,这32KB空间利用74LS138译码器可划分为8个4KB空间。74LS138G1前32KB8块4KB后32KB8块4KB分析地址?如果把P2.7通过一个非门与74LS138译码器G1端连接起来,如图所示,就不会发生两个32KB空间重叠的问题了。P2.7=0/1决定选择64KB的前32KB或后32KB这时,选中的是64KB空间的前32KB空间,地址范围为0000H~7FFFH。如果去掉图中的非门,地址范围为8000H~FFFFH。把译码器的输出连到各个4KB存储器的片选端,这样就把32KB空间划分为8个4KB空间。P2.3~P2.0,P0.7~P0.0实现“单元选择”,P2.6~P2.4通过74LS138译码实现对各存储器芯片的片选。小结:若64KB全是用16块4K芯片组成,则同问题1,需2个74LS138D7Q7D0Q0……D7~D0:8位数据输入线,Q7~Q0:8位数据输出线。6.2.2外部地址锁存器•受引脚数的限制,P0口兼用数据线和低8位地址线,为了将它们分离出来,需在单片机外部增加地址锁存器。常用的有:74LS373、8282、74LS573等。功能和内部结构完全一样,只是引脚排列不同。G:锁存信号,高电平有效。当G为高电平时,外部D7~D0选通到内部锁存器,负跳变时,数据锁存到锁存器中。OE*:输出允许,低电平有效,三态门打开,锁存器中数据输出到Q7~Q0,当信号为高电平时,Q7~Q0为高阻态OE*GDQ0111010000×不变10×高阻态74LS373功能表ALE37图6-951单片机P0口与74LS373的连接接下来讲ROMRAM的扩展,以讲例子为主,硬件看懂,会算地址+软件编程6.3程序存储器EPROM的扩展程序存储器采用只读存储器,因为这种存储器在电源关断后,仍能保存程序(我们称此特性为非易失性的),在系统上电后,CPU可取出这些指令重新执行。只读存储器简称ROM(ReadOnlyMemory)。ROM中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称为只读存储器。向ROM中写入信息称为ROM编程。根据编程方式不同,分为以下几种。(1)掩模ROM。在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。这种芯片存储结构简单,集成度高,但由于掩模工艺成本较高,因此只适合于大批量生产。40(2)可编程ROM(PROM)。芯片出厂时没有任何程序信息,用独立的编程器写入。但PROM只能写一次,写入内容后,就不能再修改。(3)EPROM。用紫外线擦除,用电信号编程。在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息。使用编程器可将调试完毕的程序写入。(4)E2PROM(EEPROM)。一种用电信号编程,也
本文标题:第6章__外部存储器的扩展.
链接地址:https://www.777doc.com/doc-2110920 .html