1、存储器类型存储器类型 掩膜ROM EPROM:电写入紫外线檫除 EEPROM:电写入电檫除 NVSRAM:利用锂电池做后备电源 Flash Memory:在EPROM和E2ROM基础上发展起来的快檫写存储器 FRAM:利用铁电材料的极化方向来存储数据的铁电读写存储器存储器的发展趋势:集成度不断提高、高速存储器的发展、存储器的低工作电压、低功耗化。7.1 单片机扩展及系统结构单片机扩展及系统结构 单片机扩展通常采用总线结构形式,下图就单片机扩展通常采用总线结构形式,下图就是典型的单片机扩展结构。是典型的单片机扩展结构。单单片片机机数据数据存储器存储器程序程序存储器存储器I/O接口接口I/O接口接
2、口地址总线地址总线AB数据总线数据总线DB控制总线控制总线CB指令输入指令输入PCL输出输出指令输入指令输入PCL输出有效输出有效指令输入指令输入PCL输出有效输出有效指令输入指令输入PCL输出有效输出有效指令输入指令输入PCL输出有效输出有效PCL输出输出PCL输出输出PCL输出输出PCL输出输出PCHPCH输出输出PCHPCH输出输出PCHPCH输出输出PCHPCH输出输出S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 一个机器周期一个机器周期一个机器周期一个机器周期ALEPSENRD/WRP2P07.2 程序存储器程序存储器EPROM的扩展的扩展 不执行MOVX指
3、令输入PCL输出指令输入PCL输出有效PCL输出有效指令输入PCL输出有效Data输出/输入PCL输出PCL输出PCL输出PCH输出PCH输出S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 周期1周期2ALEPSENRD/WRP2P0DPH或P2输出ALEPSENWRP2P0A15 A15 A8A8地址地址(b)片外数据存储器写时序片外数据存储器写时序指令输入悬浮指令输入悬浮数据输出数据输出A7 A7 A0 A0 7.3 外部数据存储器的扩展外部数据存储器的扩展 S1P2P2P2P2P2P2P1P1P1P1P1P1S2S3S4S5S6ALEPSENRDP2P0A15 A
4、15 A8A8地址地址(a)片外数据存储器读时序片外数据存储器读时序指令输入悬浮指令输入悬浮数据输入数据输入A7 A7 A0 A0 悬悬 浮浮悬悬 浮浮 P0口做数据总线和低8位地址线 P2口做高8位地址线 扩展时需外加一个低8位地址锁存器 控制线为专用线,直接连接即可.RFBIOUT1IOUT28031P0ALEP2PSEN锁存器低8位地址高8位地址EPROM指令/EEPROMOE地址7.2.2 常用地址锁存器常用地址锁存器 通常,地址锁存器可使用带三态缓冲输出的8D锁存器74LS373或8282,也可使用带清除端的8D锁存器74LS273,地址锁存信号为ALE。D0D1D2D3D4D5D6
5、D7Q0Q1Q2Q3Q4Q5Q6Q7347813141718256912151619OEG111P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7A0A1A2A3A4A5A6A7ALE74LS373D0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7123456781918171615141312OESTB911P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7A0A1A2A3A4A5A6A7ALE8282D0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7347813141718256912151619CLRCLK111P0.0P0.1P0
6、.2P0.3P0.4P0.5P0.6P0.7A0A1A2A3A4A5A6A7ALE74LS273+5VOEG功功 能能01直通(直通(OUTi=Di)00保持(保持(OUTi保持不变)保持不变)1输输 出出 高高 阻阻8 88 88 8OEIN18G/STBG/STBOUT181D8D1Q8Q8D锁存器锁存器三态门三态门74LS373功功能能表表7.2.3 常用地址译码器常用地址译码器 存储器编址就是使用系统提供的地址线,通过适当的连接,最终达到一个编址唯一地对应存储器中的一个存储单元的目的。对芯片内部存储单元的选择,就是把存储芯片的地址引线和系统的地址线直接连接即可实现。但芯片的选择却比较复
7、杂。所谓存储器编址,实际上主要是研究芯片的选择问题。芯片的选择共有两种方法:线选法和译码法。对于一单片机系统,必须了解其存储器映像情况,以明确系统中各存储芯片的具体地址范围,才能正确地设计和使用它。52134678121516141311109ABCE1E2E3Y7Y6Y5Y4Y3Y2Y1Y0VCCGND521346781215161413111091G1A1B1Y01Y11Y21Y3GND2G2A2B2Y02Y12Y22Y3VCC三三八译码器:八译码器:73LS138二二四译码器:四译码器:73LS1397.2.4 典型典型EPROM扩展电路扩展电路 常用的常用的EPROM芯片:芯片:紫外线
8、擦除可编程只读存储器EPROM可作为MCS-51单片机的外部程序存储器,其典型产品是Intel公司的系列芯片2716(2kB8bit)、2732、2764、27128、27256(32kB8bit)和27512等。12346678910111213142827262524232221201918171615VPPA12A7A6A5A4A3A2A1A0O0O1O2GNDVCCPGMNCA8A9A11OEA10CEO7O6O5O4O312346678910111213142827262524232221201918171615VPPA12A7A6A5A4A3A2A1A0O0O1O2GNDVCCA1
9、4A13A8A9A11OEA10CEO7O6O5O4O312346678910111213142827262524232221201918171615A15A12A7A6A5A4A3A2A1A0O0O1O2GNDVCCA14A13A8A9A11A10CEO7O6O5O4O3OE/VPP2使用单片使用单片EPROM的扩展电路的扩展电路 8031与与27128的接口电路的接口电路 P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0P2.5P2.4P2.3P2.2P2.1P2.0A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0D7D6D5
10、D4D3D2D1D0Q7Q6Q5Q4Q3Q2Q1Q01817141387431916151296522625242322213233343536373839191817161513121134567891026223212425EAEAPSENPSENALEALEOEOEOEOEG G+5V+5V+5V+5VCECEGNDGNDV VCCCCV VPPPPPGMPGM22222020 101020201414282827271 13131292930308031271283扩展多片扩展多片EPROM的扩展电路(线选法)的扩展电路(线选法)A15A14A13A12A11A10A9A8A7A6A5
11、A4A3A2A1A0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 16 66 66 68 88 88 88 88 8A A0 0A A7 7A A8 8A A1313A A0 0A A7 7 A A8 8A A1313CE CE CE CE D D0 0D D7 7 OEOED D0 0D D7 7 OE OE Q Q0 0 Q Q7 7 D D0 0 D D7 7 G GP0P0P2P2.0 0P2P2.5 5 P2P2.7 7P2P2.6 6ALEALEPSENPSENEAEA8031803174LS37374
12、LS373271282712827128271288000HBFFFH4000H7FFFH译码法扩展多片译码法扩展多片EPROM电路电路4片片27128的地址范围为:的地址范围为:P2.7和和P2.6分别取分别取00011011四种组合时所对应的地址范围四种组合时所对应的地址范围.Y0Y1Y2Y3ABCE1E26 66 66 66 66 68 88 88 88 88 88 88 8A A0 0A A7 7 A A8 8A A1313A A0 0A A7 7 A A8 8A A1313A A0 0A A7 7 A A8 8A A1313A A0 0A A7 7 A A8 8A A1313D D0
13、 0D D7 7 OE OE CE CE CE CE CE CE CE CE D D0 0D D7 7 OE OE D D0 0D D7 7 OE OE D D0 0D D7 7 OE OE Q Q0 0Q Q7 7 D D0 0D D7 7 G GP0 P0 P2P2.0 0P2P2.5 5 P2P2.7 7P2P2.6 6ALEALEPSENPSENEA EA 8031803174LS13874LS13874LS37374LS3732712827128271282712827128271282712827128C000HFFFFH8000HBFFFH4000H7FFFH0000H3FFFH
14、7.3 外部数据存储器的扩展外部数据存储器的扩展 S1P2P2P2P2P2P2P1P1P1P1P1P1S2S3S4S5S6ALEPSENRDP2P0A15 A15 A8A8地址地址(a)片外数据存储器读时序片外数据存储器读时序指令输入悬浮指令输入悬浮数据输入数据输入A7 A7 A0 A0 悬悬 浮浮悬悬 浮浮ALEPSENWRP2P0A15 A15 A8A8地址地址(b)片外数据存储器写时序片外数据存储器写时序指令输入悬浮指令输入悬浮数据输出数据输出A7 A7 A0 A0 7.3.2 常用的静态常用的静态RAM芯片芯片(a)6116管脚配置管脚配置15123456789101112131416
15、1718192021222324SRAMA7A6A5A4A3A2A1A0I/O0I/O1I/O2GNDI/O3I/O6I/O4I/O5 I/O7CEA10OEWEA9A8Vcc6116611615123456789101112131416171819202122232413141619GNDGNDGNDA4A3A2A1A0D0D1D0NCA12A7A6A5A4A3A2A1A0D0D1D0NCA12A7A6A5A4A3A2A1A0D0D1D0A14A12A7A6A5CEA10OEWEVccD7D6D5D4D3A8A9A11CS1CEA10OEWEVccD7D6D5D4D3A8A9A11A13CE
16、A10OE/RFSHWEVccD7D6D5D4D3A8A9A11A136264SRAM6225662128626462128622566264 62128 62256(b)6264/62128/62256管脚配置管脚配置 请分析每片的地址范围请分析每片的地址范围P2P2.7 7P2P2.6 6P2P2.5 5P2P2.4 4P2P2.0 0 Q Q0 0 Q Q7 7 D D0 0 D D7 7 G G74LS37374LS373A A0 0A A7 7 A A8 8A A1212A A0 0A A7 7 A A8 8A A1212A A0 0A A7 7 A A8 8A A1212D D0
17、0D D7 7 OE WROE WRCE CE CECECE CE D D0 0D D7 7 OE WROE WRD D0 0D D7 7 OE WROE WR6264626462646264626462648 88 85 58 85 55 58 85 5P0 P0 RDRDWRWRALEALE80318031IC1IC2IC36.3.5 扩展既可读又可写的程序存储器扩展既可读又可写的程序存储器 在单片机中,程序存储器和数据存储器是严格分开的,在单片机中,程序存储器和数据存储器是严格分开的,它们使用不同的读选通控制信号,通过不同的读指令它们使用不同的读选通控制信号,通过不同的读指令进行读操作。
18、读程序存储器时产生进行读操作。读程序存储器时产生PSEN控制信号,控制信号,而访问数据存储器时产生的是而访问数据存储器时产生的是RD信号。由于程序存信号。由于程序存放在放在EPROM中,这就给程序调试带来了困难,因为中,这就给程序调试带来了困难,因为放在程序存储器中的程序只能运行却不能修改,而在放在程序存储器中的程序只能运行却不能修改,而在数据存储器中的内容虽然可以修改,但不能运行程序。数据存储器中的内容虽然可以修改,但不能运行程序。为解决这一矛盾,可把数据存储器芯片经过特殊的连为解决这一矛盾,可把数据存储器芯片经过特殊的连接,充作程序存储器使用,使之既可以运行程序,又接,充作程序存储器使用,
19、使之既可以运行程序,又可以修改程序。可以修改程序。这时的数据存储器可称为仿真的程序这时的数据存储器可称为仿真的程序存储器。存储器。RDPSENOE 0000H0FFFH;1000H1FFFH;2000H2FFFH 6000H63FFH;6400H67FFH74138 ABCE1E2E3P2.4P2.5P2.6P2.7+5V74138 ABCE1E2E3P2.2P2.3Y62732CEOE2732CEOE2732CEOE4118WEOECE4118WEOECEY0Y1Y2Y0Y1RDWRPSEN 超过超过64K64K字节字节SRAMSRAM的扩展的扩展 MCS-51系列单片机64K字节外部RAM
20、空间是由P0口和P2口提供的16根地址线决定的,要想扩大RAM空间,可用增加地址线的办法来解决。每增加一根地址线,空间扩大一倍。增加地址线的方法有以下两种:一种是利用P1口增加地址线,另一种是利用扩展I/O口的方法增加地址线。所谓利用P1口增加地址线的方法就是利用P1口作地址线,这样扩展存储器的地址线可增加到24根。P1口的8根地址线可直接接到存储器响应的地址线上,也可作为译码器的输入信号线,用来选择芯片。具体用法同前面介绍的高8位地址线的用法一样。比如,当选用64K的存储器芯片(62512)时,可用P1口作为每一个64K的片选信号。即可把64K看成一页,而页的选择由P1口控制。利用P1口可选
21、择256个64K的页。利用P1口增加地址线的方法简单,但要占用单片机的I/O资源。利用扩展利用扩展I/OI/O口的方法增加地址线需要一口的方法增加地址线需要一个锁存器,并将此锁存器作为外扩个锁存器,并将此锁存器作为外扩RAMRAM的的一个单元,分配一个地址,利用一个单元,分配一个地址,利用MOVXMOVX指指令往锁存器写一个数,则锁存器的输出令往锁存器写一个数,则锁存器的输出可作为新增加的地址线。这样,它就可可作为新增加的地址线。这样,它就可和和MCS-51MCS-51单片机的单片机的1616根地址线及控制线根地址线及控制线配合选中不同的配合选中不同的64K64K字节区。字节区。6.4 E2P
22、ROM扩展电路扩展电路NCA12A7A6A5A4A3A2A1A0D0D1D2GNDGNDRDY/BUSYRDY/BUSYNCA7A6A5A4A3A2A1A0D0D1D2GNDGNDA7A6A5A4A3A2A1A0D0D1D2GNDGNDV VCCCCWENCA8A9A11OEA10CED7D6D5D4D3V VCCCCA8A9VPPOEA10CED7D6D5D4D3V VCCCCWENCA8A9NCOEA10CED7D6D5D4D31234567891011122423222120191817161514131234567891011121314282726252423222120191817
23、161528162816A28172817A2864 2817A2817A与单片机的接口电路设计与单片机的接口电路设计 Intel2817AIntel2817A是是2kB2kB的电擦除可编程只读的电擦除可编程只读存储器,采用单一存储器,采用单一+5V+5V供电,最大工作电流为供电,最大工作电流为150mA150mA,维持电流为,维持电流为55mA55mA,读出时间最大为,读出时间最大为250ns250ns,写入时间大约为,写入时间大约为16ms16ms。片内设有编程。片内设有编程所需的高压脉冲产生电路,无需外加编程电所需的高压脉冲产生电路,无需外加编程电源和写入脉冲即可工作。源和写入脉冲即可工
24、作。2817A2817A在写入一个字在写入一个字节的指令码或数据之前,自动擦除要写入的节的指令码或数据之前,自动擦除要写入的单元,因而无需进行专门的擦除操作。单元,因而无需进行专门的擦除操作。E2PROM 2864A Intel2864A是8K8位电擦除可编程只读存储器,单一+5 V供电,最大工作电流160mA,最大维持电流60nA,典型读出时间250ns。由于芯片内部设有“页缓冲器”,因而允许对其快速写入。2864A内部可提供编程所需的全部定时,编程结束可给出查询标志。2864A管脚与6264A完全兼容,为28线双列直插式封装。2864A有四种工作方式:1.维持和读出方式 2864A的维持和
25、读出方式与普通的EPROM或SRAM完全相同。维持方式时,输出线呈高阻状态;读方式时,内部的数据缓冲器打开,数据送上总线。2.2.写入方式写入方式 2864A 2864A提供了两种数据写入操作方式。字节写入和页面写入。提供了两种数据写入操作方式。字节写入和页面写入。(1)(1)字节写入字节写入 2864A2864A的字节写入特性与前面介绍的的字节写入特性与前面介绍的2817A2817A字节写入特性完全相同。字节写入特性完全相同。(2)(2)页面写入页面写入 为了提高写入速度,为了提高写入速度,2864A2864A片内设置了片内设置了1616字节的字节的“页缓冲器页缓冲器”并将整个存储器阵列划分
26、成并将整个存储器阵列划分成512512页,每页,每页页1616字节。因此,页的区分可由地址的高字节。因此,页的区分可由地址的高9 9位位(A4(A4A12)A12)确定。确定。地址线的低四位地址线的低四位(Ao(AoA3)A3)用以选择页缓冲器中的用以选择页缓冲器中的1616个地址单个地址单元之一。把数据写入元之一。把数据写入2864A2864A的存储单元可分成两步来完成:的存储单元可分成两步来完成:首先,在软件控制下把数据写入页缓冲器,此过程称为首先,在软件控制下把数据写入页缓冲器,此过程称为“页页加载加载”;第二步,;第二步,2864A2864A在内部定时电路控制下,在最后一在内部定时电路
27、控制下,在最后一个字节(即第个字节(即第1616个字节)写入到页缓冲器后个字节)写入到页缓冲器后20ns20ns自动开始,自动开始,把页缓冲器的内容送到地址指定的把页缓冲器的内容送到地址指定的E E2 2PROMPROM单元内,此过程即单元内,此过程即为为“页存储页存储”周期。周期。3.3.数据查询方式数据查询方式 数据查询是指用软件来检测写操作中的数据查询是指用软件来检测写操作中的“页存储页存储”周期是周期是否完成。否完成。在在“页存储页存储”期间,如对期间,如对2864A2864A执行读操作,那么读出的执行读操作,那么读出的是最后写入的字节。若芯片的转储工作未完成,则读出数据是最后写入的字
28、节。若芯片的转储工作未完成,则读出数据的最高位是原来写入字节最高位的反码。据此,的最高位是原来写入字节最高位的反码。据此,CPUCPU可判断可判断芯片的编程是否结束。如果芯片的编程是否结束。如果CPUCPU读出的数据与写入的数据相读出的数据与写入的数据相同,表示芯片已完成编程,同,表示芯片已完成编程,CPUCPU可继续向芯片加载下一页数可继续向芯片加载下一页数据。据。2864A 2864A与单片机的接口电路与与单片机的接口电路与2817A2817A的接口非常相似,只是的接口非常相似,只是地址线多两根。由于查询地址线多两根。由于查询“存储是否完成存储是否完成”的方式有所不同,的方式有所不同,因此,因此,2864A2864A芯片不需要芯片不需要RDY/BUSYRDY/BUSY信号线。信号线。