《扩展存储器》PPT课件.ppt
《《扩展存储器》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《扩展存储器》PPT课件.ppt(113页珍藏版)》请在三一办公上搜索。
1、第8章 AT89S51单片机 外部存储器的扩展,1,2,第8章 目录8.1 系统扩展结构8.2 地址空间分配和外部地址锁存器 8.2.1 存储器地址空间分配 8.2.2 外部地址锁存器8.3 程序存储器EPROM的扩展 8.3.1 常用的EPROM芯片 8.3.2 程序存储器的操作时序 8.3.3 AT89S51单片机与EPROM的接口电路设计8.4 静态数据存储器RAM的扩展 8.4.1 常用的静态RAM(SRAM)芯片 8.4.2 外扩数据存储器的读写操作时序,3,8.4.3 AT89S51单片机与RAM的接口电路设计8.5 EPROM和RAM的综合扩展 8.5.1 综合扩展的硬件接口电路
2、 8.5.2 外扩存储器电路的工作原理及软件设计8.6 E2PROM的扩展 8.6.1 并行E2PROM芯片简介 8.6.2 E2PROM的工作方式 8.6.3 AT89S51单片机扩展E2PROM AT2864的设计8.7 片内Flash存储器的编程 8.7.1 通用编程器编程 8.7.2 ISP编程,4,内容概要许多情况,片内的存储器资源还不能满足需要,为此需AT89S51单片机进行外部程序存储器和外部数据存储器的扩展。由于有时需要扩展多片芯片,首先介绍AT89S51单片机的两个外部存储器空间的地址分配的两种方法,即线选法和译码法。最后介绍扩展外部程序存储器和外部数据存储器的具体设计。,8
3、.1 系统扩展结构AT89S51单片机采用总线结构,使扩展易于实现,AT89S51单片机系统扩展结构如图8-1所示。图8-1 AT89S51单片机的系统扩展结构,5,由图8-1可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。AT89S51单片机的存储器扩展即包括程序存储器扩展又包括数据存储器扩展。AT89S51单片机采用程序存储器空间和数据存储器空间截然分开的哈佛结构。扩展后,系统形成了两个并行的外部存储器空间。系统扩展是以AT89S51为核心,通过总线把单片机与各扩展部件连接起来。因此,要进行系统扩展首先要构造系统总线。系统总线按功能通常分为3组,如图8-1所示。,6,7,(1)地
4、址总线(Address Bus,AB):用于传送单片机发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器单元的选择。(2)数据总线(Data Bus,DB):用于单片机与外部存储器之间或与I/O接口之间传送数据,数据总线是双向的。(3)控制总线(Control Bus,CB):控制总线是单片机发出的各种控制信号线。,如何来构造系统的三总线。1P0口作为低8位地址/数据总线AT89S51受引脚数目限制,P0口既用作低8位地址总线,又用作数据总线(分时复用),因此需增加一个8位地址锁存器。AT89S51访问外部扩展的存储器单元或I/O接口寄存器时,先发出低8位地址送地址锁存器锁存,锁存器输
5、出作为系统的低8位地址(A7 A0)。随后,P0口又作为数据总线口(D7 D0),如图8-2所示。2P2口的口线作为高位地址线P2口用作系统的高8位地址线,再加上地址锁存器提供的低8位地址,便形成了系统完整的16位地址总线。,8,使单片机系统的寻址范围达到64KB。,9,图8-2 AT89C51单片机扩展的片外三总线,3控制信号线除地址线和数据线外,还要有系统的控制总线。这些信号有的就是单片机引脚的第一功能信号,有的则是P3口第二功能信号。包括:(1)作为外扩程序存储器的读选通控制信号。(2)和 为外扩数据存储器和I/O的读、写选通控制信号。(3)ALE作为P0口发出的低8位地址锁存控制信号。
6、(4)为片内、片外程序存储器的选择控制信号。可见,AT89S51的4个并行I/O口,由于系统扩展的需要,真正作为数字I/O用,就剩下P1和P3的部分口线了。,10,8.2 地址空间分配和外部地址锁存器本节讨论如何进行存储器空间的地址分配,并介绍用于输出低8位地址的常用的地址锁存器。8.2.1 存储器地址空间分配实际系统设计中,既需要扩展程序存储器,又需要扩展数据存储器,如何把片外的两个64KB地址空间分配给各个程序存储器、数据存储器芯片,使一个存储单元只对应一个地址,避免单片机发出一个地址时,同时访问两个单元,发生数据冲突。这就是存储器地址空间分配问题。,11,AT89S51单片机发出的地址码
7、用于选择某个存储器单元,外扩多片存储器芯片中,单片机必须进行两种选择:一是选中该存储器芯片,这称为“片选”,未被选中的芯片不能被访问。二是在“片选”的基础上再根据单片机发出的地址码来对“选中”芯片的某一单元进行访问,即“单元选择”。为实现片选,存储器芯片都有片选引脚。同时也都有多条地址线引脚,以便进行单元选择。注意,“片选”和“单元选择”都是单片机通过地址线一次发出的地址信号来完成选择。通常把单片机系统的地址线笼统地分为低位地址线和高,12,13,位地址线,“片选”都是使用高位地址线。实际上,16条地址线中的高、低位地址线的数目并不是固定的,只是习惯上把用于“单元选择”的地址线,都称为低位地址
8、线,其余的为高位地址线。常用的存储器地址空间分配方法有两种:线性选择法(简称线选法)和地址译码法(简称译码法),下面介绍。1线选法是直接利用系统的某一高位地址线作为存储器芯片(或I/O接口芯片)的“片选”控制信号。为此,只需要把用到的高位地址线与存储器芯片的“片选”端直接连接即可。,线选法优点是电路简单,不需要另外增加地址译码器硬件电路,体积小,成本低。缺点是可寻址的芯片数目受到限制。另外,地址空间不连续,每个存储单元的地址不唯一,这会给程序设计带来不便,只适用于外扩芯片数目不多的单片机系统的存储器扩展。2译码法使用译码器对AT89S51单片机的高位地址进行译码,译码输出作为存储器芯片的片选信
9、号。这种方法能够有效地利用存储器空间,适用于多芯片的存储器扩展。常用的译码器芯片有74LS138(3线-8线译码器)、74LS139(双2线-4线译码器)和74LS154(4线-16线译码器)。,14,若全部高位地址线都参加译码,称为全译码;若仅部分高位地址线参加译码,称为部分译码。部分译码存在着部分存储器地址空间相重叠的情况。下面介绍常用的译码器芯片。(1)74LS1383线-8线译码器,有3个数据输入端,经译码产生8种状态。引脚如图8-3所示,真值表见表8-1。由表8-1可见,当译码器的输入为某一固定编码时,其输出仅有一个固定的引脚输出为低电平,其余的为高电平。输出为低电平的引脚就作为某一
10、存储器芯片的片选信号。,15,16,(2)74LS139双2线-4线译码器。这两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端,其引脚如图8-4所示,真值表见表8-2(只给出其中一组)。图8-3 74LS138引脚图 图8-4 74LS139引脚图,17,18,以74LS138为例,如何进行地址分配。例如,要扩8片8KB的RAM 6264,如何通过74LS138把64KB空间分配给各个芯片?由74LS138真值表可知,把G1接到+5V,、接地,P2.7、P2.6、P2.5(高3位地址线)分别接74LS138的C、B、A端,由于对高3位地址译码,这样译码器有8个输出,
11、分别接到8片6264的各“片选”端,实现8选1的片选。低13位地址(P2.4P2.0,P0.7P0.0)完成对选中的6264芯片中的各个存储单元的“单元选择”。这样就把64KB存储器空间分成8个8KB空间了。,19,64KB地址空间分配如图8-5所示。图8-5 64KB地址空间划分成8个8KB空间这里采用全地址译码方式。因此,AT89S51发出16位地址时,每次只能选中某一芯片及该芯片的一个存储单元,20,如何用74LS138把64KB空间全部划分为4KB的块呢?4KB空间需12条地址线,而译码器输入只有3条地址线(P2.6P2.4),P2.7没有参加译码,P2.7发出的0或1决定选择64KB
12、存储器空间的前32KB还是后32KB,由于P2.7没有参加译码,就不是全译码方式,前后两个32KB空间就重叠了。那么,这32KB空间利用74LS138译码器可划分为8个4KB空间。如果把P2.7通过一个非门与74LS138译码器G1端连接起来,如图8-6所示,就不会发生两个32KB空间重叠的问题了。这时,选中的是64KB空间的前32KB空间,地址范,21,22,围为0000H7FFFH。如果去掉图8-6中的非门,地址范围为8000HFFFFH。把译码器的输出连到各个4KB存储器的片选端,这样就把32KB空间划分为8个4KB空间。P2.3P2.0,P0.7P0.0实现“单元选择”,P2.6P2.
13、4通过74LS138译码实现对各存储器芯片的片选。采用译码器划分的地址空间块都是相等的,如果将地址空间块划分为不等的块,可采用可编程逻辑器件FPGA对其编程来代替译码器进行非线性译码。,图8-6 存储器空间被划分成每块4KB,23,8.2.2 外部地址锁存器受引脚数的限制,P0口兼用数据线和低8位地址线,为了将它们分离出来,需在单片机外部增加地址锁存器。目前,常用的地址锁存器芯片有74LS373、74LS573等。1锁存器74LS373是一种带三态门的8D锁存器,其引脚如图8-7所示,内部结构如图8-8所示。AT89S51与74LS373锁存器的连接如图8-9所示。,24,25,图8-7 锁存
14、器74LS373的引脚,图8-8 74LS373的内部结构,26,27,图8-9 AT89S51单片机P0口与74LS373的连接,引脚说明:D7D0:8位数据输入线,Q7Q0:8位数据输出线。G:数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。74LS373锁存器功能如表8-3。,28,29,图8-10 锁存器74LS573的引脚,2锁存器74LS573也是一种带有三态门的8D锁存器,功能及内部结构与74
15、LS373完全一样,只是其引脚排列与74LS373不同,图8-10为74LS573引脚图。由图8-10,与74LS373相比,74LS573的输入D端和输出Q端依次排列在芯片两侧,为绘制印制电路板提供方便引脚说明:D7D0:8位数据输入线。Q7Q0:8位数据输出线。G:数据输入锁存选通信号,该引脚与74LS373的G端功能相同。,30,31,:数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中数据输出到数据输出线。当该信号为高电平时,输出线为高阻态。8.3 程序存储器EPROM的扩展程序存储器采用只读存储器,因为这种存储器在电源关断后,仍能保存程序(我们称此特性为非易失性的
16、),在系统上电后,CPU可取出这些指令重新执行。,只读存储器简称ROM(Read Only Memory)。ROM中的信息一旦写入,就不能随意更改,特别是不能在程序运行过程中写入新的内容,故称为只读存储器。向ROM中写入信息称为ROM编程。根据编程方式不同,分为以下几种。(1)掩模ROM。在制造过程中编程,是以掩模工艺实现的,因此称为掩模ROM。这种芯片存储结构简单,集成度高,但由于掩模工艺成本较高,因此只适合于大批量生产。,32,(2)可编程ROM(PROM)。芯片出厂时没有任何程序信息,用独立的编程器写入。但PROM只能写一次,写入内容后,就不能再修改。(3)EPROM。用紫外线擦除,用电
17、信号编程。在芯片外壳的中间位置有一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息。使用编程器可将调试完毕的程序写入。(4)E2PROM(EEPROM)。一种用电信号编程,也用电信号擦除的ROM芯片。对E2PROM的读写操作与RAM存储器几乎没有什么差别,只是写入的速度慢一些,但断电后仍能保存信息。,33,(5)Flash ROM。又称闪速存储器(简称闪存),是在EPROM、E2PROM的基础上发展起来的一种电擦除型只读存储器。特点是可快速在线修改其存储单元中的数据,改写次数可达1万次,其读写速度很快,存取时间可达70ns,而成本比E2PROM低得多,大有取代E2PROM的趋势。目前许多公司生
18、产的8051内核的单片机,在芯片内部大多集成了数量不等的Flash ROM。例如,美国ATMEL公司产品AT89C5x/AT89S5x,片内有不同容量的Flash ROM。在片内的Flash ROM满足要求下,扩展外部程序存储器可省去。,34,8.3.1 常用的EPROM芯片使用较多的是并行EPROM,首先介绍常用EPROM芯片。EPROM的典型芯片是27系列产品,例如,2764(8KB)、27128(16KB)、27256(32KB)、27512(64KB)。型号“27”后面的数字表示其位存储容量。如果换算成字节容量,只需将该数字除以8即可。例如,“27128”中的“27”后的数字“128”
19、,128/8=16KB随着大规模集成电路技术的发展,大容量存储器芯片产量剧增,售价不断下降,性价比明显增高,且由于小容量芯片停止生产,使市场某些小容量芯片价格反而比大容量芯片还贵。所以,应尽量采用大容量芯片。,35,1常用EPROM芯片引脚27系列EPROM芯片的引脚如图8-11。芯片引脚功能:A0A15:地址线引脚。它的数目由芯片的存储容量决定,用于进行单元选择。D7D0:数据线引脚。:片选控制端。:输出允许控制端。:编程时,编程脉冲的输入端。,36,37,图8-11 常用EPROM芯片引脚,VPP:编程时,编程电压(+12V或+25V)输入端。VCC:+5V,芯片的工作电压。GND:数字地
20、。NC:无用端。表8-4为27系列EPROM芯片的技术参数,其中VCC是芯片供电电压,VPP是编程电压,Im为最大静态电流,Is为维持电流,TRM为最大读出时间。,38,39,2EPROM芯片的工作方式5种工作方式,由、信号的组合确定。5种工作方式如表8-5。,40,(1)读出方式。工作在该方式的条件是使片选控制线 为低电平,同时让输出允许控制线 为低电平,VPP为+5V,就可把指定地址单元的内容从D7D0上读出。(2)未选中方式。当片选控制线 为高电平时,芯片未选中方式,数据输出为高阻抗悬浮状态,不占用数据总线。EPROM处于低功耗的维持状态。(3)编程方式。在VPP端加上规定好的高压,和
21、端加上合适的电平(不同芯片要求不同),能将数据写入到指定地址单元。编程地址和编程数据分别由系统的A15A0和D7D0提供。,41,42,(4)编程校验方式。VPP端保持相应的编程电压(高压),再按读出方式操作,读出固化好的内容,校验写入内容是否正确。(5)编程禁止方式。8.3.2 程序存储器的操作时序1访问程序存储器的控制信号AT89S51单片机访问片外扩展的程序存储器时,所用的控制信号有以下3种。(1)ALE:用于低8位地址锁存控制。(2):片外程序存储器“读选通”控制信号。它接外扩EPROM的 引脚。,(3):片内、片外程序存储器访问的控制信号。当=1时,在单片机发出的地址小于片内程序存储
22、器最大地址时,访问片内程序存储器;当=0时,只访问片外程序存储器。如果指令是从片外EPROM中读取的,除了ALE用于低8位地址锁存信号之外,控制信号还有,接外扩EPROM的 脚。此外,P0口分时用作低8位地址总线和数据总线,P2口用作高8位地址线。2操作时序AT89S51对片外ROM的操作时序分两种,即执行非MOVX指令的时序和执行MOVX指令的时序,如图8-12所示。,43,(1)应用系统中无片外RAM系统无片外RAM(或I/O)时,不用执行MOVX指令。在执行非MOVX指令时,时序如图8-12(a)所示。P0口作为地址/数据复用的双向总线,用于输入指令或输出程序存储器的低8位地址PCL。P
23、2口专门用于输出程序存储器的高8位地址PCH。P0口分时复用,故首先要将P0口输出的低8位地址PCL锁存在锁存器中,然后P0口再作为数据口。在每个机器周期中,允许地址锁存两次有效,ALE在下降沿时,将P0口的低8位地址PCL锁存在锁存器中。,44,45,图8-12 执行非MOVX指令的时序,同时,也是每个机器周期中两次有效,用于选通片外程序存储器,将指令读入片内。系统无片外RAM(或I/O)时,此ALE信号以振荡器频率的1/6出现在引脚上,它可用作外部时钟或定时脉冲信号。(2)应用系统中接有片外RAM在执行访问片外RAM(或I/O)的MOVX指令时,16位地址应转而指向数据存储器,时序如图8-
24、12(b)。在指令输入以前,P2口输出的地址PCH、PCL指向程序存储器;在指令输入并判定是MOVX指令后,ALE在该,46,47,图8-12 执行MOVX指令的时序,机器周期S5状态锁存的是P0口发出的片外RAM(或I/O)低8位地址。若执行的是“MOVXA,DPTR”或“MOVXDPTR,A”指令,则此地址就是DPL(数据指针低8位);同时,在P2口上出现的是DPH(数据指针的高8位)。若执行的是“MOVX A,Ri”或“MOVX Ri,A”指令,则Ri的内容为低8位地址,而P2口线上将是P2口锁存器的内容。在同一机器周期中将不再出现 有效取指信号,下一个机器周期中ALE的有效锁存信号也不
25、再出现;当/有效时,P0口将读/写数据存储器中的数据。,48,判定是MOVX指令后,ALE在该机器周期S5状态锁存的是P0口发出的片外RAM(或I/O)低8位地址。若执行的是“MOVXA,DPTR”或是“MOVXDPTR,A”指令,则此地址就是DPL(数据指针低8位);同时,在P2口上出现的是DPH(数据指针的高8位)。若执行的是“MOVX A,Ri”或“MOVX Ri,A”指令,则Ri内容为低8位地址,而P2口线将是P2口锁存器内容。在同一机器周期中将不再出现 有效取指信号,下一个机器周期中ALE的有效锁存信号也不再出现;而当/有效时,P0口将读/写数据存储器中的数据。,49,50,由图8-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扩展存储器 扩展 存储器 PPT 课件
链接地址:https://www.31ppt.com/p-5514339.html