单片机的片选和地址分配

editor的头像
editor 发布于:周三, 10/26/2016 - 15:55 ,关键词:

一片外围芯片具有一定的地址空间。例如11根地址线的芯片,其地址空间为2KB(2048)。这2KB地址空间在微处理器的内存空间(如8位微处理器有16根地址线,能寻址64KB)中被分配在什么位置,由高位地址线A11~A15产生的片选信号来分别确定。当外围芯片多于一片时,为了避免误操作,必须利用片选信号来分别确定各芯片的地址分配。产生片选信号的方式不同,存储器的地址分配也就不同。片选方式有线选、全译码和局部译码。

线选方式

线选方式,就是把一根高位地址线直接连外围芯片的片选端,如图1。图中Ⅰ、Ⅱ、Ⅲ都是2KB×8位存储器芯片,地址线 A10~A0 实现片内寻址B。现用3根高位地址线A11、A12、A13实现片选,均为低电平有效。为了不出现寻址错误,当All、A12、A13之中有一根地址线为低电平时,其余两根必须为高电平,即每次操作只能选中其中一个芯片,假设剩下的两根高位地址线 Al4、A15都为低电平,这样可得到3个芯片的地址分配,见表1。

图1 用线选方式实现片选

表1 线选方式地址分配表

可以看出 3 个芯片的内部寻址 A10~A0与都是从0~0(共11位),为2KB空间,而依靠不同的片选信号---高位地址线A11、A12、A13之中某一根为0,来区分这3个芯片的地址空间。
也可以用一根高位地址线加一“非门”,对两片存储器实现片选,如图2所示。图中当A11为低电平时选通芯片Ⅰ,当A11为高电平时选通芯片Ⅱ。类似上例方法,可得到两芯片的地址空间为:

芯片Ⅰ 0000H 一 07FFH

芯片Ⅱ 0800H 一 0FFFH

线选方式的接口电路简单,其缺点是芯片的地址空间相互之间可能不连续,不能充分利用微处理器的内存空间或者存在着地址重叠现象。不能充分利用内存空间的原因是:用作片选信号的高位地址线的信号状态得不到充分利用。在图1中,All、A12、A13这3根地址线的信号状态从000到111应有8种,若采用译
码方式能选通8个2KB 芯片,存储空间共计16KB。但在线选方式下,只能使用其中3种状态(即 3 位数码中只允许1位为“0”) ,选通3个2KB芯片,存储空间减为6KB。

图2 用一根高位地址线对两片储器实现片选

所谓“地址重叠”是指一个存储器芯片占用

一个以上的地址空间,或者说不同的地址会选通同一存储单元。这是因为作为片选信号的某根高位地址线有效而选通该芯片时,其它的高位地址线可能闲置未用,它们的电平可以为高也可以为低,这并不影响这个芯片的选通,但这样该芯片就会有不同的地址空间。以图1为例,当 Al1为低电平选通芯片I 时,此时 A12 、 A13 必须为高电平,然而表1中的 A14、A15的电平可高可低,这样对于芯片I ,实现上存在 4 个地址空间,它们是 3000H 一 37FFH 、 7000H 一 77FFH 、 B000H 一 B7FFH 和 F000H 一 F7FFH 。同理,芯片Ⅱ和Ⅲ也有4个地址空间。对于地址重叠现象,使用者要清楚,并认定其中一个地址空间进行编程使用。

由于线选方式不能充分利用内存空间,因此这种方式一般适用于存储容量较小的系统。

来源:玩转单片机

(直接点击图片可进入调查页面)

开发板测评图片
围观 405