• 沒有找到結果。

并行接口技术

在文檔中 嵌 入 式 系 统 应 用 开 发 (頁 180-184)

第 5 章 嵌入式系统接口技术

5.3 并行接口技术

5.3.1 并行接口概述

并行接口又简称为“并口”。目前,计算机中的并行接口主要作为打印机端口。所谓

“并行”,是指 8 位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行 传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。现在有 5 种常见的并口有 4 位、8 位、半 8 位、EPP 和 ECP,大多数计算机配有 4 位或 8 位的并 口,支持全部IEEE1284 并口规格的计算机基本上都配有 ECP 并口。

标准并口指 4 位、8 位和半 8 位并口。4 位口一次只能输入 4 位数据,但可以输出 8 位数据;8 位口可以一次输入和输出 8 位数据。EPP 口(增强并口)由 Intel 等公司开发,允 许 8 位双向数据传送,可以连接各种非打印机设备,如扫描仪、LAN 适配器、磁盘驱动 器和 CD-ROM 驱动器等。ECP 口(扩展并口)由 Microsoft、HP 公司开发,能支持命令周 期、数据周期和多个逻辑设备寻址,在多任务环境下可以使用DMA。

图 5.21 是并行接口和外设的连接示意图。图中的并行接口用一个通道和输入设备相 连,用另一个通道和输出设备相连。每个通道都配有一定的控制线和状态线。从图中可以 看出,并行接口中应该有一个控制寄存器用来接收 CPU 的控制命令,有一个状态寄存器 提供各种状态位供 CPU 查询。为了实现输入和输出,并行接口中还必须有相应的输入缓 冲寄存器和输出缓冲寄存器。

图5.21 并行接口和外设连接示意图

在输入过程中,外设将数据送给接口,并使“输入就绪”变为有效。接口在将数据接 收到输入缓冲寄存器后使能应答信号作为给外设的响应。外设在收到应答信号后便撤消

“输入就绪”信号。数据读入输入缓冲寄存器后,接口设置状态寄存器的“接收数据就 绪”位,并向 CPU 发送中断请求。在 CPU 将接口的输入数据读走后,接口会自动清除状 态寄存器的“接收数据就绪”位。

在输出过程中,当外设从接口取走一个数据后,接口将状态寄存器中的输出缓冲器空 位置 1,并向 CPU 发送中断请求,表示 CPU 可以再次发送数据。CPU 将要发送的数据写 入接口的输出缓冲寄存器,接口把输出数据送往输出设备并使能“输出就绪”信号启动输 出设备。外设在数据发送完成后使能应答信号,接口根据应答信号重新使能状态寄存器的 发送缓冲器空位。

5.3.2 可编程并行接口芯片 8255A

8255A 是一个通用可编程并行 I/O 接口器件,设计为与 Intel 微处理器一起使用。如 图5.22 是 8255A 的内部结构。8255A 具有 2 个独立的 8 位 I/O 口(A 口和 B 口)和 2 个独立 的 4 位 I/O(C 口上半部和 C 口下半部),提供 TTL 兼容的并行接口。作为输入时提供三态 缓冲器功能,作为输出时提供数据锁存功能。

图5.22 8255A 的内部结构

A 组和 B 组控制电路是两组根据 CPU 的命令字控制 8255A 工作方式的电路。它们有 控制寄存器,接受 CPU 输出的命令字,然后分别决定两组的工作方式,也可根据 CPU 的 命令字对端口C 的每一位实现按位“复位”或“置位”操作。

数据总线缓冲器是一个三态双向8 位缓冲器,它是 8255A 与系统数据总线的接口。

读/写和控制逻辑与 CPU 的地址总线中的 A1、A0 以及有关的控制信号相连,由它控 制把 CPU 的控制命令或输出数据送至相应的端口;也由它控制把外设的状态信息或输入 数据通过相应的端口,送至CPU。

8255A 中有 3 个输入输出端口。另外,内部还有一个控制字寄存器,共有 4 个端口,

要有两个输入端来加以选择,这两个输入端通常接到地址总线的最低两位A1 和 A0。

图5.23 是 8255A 的芯片引脚信号。其中与外设相连的信号有:

l PA7~PA0 为端口 A 数据信号 l PB7~PB0 为端口 B 数据信号 l PC7~PC0 为端口 C 数据信号

1 40

20 21 PB3

PB2

PB4

PB1 PB5

PB0 PB6

PC3 25 PB7

PC2

15 Vcc

PC1 D7

PC0 D6

PC4 D5

PC5 30 D4

PC6 10 D3

PC7A0A1 8255 D2D1D0

GNDCS 35 RESET

5 WR

RD PA7

