并行通信和并行接口课件_第1页
并行通信和并行接口课件_第2页
并行通信和并行接口课件_第3页
并行通信和并行接口课件_第4页
并行通信和并行接口课件_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1

并行通信和并行接口27.1并行接口概述

微机与I/O设备的接口按照数据传送方式的不同,可分为:并行接口和串行接口。并行接口(通信)就是把一个字符(或字)的各个数位用多条数据线同时进行传输。CPU和I/O设备之间传送信息的数据单位一般为“字节”或“字”。如打印机接口等。3串行接口(通信)就是把一个字符(或字)的各个数位用一根数据线进行传输。CPU和I/O设备之间传送信息的数据单位一般为“位”,即一次传送一个信息位。如USB、键盘等。CPU译码器与控制逻辑并行接口串行接口并行设备串行设备数据(8位)选通就绪/忙地数据输出数据输入地ABCBDB图7.1并行接口和串行接口的结构示意图4并行接口优点和缺点传输速度高,但由于用的电缆多,信号线之间相互干扰,所以,不适合于长距离传输,一般用于近距离传送。而串行接口适合于较远距离的传输,传送速度不小于并行接口。并行接口传送数据时,一般不要求固定格式。而串行接口一般要求固定格式。串行接口需要实现并/串(发送数据时)和串/并转换(接收数据时),而并行接口不需要并/串和串/并转换。并行接口电路有不可编程接口和可编程接口两类。前者电路简单,但灵活性差;后者电路复杂但灵活性强。57.2

可编程并行接口芯片82C557.2.18255基本功能7.2.28255内部结构和外部引脚7.2.38255工作方式7.2.48255的控制字与初始化编程7.2.58255应用举例67.2.18255的基本功能有2个独立的8位I/O口(A口和B口),2个4位的I/O口(C口高4位和C口低4位);A、B口具有3种传输方式(8255和外设之间):方式0(基本输入/输出)方式1(选通输入/输出)方式2(双向选通I/O,仅A口具有);CPU与8255之间能使用多种数据传送方式:无条件方式查询方式中断方式;占用4个I/O端口地址(A口、B口、C口、控制端口);C口除用做数据口外,当8255工作在方式1和方式2时,C口的部分引脚作为固定的联络线。77.2.28255内部结构和外部引脚图7.28255的内部结构框图数据总线缓冲器数据总线A组控制端口C(上半部分)端口APA7~PA0PC7~PC4B组控制端口C(下半部分)端口BPC3~PC0PB7~PB0CSRDWRA0A1RESET读/写控制逻辑与CPU接口内部逻辑与外设接口内部数据总线(8位)D0~D781.内部结构:4部分组成(1)数据总线缓冲器双向、三态、8位,8255通过它与系统数据总线相连。用来传送输入/输出数据、CPU发给8255的控制字和CPU从8255接收的状态信息。(2)读/写控制逻辑电路接收来自系统总线的信号A1、A0(在8086系统中为A2、A1)和控制总线的信号,将这些信号进行组合,以完成对数据、状态信息和控制信息的传输。9表7.18255的端口与操作选择表A1A0操作00001读端口A数据00101读端口B数据01001读端口C数据(或状态)00010数据写入端口A00110数据写入端口B01010数据写入端口C01110如D7=1,则数据为控制字,写入控制寄存器;如D7=0,则数据为对C端口的置位/复位命令

1xxx

xD7~D0进入高阻状态

01101非法的信号组合(不允许读控制寄存器)

0xx11D7~D0进入高阻状态

禁止输入(读)输出(写)10(3)A组控制和B组控制模块这两组控制电路接收CPU输出的控制字,以及读/写控制逻辑电路命令,以决定两组端口(A组、B组)的工作方式和读/写操作。A组控制电路:控制端口A和端口C高4位(PC7~PC4)的工作方式和读/写操作。B组控制电路:控制端口B和端口C低4位(PC3~PC0)的工作方式和读/写操作。11(4)数据端口A、B、C(称为PA、PB、PC)端口A:具有1个数据输入锁存器和1个输出锁存器/缓冲器。作输入或输出时,数据均受到锁存。所以可用作双向数据传输。端口B:具有1个数据输入缓冲器和1个输出锁存器/缓冲器。只能工作在输入或者输出方式,不具有同时双向数据传输功能。端口A和端口B作为数据口输入/输出时,是8位一起行动,即使只用其中1位,也要同时输入/输出8位。端口C:每个4位的端口对应1个输入缓冲器和1个输出锁存器/缓冲器。C口只有在端口A、B都工作在简单I/O方式时,才具有2个4位的I/O功能。在更多情况下是作为A、B口的应答联络信号,分别为端口A和端口B提供控制信号和状态信号。12关于C端口的补充说明:作为数据口(端口A、B都工作在方式0时)高4位PC7~PC4与A端口一起组成A组;低4位PC3~PC0与B端口一起组成B组。C端口作为数据口输入/输出时,4位一起行动。作为状态口(8255工作在方式1和2时)C端口作为状态口。作为专用(固定)联络(握手)信号线(8255工作在方式1和2时)方式1或2时,C口大部分引脚作为固定联络线。做按位控制用C口的8个引脚可单独从1个引脚输出高/低电平。此时,C口做按位控制用。132.外部引脚PA3PA2PA1PA0RDCSGNDA1A0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D5D6D7VCCPB7PB6PB5PB4PB3D48255APC7PC2PC6(IBFA)PC5PC4

