Skip to content

8255并行通信和并行接口芯片

并行通信

1.并行通信——就是把一个字符的全部n个数据位用

​ n条线同时进行传输。

​ 特点:

​ 传输速度快

​ 效率高

​ 用电缆多

​ 适用场合:数据传输率要求较高,而传输距离较短的场合。

2.并行接口: 实现并行通信的接口

分为:

  1. 输入接口:负责输入信息
  2. 输出接口:负责输出信息
  3. 双向通信接口:既负责输入信息,又负责输出信息

典型的并行接口和外设连接的示意图 :

image-20231017144706625

可编程并行通信接口芯片8255A的应用

8255A的内部结构

8255的内部结构分成两组控制:A组控制和B组控制

  1. A组控制:由端口A以及,端口C的上半部分组成
  2. B组控制:由端口B以及,端口C的下半部分组成
image-20231017144753204

外设接口部分:

① 3个8 位数据端口A、B、C

​ 端口A:输入输出均锁存,数据不易丢失

​ 端口B:输入不锁存,输出锁存

​ 端口C:输入不锁存,输出锁存

② 两组控制

A组控制电路

  1. 端口A PA7-PA0
  2. 端口C的高4位 PC7~PC4

B组控制电路

  1. 端口B PB7-PB0
  2. 端口C的低4位 PC3~PC0

CPU接口部分

① 读/写控制逻辑电路

​ 功能:管理数据传输过程。

② 数据总线缓冲器(双向三态的8位数据缓冲器 )

功能:通过它与系统数据总线相连。

8255A的引脚及功能

image-20231017145322617

1、与外设相连的引脚 24个

PA7~PA0——端口A数据线

PB7~PB0——端口B数据线

PC7~PC0——端口C数据线

2、与CPU相连的引脚 14个

1)RESET——复位信号

2)D7~D0——8255A的数据线

3)CS——片选信号

4)RD——读信号

5)WR——写信号

6)A1、A0——端口选择信号

asm
A1  A0

0    0   端口A

0    1   端口B

1    0   端口C

1    1   控制端口

注意:

​ 因为低8位和偶地址端口相连,所以在8086系统中,将8255A的A1、A0引脚分别接向系统总线A2、A1,并且CPU对8255A的端口进行访问时,应将其地址最低位A0设置为0。

8255A的控制字

根据D7位的状态来决定控制字分两类。

  1. 各端口的方式选择控制字
  2. C端口按位置1/置0控制字

1、方式选择控制字(记住)

方式选择控制字标志:为 1 表示工作方式、为 0 表示 C口 按位

8255A方式选择注意:

  1. 三种基本工作方式:
    1. 方式0:基本输入/输出方式
    2. 方式1:选通工作方式
    3. 方式2:双向传送方式
  2. 只有端口A能工作在方式2
    1. 端口A
      1. 方式0
      2. 方式1
      3. 方式2
    2. 端口B
      1. 方式0
      2. 方式1
    3. 端口C
      1. 方式0
  3. 同一组的两端口可分别工作在输入和输出方式

端口C置位/复位控制字(D7=0)

此控制字必须写入8255A的控制口

8255A的工作方式

1、方式0——基本输入/输出方式

特点 :

1)端口A、端口B、端口C上、下均可作为输入或输出口,且各端口均是独立的。

2)四个端口的输入或输出,可以有16种不同的组合。

3)各端口输入时无锁存,输出时锁存。

使用场合:

1)同步传送 (无条件传送方式)

2)查询式传送

2、方式1——选通的输入/输出方式

必须利用端口C提供的选通信号和应答信号等

特点:

​ 1)端口A和B要在端口C 的配合下工作。

​ 2)端口C中有三位用于端口A的I/O控制,另有三位用于端口B的I/0控制,并且提供中断逻辑。

​ 3)若只有一个数据端口工作在方式1,则另一个数据端口及端口C余下的五位可工作于方式0;

若两个数据端口都工作于方式1,那么端口C余下的两位可作I/O位,也可进行置位/复位操作。

2、方式1 —— 输入

image-20231017222341587

STB非:输入选通,低电平有效,由外设提供。将外设数据锁存于接口的输入端口中。

IBF(Input Buffer Full):输入缓冲器满,高电平有效。

INTR:中断请求,高电平有效。当外设将数据锁存于接口之中,且又允许中断请求发生时,就会产生中断请求。

INTE:中断允许。A口的INTEA由PC4来控制,B口的INTEB用PC2的按位操作来进行控制。(不影响引脚的电平状态)

方式一A口:

​ INTE = 0 关闭(开关中断)

​ INTE = 1 ——》 pc4送1 (指令),按位

asm
mov al,0000 1001 b (打开)  0000 1000 (关闭)
out 控制口 al

方式1—B口:

​ INTE = 0 关闭(开关中断)

​ INTE = 1 ——》 pc2送1 (指令),按位

asm
mov al,0000 0101 b (打开)  0000 0100 (关闭)
out 控制口 al

3、方式1 —— 输出

image-20231018143555256

OBF非:(Output Buffer Full):输出缓冲器满,低电平有效。该信号通知外设,

ACK非:外设响应,低电平有效。该信号通知接口,外设已将数据接收并使OBF非=1。

INTR:中断请求,高电平有效。当外设接收到一个数据后,通过该信号告诉CPU,刚才输出的数据已经被接收,可以再输出下一个数据。

INTE:中断允许。A口和B口的INTR均受INTE的控制。A口的INTEA由PC6来控制,可用C口的按位操作对PC6置位或复位,以对中断INTRA进行控制。同理,B口的INTEB用PC2的按位操作来进行控制。(不影响引脚的电平状态)

8255A应用举例

(1)8255A工作方式0

某接口设计采用一片8255A实现。其端口A连接并行打印机, 端口B连接纸带读入机。8255A工作于方式0,以查询方式传送数据。对8255A初始化并编写相关的程序。

image-20231018143745121

各控制信号的意义为:

DATA STROBE ──数据选通信号。打印机要有一个宽度为0.5μs的脉冲,作为数据选通信号。由PC4位输出。

BUSY──当其有效时为高电平,此时表示打印机“忙”,不能接收新的输出数据。这是打印机的状态信号。由PC2位读入。

DRIVE RIGHT──此信号驱动纸带前进一步,并读一个字符。它是8255A给外设的启动信号。由PC5位输出。

DATA READY──纸带读入器的状态信号。其为高电平表示纸带读入器已将数据准备好。由PC3位读入

⑵ 8255A工作于方式1应用举例

​ 8255A工作于方式1,可以支持CPU以中断方式和外设进行通信。下图是一个使用8255A的接口电路,其中字符打印机以中断方式工作。

image-20231018143843510