第九章 并行通信接口与8255A
【回顾】 微机系统结构及控制信号的名称和作用。
【本讲重点】 I/O接口概述,CPU与I/O接口,I/O接口与系统的连接。8255A芯片的使用。
9.1 CPU与外设之间的数据传输
一.CPU与I/O接口 接口电路按功能可分为两类:
① 使微处理器正常工作所需要的辅助电路:时钟信号或中断请求等; ② 输入/输出接口电路:CPU与外部设备信息的传送(接收、发送)。
最常用的外部设备:如键盘、显示装置、打印机、磁盘机等都是通过输入/输出接口和总线相连的,完成检测和控制的仪表装置也属于外部设备之列,也是通过接口电路和主机相连。
1.为什么要用接口电路:
需要分析一下外部设备的输入/输出操作和存储器读/写操作的不同之处:
存储器都是用来保存信息的,功能单一,传送方式单一(一次必定是传送1个字节或者1个字),品种很有限(只有只读类型和可读/可写类型),存取速度基本上和CPU的工作速度匹配.。 外部设备的功能多种多样的(输入设备,输出设备,输入设备/输出设备),信息多样(数字式的,模拟式的),信息传输的方式(并行的,串行的),外设的工作速度通常比CPU的速度低得多,而且各种外设的工作速度互不相同,这也要求通过接口电路对输入/输出过程起一个缓冲和联络的作用。
注:接口电路完成相应的信号转换、速度匹配、数据缓冲等功能 2.接口的功能(8种):
⑴寻址能力:对送来的片选信号进行识别。
⑵输入/输出功能:根据读/写信号决定当前进行的是输入操作还是输出操作。 ⑶数据转换功能:并行数据向串行数据的转换或串行数据向并行数据的转换。 ⑷联络功能:就绪信号,忙信号等。
⑸中断管理:发出中斯请求信号、接收中断响应信号、发送中断类型码的功能。并具有优先级管理功能。
⑹复位:接收复位信号,从而使接口本身以及所连的外设进行重新启动。 ⑺可编程:用软件来决定其工作方式,用软件来设置有关的控制信号。
1
⑻错误检测:一类是传输错误。另—类是覆盖错误。 注:一些接口还可根据具体情况设置其它的检测信息。 二.I/O接口与系统的连接
1.CPU与I/O设备之间的信号(三类)
(1) 数据信息 包括三种形式:数字量、模拟量 、开关量 (2) 状态信息 是外设通过接口往CPU传送的
如:“准备好”(READY)信号、“忙”(BUSY)信号
(3) 控制信息 是CPU通过接口传送给外设的 如:外设的启动信号、停止信号就是常见的控制信息
2.接口部件的I/O端口:
⑴数据端口、⑵控制端口、⑶状态端口
CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口有一个端口地址。用于对来自CPU和内存的数据或者送往CPU和内存的数据起缓冲作用的,这些端口叫数据端口。用来存放外部设备或者接口部件本身的状态,称为状态端口。用来存放CPU发出的命令,以便控制接口和设备的动作,这类端口叫控制端口。如下图
注:⑴ 输入还是输出,所用到的地址总是对端口而言的,不是对接口部件而言的。
⑵ 为了节省地址空间,将数据输入端口和数据输出端口对应同一个端口地址。同样,状态端口和控制端口也常用同一个端口地址。
⑶ CPU对外设的输入/输出操作就归结为对接口芯片各端口的读/写操作。 3.接口与系统的连接.
接口电路位于CPU与外设之间,从结构上看,可以把一个接口分为两个部分, ⑴ 用来和I/O设备相连;
2
⑵用来和系统总线相连,这部分接口电路结构类似,连在同一总线上。 下图是一个典型的I/O接口和外部电路的连接图:
联络信号:读/写信号,以便决定数据传输方向。
地址译码器,片选信号:地址译码器除了接收地址信号外,还用来区分I/0地址空间
和内存地址空间的信号(M/IO)用于译码过程。 注:⑴一个接口通常有若干个寄存器可读/写,
⑵一般用1-2位低位地址结合读/写信号来实现对接口内部寄存器的寻址。 4.输入输出的寻址方式
CPU对外设的寻址方式通常有两种: (1) 存储器对应输入输出方式
每一个外设端口占有存储器的一个地址。
优点:CPU对外设的操作可使用全部的存储器操作指令,寻址方式多,使用方便灵活,且可寻址的外设数量多。
缺点:由于外设占用了存储单元的地址,使内存的容量减小,同时,程序的可读性下降。 (2) 端口寻址的输入输出方式
CPU有专门的输入输出指令( IN, OUT),通过这些指令中的地址来区分不同的外设。 优点:容易掌握,编出的程序可读性好。
缺点:可寻址的范围较小,还必须有相应的控制线(M/IO)来区分是寻址内存还是外设。
3
9.2 可编程并行接口芯片8255A
一.并行通信与接口
并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。
Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。 二.8255A的编程结构
8255A由以下几部分组成:见图9-1
1.三个数据端口A,B,C
这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。
·A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。 ·B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。
·C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。
4
图9-1 8255A的编程结构