(INTRB)PC0(IBFB)PC1(INTRA)PC3输出联络信号:输入联络信号:图7.38255

外部引脚14引脚说明(1)与系统总线的连接信号D0~D7:双向三态数据线,与系统数据总线相连。CS:片选信号。低电平有效,有效时表示本芯片被选中。A1和A0:用于选择8255片内寄存器。00:选择A口、01:选择B口、10:选择C口、11:选择控制口)RD和WR:读/写信号,低电平有效。用于CPU从8255读数据或状态;用于CPU往8255写控制字或数据。RESET:复位信号。高电平时清除所有内部寄存器内容,并将3个数据端口置为方式0下的输入端口。(2)与外部设备的连接信号PA7~PA0:端口A与外设连接的数据线,输入/输出线。PB7~PB0:端口B与外设连接的数据线,输入/输出线。PC7~PC0:端口C与外设连接的数据线,输入/输出线。分为两组(高4位、低4位)。157.2.38255工作方式8255工作方式有三种: 方式0:简单输入/输出方式 方式1:选通输入/输出方式(应答方式) 方式2:双向传输方式。1.方式0----简单输入/输出方式端口A、端口B和端口C都可以工作在方式0。此方式下,3个端口中的任何一个端口可作为输入口,也可作为输出口。方式0的使用场合有两种:同步传送(无条件传送)查询式传送16无条件传送时一般用于连接简单的外部设备。例如,键盘和开关状态输入,状态指示灯输出。接口和外部设备之间不需要联络信号线,8255A的3个数据端口可以实现三路数据传输。查询式传输时需要有应答联络信号。一般将端口A和端口B作为数据输入输出口,端口C的若干位用作联络信号。把端口C的一组(4位)规定为输出口,用来输出一些控制信号,而把端口C的另一组(4位)规定为输入口,用来读入外设的状态,两组中剩余的引脚信号还可以用于其它控制,例如控制指示灯或者开关输入。17方式0下,输入时的时序(图7.4)(1)发送地址信号,启动8255,确定端口。(2)RD有效前,外设已将数据发送到8255输入缓冲区。(3)CPU从8255读取数据。读数据的要求:读期间,地址信号保持有效“输入”必须在RD后结束读脉冲RD必须保持足够宽度(>=300ns)(4)读结束后,“输入”、D7~D0和地址信号相继无效。182.方式1----选通输入/输出方式端口A和端口B可以工作在方式1。方式1使用场合有两种:中断方式查询方式采用方式1进行数据传输时,要利用端口C提供选通信号和应答信号,且这些信号与端口C中的引脚关系固定,程序不可以改变。方式1特点:①端口A、B均可工作在方式1,均可作为输入口或者输出口。②若有一个端口为方式1,则端口C中有3位被规定为方式1的应答联络信号。此时,端口C中的其他引脚可以作输入或输出。③若端口A、B都工作在方式1,则端口C中有6位被作为应答联络信号,剩下的2位,仍可作为输入或输出。19(1)方式1的输入111端口B为输入B组工作于方式1输入的控制字D7D6D5D4D3D2D1D0

方式1INTEBPC2PC1PC0INTRBIBFBSTBBRDIBFINTEINTRPC2PC1PC0PA7~PA0INTEAPC4PC5PC3PC6PC7INTRAIBFASTBAI/O2RD10111/0端口A为输入PC6、PC7:A组工作于方式1输入的控制字D7D6D5D4D3D2D1D01—输入0—输出

