第八章外部系统扩展.ppt
《第八章外部系统扩展.ppt》由会员分享,可在线阅读,更多相关《第八章外部系统扩展.ppt(91页珍藏版)》请在三一文库上搜索。
1、第8 章 外部系统的扩展,8.1 并行扩展总线 8.2 串行扩展总线 8.3 并行存储器和I/O扩展 8.4 串行扩展介绍,系统扩展概述,系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统要求。,一、为何要进行系统扩展?,1)单片机本身的资源有限,2)单片机本身接口功能有限,单片机控制应用中的接口要求复杂,而单片机的接口只有数据锁存和缓冲功能,没有控制功能,难以满足复杂的I/O要求。,单片机系统中有两类数据传送操作: 单片机与存储器之间的数据读写操作; 单片机与其它设备之间的数据传送操作。,单片机与控制对象或外设之间的数据传送通常较复杂, 表现在以下
2、几方面:,1)速度差异大,2)设备种类繁多,低速与高速外设的速度相差很大,所以,单片机无法以一个固定的时序与它们按同步方式协调工作。,各种设备性能各异、对数据要求不同,因此,无法按统一格式进行数据传送。,3) 数据信号形式多样,有电压、电流信号,有数字形式、模拟形式。,上述因素使单片机的I/O操作变得很复杂,靠单片机本身的I/O口无法实现,必须扩展接口电路。,51 单片机的系统扩展主要有如下几种扩展,程序存储器(ROM)的扩展 数据存储器(RAM)的扩展 I/O口(普通I/O口、有特殊功能的接口)的扩展 中断系统扩展,1、扩展技术中主要研究、解决的问题: (1)提供合理的数据通道 (2)物理寻
3、址方法 (3)数据读写的控制方法 (4)收发双方的同步传送及其对信号时序的要求,二、单片机系统扩展方法 51有很强的外部扩展能力,通过总线来进行扩展,扩展电路及扩展方法较典型、规范。,总线扩展方法是指:以单片机为核心,通过总线把扩展部件连接起来。,常用的单片机系统扩展方法有两种:,1) 并行扩展法 利用单片机本身具备的三组总线(AB、DB、CB)进行的系统扩展。,三、最小应用系统 单片机系统的扩展是以基本的最小系统为基础的。,内部有程序存储器的单片机 + 晶振电路 + 复位电路就是一个最简单的最小应用系统。,对于内部无程序存储器的芯片8031来说, 则要用外接程序存储器的方法才能构成一个最小应
4、用系统。,2) 串行扩展法 利用串行总线进行的系统扩展。,串行扩展总线有: 单总线(1-Wire总线) I2C双线总线 SPI三线总线三种结构,外接晶振,复位电路,8051、 8751本身即可构成一片最小系统, 只要将单片机接上时钟电路和复位电路即可, 同时 接高电平, ALE、 信号不用, 系统就可以工作,(a) 8051/8751最小系统结构图;(b) 8031最小系统结构图,片内无程序存储器的芯片构成最小应用系统时, 须在片外扩展程序存储器。由于EPROM芯片一般不能锁存地址, 故扩展时还应加1个锁存器, 构成一个3片最小系统,8.1 并行扩展方法,(1)地址总线(AB) P0口(低8位
5、地址A0A7 ),P2口(高8位地址A8 A15)。,(2)数据总线(DB) 由P0口提供D0 D7,(3)控制总线(CB) 包括片外系统扩展用控制线和单片机用于接收片外控制的信号线。,P2口有输出锁存功能,能保留高8位地址信息。,P0是双向、三态控制的8位口,一、 外部总线的扩展,用51的P2口输出高8位地址、P0输出低8位地址和传送数据D0D7,外加地址锁存器构成地址、数据总线,控制总线由51 的RD、WR、PSEN、ALE和EA,8.1.1 单片机的并行总线,ALE:用于锁存P0口输出的低8位地址的控制线。ALE在P0口输出地址期间出现低电平,用其下降沿控制锁存器锁存地址数据。 PSEN
6、:输出,用于读片外程序存储器(EPROM)中的数据。“读”取EPROM中数据(指令)时,不能用“ RD ”信号,而只用PSEN信号。 EA:输入,用于选择片内或片外程序存储器。当 EA 0时,只访问外部程序存储器。当 EA1时,先访问内部程序存储器,内部程序存储器全部访问完之后,再访问外部程序存储器。 RD 、 WR :输出,用于片外数据存储器(RAM)的读、写控制。执行片外数据存储器操作指令MOVX时自动生 成 RD 、 WR 信号,并在数据线有效时输出。,控制总线,8.1.2 并行扩展应注意的问题,一、地址锁存器的使用,通过并行扩展方法,可扩展程序存储器、数据存储器和并行I/O口,它们要由
7、地址来区分访问。,由于地址低8位是由P0分时提供,故扩展时必须采用锁存器锁存地址(扩展连接的芯片本身有锁存功能除外)。,51的读写时序中,锁存允许信号ALE是高电平有效,ALE高电平信号与P0口有效地址信号同时出现,ALE下降沿时锁存低8位地址,ALE低电平时P0口为数据。,因此,应选高电平触发或下降沿触发的锁存器,如:74LS373或8282。对上升沿触发的锁存器则应加一级非门后与锁存器的控制端相连。,G(高电平锁存)、STB 从高电平转为低电平时锁存,常用地址锁存器的引脚和接口,73LS273在CLK上升沿锁存所以须将ALE反相接入,TTL芯片74LS373是一个8D三态同相锁存器,其引脚
8、和逻辑如下:,D0 D1 D2 D3 D4 D5 D6 D7 G,Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 OE,2 5 6 9 12 15 16 19 1,74LS373引脚图,74LS373真值表,3 4 7 8 13 14 17 18 11,P0口,ALE,8051,74LS373,D0 D7,Q0 Q7,G,OE,A0A7,A8A15,P2口,低位地址分离电路,G=1时,D端数据 = Q端数据, G=0时,Q端数据保持,不再受D端变化影响,二、地址范围的确定和片选信号的产生,为了访问扩展的存储单元和I/O口,必须为每个单元和I/O端口分配唯一的地址。,决定地址范围的因素有两个:
9、1)接口芯片的地址线与单片机的地址总线的连接 2)接口芯片的片选信号的产生方法,连接地址线时,通常都是将接口芯片的地址线与单片机地址总线的若干低位地址线相连,而用剩余的P2口高位地址线来产生片选信号。,产生片选信号的方法与微机原理中介绍的相同。,二、地址范围的确定和片选信号的产生,三、扩展的存储器与I/O口的编址,51扩展的I/O口与扩展的RAM采用统一编址方式,并用同样的指令MOVX进行访问。所以,当同时扩展有存储器和I/O口时,要注意地址的合理分配、连接,以保证没有地址冲突。,为了在扩展的片外RAM和I/O口中选择唯一的某单元或I/O端口进行操作,需要进行选址。,扩展的片外RAM和I/O口
10、选址过程分2步:,2)片内译码 通过连到芯片地址引脚上的地址线在芯片内部进行译码。,1)片选 即通过高位地址线译码或线选方法产生的“片选” 信号,先找到单元或I/O端口所在的芯片。,通过上两步,才能确定唯一的存储单元或I/O端口。,片选常用有“线选”和“地址译码”2种方法。,地址译码又分为全译码法、部分地址译码法,1) 线选法:就是直接将单片机最高几位空余地址线中的一根 作为某一扩展芯片的片选。一根地址线对应一个片选。,例: 用“线选”法扩展3片存储器,A10 . . . A0,CE,A10 . . . A0,CE,A10 . . . A0,CE,A10A0,A10A0,A10A0,A13 A
11、12 A11,I,II,III,片选译码方法分:部分译码 全译码法,线选法的特点:电路简单,但占地址资源多,地址重叠区多,各芯片的地址空间不连续,不能充分利用CPU的最大地址空间。,2)译码法:用剩余的高位地址线进行译码,译码输出作为“片选” 控制线。,采用线选法时要注意: 访问外部数据存储器、I/O接口芯片时,所发出的地址码其做线选的地址线中只能有一个为低电平,以保证同一时刻只选中一片芯片,否则,将引起错误。,部分译码法的特点:既能利用CPU的较大的地址空间,又可简化译码电路,但存在地址重叠,常用的译码器有3/8译码器74LS138、双2/4译码器74LS139、4/16译码器74LS154
12、等。,A15 A14 A13 A12 A11 A10A0 十六进制地址 芯片 I 1 0 0 0 0 0 0 8000H 1 0 0 0 0 1 1 87FFH 芯片 II1 1 0 0 0 1 0 0 8800H 1 0 0 0 1 1 1 8FFFH 芯片III 1 1 0 0 1 0 0 0 9000H 1 0 0 1 0 1 1 97FFH,四、控制信号的时序配合,当外扩芯片的操作控制信号的时序与51单片机提供的相应控制信号时序相合时,可以直接与单片机相应引脚相连。,时序上不能与单片机提供的控制信号相配时,可设计简单组合逻辑电路,对单片机相关的引脚信号进行处理,得到相配的时序信号后连接
13、。,全译码法的特点:能充分利用CPU的最大地址空间,芯片的地址空间可连续,无地址重叠,但译码电路较复杂,增加硬件开销一般在外部扩展大容量的存储器时使用。,. 总线驱动,扩展使得总线上常挂接很多负载, 但总线接口的负载能力有限, 因此,常需通过总线驱动器进行总线驱动。,总线驱动器对于单片机的I/O口只相当于增加了一个TTL负载, 它除了对后级电路驱动外,还能对负载的波动变化起隔离作用。 ,在对TTL 负载驱动时, 只需考虑驱动电流的大小; 在对MOS负载驱动时, MOS负载的输入电流很小, 更多地要考虑对分布电容的电流驱动。,1 常用的总线驱动器 地址总线和控制总线是单向的, 因此可选用单向驱动
14、器,如74LS244,它带有三态控制, 能实现总线缓冲和隔离。,数据总线是双向的,其驱动器要选用双向的,如74LS245, 它是三态的, 有一个方向控制端DIR, DIR=1时输出(AnBn), DIR=0时输入(AnBn)。,单向驱动器,双向驱动器,P0 口的驱动,P2 口的驱动,2. 51单片机与总线驱动器的接口,单向,双向,当PSEN、RD任一个有效,LS245传输方向BA输入 ,当进行RAM写时两者均无效时,传输方向A B,1. 外部程序存储器的扩展,51 单片机程序存储器的扩展,用译码方法扩展4片27128的EPROM电路原理图,8.3.2 外部数据存储器的扩展,1. 外部数据存储器
15、的扩展方法,在要定义大量的数据变量、标志位或需要大量的数据缓冲区的应用系统中,会需要扩展数据存储器。,数据存储器在和单片机的接口上有独立的控制信号线,RD、WR和读写指令,扩展时将RAM芯的OE、WE分别与单片机的RD、WR引脚相连接,数据线和地址线的连接方法与程序存储器扩展的连接相同。,数据存储器扩展应注意的问题,必须保证扩展的数据存储器与扩展的I/O芯片的地址没有冲突。,51单片机扩展数据存储器的示意图,例:扩展2片,采线选法寻址。用口线P2.7来寻址 当P2. 7=0时 访问片(0) ,地址范围为6000H 7FFFH 当P2.7=l时 访问片(1),地址范围为E000H FFFFH,1
16、6K片外数据存储器扩展电路,存储器扩展举例,采用地址译码器扩展存储器的连接图,51单片机同时扩展程序存储器和数据存储器,80C51,+5V,也可用地址译码信号使它们具有指定的地址.,扩展既可读又可写的程序存储器,在扩展的ROM中,只能运行但不能修改程序,若把程序放在扩展RAM中,虽可修改却又不能运行程序,因为,对外部ROM和RAM是用不同指令产生不同的读选通信号来访问的。,解决的方法:将两者的读访问信号相与后作为扩展RAM的读选通控制信号,从而使之成为可读可写的“程序存储器”。,地址线 A10A0,数据线 D7D0,WR WE,OE,RD,PSEN,片外存储器 读信号 = PSEN RD,EE
17、PROM 既能作为程序存储器又能作数据存储器,故可将程序存储器与数据存储器空间合二为一,连接方法如下:,PSEN、RD任一个有效时OE有效,只有两者 均无效时OE才无效.,8.3.3 并行I/O口的扩展,(1) 51没有专门的I/O指令,扩展的I/O口与片外RAM统一编址,占用片外RAM地址空间,所有扩展的I/O口或通过扩展I/O口连接的外围设备均采取与片外RAM相同的寻址方法,用MOVX指令访问。,151单片机I/O口扩展性能,(2) 利用串行口方式0,也可扩展I/O口,所扩展的I/O口不占用片外RAM地址。,单片机应用系统中,I/O口的扩展是为外部通道及设备提供输入、输出通道。因此,I/O
18、口的扩展总是为了实现某一测控及管理功能而进行的。,如:连接键盘、显示器、驱动开关控制、开关量监测等。,因此,在I/O口扩展时,必须考虑与之相连的外部硬件电路特性,如驱动功率、电平、干扰抑制及隔离等。,2扩展I/O口使用的芯片,51单片机应用系统中,扩展I/O口所采用的芯片主要有两大类:,通用I/O口芯片 如8255和I/O扩展复合芯片8155等。,TTL、CMOS电路芯片 单片机应用系统中常采用这些芯片用来扩展普通8位输入或输出口,它们体积小、成本低、配置灵活, 使用十分方便。,通过P0口扩展的主要有各类锁存器、三态缓冲器等,如:74LS373、 74LS273 、74LS573、74LS57
19、4 、 74LS367 、 74LS374、 74LS377、74LS244等。,3并行I/O口的扩展方法 根据扩展并行I/O口时数据线的连接方式,I/O口扩展可分为总线扩展方法、串行口扩展方法。,常用I/O扩展TTL、CMOS芯片,用TTL芯片进行I/O口的扩展, 只要按照“输入三态, 输出锁存”与总线相连的原则, 即能组成简单的I/O 扩展接口。,(2) 串行口扩展方法 利用51的串行口在方式0工作下所提供的I/O口扩展功能。这种扩展只占用串行口.,接上串入并出移位寄存器可扩展并行输出口, 接上并入串出移位寄存器可扩展并行输入口。,通过移位寄存器级联,可扩展多数量、多位的并行I/O口。缺点
20、:传输速度较慢,(1) 总线扩展方法 扩展的I/O芯片的数据线取自P0口。这种扩展方法只分时占用P0口,并不影响P0口与其它扩展芯片的连接操作,不会造成硬件的额外开销。因此,在单片机应用系统的I/O扩展中被广泛采用。,单片机系统中输入接口的扩展一般选用具有缓冲功能的芯片实现,例如:74LS244 、74LS245等。,4、I/O口扩展举例,单片机系统中输出接口的扩展经常选用具备锁存功能的芯片实现,一般有:74LS273,74LS373,74LS573、74LS574等。,1)简单并行输出接口的扩展,CK为时钟输入端,G为锁存允许,做数据总线时的P0口并没有锁存功能,为了有稳定的输出, 所以,用
21、TTL或CMOS锁存器芯片把数据锁存输出。,锁存器、三态门芯片都只有数据线和锁存允许及输出允许控制线,而无地址线和片选信号线,但对扩展I/O口是用MOVX指令以确定的地址来进行访问,所以,要用地址线控制锁存允许、输出允许。,将1个字节数据从用74LS377扩展的I/O输出,用下面程序段: MOV DPTR,#7FFFH ;地址指针指向74LS377 MOV A, #DATA ;将输出数据送A MOVX DPTR, A ; 输出数据,对于常态数据的输入,只需采用8位三态门控制电路芯片即可。,对于输入,由于是通过数据总线进行,输入时一定要用三态芯片,以免平时对数据总线有影响。,注意!: 不是用 M
22、OV P0, #DATA,并行扩展I/O口的使用,用74LS244通过P0口扩展8位并行输入口,三态门由P2.6和RD相或控制,故其端口地址为BFFFH。 MOV DPTR,#0BFFFH ;指向74LS244口地址,使A14=0 MOVX A, DPTR ;读入数据,74LS244是双4位三态输入缓冲器,D RD P2,1G、2G为 输出控制端,2)简单并行输入接口的扩展,3)用专用I/O芯片8255扩展并行I/O口,复位电路,8031与8255的接口方法,8.3.4 C51访问扩展的存储器和I/O端口的方法,51对外扩的I/O或外扩RAM统一编址,将扩展的I/O口看作片外RAM单元来访问。
23、在C51中如何访问它们?,#include /absacc.H包含了能进行绝对地 址访问的宏定义 #define 变量名 XBYTE地址常数 /指定变量与XDATA 区中的某绝对(字节)地址对应 (外RAM或扩展I/O口的地址),访问方法一、 采用绝对地址访问的方法,用预定义宏指定变量在xdata空间并使绝对地址与要访问的扩展RAM单元、I/O口相对应。,例:对片外的1000H端口进行数据的读操作,设计方法如下,#include #include #define port XBYTE (0x1000);/将外部1000H端口命名为port 长度为8位。此后, 程序中就用 port对 外部100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 外部 系统 扩展
链接地址:https://www.31doc.com/p-3161856.html