第6章 可编程并行通信接口8255A
并行通信与并行接口
并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。
Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。
8255A内部结构
1、数据端口A、B、C
- A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能;
- B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。
- C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。
2、A组控制和B组控制
3、读/写控制逻辑电路
- 读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESET,还有来自系统地址总线的选择端口的信号A0和A1。
4、数据总线缓冲器
- 8位的双向的三态缓冲器。8255A正是通过它与系统总线相连。输入数据、输出数据以及CPU发给8255A的控制字都是通过这个缓冲器传递的。
8255A的芯片引脚信号
1、和外设相连的信号
- PA7~PA0 A端口数据信号,用来连接外设;
- PB7~PB0 B端口数据信号,用来连接外设;
- PC7~PC0 C端口数据信号,用来连接外设或者作为控制信号。
2、和CPU一边相连的信号
- RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;
- D7~D0:8位,双向,三态数据线,用来与系统数据总线相连;
- CS:片选,输入,用来决定芯片是否被选中,CS有效时,读写信号才对8255A有效;
- RD:读信号,输入,控制8255A将数据或状态信息送给CPU;
- WR:写信号,输入,控制CPU将数据或控制信息送到8255A;
- A1、A0 端口选择信号。A1、A0为00,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
8255A的控制字
8255A用指令在控制端口中设置控制字来决定其工作。方式选择控制字中,端口A和端口C的高4位为一组,端口B和端口C的低4位为一组。
第7位称为标识符。D7为1称为方式选择控制字的标识符,D7为0称为C端口的按位置0置1的控制字的标识符。
控制字有两类:
1、方式选择控制字
8255A有三种基本工作方式
- 方式0:基本的输入/输出方式; 适用于无条件传送和查询方式的接口电路,A、B、C三个端口均可 。
- 方式1:选通是输入/输出方式; 适用于查询和中断方式的接口电路,A 、B两个端口均可。
- 方式2:双向传输方式。 适用于与双向传送数据的外设,只有A端口才有,适用于查询和中断方式的接口电路。
端口A可工作在三种工作方式下的任一种,端口B只能工作在方式0或方式1,端口C配合端口A和端口B工作。只有端口A能工作在方式2。
归为同一组的两个端口可分别工作在输入方式和输出方式。
2、端口C置1/置0控制字
- C端口置1/置0控制字尽管是针对端口C进行操作,但必须写入控制端口,而不是写入C端口。
8255的工作方式
1、方式0
- 为一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。
- 方式0的应用场合有两种:一种是同步传送;一种是查询传送。
- 任何一个端口可作为输入口,也可作为输出口,各端口之间没有规定必然的关系。
- 各个端口的输入或输出,可以有16种不同的组合,所以可以适用于多种使用场合
方式0输入时序:
方式0输出时序:
2、方式1
(1)输入
- 方式1是一种选通I/O方式,
- A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出。
- 而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。
方式1输入引脚:A端口
方式1输入引脚:B端口
方式1需借用端口C用做联络信号,同时还具有中断请求和屏蔽功能
方式1输入联络信号
- STB——选通信号,低电平有效
由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 - IBF——输入缓冲器满信号,高电平有效
8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器,作为STB的回答信号
STB和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据 - INTR——中断请求信号,高电平有效
8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据
INTR置位的条件是STB为高,且IBF为高,INTE为高。 - INTE——中断允许信号,8255A的中断由中断允许触发器INTE控制。置位允许中断,复位禁止中断。对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器。
选通输入方式下,端口A的INTEA对应PC4置位来实现,端口B的INTEB对应PC2置位来实现。
方式1输入时序
(2)输出
方式1输出引脚:A端口
方式1输出引脚:B端口
端口A的INTEA对应PC6
端口B的INTEB对应PC2
方式1输出联络信号
- OBF——输出缓冲器满信号,低有效
8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 - ACK——响应信号,低有效
外设的响应信号,指示8255A的端口数据已由外设接受
OBF和ACK是外设和8255A间的一对应答联络信号,为的是可靠地输出数据 - INTR——中断请求信号,高有效
当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据
方式1输出时序
3、方式2(双向方式)
- 方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据
- 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同
- 方式2的数据输入过程与方式1的输入方式一样
- 方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据
方式2双向引脚
方式2双向时序
以上内容参考自《微型计算机技术与应用》(第4版)清华大学出版社