《并行通信及其接口技术.ppt》由会员分享,可在线阅读,更多相关《并行通信及其接口技术.ppt(43页珍藏版)》请在三一办公上搜索。
1、第9章 并行通信及其接口技术,高速缓冲存储器Cache的地址映像及其方式并行接口的工作过程及其特点。8255A的编程结构。8255A的控制字及工作方式。8255A的应用。,主要内容,9.1 并行接口,9.1.1 并行接口的构成,实现并行通信的接口就是并行接口。,1.并行接口的输入过程,输入设备将数据准备好之后,就使“数据输入准备好”信号线变为有效信号,并行接口收到该信号后,将向输入设备发出“数据输入回答”信号。接着,输入设备的数据将进入并行接口的输入缓冲寄存器中,与此同时撤消“数据输入准备好”信号。一旦数据输入完成,并行接口置位状态寄存器中的“输入准备好”位。这时有两种方法使数据输入到CPU中
2、,一是CPU查询状态寄存器中的“输入准备好”位,一旦发现置位就从输入缓冲寄存器中取走数据;二是并行接口向CPU发出中断请求信号,CPU响应后,再将数据取走。数据从输入缓冲器中取走后,并行接口将自动清除“输入准备好”状态位,并使数据总线呈高阻状态,进行下一次输入。,2.并行接口的输出过程,输出设备准备好接收数据后,就向并行接口发出“数据输出回答”有效信号,并行接口接到该信号后,将置位状态寄存器中的“输出准备好”位。与输入过程相似,也有两种方法通知CPU输出数据。一是CPU查询状态寄存器中的“输出准备好”位,一旦发现置位就向输出缓冲寄存器中发送数据;二是并行接口向CPU发出中断请求信号,CPU响应
3、后,再将数据发送。当数据进入到输出缓冲寄存器之后,将清零状态寄存器中的“输出准备好”位。此时,并行接口会向输出设备发出“数据输出准备好”有效信号,通知输出设备接收数据。当输出设备启动后,就将数据从输出缓冲寄存器中取走,与此同时,并行接口撤消“数据输出准备好”信号。然后,输出设备将向并行接口发出“数据输出回答”有效信号,从而进行下一次输出。,9.1.2 并行接口的特点,输出设备并行接口的特点主要有以下两个方面。,(1)并行接口是把一个字符的各数位用几条线同时进行传输的通信方式,适用于近距离传送的场合。,(2)从并行接口的电路结构来看,并行口有硬连线接口和可编程接口之分。,9.2 可编程并行通信接
4、口8255A,9.2.1 8255A的基本性能及外部引脚,1.8255A的基本性能,(1)8255A最多可提供24位并行输入/输出端口。,(2)可以根据数据传送方式的需要,对8255A进行灵活的设置。,(3)8255A是一种可编程并行接口芯片,并且使用起来特别灵活。,(4)8255A芯片中的一个亮点就是设计了C口。,(5)8255A内部的寄存器主要有三个:控制寄存器、状态寄存器和数据寄存器。,2.8255A的外部引脚,8255A是一个具有40个外部引脚的双列直插式芯片,该芯片依靠单一的+5V电源供电。与所有接口芯片一样,它需要完成外部设备与CPU之间的信息传递,所以它的外部引脚可以分为面向系统
5、总线的引脚和面向外部设备的引脚两大类。,9.2.2 8255A的编程结构,8255A的内部主要有数据输入输出端口,A组控制器和B组控制器,数据缓冲器及读写控制逻辑等。,1.并行输入/输出端口A、B、C,(1)端口A。端口A包含一个8位数据输出锁存/缓冲器和一个8位数据输入锁存器,(2)端口B。端口B包含一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器。,(3)端口C。端口C包含一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器。,2.A组和B组控制部件,端口A与端口C的高4位(PC7PC4)构成A组,由A组控制部件实现控制功能。端口B与端口C的低4位(PC3PC0)构成B组,由B组控制部
6、件实现控制功能。,这是一个三态双向8位数据缓冲器,它是8255A与8086CPU之间的数据接口。,负责管理8255A的数据传输过程,与CPU地址总线中的A0、A1以及RESET、相连,一共具有6根控制线。,3.数据总线缓冲器,4.读/写控制部件,9.3 8255A的控制字及工作方式,9.3.1 8255A的控制字,8255A可以通过指令在控制端口中设置控制字来决定它的工作方式。控制字分为两类。一类是8255A各端口的方式选择控制字,另一类是C端口按位置1/置0控制字。,方式选择控制字可以使8255A的3个数据端口工作在不同的工作方式。,C端口按位置1/置0控制字可以使C端口中的任何一位进行置位
7、或复位。,1.方式选择控制字,格式,使用举例,2.C端口按位置1/置0控制字,格式,端口C的数位常常作为控制位使用。,9.3.2 8255A的工作方式,方式0基本输入/输出方式,方式1选通输入/输出方式,方式2双向传送方式,1.方式0,(1)方式0的特点,方式0是基本输入/输出方式的简称。,由于在方式0下,存在四个独立的并行端口,它们都可以分别设为输入或输出使用,所以共有16种不同的组合方式。,在方式0下,输入/输出过程是由数据传送的要求,根据用户的设置而定的,也就是说,各端口的信号线之间没有固定的时序要求。,方式0是一种单向的I/O传送方式。,方式0示例,8255作为打印机接口,工作于方式0
8、,采用查询方式时,打印机与CPU之间传送数据的过程是:首先查询BUSY。若BUSY=1,打印机忙,则等待;若BUSY=0,打印机不忙,则送数据。通过并行接口把数据送给打印机的数据线上,此时数据并未送入打印机。再送出一个数据选通信号(负脉冲)给打印机的STB引脚,把数据线上的数据打入到打印机的内部缓冲器。打印机在收到数据后,通过BUSY引脚发出“忙”(BUSY=1)信号,表明打印机正在处理输入的数据。打印机处理好输入的数据时,撤消忙信号,同时又送出一个响应信号ACK,CPU采用查询方式把存放在BUF缓冲区的256个字符(ASCII码)送去打印。,设 8255的A、B、C数据口地址分别位60H、6
9、1H、62H、控制口端口地址 63H,DATA SEGMENTBUF DB ABCDEDFCOUNT DB$-BUFA8255 EQU 60HB8255 EQU 61HC8255 EQU 62HCTRL8255 EQU 63HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,CTRL8255;8255控制口MOV AL,10000001B;工作方式字OUT DX,AL;A口0方式输出,C4C7 输出,C0C3输入MOV AL,00001111B;PC7位置高,使STB*=1OUT DX,AL,
10、MOV SI,OFFSET BUF;打印字符内存首地址MOV CX,COUNT;打印字符个数LP2:MOV DX,C8255;PC口地址LP1:IN AL,DX;查BUSY=0?(PC2=0)TEST AL,04H;00000100B JNZ LP1;忙,则等待;不忙,则向A口送数MOV DX,A8255;PA口地址MOV AL,SI;从内存取数OUT DX,AL;送数据到A口MOV AL,CTRL8255;8255命令口MOV AL,00001110B;置STB信号为低(PC7=0)OUT DX,ALNOP;负脉冲宽度(延时)NOPMOV AL,00001111B;置STB为高(PC7=1)
11、OUT DX,AL,INC SI;内存地址加1DEC CX;字符数减1JNZ LP2;未完,继续MOV AX,4C00H;已完,退出INT 21H CODE ENDSEND START,2.方式1,(1)方式1的特点,方式1是选通输入/输出方式的简称。,如果将8255A中的A口和B口都设置为方式1工作,那么C口中将有六位被当作专用的中断请求线和联络信号线,不能将其另做他用。而在C口中剩下的两根引脚,仍可作为输入或者输出使用。,如果8255A的A口和B口中只有一个端口工作在方式1,那么与之配合的C口中就有3位被规定为控制/状态位。,C口中的各专用线时序非常严格。,在数据传送过程中产生的状态信息,
12、可供CPU进行查询或者作为中断请求信号。,(2)方式1的输入/输出时序关系,方式1下输入时的引脚,2.方式1,(2)方式1的输入/输出时序关系,方式1下输入时的工作时序。,2.方式1,(2)方式1的输入/输出时序关系,方式1下输出时的引脚。,2.方式1,(2)方式1的输入/输出时序关系,方式1输出的工作时序。,2.方式1,(3)方式1的状态字,2.方式1,方式1示例,要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255采用方式1工作,乙机一侧的8255采用方式0工作。两机的CPU与接口之间都采用查询方式交换数据。分析 双机均采用可编程并行接口芯片8255构成接口
13、电路,只是8255的工作方式不同。此时,双方的8255把对方视为I/O设备。,A8255 EQU 60HB8255 EQU 61HC8255 EQU 62HCTRL8255 EQU 63HBUFS DB 23,34,;1024个数据MOV DX,CTRL8255;8255命令口MOV AL,10100000B;初始化工作方式字OUT DX,AL MOV SI,OFFSET BUFS;设置发送数据区的指针MOV CX,3FFH;发送字节数LP2:MOV DX,A8255 MOV AL,SIOUT DX,AL;向A口写第一个数,产生第一个 OBF信号送给乙方,以便获取乙方的ACK信号,方式1示例甲
14、机发送程序段,INC SI;内存地址加1,MOV DX,C8255;8255状态口LP1:IN AL,DX;查接收方是否发回答信号?TEST AL,01000000B;PC6=0?JNZ LP1;若还没有收到回答信号,则等待;LOOP LP2;若有收到回答信号,则向A口继续写数 MOV AH,4CH;已完,退出INT 21H;返回乙机接收程序段:(略),方式2的状态字,3.方式2,(2)方式2的输入/输出时序关系及其状态字,要求:某通信系统由两台计算机组成,主从两机都采用8255A作为并行接口芯片。要求主机的8255A采用方式2及中断方式收发数据,并要求能够向CPU提供中断向量;从机的8255
15、A采用方式0及查询方式收发数据。假设主机发送和接收的数据都是128个字节,并且发送数据的首地址为400H,接收数据的首地址为300H,试写出主机的初始化程序代码和相应的中断服务子程序的代码。,3.方式2,(3)方式2的应用举例,分析:由于要求主机的8255A采用中断数据传送方式,并且可以提供中断向量,所以在构建系统连接时,必须选用中断控制器8259A。此时,需将8255A中C口的INTRA中断请求线连接到8259A的某个IR端。又方式2的中断请求线是输入和输出共用的,所以必须通过读取8255A中C口的IBFA位和位,以判断是输入数据还是输出数据,这可在中断服务子程序中编程实现。,3.方式2,(
16、3)方式2的应用举例,设计,3.方式2,(3)方式2的应用举例,第一部分,接口电路连接图,设计,3.方式2,(3)方式2的应用举例,第二部分,假设主机8255A的端口地址分别为200H、202H、204H、206H,8259A的偶地址端口为32H,则主机的初始化程序代码和中断服务子程序代码可得。,端口A:PA0PA7A组,支持工作方式0、1、2常作数据端口,功能最强大端口B:PB0PB7B组,支持工作方式0、1常作数据端口,有时也利用端口A或端口B从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,端口C:PC0PC7仅支持工作方式
17、0可作数据、状态和控制端口分两个4位,每位可独立操作A组控制高4位PC4PC7B组控制低4位PC0PC3控制最灵活,最难掌握,9.4 8255A的应用举例,例1:在某系统中,欲用可编程并行接口芯片的一个口来实现两位输入、两位输出,则应选用8255的。A、A口 B、B口 C、C口 D、A、B口均可,C,例2:并行接口8255与打印机的连线图如下,当A15A2=0000 0000 1100 00经地址译码器输出,使CS=0。试问:,译码器,PA07,PC7,PC0,地,地,BUSY,D07,11,1,29,8255,打印机,CSA0A1,A15:A2,A1A0,(1)A口的工作方式应为。A、方式0
18、 B、方式1 C、方式2 D、方式0或方式1均可,A,(2)8255 C口的工作方式应为。A、方式0 B、方式1 C、方式2 D、方式0或方式1均可(3)I/O传送的控制方式为 方式。A、无条件传送 B、查询 C、中断 D、查询或中断(4)8255 C口的口地址为。A、00C0H B、00C1H C、00C2H D、00C3H(5)8255 A口的口地址为。A、00C0H B、00C1H C、00C2H D、00C3H,A,B,B,A,并行通信是指把一个字符的各数位用几条线同时进行传输的通信方式,当前对并行通信还没有标准化。一般来说,并行接口中具有四个寄存器,分别是控制寄存器、状态寄存器、输入缓冲寄存器和输出缓冲寄存器。8255A是典型的可编程并行通信接口芯片,具有40个外部引脚。其编程结构主要由数据输入输出端口即A口、B口和C口,A组控制器和B组控制器,数据缓冲器及读写控制逻辑等组成。8255A的控制字分为两类。一类是8255A各端口的方式选择控制字,另一类是C端口按位置1/置0控制字。具有三种基本的工作方式:基本输入/输出方式、选通输入/输出方式和双向传送方式。随着工作方式的不同,其C口各位对应的功能也各不相同。,小 结,