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