900 likes | 996 Views
第 14 章 并行通信及其接口电路. 本章主要内容 1. 简单并行接口电路; 2. 可编程并行接口电路 8255A 的结构及工作原理; 3. 8255A 的应用。. 14.1 概述. 在计算机和数据通信系统中,有两种基本的数据传送方式,即串行数据传送方式和并行数据传送方式,也称 串行通信和并行通信。 数据在单条一位宽的传输线上按时间先后一位一位地进行传送,称为串行传送; 数据在多位宽的传输线上各位同时进行传送,称为并行传送。 和串行传送相比,在同样的时钟速率下,并行传送的数据传输率较高。. 并行通信往往适用于信息传输率要求较高,而传输距离较短的场合。
E N D
第 14 章 并行通信及其接口电路
本章主要内容 1.简单并行接口电路; 2.可编程并行接口电路8255A的结构及工作原理; 3. 8255A的应用。
14.1 概述 • 在计算机和数据通信系统中,有两种基本的数据传送方式,即串行数据传送方式和并行数据传送方式,也称串行通信和并行通信。 • 数据在单条一位宽的传输线上按时间先后一位一位地进行传送,称为串行传送; • 数据在多位宽的传输线上各位同时进行传送,称为并行传送。 • 和串行传送相比,在同样的时钟速率下,并行传送的数据传输率较高。
并行通信往往适用于信息传输率要求较高,而传输距离较短的场合。并行通信往往适用于信息传输率要求较高,而传输距离较短的场合。 • 在本章,我们重点介绍并行通信及其所要求的并行接口电路,研究它们的组成、功能及典型的并行接口芯片的工作原理及使用方法。 • 首先介绍几种简单的(不可编程)并行输入输出接口电路,然后着重介绍可编程并行接口电路8255A及其典型应用。
14.2 简单的并行接口电路 • 在输入输出接口电路中,经常要对所传送的信号进行缓冲、驱动和锁存。 • 能实现这种功能的接口芯片通常是简单的数据锁存器、缓冲器以及双向总线收发器等。 • 本节扼要介绍三种常用的简单并行输入输出接口芯片,它们是: • 锁存器74LS373; • 缓冲器74LS244; • 数据总线收发器74LS245。
14.2.1 锁存器74LS373 • 74LS373是一种8位D锁存器电路(D-Latch),具有三态控制输出,其逻辑电路及引脚图如图14.1所示。 • 图中小括号内的数字编号为芯片的引脚号。
G OE 1D 1Q 2Q 2D 3Q 3D 4Q 4D 5Q 5D 6Q 6D 7Q 7D 8Q 8D (b)引脚图 图14.1 74LS373锁存器 (3) 1D D G Q (2) 1Q (4) (5) 2D 2Q (7) (6) 3D 3Q (8) (9) 4D 4Q (13) (12) 5D 5Q (14) (15) 6D 6Q (17) (16) 7D 7Q (18) (19) 8D 8Q (11) (1) G (选通) OE (a)逻辑电路
由图14.1可见,该电路由8个D锁存器构成(图中仅画一个,其余与此相同),有8个输入端1D~8D,8个输出端1Q~8Q,两个控制端:由图14.1可见,该电路由8个D锁存器构成(图中仅画一个,其余与此相同),有8个输入端1D~8D,8个输出端1Q~8Q,两个控制端: • 选通端G和输出允许端OE。 • 当选通端G为高电平时,则D锁存器的输出跟随相应输入数据端的逻辑电平; • 当G变为低电平时,则D锁存器中的当前内容被锁存。 • 只有当输出允许信号OE有效(为低电平) 时,锁存器中的信息才出现在输出端1Q~8Q上;如果OE为高电平,则输出处于高阻态。
74LS373的真值表如表14-1所示。 • 该表中H为高电平,L为低电平,Q0为原状态,Z为高阻态,X表示任意值(为H或L均可)。
输入D 选通 输出Q 保持t2时D的锁存值 Q跟随D t0 t1 t2 D0 D1 D n-1 Q n-1 Q0 Q1 锁存器工作时间图 锁存器的应用 n位数据总线 选通
从表14-1可以看到74LS373的功能为: • 当选通端G为高电平,同时输出允许端OE为低电平时,则输出Q=输入D(输出Q跟随输入D); • 当选通端G为低电平,而输出允许端OE也为低电平时,则输出Q=Q0(Q0为原状态,即选通端G由高电平变为低电平时输出端Q的状态); • 当输出允许端OE为高电平时,无论选通端G为何值,输出端Q总为高阻态。
74LS373是十分常用的锁存器电路,主要用来在总线传输电路中锁存地址信息或数据信息,并实现总线信号的缓冲与驱动。74LS373是十分常用的锁存器电路,主要用来在总线传输电路中锁存地址信息或数据信息,并实现总线信号的缓冲与驱动。 • 与74LS373锁存器功能类似的芯片还有Intel 8282/8283等 。
14.2.2 缓冲器74LS244 • 74LS244 是一种三态输出的8 位缓冲器/驱动器电路, 其逻辑电路图和引脚图如图14.2所示。
___ 1G (1) (2) (18) 1A1 1Y1 (4) (16) 1G 2G 1Y1 1A2 1Y2 1A1 (6) (14) 1Y2 1A2 1A3 1Y3 1Y3 (8) (12) 1A3 1A4 1Y4 1Y4 1A4 (11) (9) 2A1 2Y1 2Y1 2A1 (13) (7) 2A2 2Y2 2Y2 2A2 (15) (5) 2Y3 2A3 2A3 2Y3 2Y4 2A4 (17) (3) 2A4 2Y4 ___ 2G (19) (a) 逻辑电路 (b)引脚图 图14.2 74LS244缓冲器
由图14.2可见,74LS244有8个输入端,分为两路——1A1~1A4和2A1~2A4;由图14.2可见,74LS244有8个输入端,分为两路——1A1~1A4和2A1~2A4; • 有8个输出端,也分为两路——1Y1~1Y4和2Y1~2Y4。 • 两路数据传送分别由两个控制信号1G和2G控制:当1G有效(为低电平) 时,1Y1~1Y4的电平与1A1~1A4的电平相同,即输出反映输入的逻辑电平; • 同样,当2G有效时,2Y1~2Y4的电平与2A1~2A4的电平相同。而当1G(或2G) 无效(为高电平) 时,输出1A1~1A4(或2A1~2A4) 为高阻态。
74LS244缓冲器主要用于存储器地址驱动器、单向总线接收器和发送器等。例如,可将其8个输入端的某几位接地,其余接+5V,即可提供特定的8位二进制代码,如为某设备接口提供8位中断类型码。74LS244缓冲器主要用于存储器地址驱动器、单向总线接收器和发送器等。例如,可将其8个输入端的某几位接地,其余接+5V,即可提供特定的8位二进制代码,如为某设备接口提供8位中断类型码。
14.2.3 数据总线收发器74LS245 • 74LS245是一种三态输出的8位双向总线收发器(transceiver),其逻辑电路图和引脚图如图14.3所示。
图14.3 数据总线收发器74LS245 (2) A1 (18) B1 (3) (17) A2 B2 (4) (16) A3 B3 (5) (15) A4 B4 (6) (14) A5 B5 (7) (13) A6 B6 (8) (12) A7 B7 (9) (11) A8 B8 (1) (19) DIR _ G (a)逻辑电路 _ GDIR A1 B1 A2 B2 A3 B3 A5 B4 B5 A6 B6 A7 B7 A8 B8 (b)引脚图
由图14.3可见,74LS245有16个双向传输的数据端,即A1~A8和B1~B8;另有两个控制端,即允许端G和方向控制端DIR。G用于允许该收发器的操作,DIR用于控制数据传送的方向(A→B或B→A)。由图14.3可见,74LS245有16个双向传输的数据端,即A1~A8和B1~B8;另有两个控制端,即允许端G和方向控制端DIR。G用于允许该收发器的操作,DIR用于控制数据传送的方向(A→B或B→A)。 • 由图14.3(a) 可见,若G信号无效(为高电平),则无论DIR为何种电平,下面两个“与门”的输出均为低电平,从而使两个方向上的三态门的输出均为高阻态,收发器处于“隔开”状态,即两个方向上的数据传送均不能进行。
若G信号有效(为低电平),则可在某一个方向上进行数据传送,到底在哪个方向上进行传送,则由方向控制端DIR的逻辑电平来决定。 若G信号有效(为低电平),则可在某一个方向上进行数据传送,到底在哪个方向上进行传送,则由方向控制端DIR的逻辑电平来决定。 • 74LS245的真值表如表14-2所示。 • 74LS245通常用于数据的双向传送、缓冲与驱动。 • 与74LS245功能类似的双向总线收发器电路还有Intel 8286/8287等。
14.2.4 应用举例 • 1. 锁存器74LS373的应用 • 在80386DX微机系统中,需在地址总线上对30位地址信号A2~A31和4个字节允许信号BE0~BE3进行锁存。 • 图14.4给出了使用5片74LS373芯片对这些信息进行锁存的电路配置情况。
G G G G 74LS373 74LS373 74LS373 74LS373 __ OE __ OE __ OE __ OE 图14.4 74LS373用于地址信号锁存 经锁存的地址总线 ALE G 74LS373 地址总线A24~A31 AL24~AL31 __ OE A16~A23 A2~A31 AL16~AL23 AL8~AL15 A8~A15 AL2~AL7 A2~A7 ___ ___ BEL0~BEL3 ___ ___ 字节允许BE0~BE3
注意,由于电路中74LS373的OE固定接为逻辑0,所以其输出AL2~AL31和BEL0~BEL3将始终处于允许状态。注意,由于电路中74LS373的OE固定接为逻辑0,所以其输出AL2~AL31和BEL0~BEL3将始终处于允许状态。 • 由图14.4可见,各片74LS373的选通端G均由ALE(Address Latch Enable)信号来驱动,ALE即地址锁存允许信号,它是专门用来控制地址锁存器的一个总线信号。
2. 数据总线收发器74LS245的应用 • 图14.5给出了用74LS245实现的总线接口中数据总线收发器电路配置图。 • 对于像80386DX这样的32位微机系统,其外部数据总线为32位,所以需4块74LS245这样的电路来实现双向总线驱动。 • 图14.5中,74LS245的DIR输入是由总线信号DT/R来控制,而G是由DEN控制。DT/R和 DEN是系统中总线控制逻辑的输出信号。
图14.5 数据总线收发器的应用 ____ DEN __ DT/R 系统数据总线 _ G 微处理器数据总线 74LS245 D24~D31 DB24~DB31 DIR D0~D31 D16~D23 _ G 74LS245 DB16~DB23 DIR _ G 74LS245 DB8~DB15 D8~D15 DIR _ G 74LS245 DB0~DB7 D0~D7 DIR
数据总线收发器的一个主要功能是对数据总线信号进行缓冲与驱动,缓冲能力的大小取决于该电路在其输出端能够吸收多少电流。数据总线收发器的一个主要功能是对数据总线信号进行缓冲与驱动,缓冲能力的大小取决于该电路在其输出端能够吸收多少电流。 • 74LS245的IOL(输出低电平负载电流) 额定值为64mA,而80386DX数据总线最多仅能吸收4mA电流。所以,通过增设数据总线收发器电路可以极大地增强总线的驱动能力。
14.3 可编程并行接口 14.3.1 可编程并行接口的组成及其与CPU和外设的连接 • 通常,一个可编程并行接口电路应包括下列组成部分: (1) 两个或两个以上具有缓冲能力的数据寄存器。 (2) 可供CPU访问的控制及状态寄存器。 (3) 片选和内部控制逻辑电路。
(4)与外设进行数据交换的控制与联络信号线。 (5)与CPU用中断方式传送数据的相关中断控制电路。 • 典型的可编程并行接口及其与CPU和外设的连接示意图如图14.6所示。
图14.6 可编程并行接口电路及其与CPU和外设的连接 并行接口电路 数据总线 CPU 输 出 设 备 并行输出数据 输出缓冲寄存器 读控信号 输入缓冲寄存器 输出准备好 写控信号 控制寄存器 输出回答 复位信号 状态寄存器 中断响应信号 输 入 设 备 中断逻辑 并行输入数据 中断请求信号 输入准备好 译码器 地址 片选 输入回答
14.3.2 可编程并行接口的数据输入输出过程 将以8255A为例进行讨论。
14.4 可编程并行通信接口8255A 14.4.1 8255A的性能概要 • Intel 8255A是一个为Intel 8080和8085微机系统设计的通用可编程并行接口芯片,也可应用于其他微机系统之中。 • 8255A采用40脚双列直插封装,单一+5V电源,全部输入输出与TTL电平兼容。 • 用8255A连接外部设备时,通常不需要再附加其他电路,给使用带来很大方便。
8255A 有三个输入输出端口:端口A、端口B、端口C。 • 每个端口都可通过编程设定为输入端口或输出端口,但有各自不同的方式和特点。 • 端口C可作为一个独立的端口使用,但通常是配合端口A和端口B的工作,为这两个端口的输入输出提供控制联络信号。
14.4.2 8255A芯片引脚分配及引脚信号说明 • 8255A芯片引脚分配如图14.7所示。 • 8255A芯片的40条引脚,大致可分为三类: (1) 电源与地线共2条:Vcc、GND。 (2) 与外设相连的共24条: • PA7~PA0:端口A数据信号。 • PB7~PB0:端口B数据信号。 • PC7~PC0:端口C数据信号。
PA4 PA4 1 1 40 40 PA3 PA3 PA5 PA5 2 2 39 39 PA2 PA2 PA6 PA6 3 3 38 38 PA1 PA1 PA7 PA7 4 4 37 37 PA0 PA0 WR WR 5 5 36 36 RD RD RESET RESET 6 6 35 35 CS CS D0 D0 7 7 34 34 GND GND D1 D1 8 8 33 33 A1 A1 D2 D2 9 9 8255 8255 A A 32 32 A0 A0 D3 D3 10 10 31 31 PC7 PC7 D4 D4 11 11 30 30 PC6 PC6 D5 D5 12 12 29 29 PC5 PC5 D6 D6 13 13 28 28 PC4 PC4 D7 D7 14 14 27 27 PC3 PC3 VCC VCC 15 15 26 26 PC2 PC2 PB7 PB7 16 16 25 25 PC1 PC1 PB6 PB6 17 17 24 24 PC0 PC0 PB5 PB5 18 18 23 23 PB0 PB0 PB4 PB4 19 19 22 22 PB1 PB1 PB3 PB3 20 20 21 21 PB2 PB2 14.7 8255 A 图 芯片引脚分配
(3) 与CPU相连的共14条: • RESET: 复位信号,高电平有效。当RESET信号有效时,所有内部寄存器都被清除。同时,3个数据端口被自动设置为输入端口。 • D7~D0: 双向数据线,在8080、8085系统中,8255A的D7~D0与系统的8位数据总线相连; • 在8086系统中,采用16位数据总线,8255A的D7~D0通常是接在16位数据总线的低8位上。
CS: 片选信号,低电平有效。该信号来自译码器的输出,只有当CS有效时,读信号RD和写信号WR才对8255A有效。 • RD:读信号,低电平有效。它控制从8255A读出数据或状态信息。
WR:写信号,低电平有效。它控制把数据或控制命令字写入8255A。WR:写信号,低电平有效。它控制把数据或控制命令字写入8255A。 • A1、A0:端口选择信号。8255A内部共有4个端口(即寄存器):3个数据端口(端口A、端口B、端口C) 和1个控制端口,当片选信号CS有效时,规定A1、A0为00、01、10、11时,分别选中端口A、端口B、端口C和控制端口。 • CS、RD、WR、A1、A0 这五个信号的组合决定了对三个数据端口和一个控制端口的读写操作,如表14-3所示。
14.4.3 8255A内部结构方块图 • 8255A内部结构方块图如图14.8所示。
图14.8 8255A内部结构方块图 +5V 电源 A组控制 A组 端口A (8位) I/O PA7~PA0 GND 双向数据总线 A组 端口C (高4位) 数据总线 缓冲器 I/O PC7~PC4 D7~D0 8位内部数据总线 B组 端口C (低4位) I/O PC3~PC0 __ RD 读写 控制 逻辑 __ WR B组 端口B (8位) I/O PB7~PB0 B组控制 A1 A0 __ CS RESET
由图14.8可以看出,8255A由以下几部分组成: (1) 数据总线缓冲器 • 这是一个双向三态8位数据缓冲器,它是8255A与CPU数据总线的接口。 • 输入数据、输出数据以及CPU发给8255A的控制字和从8255A读出的状态信息都是通过该缓冲器传送的。
(2) 端口A、端口B、端口C • 8255A有三个8位端口(端口A、端口B、端口C),各端口可由程序设定为输入端口或输出端口。 • 在使用中,端口A和端口B常常作为独立的输入端口或输出端口。 • 端口C也可以作为输入端口或输出端口,但往往是用来配合端口A和端口B的工作。 • 在方式字的控制下,端口C可以分成两个4位的端口,分别用来为端口A和端口B提供控制和状态信息。
(3) A组控制和B组控制 • A组控制——控制端口A及端口C的高4位。 • B组控制——控制端口B及端口C的低4位。 (4) 读写控制逻辑 • 读写控制逻辑负责管理8255A的数据传输过程。
14.4.4 8255A的控制字 1. 方式选择控制字 • 方式选择控制字的格式如图14.9所示。
1 D6 D5 D4 D3 D2 D1 D0 方式选择控 制字标识位 PC3~PC0: 1 输入 (方式0时) 0 输出 A组方式选择 00 方式0 01 方式1 1x 方式2 端口B: 1 输入 0 输出 端口A 1 输入 0 输出 B组方式选择: 0 方式0 1 方式1 PC7~PC4: 1 输入 (方式0时) 0 输出 图14.9 8255A方式选择控制字
假定要求8255A的各个端口工作于如下方式: • 端口A——方式0,输出; • 端口B——方式0,输入; • 端口C的高4位——方式0,输出; • 端口C的低4位——方式0,输入。 • 那么,相应的方式选择控制字应为10000011B(83H)。
在实验系统中8255A控制口的地址为28BH,则执行如下三条指令即可实现上述工作方式的设定。在实验系统中8255A控制口的地址为28BH,则执行如下三条指令即可实现上述工作方式的设定。 • MOV DX, 28BH • MOV AL, 83H • OUT DX , AL;将方式选择控制字写入控制口