武汉工程大学邮电信息工程学院现代微机原理与接口技术朱晓辉主要内容第七章输入输出总线接口技术微型计算机的最小系统CPU与外设之间数据传送的方式并行接口芯片8212可编程并行接口芯片8255A串行接口通信的基本概念可编程串行接口芯片8251A接口功能地址译码和设备选择数据缓冲设置、保存控制命令和译码监测、保存外部设备的状态信息转换中断控制微型计算机的最小系统输入/输出接口芯片8282、8286特点:8282是典型的数据锁存器,传送的数据位数是8位,数据传送的方向是单向的。8286为数据收发器,双向传送8位数据。微型计算机的最小系统输入/输出接口芯片8282、8286微型计算机的最小系统微型计算机的最小系统8086的MIN/端接高电平,说明8086工作在最小模式。8086与外设进行信息交换时,有3片8282用来作为地址锁存器。当系统中所连的外设多时,使用2片8286来增加数据总线的驱动能力。选用8282芯片作地址信息锁存器,以获取地址信息;选用8286芯片作数据信息寄存器,以获取数据信息。MAX微型计算机的最小系统微型计算机的最小系统CPU与外设之间数据传送的方式程序传送方式程序传送方式以CPU为中心,数据传送的控制来自CPU,通过执行预先编制的输入/输出程序实现数据传输。程序传送方式可分为无条件传送和查询传送方式。无条件传送方式在传送信息时,已知外部设备是准备好的状态,所以输入输出时都不需要查询外部设备的状态。在输入或输出时,相应给出IN或OUT指令即可。但这种方式必须确信外部设备已准备好的状态才可使用,否则就会出错,故很少使用。CPU与外设之间数据传送的方式程序传送方式无条件传送方式CPU与外设之间数据传送的方式程序传送方式查询传送方式查询方式的数据传送过程如下:(1)CPU从状态端口读取状态字。(2)CPU判断状态位是否“准备就绪”,如果没准备好,就返回上一步,继续读取状态字。(3)如果准备好,则执行数据传送操作。CPU与外设之间数据传送的方式中断传送方式当外设准备好后,外设接口便主动向CPU发“中断请求”信号。CPU响应这样这一请求,则暂停正在执行的程序,而转入与外设操作有关的中断服务程序。在中断服务程序中完成数据的输入或输出,中断服务程序执行完毕,CPU返回到原来程序的断点继续执行。CPU与外设之间数据传送的方式中断传送方式CPU与外设之间数据传送的方式DMA传送方式基本思想:在存储器和外设之间建立起直接的数据传送通路,即不经由CPU,而由专门的DMA控制器实现存储器和外设之间的操作。于是,传送就不必进行保护现场等一系列额外操作,从而减轻了CPU的负担,因此特别适合于高速度大批量数据传送的场合。但是,这种方式要增设DMA控制器,硬件电路比前两种方式更为复杂,CPU与外设之间数据传送的方式DMA传送方式CPU与外设之间数据传送的方式DMA传送方式CPU与外设之间数据传送的方式DMA传送方式DMA传送的基本过程如下:(1)当I/O接口准备好,希望进行DMA操作时,就向DMA控制器(DMAC)发出DMA请求信号(DRQ)(2)DMA控制器将此请求信号转变成对CPU的总线请求信号(DMAHRQ)(3)CPU当前机器周期执行结束,响应DMA请求发出总线应答信号(HLDA),此时,由DMA控制器接管对总线的控制。CPU与外设之间数据传送的方式DMA传送方式(4)由DMA控制器对存储器寻址,并发出相应控制信号(DACK、、),使存储器与I/O接口之间直接交换数据。(5)在传送一字节数据后,DMA控制器自动修改存储器地址和传送字节计数器,并检测传送是否结束。(6)DMA传送结束,DMA控制器向CPU发出结束信号,并释放总线,使CPU重新获得总线控制,恢复正常工作。WRRDWR并行接口芯片82128212介绍Intel8212是一个八位的输入输出接口芯片引脚图Intel8212包括8位锁存器、三态输出缓冲器,控制和选择逻辑电路和中断请求逻辑等部分。并行接口芯片82128212介绍并行接口芯片82128212工作方式1、输出接口并行接口芯片82128212工作方式2、输入接口(1)直通式并行接口芯片82128212工作方式2、输入接口(2)选通输入可编程并行接口芯片8255A8255A结构外部引脚可编程并行接口芯片8255A8255A结构内部结构可编程并行接口芯片8255A8255A结构内部结构8255A由三部分组成。1、与外设接口部分8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7~PA0、PB7~PB0、PC7~PC0。端口都是8位,都可以作为输入或输出,但功能上各有特色:端口A:一个8位数据输出锁存和缓冲器;一个8位数据输入锁存器。端口B:一个8位数据输入/输出、锁存/缓冲器;一个8位数据输入缓冲器。端口C:一个8位数据输出锁存/缓冲器;一个8位数据输入缓冲器(输入没有锁存)。可编程并行接口芯片8255A8255A结构2、与微处理器接口部分这部分主要完成数据传送及逻辑控制。3、内部控制部分由A、B两组控制电路组成。主要作用是根据CPU送来的控制字用以决定两组端口(A组为A口C口的高4位,B组为B口和C口的低4位。)的工作方式,也可根据控制字的要求对C口按位进行置位或复位。可编程并行接口芯片8255A8255A控制字1、工作方式控制字可编程并行接口芯片8255A8255A控制字2、8255A置位复位控制字可编程并行接口芯片8255A8255A工作方式三种基本的工作方式:方式0-基本的输入输出方式方式1-选通输入输出方式方式2-双向传送方式。1、方式0方式0不使用联络信号,也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。在方式0,所有口输出均有锁存,输入只有缓冲,但无锁存,C口还具有按位将其各位清0或置1的功能。可编程并行接口芯片8255A8255A工作方式2、方式1A口借用C口的一些信号线用作控制和状态线,形成A组,B口借用C口的一些信号线用作控制和状态线,组成B组。在方式1下,A口和B口的输入输出均带有锁存。可编程并行接口芯片8255A8255A工作方式方式1的输入A口工作于方式1且用作输入口时,C口的PC4线用作选通输入信号线STBA,PC5用作输入缓冲器满输出信号线IBFA,PC3用作中断请求输出信号线INTRA。B口工作于方式1且用作输入口时,C口的PC2线用作选通输入信号线STBB,PC1用作输入缓冲器满输出信号线IBFB,PC0用作中断请求输出信号线INTRB。可编程并行接口芯片8255A8255A工作方式可编程并行接口芯片8255A8255A工作方式各状态、控制信号线:选通信号,输入,低有效。这是由外设送来的信号,有效时将由外设送来的位于A口(或B口)引线的8位数据锁存到A口(或B口)的输入锁存器中。IBF:输入缓冲器满,输出,高有效。这是8255A送给外设的联络信号,有效时表示数据已送入到输入锁存器中。该信号由外设发出的置位(变为有效),由CPU发出的信号的上升沿复位(变为无效)。INTR:中断请求,输出,高有效。这是8255A送给CPU的中断请求信号。它是当信号将外设的数据送入8255A的输入锁存器,使IBF为有效,并且中断允许(INTE为高)时,由8255A发出的。换句话,在中断允许的前提下,输入选通信号结束时,外设已经将数据送入8255A的输入锁存器,这时8255A向CPU提出中断请求,让CPU来读取位于8255A输入锁存器中的数据。STBSTBBOBFRDSTB可编程并行接口芯片8255A8255A工作方式各状态、控制信号线INTE:中断允许。它是由内部的中断控制触发器发出的允许中断或屏蔽中断的信号。INTE=l,允许A口或B口向CPU申请中断,INTE=0,禁止A口或B口向CPU申请中断。INTE没有外部引出端,它是利用C口的按位置位/复位的功能来使其置1或清0的,INTEA由PC4控制,INTEB由PC2控制。需要指出的是,在方式1时,PC4和PC2的置位/复位操作分别用于控制A口和B口的中断允许信号,这是8255A的内部操作,这一操作对PC4和PC2引脚用于A口和B口的数据选通输入和的状态没有任何影响。可编程并行接口芯片8255A8255A工作方式方式1的输出当A口工作于方式1且用作输出口时,C口的PC7线用作输出缓冲器满信号,PC6用作外设收到数据后的响应信号,PC3用作中断请求输出信号线INTRA。当B口工作于方式l且用作输出口时,C口的PC1线用作输出缓冲器满信号,PC2用作外设收到数据后的响应信号,PC0用作中断请求输出信号线INTRA。AOBFAACKBACKBOBF可编程并行接口芯片8255A8255A工作方式可编程并行接口芯片8255A8255A工作方式各状态、控制信号线:输出缓冲器满,输出,低有效。这是8255A送给外设的控制信号,有效时表示数据已送入到输出锁存器中,用该信号通知外设将数据取走。该信号由CPU发出的而置成低电平(变为有效)而由外设来的ACK信号使其恢复为高电平(无效)。:应答,输入,低有效。这是由外设送来的信号,有效时将表示外设已经从端口输出线上将数据取走。ACKOBFACK可编程并行接口芯片8255A8255A工作方式INTR:中断请求,输出,高有效。这是8255A送给CPU的中断请求信号。它是当外设将数据取走并应答信号之后,并且中断允许(INTE为高电平)时,由8255A发出的。在中断允许的前提下,信号有效时,外设已经将数据取走,这时8255A向CPU提出中断请求,让CPU输出一个新的数据。ACKACK可编程并行接口芯片8255A8255A工作方式INTE:中断允许。它是由内部的中断控制触发器发出的允许中断或屏蔽中断的信号。INTE=1,允许A口或B口向CPU申请中断,INTE=0,禁止A口或B口向CPU申请中断。它是利用C口的按位置位/复位的功能来置1或清0的,INTEA由PC6控制,INTEB由PC2控制。在方式1时,PC4和PC2的置位/复位操作分别用于控制A口的B口的中断允许信号,可编程并行接口芯片8255A8255A工作方式3、方式2方式2是A组独有的工作方式。外设既能在A口的8条引线上发送数据,又能接收数据。此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。可编程并行接口芯片8255A8255A工作方式:输出缓冲器满,输出,低有效。这是8255A送给外设的控制信号,有效时表示数据已送入到A口输出锁存器中,用该信号通知外设将数据取走。:应答,输入,低有效。这是由外设送来的信号,有效时表示外设已经从A口输出线上将数据取走。OBFACK可编程并行接口芯片8255A8255A工作方式:选通信号,输入,低有效。这是由外设送来的信号,有效时将由外设送来的位于A口引线的8位数据锁存到A口的输入锁存器中。IBFA:输入缓冲器满,输出,高有效。这是8255A送给外设的响应信号,有效时表示数据已送入到输入锁存器中。该信号由外设发出的置位(变为有效),由CPU发出的信号的上升沿复位(变为无效)。ASTBASTB可编程并行接口芯片8255A8255A工作方式INTRA:中断请求,输出,高有效。这是8255A送给CPU的中断请求信号。无论是输入操作还是输出操作,当一个操作完成,要进行下一个操作时在8255A都通过该引脚向CPU发中断请求信号。方式2的A口输入传送和输出传送各自作为一个中断源,两个中断请求信号在8255A内部相或,只产生一个中断请求通过PC3发给CPU。可编程并行接口芯片8255A8255A工作方式INTE1:中断允许1。它是由内部的中断控制触发器发出的允许中断或屏蔽中断的信号。INTE=l,允许A口在输出缓冲器变空(数据已被外设取走)时向CPU申请中断,让CPU输出一个新的数据;INTE1=0,则屏蔽了输出中断请求,这样,即使A口的输出缓冲器已经变空了,也不能在INTR上产生中断请求信号。