频道栏目
读书频道 > 系统 > 其他综合 > 深入理解8051单片机系统
0.4.2 存储器地址解码
2015-12-02 14:42:15     我来说两句
收藏   我要投稿

本文所属图书 > 深入理解8051单片机系统

本书详细介绍了8051单片机的各种功能。主要内容包括8051微控制器、8051汇编语言编程、跳转指令、循环指令、调用指令、I O端口编程、8051寻址方式、算术逻辑指令与程序、8051 C语音编程、8051硬件接线、8051定时  立即去当当网订购

接下来讨论地址解码。CPU虽然提供了所想要的数据地址,但是定位所选择的存储块则是解码电路的工作。为了探讨解码电路,先看各种在解码地址中使用的方法。本节为了简单起见,我们使用SRAM或ROM。

存储器芯片有一个或多个叫做CS(芯片选择)的引脚,当存储器内容需要被访问时,它必须被激活。有时候芯片选择也叫芯片使能(CE),当将存储器芯片连接到CPU时,需注意以下几个问题。

1. CPU的数据总线直接连接到存储器芯片的数据引脚上。

2.来自CPU的控制信号MEMR(存储器读)和MEMW(存储器写)各被连接到存储器芯片的OE(输出使能)和WE(写入使能)引脚上。

3.地址总线连接,就是将CPU的低位地址直接连接到存储器芯片的地址引脚上,高位地址用于激活存储器芯片的CS引脚。与RD/WR连在一起的CS引脚允许对存储器中的数据进行读和写操作,当CS没被激活时,就不能对存储器中的数据进行读和写操作。

从SRAM和RAM的数据手册中可看到,存储器芯片的CS输入通常是低电平使能,且是由存储器解码器的输出激活的。通常存储器分成模块,解码器的输出选择指定的存储器模块。有三种方法来产生存储器模块选择器:(a)使用简单的逻辑门;(b)使用74LS138;(c)使用可编程逻辑器件,如PLCD和FPGA。下面分别进行讨论。

简单逻辑门和地址解码器

组建解码器电路最简单的方法是使用NAND门。NAND门的输出是低电平使能,而CS引脚也是低电平使能,这就使得它们很匹配。当CS输入是高电平使能时,就必须使用AND门。将NAND门与反相器相结合,就能解码任何地址范围。如图0-18所示,为了选择芯片,就必须使A15~A12为0011。这就使得该存储器芯片地址在3000H~3FFFH范围内分配。当地址在此范围中,NAND门的输出就呈低电平,然后CS引脚也是低电平,从而使存储器使能。


 

本例中,可以不使用NAND门,而直接将CS芯片接地,如图0-19所示。存储器连接到系统而不需要任何逻辑门,这叫别名:相同的设备带有不同的地址。例如,在本系统中,存储器的第一个位置有16种不同的地址:0000H,1000H,2000H,…,F00H。所有这些地址都连接到存储器同样的位置上,这是因为在地址解码过程中是不考虑总线(A12~A15)地址位的。

在一些情况中,我们不能删除逻辑门(例如,当有多块存储器时)。从图0-20可以看出,在本系统中,四个8K×8的存储器连接到一起来构成32K×8的存储器,存储器的数据引脚连接到数据总线上,来自CPU的地址低位直接连接到存储器芯片的地址引脚上,高位用于激活存储器芯片的CS引脚。


 

表0-9所示为分配给每个在图0-20中的存储器芯片的地址范围。

在本例中,存储器被A13和A14分得很清楚,且解码出A15是为了防止混淆。也就是说,上面的电路可以通过不要A15来简化使用双输入的AND,同样可以解码出A13和A14,但这样容易引起混淆。

一般来说,我们使用部分解码来设计更简单的电路。然而,对于需要扩展的系统,就需要通过使用所有的地址引脚来防止混淆,否则将不能添加额外的存储器。接下来学习使用解码器而不是逻辑门。



 


使用74LS138 3-8解码器

它曾经是使用最广泛的地址解码器。3个输入A、B和C产生8个低电平使能输出的Y0~Y7。如图0-21所示,每个Y输出都被连接到存储器芯片的CS上,且允许单个74LS138控制8个存储器模块。在以A、B和C选择使能输出的74LS138解码器中,总共有3种额外的输入:G2A、G2B和G1。G2A和G2B都是低电平使能,而G1是高电平使能。


 

如果G1、G2A或G2B中的一个输入没有连接到地址信号上(有时它们连接到控制信号上)时,它们就必须被Vcc或者地永久激活,这决定于激活使能等级。

例0-16给出了74LS138解码器的设计和计算的地址范围。

例0-17给出了怎样使用74LS138来解码地址。

例0-16如图0-22中的设计所示,找出用于下面的地址范围:(a)Y4;(b)Y2;(c)Y7。


 

解:
(a)Y4的地址范围计算如下:
  
 

Y4的地址范围是4000H~4FFFH。在图0-22中,注意A15必须是0,以使解码器激活。当A14 A13 A12=100(4二进制)时,就选择了Y4。剩下的A11~A0全为0就是最低位的地址,而全为1则是最高位的地址。

(b)Y2的地址范围是2000H~2FFFH。

    
 

(c)Y7的地址范围是7000H~7FFFH。

    
 

使用可编程逻辑器件作为解码器

另一种使用广泛的解码器是可编程逻辑芯片,如PAL、GAL和FPGA芯片。这些芯片的缺点之一是要使用PAL/GAL/FPGA软件和烧写器(编程器),而74LS138却不需要这些。但这些芯片的好处是它们可以编程,可用于任何地址范围的组合,因此它们比较通用。事实上,PAL/GAL/FPGA芯片有10个或更多的输入(而不像74138中只有6个),这就意味着它们能容纳更多的地址输入。
例0-17使用74LSI138T重新设计图0-20中的系统。
  解:


 


复习题

1.列出计算机系统中三种类型的总线并简单叙述每条总线的作用。

2.简述下面哪个是双向的哪个是单向的:(a)数据总线;(b)地址总线。

3.如果计算机中的地址总线有16根,那能访问最大的存储空间是多少(每个存储器位置是8位)?

4.一个存储器模块使用的地址范围是4000H~7FFFH,那这个模块有多少KB呢?

5. 74138是(  )解码器。

6.在74138中,给出要使能芯片的G2A和G2B的状态。

7.在74138中,给出要使能芯片的G1的状态。

8.在图0-22中,分配给Y5的地址范围值是多少?

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:0.4.1 总线设计
下一篇:0.5 I/O地址解码与设计
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站