560 likes | 711 Views
第 8 章 单片机的系统扩展技术. 8.1 程序存储器的扩展 8.2 数据存储器的扩展 8.3 I/O 口的扩展. 系统扩展的含义 单片机中虽然已经集成了 CPU 、 I/O 口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说 , 有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。. 所谓系统的扩展与配置一般说来有如下两项主要任务:
E N D
第8章 单片机的系统扩展技术 8.1 程序存储器的扩展 8.2 数据存储器的扩展 8.3 I/O口的扩展
系统扩展的含义 单片机中虽然已经集成了CPU、I/O口、定时器、中断系统、存储器等计算机的基本部件(即系统资源),但是对一些较复杂应用系统来说,有时感到以上资源中的一种或几种不够用,这就需要在单片机芯片外加相应的芯片、电路,使得有关功能得以扩充,我们称为系统扩展(即系统资源的扩充)。
所谓系统的扩展与配置一般说来有如下两项主要任务:所谓系统的扩展与配置一般说来有如下两项主要任务: • 第一项是扩大单片机的容量。由于芯片结构、引脚等关系,单片机内ROM,RAM等功能部件的数量不可能很多、在使用中有时会感到不够。因此需要在片外进行扩展,以满足实际系统的需要。 • 另一项是把系统所需的外设与单片机连起来,使单片机系统能与外界进行信息交换。如通过键、A/D转换器、磁带机、开关等外部设备向单片机送入数据、命令等有关信息,去控制单片机运行,通过显示器、发光二极管、打印机、继电器、音响设备等把单片机处理的结果送出去,向人们提供信息或对外界设备提供控制信号,这项任务实际上就是单片机接口设计。
8.1 程序存储器的扩展 • 单片机最小应用系统: 单片机的各种功能能满足应用系统的需要. • 例: 8051/8751 :由单片机和一些不能集成在芯片内的晶体振荡电路、复位电路、电源部分组成。应用特点是: • (1)全部I/O口线均可供用户使用。 • (2)内部存储器容量有限(只有4KB地址空间)。 • (3)应用系统开发具有特殊性。 • 8031/8032:由单片机和外接的ROM或EPOM芯片和晶体振荡电路、复位电路、电源部分组成。(如下图)
图 8.1 MCS - 51 单片机最小应用系统(8051、8751)
图 8.2 MCS - 51 单片机最小应用系统(8031、8032)
当单片机最小应用系统不能满足系统要求时,就需要扩展ROM(或EPOM)、RAM、I/O 口、D/A和A/D转换及定时/计数器等外围芯片。 一般将外部总线变成微机三总线结构形式。 MCS-51的三总线: 1)地址总线(AB): P2口提供高8位地址线(可自己 锁存) P0口提供低8位地址线(需加地址锁存器锁存低8位的地址信息,ALE正脉冲信号的下降沿控制锁存时刻)
2) 数据总线(DB): 由P0口提供,是双向、输入三态控制的通道口 3) 控制总线(CB): 扩展系统时常用的控制信号为: ALE RESET MCS-51单片机有四个I/O口,共32条口线,但由于系统扩展的需要,真正能作为数据I/O使用的就只有P1口和P3口的部分口线。 注意:所有的外部芯片都是通过这3组总线进行扩展
8.1 单片机程序存储器的扩展 MCS-51系列单片机数据存储器和程序存储器的地址空间是相互独立的。 MCS-51系列单片机具有64K的程序存储器寻址空间,以程序计数器PC作为地址指针,通过16位地址总线寻址 如果系统需要用到的存储器超过了单片机本身具有的容量,就要进行片外程序存储器的扩展。(主要是EPROM和EEPROM)
8051/8751/89C51单片机: 内部有最低4KB地址空间的ROM,扩展后64KB内、外程序存储器的地址是统一编排的,通过对 引脚 设置来确定是访问内部还是外部程序存储器。 8031单片机: 内部无 ROM,必须外接程序存储器,地址为0000---FFFFH, 应始终接地。 注意:访问内部和外部程序存储器的指令不同 用MOVC访问外部程序存储器
有关EPROM? • EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。 • EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=12—24V,随不同的芯片型号而定)。EPROM的型号是以27开头的,如2716是一片EPROM芯片。 • EPROM芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料受损。
2716容量: 2KB×8位 图 8.4 EPROM扩展芯片2716的引脚图
程序存储器的扩展要解决的几个问题: .程序存储器的作用——存放程序代码或常数表格 .扩展时所用芯片——一般用只读型存储器芯片(可以是 EPROM、E2PROM、 FLASH芯片等)。 .扩展电路连接——用EPROM 2716、2732等扩展程序存 储器。 .存储器地址分析——单片机输出什么地址值时,可以 指向存储器中的某一单元。
实例: 图 8.5 2716与8031的连接图
1. 地址线: P0口分时提供8位地址线A0-A7 和数据线D0-D7的信息。ALE在P0口出现地址信息时输出高电平(锁存),出现数据信息时输出低电平。 每个机器周期,P0口发两次地址、数据信息,在1个机器周期中ALE两次有效(锁存地址) P2口输出高8位地址A8-A15,在1个机器周期中更新2次 即:每个机器周期中至多允许执行两字节的指令
数据线: P0口接存储器的8位数据线D0-D7 为片选信号输入端,低电平有效,表示选中该EPROM 芯片,这里接地,表示常有效。 从而确定所扩展存储器的地址空间范围。
由图 可确定2716芯片的地址范围。方法是A10~A0从全0开始, 然后从最低位开始依次加 1, 最后变为全1, 相当于211=2 048个单元地址依次选通, 称为字选。即 地址与单元是多对一的关系
接存储器读信号 应接地 3.控制线: ALE 接至地址锁存器锁存信号 当采用8031、8032时,
5.1.3 EEPROM 的扩展 • EEPROM 是一种电擦除可编程只读存储器,掉电后信息不会丢失,+5V电源下 就可以进行编程,而且对编程脉冲宽度一般无特殊要求。EEPROM存储器主要存放数据,可在线编程,并且在断电的情况下保持修改的结果。 • 在智能化仪器仪表、控制装置等领域都普遍应用。 EEPROM 种类很多,主要有串行EEPROM 和并行EEPROM
1. 地址线: P0口分时提供8位地址线A0-A7 和数据线D0-D7的信息。ALE在P0口出现地址信息时输出高电平(锁存),出现数据信息时输出低电平。 • 数据线: P0口接存储器的8位数据线D0-D7 3.控制线: ALE 接至地址锁存器锁存信号 内外程序存储器选择信号 接存储器读信号 片选信号,这里是线选法
8.2 数据存储器的扩展 8.2.1 单片机RAM概述 MCS-51单片机的内部数据存储器容量一般为128B—256B,可以作为工作寄存器、堆栈、标志和数据缓冲区使用。 对数据量较小的系统,内部RAM已足够; 当数据量较大时,就需要扩展RAM数据存储器,扩展容量最大可达64KB。 最常用的RAM器件是SRAM,与动态RAM相比,静态RAM无须考虑保持而设置的刷新电路,故扩展电路简单。但静态RAM是通过有源电路来保持存储器中的数据,因此要消耗较多的功率,价格也较高。
1. 静态RAM芯片 I/O 0~7:数据线 A0~A12:地址线 CE、CE:片选线 OE:输出使能 WE:写入使能 VCC、GND:电源 NC:未使用 图 8.9 6264 管脚图
6116、6264、62256引脚功能如下: A0~Ai :地址输入线,i=10(6116,12(6264),(62256)。 O0~O7 :双向三态数据线。 :片选信号输入线,低电平有效。6264的26脚(CE2) 为高电平,且 为低电平时才选中该片。 : 选通信号输入线,低电平有效。 :写允许信号输入线,低电平有效。 Vcc :主电源,电压为5V; GND :接地端。
8.2.2 SRAM扩展实例 图 8.10 MCS - 51 数据存储器的扩展示意图
注意: 访问内部和外部存储器时,应分别使用MOV和MOVX指令. 外部数据存储器的两个数据区: • 低8位地址线寻址的外部数据区,寻址空间为256个字节,可通过Ri(R1或R2)8位寻址,Ri内存放外部RAM的地址号 例: MOVX A ,@Ri (读指令) MOVX @Ri , A (写指令) 若数据量不大,一般采用该寻址方式
2) 16位地址线寻址的外部数据区 当外部数据容量较大,要访问RAM单元的地址大于或等于256时,采用DPTR寄存器的16位寻址,可寻址216=64KB单元,DPTR 内存放访问的外部RAM单元的16位地址号。 例: MOVX A ,@DPTR (读指令) MOVX @DPTR , A (写指令)
8.3并行I/O口扩展 • MCS-51系列单片机有4个8位并行输入/输出口,单片机与外围设备的数据传送都是通过并行输入/输出口或串行口完成的。对于8051(或8052)/8751(或8752)来说,无须扩展外部存储器,P0口~P3口均可作为通用I/O口使用。但扩展存储器后,P2口、P0口被占用,留给用户的只有P1和P3口,而P3口是多用途口,当第二功能使用时,就不能作一般I/O口线。因此,在实际应用中,大都需要扩展I/O口。 • 用户可以把外部64KB的数据存储器的一部分作为外部I/O口的地址
8.3.1 地址译码法 • (1) 线选法扩展片外芯片 • 所谓线选法,就是利用单片机高地址总线(一般为P2口)作为存储器(或I/O口)的片选信号,即是将P2口的某一根地址线与存储器(或I/O口)的片选信号直接相连,该地址线为低电平时,选中该芯片。如图所示。 • 用 线 选 方 式 实 现 片 选
图中Ⅰ、Ⅱ、Ⅲ都是4KB×8位存储器芯片,地址线A11~A0实现片内寻址,地址空间为4KB。现用3根高位地址线A14、A13、A12实现片选,均为低电平有效。为了不出现寻址错误,当A12、A13、A14之中有一根地址线为低电平时,其余两根地址线必须为高电平,也就是说每次存储器操作只能选中一个芯片,现假设剩下的A15为高电平,这样可得到3个芯片的地址分配,如表5.3所示。图中Ⅰ、Ⅱ、Ⅲ都是4KB×8位存储器芯片,地址线A11~A0实现片内寻址,地址空间为4KB。现用3根高位地址线A14、A13、A12实现片选,均为低电平有效。为了不出现寻址错误,当A12、A13、A14之中有一根地址线为低电平时,其余两根地址线必须为高电平,也就是说每次存储器操作只能选中一个芯片,现假设剩下的A15为高电平,这样可得到3个芯片的地址分配,如表5.3所示。
线选法地址分配表(表8.3) • 从表中看出3个芯片的内部寻址A11~A0都是0~0(共12位)到1~1(共12位),为4KB空间,而依靠不同的片选信号高位地址线A14、A13、A12之中某一根为0,来区分这3个芯片的地址空间。
线选法简单,适用于不太复杂的系统。但每占用一根地址线,就占用了一段地址空间,且各地址空间不连续,不能充分利用存储空间或者存在地址重叠现象。线选法简单,适用于不太复杂的系统。但每占用一根地址线,就占用了一段地址空间,且各地址空间不连续,不能充分利用存储空间或者存在地址重叠现象。
(2) 地址译码法 • 当线选法所需地址选择线多于可用地址线时,一般采用地址译码法。译码法就是利用译码器对单片机的某些高位地址线进行译码,其译码输出作为存储器(或I/O口)的片选信号。这种方法存储空间连续,能有效地利用存储空间,适用于多存储器、多I/O口的扩展。 地址译码法必须采用地址译码器,常用的地址译码器有74LS138、74LS139、74LS154、8282等。 • 例如用译码法实现扩展容量4KB×8位的存储器芯片Ⅰ、Ⅱ、Ⅲ的接口电路,接线图如下图所示。
地址线A11~A0用于片内寻址,高位地址线A14、A13、A12接到74LS138译码器的选择输入端C、B、A。 74LS138器的、、分别作为3个芯片的片选信号。
采 用全译码方式实现片选 • 根据译码器的逻辑关系和存储器的片内寻址范围,可以得到3个芯片地址空间,如表5.4。 • 译码法实现片选的地址分配表 (表8.4)
从例子中的硬件连接图中看出,单片机除了扩展存储器所需的地址线外,剩余的全部地址线都参加译码,这种译码方式称为全译码。全译码的优点是存储器芯片的地址空间连续,且唯一确定,不存在地址重叠现象,能够充分利用内存空间。从例子中的硬件连接图中看出,单片机除了扩展存储器所需的地址线外,剩余的全部地址线都参加译码,这种译码方式称为全译码。全译码的优点是存储器芯片的地址空间连续,且唯一确定,不存在地址重叠现象,能够充分利用内存空间。
扩展并行I/O口的方法主要有两种: • 一是采用单片机专用的扩展I/O接口芯片,如8155、8212、8255等; • 二是利用通用的三总线扩展三态门等接口。
这种I/O口一般都是通过P0口扩展。由于P0口是双向数据线,图中74LS244作为输入口、74LS273作为输出口,它们都可以通过P0口输入、输出数据。这种I/O口一般都是通过P0口扩展。由于P0口是双向数据线,图中74LS244作为输入口、74LS273作为输出口,它们都可以通过P0口输入、输出数据。 输出控制信号由P2.0和 合成,当二者同时为0电平时,“或”门输出0电平,273的Q=D,数据进入273,数据锁存在Q端并输出。 输入控制信号由P2.0和 合成,当二者同时为0电平时,“或”门输出0电平,244的Q=D(直通),将外部信息输入到总线。 注意使用是P2.0(A8)必须为0。
电路可实现的功能是:按下任意键,对应的LED发光。程序如下:(MCS-51单片机把外扩I/O口和片外RAM统一编址,每个扩展的接口相当于一个扩展的外部RAM单元,访问外部接口就像访问外部RAM一样,用的都是MOVX指令)电路可实现的功能是:按下任意键,对应的LED发光。程序如下:(MCS-51单片机把外扩I/O口和片外RAM统一编址,每个扩展的接口相当于一个扩展的外部RAM单元,访问外部接口就像访问外部RAM一样,用的都是MOVX指令) LOOP: MOV DPTR,#FEFFH;数据指针指 向扩展I/O口地址 MOVX A,@DPTR ;向244读入数据,检测按键 MOVX @DPTR,A ;向273输出数据,驱动LED SJMP LOOP ;循环
8.3.2 采用Intel系列可编程接口芯片 • 完成一些较复杂的接口动作,仅靠几片74LS273、244之类的芯片已不能满足要求。必须扩展功能强的可编程接口芯片。常用的可编程芯片有:8155可编程并行接口、8255可编程并行接口、8251可编程通信接口、8253可编程间隔定时器、8279可编程键盘/显示器接口等。下面通过8255芯片说明可编程接口芯片的扩展。
一、8255A可编程并行I/O接口 1.结构 8255A由 3 个 8 位并行I/O口, 称为PA口、 PB口和PC口;数据缓冲器及读写控制逻辑电路组成。 其中PC口又分为高 4 位和低 4 位, 通过控制字设定可以选择三种工作方式: ① 基本输入/输出; ② 选通输入/输出; ③ PA口为双向总线。
2. 3种工作方式: 方式0(基本I/O方式): A口、B口、C口均为数据I/O。输出锁存,输入三态,不用联络信号。 适用于无条件或查询方式的数据传送。 方式1(选通I/O方式): A口和B口用于数据I/O,输入/输出均锁存, C口用于传送联络信号,读C口可了解外设当前状态。 适用于查询或中断方式的数据I/O。 方式2(双向数据传送方式): A口为数据I/O,B口无此方式,C口用作A口双向传送的联络信号线。 适用于查询或中断方式的数据I/O。
8255A的芯片引脚信号 40脚