您好,欢迎访问一九零五行业门户网

单片机程序存储器的扩展

当单片机内部程序存储器容量不足时,就需要进行程序存储器的扩展。单片机的程序存储器扩展使用只读存储器芯片。只读存储器rom中的信息一旦写入之后就不能随意更改,即不能在程序运行过程中写入新的内容,而只能读存储单元内容。因为掉电后rom中存放的数据不会丢失,所以rom适宜存放程序、常数、表格等。存储器扩展的核心问题是存储器的编址问题。所谓编址就是给存储单元分配地址。由于存储器通常由多片芯片组成,因此存储器的编址分为两个层次,即存储器芯片的选择和存储器芯片内部存储单元的选择。
一、存储器编址技术 编址就是给存储单元分配地址。使用系统提供的地址线,通过适当的连接,使得一个地址唯一对应存储器中一个存储单元。存储器芯片的选择有两种方法:
1.线选法----直接以系统的地址作为存储芯片的片选信号。优点是简单不需增加额外电路,适用于小规模单片机系统的存储器扩展;缺点是存储空间不连续。
2.译码法---使用译码器对系统的高位地址进行译码,以其译码输出作为存储芯片的片选信号。优点是存储空间连续,适用于大容量多芯片存储器扩展;缺点是硬件设计需要增加译码器。
3.译码器
译码法时需要采用译码芯片,常见译码芯片有:74ls139(双2-4译码器)和74ls138(3-8译码器)等,它们的cmos型芯片分别是74hc139和74hc138。74ls138如图1所示。
图1 74ls138芯片
74ls138的真值表说明了其输入输出以及控制信号的关系,如图2所示。
图2 74ls138的真值表
二、eeprom接口设计 以2764为例来说明存储器的扩展接口设计方法。2764是一种8k×8位的紫外线擦除电可编程只读存储器,单一+5v供电,工作电流为100ma,维持电流为50ma,读出时间最大为250ns。2764为双列直插式28引脚的标准芯片,容量为8k×8位。其引脚见图3。
2764在使用时,只能将其所存储的内容读出。即首先送出要读出的单元地址,然后使和均有效(低电平),则在芯片的d0~d7数据线上就可以输出要读出的内容。其过程的时序关系如图4所示。
图3 2764引脚图 图4 2764时序图
以下两个例子均采用2764,分别采用线选法和译码法来进行程序存储器扩展。
例1.采用线选法,使用两片2764,一共构成8k×2=16k的有效地址。
解:2764有13根地址线,分别由p0.0~p0.7、p2.0~p2.4提供,系统的p2.5~p2.7没有用,采用2片2764构成系统,则可以使用p2.5~p2.7中的任何2根作为线选线,在本设计中采用p2.5和p2.6作为线选线,则可分析得到这2块芯片的基本地址范围。
假设未用地址线取0,则2764(1)的基本地址范围:4000h~5fffh。
假设未用地址线取0,则2764(2)的基本地址范围:2000h~3fffh。
图5 线选法扩展
例2.用eprom2764扩展生成24kb的程序连续存储空间,采用74ls138译码,要求该24kb的地址空间从8000h开始编码。
解:由于1块2764芯片是8kb,所以要生成24kb的程序存储空间需要3块2764芯片;由于生成的是连续的存储空间,所以采用译码法。地址空间要求从8000h开始编码,则
2764(1)的基本地址范围:8000h~9fffh:
2764(2)的基本地址范围:a000h~bfffh:
2764(3)的基本地址范围:c000h~dfffh:
观察3块芯片的高位地址线a15~a13,并考虑74ls138译码器的输入与输出之间的关系(见图2)可知,3块2764芯片应依次接y4、y5、y6输出端。扩展电路图见图6。
图6 译码法扩展
其它类似信息

推荐信息