PA0 PA6

PA1 PA5

PA2

PA4 PA3

图5.23 8255A 的芯片引脚信号 与CPU 相连的信号有如下。

l RESET:复位信号,低电平有效。当复位信号有效时,所有内部寄存器被清除,

同时,3 个端口被自动设为输入端口。

l D7~D0:8255A 的数据线,与系统总线相连。

l CS:芯片选择信号,低电平有效。只有在片选信号有效时,读信号 RD 和写信 号WR 才对 8255A 有效。

l RD:芯片读出信号,低电平有效,当读出信号有效时,CPU 可以从 8255A 中读 取输入数据。

l WR:芯片写入信号,低电平有效,当写入信号有效时,CPU 可以向 8255A 写入 控制字或输出数据。

l A1、A0:端口选择信号。8255A 内部有 3 个数据端口和 1 个控制端口,共 4 个 端口。当A1、A0 为 00 时,选择 A 端口;为 01 时,选择 B 端口;为 10 时选择 C 端口;为 11 时选择控制端口。

8255A 能使用多种数据传送方式完成 CPU 与 I/O 设备之间的数据交换,如无条件方 式、查询方式和中断方式。8255A 有 3 种工作方式,方式 0、方式 1 和方式 2。

方式0 是一种基本的输入或输出方式。在这种工作方式下,两个 8 位端口(A、B)和两 个 4 位端口(端口 C)均可由程序选定作为输入或输出。输出是锁存的,输入是不锁存的。

在方式 0 时,各个端口的输入、输出可以有 16 种不同的组合。可以适应多种使用场合。

方式 0 可作为查询式输入或输出的接口电路,此时端口 A 和 B 分别可作为一个数据端 口,而端口C 的某些位可作为这两个数据端口的控制和状态信息。

方式 1 是一种选通的 I/O 方式。在这种方式工作时,端口 A 或端口 B 仍作为数据的 输入/输出,但同时规定端口 C 的某些位作为控制或状态信息,用作一个或两个选通端 口。每一个端口包含有 8 位的数据端口和三条控制线(是固定指定的,不能用程序改变),

并提供中断逻辑。任一个端口都可作为输入或输出。若只有一个端口工作在方式 1,余下 的 13 位,可以工作在方式 0(由控制字决定)。若两个端口都工作在方式 1,端口 C 还留下 两位,这两位可以由程序指定作为输入或输出,也具有置位/复位功能。

方式 2 使外设在单一的 8 位总线上,既能发送,也能接收数据(双向总线 I/O)。工作 时可用程序查询方式,也可用中断方式。方式 2 只用于端口 A。一个 8 位的双向总线端口 (端口 A)和一个 5 位控制端口(端口 C)。输入和输出是锁存的。5 位控制端口是用作端口 A 的控制和状态信息。

通过设置控制端口的控制字可以指定 8255A 的工作。根据控制字的第 7 位的状态,

8255A 将控制字分成两类。

当控制字第 7 位为 1 时,控制字控制各个端口的方式选择。如图 5.24 所示。它可以 使 8255A 的 3 个数据端口工作在不同的工作方式。方式选择控制字将 3 个数据端口分为 两组来设定工作方式,端口A 和端口 C 的高 4 位作为一组,端口 B 和端口 C 的低 4 位作 为一组。

MB

D2 D1 D0

D5 D6

D7

CA1 D4

CA0 D3 MA0

MA1

1 CB1 CB0

图5.24 8255A 端口的方式选择控制字 各个位的用法说明如下。

l MA[1:0]—A 组端口的工作方式 00—方式 0

00—方式 1 0X——方式 2

l AC[1:0]—与 MA[1:0]所选择的 A 组端口工作方式有关 l MB—B 组端口的工作方式

0—方式 0 1—方式 1

l BC[1:0]—与 MB 所选择的 B 组端口工作方式有关

当控制字第7 位为 0 时,控制字对端口 C 按位置位。如图 5.25 所示。

CBC1

D2 D1 D0

D5 D6

D7

RSV0 D4

CBC2 D3 RSV1

RSV2

0 CBC0 CBS

图5.25 8255A 端口 C 的置位/复位控制字 各个位的用法说明如下。

l RSV[2:0]—保留

l CBC[2:0]—端口 C 的为选择 000—端口 C 的 0 位

001—端口 C 的 1 位 010—端口 C 的 2 位 011—端口 C 的 3 位 100—端口 C 的 4 位 101—端口 C 的 5 位 110—端口 C 的 6 位 111—端口 C 的 7 位

l CBS—对选中的置位/复位标志 0—复位

1—置位

在文檔中 嵌 入 式 系 统 应 用 开 发 (頁 180-184)