方式1I/OI/OIBFINTEINTRPC7PC6PC5PC4PC3状态字(C口)图7.6方式1的输入组态(来自外设)(到外设)(中断请求)(来自外设)(到外设)(中断请求)20对于各控制信号,说明如下:①(Strobe):选通信号输入端,低电平有效,由外设送往8255A。有效时,外设将一个8位数据,打入8255A的输入缓冲器中。②IBF(InputBufferFull):缓冲器满信号,高电平有效。是8255A输出给外设的联络信号,作为的响应。当其有效时,表示数据已经输入到8255的输入缓冲器中,且数据未被CPU取走,通知外设停止送数。查询方式时可以读取该信号状态以确定CPU是否从8255读取数据。IBF信号是由信号使其置位,而由读信号的后沿即上升沿使其复位。21③

INTR(InterruptRequest):8255A送往CPU的中断请求信号,高电平有效。INTR在、IBF均为高时被置为高电平,即选通信号将一个数据送进输入缓冲器中,且输入缓冲器满时,8255A向CPU发出中断请求信号。在CPU响应中断读取输入缓冲器中的数据时,由读信号RD的下降沿将INTR降为低电平。④INTE(InterruptEnable):中断允许信号,控制中断允许或屏蔽。由软件通过对C端口的置1/置0指令来实现对中断的控制。对PC4置1,则使A端口处于中断允许状态;对PC2置1,则使B端口处于中断允许状态;对PC4、PC2置0,则使A、B端口处于中断屏蔽状态。22方式1的输入时序图7.7方式1的输入时序INTRtSIT从外设来的输入数据tPStPH①STBtST②③tRIB④IBFtSIBtRITRD238255A与外设之间的应答联络信号RDWRA1A0INTCPU缓冲器并行接口D7~D0A9~A2CS地址译码缓冲器外设8位数据IBFSTBACKOBF24CPU经8255A输入数据的流程:初始状态时,并口输入缓冲器为空,IBF为无效。IBF有效电平将阻止外设数据送出新数据,并使INTR有效数据由外设->8255,选通信号STB有效8255在STB有效电平下将数据锁存,并送出IBF有效到外设CPU响应中断并在中断处理程序中读入并口数据。而该操作产生的RD有效信号会使INTR和IBF无效CPU经8255A输入数据的步骤:CPU8255I/O设备③INTR①STB②IBF④RD25(2)方式1输出图7.8方式1时输出组态110端口B为输出D7D6D5D4D3D2D1D0

方式1INTEBPC2PC1PC0INTRBACKBWRPB7~PB0OBFB端口BOBFINTEINTRPC2PC1PC010101/0端口A为输出PC4、PC5D7D6D5D4D3D2D1D01—输入0—输出方式1INTEAPC6PC7PC3PC4、PC5INTRAACKAI/OWRPA7~PA0OBFA端口AOBFINTEI/OI/OINTRPC7PC6PC5PC4PC3状态字(C口)26对于各控制信号,说明如下:①(OutputBufferFull):输出缓冲器满标志,低电平有效,由8255A送给外设。有效时,表示CPU已经向端口输出了数据,用来通知外设取走数据。由写信号的上升沿将其置成低电平,由的有效信号使它恢复为高电平。②

(Acknowledge):外设响应信号,由外设送给8255A,低电平有效。有效时,表明CPU通过8255A输出的数据已送到外设。27③

INTR(InterruptRequest):中断请求信号,高电平有效。当输出设备从端口取走数据,发回信号后,8255A便向CPU发新的INTR,以便CPU再次输出数据。当变为高电平时,INTR变高电平,而当写信号下降沿来到时,INTR复位。④INTE(InterruptEnable):中断允许信号。与端口A、B在方式1输入情况时INTE的含义一样。INTE为1时,使端口中断允许,INTE为0,使端口中断屏蔽状态。INTE由软件设置,PC6=1,端口A的INTE为1,PC6=0,端口A的INTE为0。PC2=1,端口B的INTE为1,PC2=0,端口B的INTE为0。28方式1输出数据的时序图6-10方式1的输出数据INTRtWITWRtAOB①②③④OBFtWOBtAITtAKACKtWB送往外设的数据数据有效29CPU通过8255A输出数据的流程:

(首次输出必须在中断服务程序外进行)输出锁存器将数据送到外设数据线,并使OBF为有效电平,INTR变为无效。CPU响应中断并在中断处理程序中向接口输出新数据(WR有效)。初始状态时输出缓冲器为空(OBF无效)INTR为有效电平。CPU进入中断处理程序向并口输出缓冲器写数据外设在OBF有效电平作用下取回数据,并送回ACK有效电平8255收到ACK有效电平后使OBF无效并使INTR有效(向CPU发中断请求)。CPU经8255A输出数据的步骤:CPU8255I/O设备①WR②OBF③ACK④INTR303.方式2----双向输入/输出方式图7.10方式2的控制信号110001/0端口B

