第六章——并行接口技术

并行通信与并行接口概述

并行通信就是把一个字符的各位用几条线同时进行传输。实现并行通信的接口就是并行接口,下图的并行接口用一个通道和输入设备相连,另一个通道和输出设备相连,每个通道都配有一定的控制线和状态线。
在这里插入图片描述
输入过程:
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和磁盘驱动器的控制线及状态线相连即可。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ansystool手写中间件的并行框架是一种用于优化计算过程中并行执行的工具。它基于并行计算的理论和技术,结合了分布式计算、并发编程和并行算法等多种技术手段,旨在提高计算性能和效率。 这个并行框架可以将计算任务划分成多个子任务,然后并行地执行这些子任务,从而加快整个计算过程的速度。它可以根据计算需求的特点和硬件环境的情况,选择合适的并行策略和算法,使得计算任务能够得到有效地分解和并行化。 ansystool手写中间件的并行框架还提供了丰富的并行编程接口和工具,使得开发人员可以方便地利用并行计算资源,编写高效的并行代码。它支持任务调度、数据传输、同步和通信等关键操作,以及任务分配、负载均衡和故障处理等关键功能,保证了整个并行计算过程的正确性和稳定性。 此外,ansystool手写中间件的并行框架还具有良好的可扩展性和灵活性,可以根据计算任务的规模和要求,进行弹性的资源分配和管理。它可以利用现有的计算资源,也可以扩展到多个计算节点或集群,在大规模并行计算场景下,仍然能够保持高效的计算性能和吞吐量。 总之,ansystool手写中间件的并行框架是一种强大的工具,可以帮助开发人员利用并行计算的优势,提高计算性能和效率。它在分布式计算、并发编程和并行算法等领域都具有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值