单片机外部总线如何扩展
扫描二维码
随时随地手机看文章
单片机在复杂的应用中,片内的资源往往不能满足实际需求,需要扩充较大的存储容量和较多的 I/O 接口。所谓系统扩展,一般有两项主要任务:
其一,是把系统所需的外设和单片机连接起来,使单片机系统能与外界进行信息交换。如通过键盘、A/D 转换器等外部设备向单片机送入数据、命令等有关信息,去控制单片机运行;通过显示器、发光二极管、打印机等设备把单片机处理的结果送出来,向人们提供各种信息或对外界设备提供控制信号,这项任务实际上就是单片机接口设计。
其二,是扩大单片机的存储容量。由于单片机芯片的结构、集成工艺等关系,单片机内 ROM 、RAM 等容量不可能很大,在使用中有时不够,需要在芯片外进行扩展。
因此,系统扩展和接口技术一般有以下几方面内容:
(1) 外部总线的扩展;
(2) 外部存储器的扩展;
(3) 输入/输出接口的扩展;
(4) 管理功能部件的扩展(如定时器/计数器、键盘/显示器等);
(5) A/D 和 D/A 接口技术。
一、外部总线的扩展
MCS 51 芯片没有对外专用的地址总线和数据总线,那么在进行对外扩展存储器或 I/O 接口时,首先需要扩展对外总线。通过 MCS 51 引脚 ALE 可实现对外总线扩展。在 ALE 为有效高电平期间,P0 口上输出 A7 ~A0 ,因而只需在 CPU 片外扩展一片地址锁存器,用 ALE 的有效高电平边沿作锁存信号,即可将 P0 口上的地址信息锁存,直到 ALE 再次有效。在 ALE 无效期间 P0 口传送数据,即作数据总线口。这样就可将 P0 口 的地址线和数据线分开。图 7.1 为 MCS 51 扩展的外部三总线示意图。
图 7.1 MCS 51 外部三总线示意图
通常用作单片机地址锁存器的芯片有 74LS273 、74LS377 、74LS373 、8282 等,图 7.2 的(a)、(b) 和(c) 给出了 74LS373 、8282 和 74LS273 的引脚,以及它们用做地址锁存器的接法。
图 7.2 地址锁存器的引脚和接口
74LS373 和 8282 是带三态输出的 8 位锁存器,两者的结构和用法类似。以 74LS373 为例,当三态端 OE有效,使能端 G 为高电平时,输出跟随输入变化;当 G 端由高变低时,输出端 8 位信息被锁存,直到 G 端再次有效。
74LS273 为 8D 触发器 ,当时钟上升沿到来时,将 D 端输入的数据锁存。作为地址锁存器使用时,可将 ALE 反相接 74LS273 的 CLK 端,CLK 端接+5V 。
二、总线驱动
在单片机应用系统中,扩展的三总线上挂接很多负载,如存储器、并行接口、A/D 接口、显示接口等,但总线接口的负载能力有限,因此常常 需要通过连接总线驱动器进行总线驱动。
总线驱动器对于单片机的 I/O 口只相当于增加了一个 TTL 负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。在对 TTL 负载驱动时,只需考虑驱动电流的大小;在对 MOS 负载驱动时,MOS 负载的输入电流很小,更多地要考虑对分布电容的电流驱动。
1. 常用的总线驱动器
系统总线中地址总线和控制总线是单向的,因此驱动器可以选用单向的,如 74LS244 。 74LS244 还带有三态控制,能实现总线缓冲和隔离。
系统中的数据总线是双向的,其驱动器也要选用双向的,如 74LS245 。74LS245 也是三态的,有一个方向控制端 DIR,DIR=1 时输 出 (An 一Bn ), DIR=0 时输入(An ←Bn )。 74LS244 、74LS245 的引脚见图 7.3 。
图 7.3 总线驱动器芯片管脚
(a) 单 向驱动器; (b) 双 向驱动器
2.总线驱动器的接口
图 7.4 给出了总线驱动器 74LS244 和 74LS245 与 8051 管脚间的接口方法。
图 7.4 8051 与总线驱动器的接口
(a) P2 口 的驱动; (b) P0 口 的驱动
由于 P2 口始终输出地址高 8 位,接口时 74LS244 的三态控制端 1G 和 2G 接地,P2 口 与驱动器输入线对应相连。
P0 口与 74LS245 输入线相连,端接地,保证数据线畅通。8051 的 RD和 PSEN相与 后接 DIR,使得 RD或 PSEN有效时,74LS245 输入,其它时间处于输出状态。