您好,欢迎访问三七文档
第11章并行I/O接口微机系统的信息交换有两种方式:并行通信方式和串行通信方式。并行通信是以微机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据,适合于外部设备与微机之间进行近距离、大量和快速的信息交换。实现并行通信的接口称之为并行接口。一个并行接口可设计为只作为输入或输出接口,还可设计为既作为输入又作为输出接口,即双向输入/输出接口。8255A是Intel86系列微处理机的配套并行接口芯片,它可为86系列CPU与外部设备之间提供并行输入/输出通道。由于它是可编程的,可以通过软件来设置芯片的工作方式,因此,用8255A连接外部设备时,通常不用再附加外部电路,使用较为方便。本章首先介绍可编程并行I/O接口芯片8255A的结构和基本工作方式,然后以8255A与打印机、键盘、LED数码管等外设的接口为例,说明8255A具体应用。11.1可编程并行I/O接口芯片8255A11.1.18255A的基本功能和内部结构8255A的内部结构和引脚图分别如图11.1和图11.2所示。由图11.1可见,8255A由以下几部分组成:1.并行输入/输出端口A,B,C图11.18255A的内部结构8255A芯片具有24个可编程输入输出引脚,分成3个8位端口。其中:端口A包含一个8位数据输出锁存/缓冲寄存器和一个8位数据输入锁存器;端口B包含一个8位数据输入/输出、锁存/缓冲寄存器和一个8位数据输入缓冲寄存器;端口C包含一个输出锁存/缓冲寄存器和一个输入缓冲寄存器。必要时端口C可分成两个4位端口,分别与端口A与端口B配合工作。通常将端口A和端口B定义为输入/输出的数据端口,而端口C可作为状态或控制信息的传送端口。图11.28255A的芯片引脚信号2.A组和B组控制部件端口A与端口C的高4位(PC7~PC4)构成A组,由A组控制部件实现控制功能,端口B与端口C的低4位(PC3~PC0)构成B组,由B组控制部件实现控制功能。它们各有一个控制单元,可接收来自读/写控制部件的命令和CPU通过数据总线(D7~D0)送来的控制字,并根据它们来定义各个端口的操作方式。3.数据总线缓冲器这是一个三态双向8位数据缓冲器,它是8255A与8086CPU之间的数据接口,CPU输入输出的数据,CPU输出的控制字以及外设的状态信息都是通过这个缓冲器进行传送。4.读/写控制部件这是8255A内部完成读/写控制功能的部件,它与CPU的地址总线及有关的控制信号相连,接收CPU的控制命令,并根据它们向片内各功能部件发出操作命令。可接收的控制信号如下:(1)CS:片选信号。由CPU输入,CS有效,表示该8255A被选中。(2)RD,WR:读、写控制信号。由CPU输入,RD有效,表示CPU读8255A,应由8255A向CPU传送数据或状态信息。WR有效,表示CPU写8255A,应由CPU将控制字或数据写入8255A。(3)RESET:复位信号。RESET有效时,清除8255A中所有控制字寄存器内容,并将各端口置成输入方式。(4)A1、A0:端口选择信号。当A1A0=00,选择端口A;当A1A0=01,选择端口B;当A1A0=10,选择端口C;当A1A0=11,选择控制字寄存器。由端口地址A1A0和相应控制信号组合起来可定义各端口的操作方式如表11.1所示。表11.18255A的读写操作控制11.1.28255A的控制字及其工作方式8255A各端口共有3种基本工作方式:方式0——基本输入/输出方式;方式1——选通输入/输出方式;方式2——双向传送方式。端口A可处于3种工作方式(方式0,方式1或方式2),端口B只可处于两种方式(方式0或方式1),端口C常常被分成高4位和低4位两部分,可分别用来传送数据或控制信息。用户通过设置控制字来定义3个端口的工作方式,可使用的控制字有工作方式控制字和置位/复位控制字,它们共用同一个端口地址。1.控制字(1)工作方式控制字:格式如图11.3所示。通过定义工作方式控制字可将3个端口定义为各种不同方式的组合。图11.38255A工作方式控制字格式(2)置位/复位控制字:只对端口C有效。端口C的任一位,可用这个控制字来置位或复位,而其他位不变,使用格式如图11.4所示。2.工作方式图11.48255A置位/复位控制字格式(1)工作方式0:这是8255A中各端口的基本输入/输出方式。它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息。如果3个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合。工作方式0控制字的具体格式如图11.5所示。图11.58255A工作方式0控制字格式由控制字中D4D3D1D0等4位的不同取值可定义方式0的16种工作方式的组合,如表11.2所示。方式0中,端口C被分成两个4位端口,它们可被定义为输入或输出端口,CPU与3个端口之间交换数据可直接由CPU执行IN和OUT指令来完成。(2)工作方式1:被称作选通输入/输出方式,在这种工作方式下,数据输入/输出操作要在选通信号控制下完成。采用工作方式1进行输入操作时,需要使用的控制信号如下:①STB——选通信号。由外设输入,低电平有效。STB有效时,将外设输入的数据锁存到所选端口的输入锁存器中。对A组来说,指定端口C的PC4用来接收向端口A输入的STB信号;对B组来说,指定端口C的PC2用来接收向端口B输入的STB信号。②IBF——输入缓冲存储器满信号。向外设输出,高电平有效。IBF有效时,表示由输入设备输入的数据已占用该端口的输入锁存器,它实际上是对STB信号的回答信号,待CPU执行IN指令时,RD有效,将输入数据读入CPU,其后沿将IBF置“0”,表示输入缓冲存储器已空,外部设备可继续输入后续数据。对A组来说,指定端口C的PC5作为从端口A输出的IBF信号;对B组来说,指定端口的PC1作为从端口B输出的IBF信号。③INTR——中断请求信号,高电平有效。INTR在STB、IBF均为高时被置为高电平,也就是说,当选通信号结束、已将一个数据送进输入缓冲存储器中,并且输入缓冲区满信号已为高电平时,8255A向CPU发出中断请求信号,即将INTR端置为高电平。在CPU响应中断读取输入缓冲存储器中的数据时,由RD的下降沿将INTR置为低电平。④INTE——中断允许信号,实际上,它是一个控制中断允许或中断屏蔽的信号。INTE没有外部引出端,它通过对端口C的置1或清0指令来实现对中断的控制。具体讲,对PC4置1,则使端口A处于中断允许状态;对PC4清0,则使端口A处于中断屏蔽状态。与此类似,对PC2置1,则使端口B处于中断允许状态;对PC2清0,则使端口B处于中断屏蔽状态。当然,如果要使用中断功能,应该用软件使相应的端口处于中断允许状态。表11.2方式0的工作状态组合显然,8255A中的端口A和端口B均可工作于方式1输入模式,其工作方式控制字格式如图11.6所示,端口状态如图11.7所示。图11.6工作方式1输入控制字格式(a)端口A方式1输入(b)端口B方式1输入图11.7方式1输入端口状态从图11.7可看出,当端口A和端口B同时被定义为工作方式1完成输入操作时,端口C的PC5~PC0被用作控制信号,只有PC7和PC6位可完成数据输入或输出操作,因此可构成两种组合状态:它们是端口A,B输入,PC7,PC6同时输入和端口A,B输入,PC7,PC6同时输出。采用工作方式1也可完成输出操作,这时需要使用的控制信号如下:①OBF——输出缓冲存储器满信号。向外设输出,低电平有效。OBF有效时,表示CPU已将数据写入该端口正等待输出。当CPU执行OUT指令,WR有效时,表示将数据锁存到数据输出缓冲器,由WR的上升沿将OBF置为有效。对于A组,规定PC7用作从端口A输出的OBF信号,对于B组,规定PC1用作从端口B输出的OBF信号。②ACK——外设应答信号。由外设输入,低电平有效。ACK有效,表示外部设备已收到由8255A输出的八位数据,它实际上是对OBF信号的回答信号。对于A组,指定PC6用来接收向端口A输入的ACK信号;对于B组,指定PC2用来接收向端口B输入的ACK信号。③INTR——中断请求信号。高电平有效。当输出设备从8255A端口中提取数据,从而发出ACK信号后,8255A便向CPU发出新的中断请求信号,以便CPU再次输出数据,因此ACK变为高电平且OBF也为高电平时,INTR被置为高电平。而当写信号WR的下降沿来到时,INTR变为低电平。④INTE——中断允许信号。与端口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。如果将8255A中的端口A和端口B均定义为工作方式1输出模式,那么工作方式控制字的具体格式如图11.8所示,经这样定义的端口状态如图11.9所示。从图11-9中可看出,当端口A和端口B同时被定义为工作方式1完成输出操作时,端口C的PC6,7和PC3~PC0被用作控制信号,只有PC4,5两位可完成数据输入或输出操作。因此可构成两种组合状态:①端口A,B输出,PC4,5同时输入;②端口A,B输出,PC4,5同时输出。图11.8方式1输出控制字格式(a)端口A方式1输出(b)端口B方式1输出图11.9方式1输出端口状态采用工作方式1时,还允许将端口A和端口B分别定义为输入和输出端口,如将端口A定义为方式1输入端口,而将端口B定义为方式1输出端口等等。具体情况,请自行分析。(3)工作方式2被称作带选通的双向传送方式。8255A中只允许端口A处于工作方式2,可用来联接双向I/O设备或用于在两台处理机之间实现双向并行通信等。其有关的控制信号由端口C提供,并可向CPU发出中断请求信号。当端口A工作于方式2时,允许端口B工作于方式0或方式1,其方式控制字格式如图11.10所示。图11.10端口A方式2控制字端口A工作于方式2的端口状态如图11.11所示。由图可看出,端口A工作于方式2所需要的5个控制信号分别由端口C的PC7~PC3来提供。如果端口B工作于方式0,那么PC2~PC0可用作数据输入/输出;如果端口B工作于方式1,那么PC2~PC0用来作端口B的控制信号(图11.11中未示出)。端口A工作于方式2所需控制信号如下:①AOBF——输出缓冲器满信号。向外设输出,低电平有效。AOBF有效,表示要求输出的数据已锁存到端口A的输出缓存器中,正等待向外部输出。CPU用OUT指令输出数据时,由WR信号后沿将AOBF置成有效。规定PC7用作端口A输出的AOBF信号。②AACK——应答信号。由外设输入,低电平有效。AACK有效,表示外设已收到端口A输出的数据,由AACK后沿将OBF置成无效(高电平),表示端口A输出缓冲器已空,CPU可继续向端口A输出后续数据。它实际上是AOBF的回答信号。规定PC6用来接收输入的AACK信号。③ASTB——数据选通信号。由外设输入,低电平有效。ASTB有效,将外设输入的数据锁存到数据输入锁存器中,规定PC4用来接收输入的ASTB信号。④IBFA——输入缓冲器满信号。向外设输出,高电平有效。IBFA有效时,表示外设已将数据输入到端口A的数据输入锁存器中,等待向CPU输入,它实际上是对ASTB的回答信号。规定PC5用作输出的IBFA信号。⑤INTRA——中断请求信号,高电平有效。不管是输入动作还是输出动作,当一个动作完成时,8255A都通过这一引脚向CPU发出中断请求信号。⑥INTE1——中断允许信号。INTE1为1时,端口A的输出处于中断允许状态;INTE1为0时,则屏蔽了输出的中断请求。CPU可通过软件对PC6进行设置来决定INTE1的状态,PC6为1,则INTE1为1,PC6为0,则INTE1为0。图11.11
本文标题:第11章并行I
链接地址:https://www.777doc.com/doc-2242235 .html