PC2~PC0D7D6D5D4D3D2D1D01—输入0—输出端口A方式21—输入0—输出

B组方式0=方式01=方式1RDWRINTE1PC7PC6PC5PC2~PC0IBFAOBFAACKAI/OPC3PC4PA7~PA0INTE2STBAINTRAOBFINTE1IBFINTE2INTRPC7PC6PC5PC4PC3状态字(C口)31方式2只适用于端口A,此时,端口C的5个数据位自动分配给端口A作为控制和状态信号。各控制信号和状态信号的含义如下:①INTRA(InterruptRequest):中断请求信号,高电平有效。无论是输入还是输出,当一个动作完成、而要进入下一个动作时,8255A都通过这一引腿向CPU发出中断请求信号。②(Strobe):外设供给8255A的选通信号,低电平有效。此信号将外设送到8255A的数据打入输入锁存器。32③IBFA(InputBufferFull):8255A送往外设的状态信息,表示当前已有一个新的数据送到输入缓冲器中,等待CPU取走。IBFA可作为供CPU查询。④(OutputBufferFull):输出缓冲满信号,8255A送给外设的状态信号,低电平有效。有效时,表示CPU已经将一个数据写入8255A的端口A,通知外设将数据取走。⑤(Acknowledge):外设对信号的响应信号,低电平有效,表明CPU通过8255A输出的数据已送到外设。33⑥INTE1(InterruptEnable):中断允许信号。INTE1为1时,允许8255A通过INTR往CPU发中断请求信号,以通知CPU往8255A的端口A输出一个数据;INTE1为0时,则屏蔽中断请求,INTE1由软件对PC6的设置来决定,PC6=1,则INTE1为1,PC6=0,则INTE1为0。⑦INTE2(InterruptEnable):中断允许信号。INTE2为1时,端口A的输入处于中断允许状态,INTE2为0,则端口A中断屏蔽。INTE2由软件通过对PC4的设置来决定,PC4=1,INTE2为1,PC4=0,则INTE2为0。34在双向方式下,PA口向CPU发出的中断请求只有一个,到底是输入产生的中断还是输出产生的中断,要在中断程序中由软件进行判断:读取PC端口内容,判断对应状态位如果PC7()为1,表明输出的数据已被外设取走,请求输出数据——输出中断;如果PC5(IBF)为1,则表明有数据从外设输入,请求CPU将输入数据读走——输入中断。35小结:端口C在各种工作方式下的应答联络信号端口C各个数据位作A、B口控制、状态信号的对应关系CPU可以通过对控制信号的置位/复位,实现与外设的应答联络;可通过读取C口的状态,来查询和判断数据口的状态端口及I/OPC7PC6PC5PC4PC3PC2PC1PC0端口A输入IBFSTB;INTEINTR端口B输入STB;INTEIBFINTR端口A输出OBFACK;INTEINTR端口B输出ACK;INTEOBFINTR367.2.48255控制字与初始化编程CPU可以通过向8255控制端口中写入控制字来决定8255的工作方式、数据传送方向。控制字分为两类:方式选择控制字:确定各端口工作方式和数据传输方向。将3个数据端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组,端口B和端口C的低4位作为一组。C端口按位置1/置0控制字:它可以使C端口中的任何一位进行置位(置为1)或复位(置为0)。37(1)8255A的工作方式选择控制字1方式选择控制字的标识位D6D500—方式0A端口方式选择10—方式201—方式1D4端口A:1—输入0—输出D0PC3~PC0:1—输入0—输出D1端口B:1—输入0—输出D2B端口方式选择0—方式01—方式1D3PC7~PC4:1—输入0—输出图6-58255A的方式选择控制字388255A的方式选择控制字的几点说明:①8255有3种基本工作方式:方式0:简单输入/输出方式方式1:选通的输入/输出方式方式2:双向传输方式②端口A:可以工作在3种工作方式中的任何一种; 端口B:只能工作在方式0或方式1, 端口C:常常配合端口A和端口B工作,为这两个端口的输入/输出传输提供控制信号和状态信号。③同一组的两个端口可以分别工作在输入方式和输出方式,并不要求为同一种工作方式。39例7.1

某系统要求使用8255的A口工作于方式1作为输入,B口工作于方式0作为输出,C口的上半部输入、下半部输出。8255端口地址为60

