第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版)清华大学出版社

版权声明:本文为CSDN博主「Vanranrr」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46716100/article/details/122190515

生成海报
点赞 0

Vanranrr

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

一文给你讲清楚 UART ,IIC ,SPI

基础知识介绍 什么是并行通信和串行通信 串行通信:串行通信是指利用一条传输线将数据一位位地顺序传送。 传输方式:传输一个字节(8个位)的数据时,串口是将8个位排好队&#x

RT-Thread Studio移植LAN8720A驱动

RTT网络协议栈驱动移植(霸天虎) 1、新建工程 ​ 工程路径不含中文路径名,工程名用纯英文不含任何符号。 2、用CubeMx配置板子外设 2.1、配置时钟 ​ 按照自己板子配置相应时钟。

【STM32Cube笔记】12-配置外部中断

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配