第六章——并行接口技术

    xiaoxiao2022-06-30  157

    并行通信与并行接口概述

    并行通信就是把一个字符的各位用几条线同时进行传输。实现并行通信的接口就是并行接口,下图的并行接口用一个通道和输入设备相连,另一个通道和输出设备相连,每个通道都配有一定的控制线和状态线。 输入过程: 1.外设将数据送给接口,状态线“数据输入准备好”拉高。 2.接口把数据接收到输入缓冲寄存器中的同时,使“数据输入响应”线作为对外设的响应。 3.外设接到响应后,撤除“数据输入准备好”信号。 4.数据到达接口后,状态寄存器设置“输入准备好”,以便CPU对其进行查询,接口也可以通过外部连线向CPU发送一个中断请求。 5.CPU从并行接口读取数据后,接口会自动清除状态寄存器中的“输入准备好”状态位,并使数据总线处于高阻状态,以便下一个输入过程。

    输出过程: 1.外设从接口取走一个数据后,接口就会将状态寄存器中的“输出准备好”状态位置1,表示CPU可以往接口传输数据,这个状态位可供CPU进行查询。此时,接口也可以通过外部连线向CPU发一个中断请求。故CPU既可以用软件查询的方式,也可用中断方式往接口中输出一个数据。 2.当CPU输出的数据到达接口的输出缓冲器之后,接口会自动清除“输出准备好”状态位,接口往外设发送一个“数据输出准备好信号”来启动外设接收数据。 3.外设收到启动后,便收取数据,并往接口发一个“数据输出响应”信号。 4.接口收到信号后,会将状态寄存器中的“输出准备好”状态位重新置1,以便CPU输出下一个数据。

    可编程并行通信接口8255A

    概述:8255A是Intel系列的并行接口芯片,由于它是可编程的,可通过软件来设置芯片的工作方式,所以,用8255A连接外设时,通常不需要附加外部电路。

    8255A的内部结构

    1.数据端口A、B、C 2.A组控制和B组控制 一方面接受芯片内部总线上的控制字,一方面接受来自读/写控制逻辑电路的读/写命令,据此决定两组端口的工作方式并实现读/写操作。 3.读/写控制逻辑电路 负责管理8255A的数据传输过程。它接受来自CPU的信号,将这些信号进行组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。 4.数据总线缓冲器。

    8255A的芯片引脚信号

    注:A1、A0为端口选择信号。8255A有3个数据端口和1个控制端口。规定当A1,A0为00时,选中A端口;01时选中B端口;10时选中C端口;为11时选中控制口。

    8255A的控制字

    8255A用指令在控制端口中设置控制字来决定其工作。 控制字分为两类。 一类是各端口的方式选择控制字,可使8255A的3个数据端口工作在不同的方式。方式选择控制字常常将3个数据端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组,端口B和端口C的低四位作为一组。 另一类是C端口的按位置1/置0控制字,它可使C端口中的任何一位进行置位或复位。

    方式选择控制字 端口A可工作在三种工作方式中的任何一种,端口B只能工作在方式0或方式1,端口C常常配合端口A和端口B工作,为这两个端口的输入/输出传输提供控制信号和状态信息。 例: 端口A方式0,输出; 端口B方式0,输入; 端口C的高四位,输出; 端口C的低四位,输入; 控制字:1000 0011 即38H 端口C置1/置0控制字 8255A的端口C中的各位均可用置1/置0控制字单独设置,这使其很适合作为控制位使用。 1.D0位决定了是置1还是置0.。如为1,则对端口C中某位置1,为0,则对端口C中某位置0. 2.D3、D2、D1位决定了对C端口中的哪一位进行操作。 例:若要对端口C的PC7位置1,则控制位为00001111B,即0FH。 8255A的工作方式

    方式0 也叫基本输入/输出方式。端口A和端口B可通过方式选择字规定为输入端口或输出端口,端口C分为两个4位端口,高4位为一个端口,低4位为一个端口。这两个4位端口也可以通过方式选择字规定为输入或输出端口。 特点: 1.任何一个端口可作为输入端口,也可作为输出端口 2.各个端口的输入或输出,可以有16种不同的组合 使用场合: 1.同步传送,此时发送方和接受方由一个时序信号来管理,所以,双方互相知道对方的动作,不需要应答信号,此时,对接口的要求很简单,只要可以传送数据即可。因此,三个数据端口都可以传输数据。 2.查询式传送,需要由应答信号。此时将端口A和端口B作为数据端口,把端口C的高4位或低4位规定为输出端口,用来输出一些控制信号,把端口C的另外4位规定为输入端口,用来读入外设的状态。

    应用举例: 此例中,8255A作为连接打印机的接口,工作于方式0。 工作过程为: 当主机要往打印机输出字符时,先查询打印机忙信号,如打印机正在处理一个字符或正在打印一行字符,则忙信号BUSY为1,反之,忙信号为0。故当查询到忙信号为0时,可通过8255A往打印机输出一个字符。此时,要将选通信号STB 置成低电平,然后再使STB为高电平,这样,相当于在STB端输出一个负脉冲,此负脉冲作为选通脉冲将字符送到打印机输入缓冲器中。 现将A端口作为传送字符的通道,工作于方式0,输出方式;B端口未用;端口C也工作于方式0,PC2作为BUSY信号输入端,故PC3PC0为输入方式,PC6作为STB信号输出端,故PC7PC4为输出方式。 端口地址: A:00D0H B:00D2H C:00D4H 控制口:00D6H PP: 1.设置控制字10000001B,A工作于方式0,输出;C高四位输出,低四位输入。 LPST1: 1.读取C端口的数据。 2.检测第3位,即PC2,若为1,继续查询。 3.设置控制字00001101B,拉高PC6。 LPST: 1.读取C端口的数据。 2.检测第3位,即PC2,若为1,继续查询。 3.将需要打印的字符存入AL。 4.将AL中的数据送到端口A。 5.设置AL为00001100B。 6.利用控制字的置C,将PC6拉低。 7.使AL加1. 7.PC6拉高。

    方式1 也叫选通的输入/输出方式。和方式0相比,最重要的差别是A端口和B端口用方式1进行输入/输出传输时,端口C自动提供选通信号和应答信号,这些信号与端口C的若干位有着固定的对应关系,这种关系不是程序可改变的,除非改变工作方式。 特点: 1.端口A和端口B可分别作为两个数据端口工作在方式1,并且,任何一个端口可作为输入端口或输出端口。 2.如果端口A和端口B只有一个工作于方式1,那么,端口C中就有3位被规定为配合方式1工作的信号,此时,另一个端口可工作在方式0,端口C中的其他位也可工作在方式0,即作为输入或输出。 3.如果端口A和端口B都工作在方式1,那么,端口C中就有6位被规定为配合方式1工作的信号,剩下的2位仍可作为输入或输出。

    (1)输入 STB :选通信号输入端,低电平有效。它由外设送往8255A,当STB有效时,8255A接收送来的一个8位数据,从而8255A的输入缓冲器中得到一个新的数据。 IBF:缓冲器满信号,高电平有效。它是8255A输出的状态信息,有效时,表示当前已有一个新的数据在输入缓冲器中,此信号供CPU查询用。IBF信号是由STB使其有效的,而由读信号RD 的后沿即上升沿使其复位。 INTR:8255A送往CPU的中断请求信号,高电平有效。INTR端在STB、IBF均为高时被置为高电平,从而可以向CPU发出中断请求信号。在CPU响应中断读取输入缓冲器中的数据时,由读信号RD 的下降沿将INTR降为低电平。 INTE:中断允许位。对PC4置1,则使A端口处于中断允许状态(我猜内部存在上拉?)。对PC2置1,则使B端口处于中断允许状态。 时序:

    (2)输出 OBF :输出缓冲器满信号,低电平有效。OBF由8255A送给外设,当OBF有效时,表示CPU已向指定的端口输出了数据,所以,OBF是8255A用来通知外设取走数据的信号。OBF由写信号WR 的上升沿置成低电平,由ACK的有效信号使它恢复为高电平。 ACK:外设响应信号,由外设送给8255A,低电平有效。当ACK有效时,表明CPU通过8255A输出的数据已送到外设。 INTR:中断请求信号,当输出设备从8255A端口中提取数据,从而发出ACK信号后,8255A便向CPU发新的中断请求信号,以便CPU再次输出数据。所以,当ACK为高, OBF为高时,INTR便成为有效电平,而当WR 的下降沿来到时,INTR变为低电平。 INTE:中断允许位。PC6为1使端口A的INTE为1,PC2为1使端口B的INTE为1。 时序: 方式1的使用场合: 在方式1下,规定一个端口作为输入端口或输出端口的同时,自动规定了有关的控制信号和状态信号,尤其是规定了响应的中断请求信号。这样,在采用中断方式进行输入/输出 的场合,如外设能为8255A提供选通信号或数据接收应答信号,那么常常使8255A的端口工作于方式1。

    应用举例: 此例中,8255A工作于方式1,作为用中断方式工作的打印机的接口。 8255A的A端口作为数据通道,工作在方式1,输出方式,此时,PC7自动作为OBF 信号输出端,PC6自动作为ACK 信号输入端,而PC3自动作为INTR信号输出端。

    方式2 也叫双向传输方式。 特点: 1.只适用于端口A。此时,CPU对连在A端口的外设既可读,也可写,比如用于磁盘读写。 2.端口A工作于方式2时,端口C用5个数自动配合提供控制信号和状态信息。

    方式2的控制信号和状态信号: 当端口A工作于方式2时,端口C中的PC3~PC7共5位分别作为控制信号和状态信号端。 INTE1和INTE2为中断允许位,分别由PC6和PC4软件决定。 端口A工作在方式2时,输入过程和输出过程的顺序以及各自的次数是任意的。 方式2的使用场合: 如果一个并行外设既可以作为输入设备,并且输入/输出动作不会同时进行,那么,将这个外设和8255A的端口A相连,并使 它工作在方式2,就非常合适。比如,磁盘驱动器就是这样一个外设,主机既可往磁盘输出数据,也可从磁盘输入数据,但数据输出过程和数据输入过程总是不会重合,所以,可将磁盘驱动器的数据线和8255A的PA7 ~ PA0相连,再使PC7 ~ PC3和磁盘驱动器的控制线及状态线相连即可。


    最新回复(0)