63H。完成其初始化程序。分析:由工作方式控制字格式,可得控制字为:

10111000B=0B8H

则初始化程序为: MOVAL,0B8H OUT63H,AL40(2)端口C置1/置0控制字端口C的数据位常常作为控制位使用,所以,端口C中的各位可以用置1/置0控制字单独设置。当8255A接收到写入控制口的控制字时,会对控制字最高位(D7)进行测试。D7=1,则将此字节作为方式选择控制字写入控制寄存器;D7=0,此字节就作为对端口C的置1/置0控制字来处理。41图6-6端口C置1/置0控制字1=置10=置0D00C端口置1/置0标识符

D6D5D4×××无关PC0PC1PC2PC3PC4PC5PC6PC7010101010011001100001111D3D2D1位选择:42对C端口置1/置0控制字的几点说明:①

C端口置1/置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。②置1/置0控制字的D0位决定了是置1操作还是置0操作。如为1,则对端口C中某一位置1,如为0,则置0。③置1/置0控制字的D3、D2、D1位决定了对C端口中的哪一位进行操作。④置1/置0控制字的D6、D5、D4位可为1,也可为0,它们不影响置1/置0操作。但D7位必须为0,它是对C端口置1/置0控制字的标识符。43例7.2

在例7.1中,若A口工作于方式1作为输入,要使用中断传送方式,完成对C口的置位操作。分析:当A口工作于方式1作输入时,由图7.7,采用中断传送方式必须对PC4位置1。 MOVAL,00001001B OUT63H,AL44例7.3

图7.13采用1个8255芯片和软盘控制器相连,箭头标明了I/O的方向,根据该图,试写出8255的初始化程序。设8255端口地址为0300

0303H。PC3PA0PA1…PA7PC4PC5PC6PC7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2D0D1…D7选响响就驱进读写磁启测LJ同索0

通应应绪动退选选盘动试忙步引道(出)(入)磁通通选CRC准传头择备感软盘驱动器好器中断请求45分析:(1)确定各个端口工作方式: 由上图可知,A端口既做输入又作输出,故A端口工作与方式2(PC4~PC7全部用作A端口的固定应答联络线,PC3用作A端口的中断请求);B端口作输出,没有应答线,故工作在方式0。(2)写出控制字和C端口按位置/复位控制字(3)写出初始化程序 MOVDX,303H ;写方式控制字到控制口 MOVAL,0C0H ;0C0H=11000000B OUTDX,AL MOVAL,00001001B ;PC4置位,开放A口输入中断 OUTDX,AL MOVAL,00001101B ;PC6置位,开放A口输出中断 OUTDX,AL467.2.58255应用举例例7.4假设利用8255的A口方式0与打印机相连,将内存缓冲区BUFF中的字符打印输出。硬件连接见图7.14。设8255的工作频率与CPU的工作频率相当。打印机接口要求在STB有效时,才能接收数据;而在BUSY有效时,则表示打印机忙,不能接收数据。编写8255初始化程序及控制程序。D7~D0WRRDPC0A1PC7A0CSD7~D0STBBUSYPA7~PA0D7~D0IOWIORA1A0A7~A2=011000打印机825547分析: MOVAL,88H OUTPORTCN,AL

MOVAL,01H

OUTPORTCN,ALWAIT:INAL,PORTC

TESTAL,80H JNZWAIT MOVAL,[SI] CMPAL,’$’

JZPRINT_OVER

OUTPORTA,AL MOVAL,00H OUTPORTCN,AL MOVAL,01H OUTPORTCN,AL INCSI JMPWAITPRINT_OVER:…初始化8255编写控制程序(查询方式)(1)确定工作方式:A口方式0输出;B口未用;C口高4位输入,低4位输出(2)方式字:10001000B(3)8255初始化编程读打印机状态BUSY=0?(PC7)传送结束?使STB有效;向打印机发送数据结束退出是否是否WAITPRINT_OVER说明:SI中存放待传送数据缓冲区的首地址;‘$’为待传送数据的结束符。48例7.5假设有一个4Х4的矩阵键盘通过并行接口芯片8255与微机相连。8255的A口作为输出口,与键盘的行线相连;B口为输入口,与键盘列线相连。接口硬件连接如下图,设8255的端口地址为60

63H,试编写键盘扫描程序。PA0PA1PA28255PA3PB0PB1PB2PB30行0列1行2行3行+5V1列2列3列CPU01231549分析:要使上述键盘工作,需要做以下工作:(1)使8255工作(对8255进行初始化编程);(2)检测是否有键按下,若有键按下则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论