甘肃冶金高级技术学院第七章常用外围设备接口技术2019/10/4甘肃冶金高级技术学院3本章学习目标1、掌握简单的并行接口芯片的外特性与应用2、掌握8255A的结构、工作原理和硬件连接3、掌握8255A的初始化方法4、掌握简单并行接口的应用2019/10/4甘肃冶金高级技术学院47.1概述2019/10/4甘肃冶金高级技术学院51、可编程接口芯片概述接口电路应具有如下电路单元:①输入/输出数据锁存器和缓冲器用于解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用。②控制命令和状态寄存器用来存放CPU对外设的控制命令,以及外设的状态信息。③地址译码器用来选择接口电路中的不同端口。④读写控制逻辑⑤中断控制逻辑2019/10/4甘肃冶金高级技术学院62、片选概念A7~A0CE译码器接口芯片同内存储器的读/写操作相仿,必须要有一个地址信号选中接口芯片后,才能使该芯片进入电路工作状态,实现数据的输入/输出。CPU的地址线通过地址译码器输出接到接口芯片的选通端CE,又称片选端。片选端是控制接口芯片进入电路工作状态的引脚端。只有CE被选中后,CPU才能通过该芯片与对应的I/O设备传送数据。2019/10/4甘肃冶金高级技术学院73、读/写概念读操作时,输入接口信息由数据总线进入CPU,数据何时读入CPU,由RD控制。写操作时,数据何时由数据总线进入输出接口芯片由WR控制。DBRDCE输入口DBWRCE输出口2019/10/4甘肃冶金高级技术学院84、可编程接口的概念多通道是指一个接口芯片一面与CPU连接,另一面可接几个外设。多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。可编程是指通过计算机的指令来选择不同的通道和不同的电路功能。可编程芯片是指接口电路的组态可由计算机指令来控制的接口芯片。接口芯片中用来存放控制电路组态的控制字节的寄存器称为控制寄存器。2019/10/4甘肃冶金高级技术学院95、联络的概念数据线接口外设STBRDY2019/10/4甘肃冶金高级技术学院107.2简单的输入输出接口2019/10/4甘肃冶金高级技术学院11简单的I/O接口的扩展通常用74LS244(8位三态缓冲器及总线驱动器)扩展输入口,用74LS273(8D锁存器)扩展输出口。2019/10/4甘肃冶金高级技术学院122019/10/4甘肃冶金高级技术学院13•若要求当某键按下时,相应的LED发光,则接口程序如下:LOOP:MOVDPTR,#PORT1MOVXA,@DPTRMOVDPTR,#PORT2MOVX@DPTR,AJMPLOOP2019/10/4甘肃冶金高级技术学院14•在扩展接口时,还应注意两点:⑴I/O地址的安排,如果扩展的接口不多,则可用线选寻址,在图中P2.0来选择一个输入口和一个输出口。线选法未能使地址空间得到充分利用,对于RAM和I/O口容量较大的系统,可用74LS138作为地址译码器,译码出的信号作为片选信号。2019/10/4甘肃冶金高级技术学院15⑵总线负载能力的扩大:P0口作地址/数据总线时,其负载能力为8个LSTTL电路,P2口作为地址总线时,其负载能力为4个LSTTL电路,如果超过必须增加总线驱动器,如:74LS244(单向)、74LS245(双向)等。2019/10/4甘肃冶金高级技术学院167.3可编程并行接口芯片8255A2019/10/4甘肃冶金高级技术学院171、概述INTEL8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”。•具有多种功能的可编程并行接口电路芯片–最基本的接口电路:三态缓冲器和锁存器–与CPU间、与外设间的接口电路:状态寄存器和控制寄存器–还有端口的译码和控制电路、中断控制电路•共24个外设引脚,分3个端口、2组控制•共三种输入输出工作方式2019/10/4甘肃冶金高级技术学院182、8255A的结构和功能1.8255A的内部结构①数据总线一个三态8位双向缓冲器,用作8255A同系统数据总线相连时的缓冲部件,CPU通过执行输入/输出指令来实现对缓冲器发送或接收数据。8255A的控制字和状态字也是通过该缓冲器传送的。②三个8位数据端口PA、PB、PC端口A:一个8位数据输出锁存/缓冲器;一个8位数据输入锁存器。端口B:一个8位数据输入/输出、锁存/缓冲器;一个8位数据输入缓冲器。端口C:一个8位数据输出锁存/缓冲器;一个8位数据输入缓冲器(输入没有锁存)。2019/10/4甘肃冶金高级技术学院19•端口A:PA0~PA7–A组,支持工作方式0、1、2•端口B:PB0~PB7–B组,支持工作方式0、1•端口C:PC0~PC7–仅支持工作方式0–A组控制高4位PC4~PC7–B组控制低4位PC0~PC3端口A:PA0~PA7常作数据端口,功能最强大端口B:PB0~PB7常作数据端口端口C:PC0~PC7可作数据、状态和控制端口分两个4位,每位可独立操作控制最灵活,最难掌握端口作用与特点2019/10/4甘肃冶金高级技术学院20③A组和B组控制电路由A、B两组控制电路组成。主要作用是根据CPU发出的方式选择控制字控制8255A的工作方式,每个控制组都接收来自读/写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号;也可根据控制字的要求对C口按位进行置位或复位。A组控制部件用来控制PA口和C口的高4位,B组控制部件用来控制PB口和PC口的低4位。④读/写控制逻辑用来管理数据信息、控制字和状态字的传送,它接收来自CPU地址总线的A1、A0和控制总线的有关信号(RD、WR、RESET等),向8255A的A、B两组控制部件发送命令。2019/10/4甘肃冶金高级技术学院21数据总线缓冲器内部控制线内部数据线D0~D7A组控制A组端口AA组端口C高4位B组控制B组端口BB组端口C低4位读写控制逻辑PC0~PC3PB0~PB7PC4~PC7PA0~PA7RDWRA0A1CSRESET8255A的结构框图2019/10/4甘肃冶金高级技术学院222.8255A的引脚功能2019/10/4甘肃冶金高级技术学院233、8255A的工作方式与初始化1.工作方式①方式0-基本输入∕输出方式0下,每一个口都作为基本的输入输出口,C口的高4位和低4位以及A口、B口都可以独立地设置为输入口或输出口。基本输入∕输出下工作时,CPU可以采用无条件读写方式与8255A交换数据,也可采用查询方式。基本输入∕输出下工作时,输出的数据被锁存,而输入数据是不锁存的。②方式1-选通输入∕输出方式1下将三个端口分成A、B两组,A、B两个口作为数据口,C口分成两部分,分别作为A口和B口的联络信号。2019/10/4甘肃冶金高级技术学院24⑴方式1的输入数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBA中断允许触发器方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能2019/10/4甘肃冶金高级技术学院25PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器2019/10/4甘肃冶金高级技术学院26•STB——选通信号,低电平有效–由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器•IBF——输入缓冲器满信号,高电平有效–8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器•INTR——中断请求信号,高电平有效–8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据A口所用的三个联络信号占用C口的PC3、PC4、PC5三引脚,B口则用了PC0、PC1和PC2三个引脚。2019/10/4甘肃冶金高级技术学院27方式1输入时序dataINTRIBFdata输入端口D0~D7STBRDSTB和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据2019/10/4甘肃冶金高级技术学院28•8255A的中断由中断允许触发器INTE控制–置位允许中断,复位禁止中断•对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器•选通输入方式下–端口A的INTEA对应PC4–端口B的INTEB对应PC22019/10/4甘肃冶金高级技术学院29⑵方式1的输出外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKA中断允许触发器2019/10/4甘肃冶金高级技术学院30PC2PC1PC0PB7~PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器2019/10/4甘肃冶金高级技术学院31方式1输出联络信号•OBF——输出缓冲器满信号,低有效–8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走•ACK——响应信号,低有效–外设的响应信号,指示8255A的端口数据已由外设接受•INTR——中断请求信号,高有效–当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据端口A的INTEA对应PC6端口B的INTEB对应PC22019/10/4甘肃冶金高级技术学院32方式1输出时序输出端口OBF*和ACK*是外设和8255A间的一对应答联络信号,为的是可靠地输出数据INTRdatadataD0~D7WROBFACK2019/10/4甘肃冶金高级技术学院33③方式2(双向选通输入/输出)•方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据•只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同•方式2的数据输入过程与方式1的输入方式一样•方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。2019/10/4甘肃冶金高级技术学院34PC6PC7PC3PA7~PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号方式2双向引脚2019/10/4甘肃冶金高级技术学院35方式2双向时序data-outINTRdata-outdata-indata-inPA0~PA7D0~D7IBFWROBFACKSTBRD2019/10/4甘肃冶金高级技术学院362.初始化①写入方式控制字:控制字格式2019/10/4甘肃冶金高级技术学院37写入方式控制字:示例•要求:–A端口:方式1输入–C端口上半部:输出,C口下半部:输入–B端口:方式0输出•方式控制字:10110001B或0B1H•初始化的程序段:movdx,0fffeh;假设控制端口为0FFFEHmoval,0b1h;方式控制字outdx,al;送到控制端口2019/10/4甘肃冶金高级技术学院38说明:•初始化编程后:–当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据–当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备•8255A具有锁存输出数据的能力–对输出方式的端口同样可以输入–不是读取外设数据–读取的是上次CPU给外设的数据2019/10/4甘肃冶金高级技术学院39②C口按位置、复位控制字•位控制字写入控制端口•特别便于置位