第6章输入/输出和中断输入/输出及接口输入/输出的传送方式中断技术80X86/Pentium中断系统8259A可编程中断控制器中断程序设计第6章输入/输出和中断计算机外设接口键盘鼠标CRT打印机绘图仪存贮器功能单一:(1)传送方式单一(传送一个字节)(2)品种单一,RAM、ROM(控制信号确定)(3)格式单一(并行数字信号)(4)工作速度匹配外设功能复杂:(1)仅作输入、仅作输出、入/出兼作。(2)格式多种(并串),位数多种(3)外设品种繁多(光、机、电、声、磁等)(4)信号形式有脉冲、模拟量或数字量(5)速度不匹配6.1输入/输出及接口为什么外设不能象存贮器一样直接挂在CPU上?第6章输入/输出和中断6.1输入/输出及接口6.1.1I/O信息的组成(1)数据信息——要交换的数据本身①数字量:按一定的编码标准(2#,ASCII码)由若干位组合所表示的数或字符。如:键盘、CRT、打印机等设备与CPU交换的信息。②模拟量:现场信息(如温度、压力、流量、位移等非电量)经过传感器而转换成的电量(电压、电流)。模拟量经过A/D、D/A转换器在CPU与外设间交换。③开关量:一位2#信息:0、1。如:开关的断开与闭合;控制电机的启、停等。通常这些开关量要经过相应的电平转换才能与计算机连接。数据信息、状态信息及控制信息第6章输入/输出和中断(2)状态信息——在CPU与外设之间交换数据时的联络信息。对输入接口,CPU是否准备好接收数据,“READY”准备好?对输出接口,外设是否准备好接收数据,“BUSY”外设忙吗?(3)控制信息——CPU发给外设的命令信息。如:设置I/O设备工作模式的信息等。CPU通过发送控制信息控制外设的工作。数据的传送可采用并行(n位同时传送)串行(一位一位地传送)第6章输入/输出和中断6.1.2I/O接口概述1.I/O接口的功能①对输入/输出数据进行缓冲、隔离和锁存;②完成信息格式的变换,如串-并转换等;③实现电气特性的匹配;④选择设备或地址译码等。2.I/O接口的构成CPU外设总线驱动控制逻辑地址译码数据缓冲器控制寄存器状态寄存器DBABCB数据信息状态信息控制信息接CPU一侧接外设一侧I/O接口电路实现各寄存器端口寻址操作实现接口电路中的各寄存器端口的读/写操作和时序控制实现对CPU数据总线速度和驱动能力的匹配端口第6章输入/输出和中断从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的寄存器,又称为I/O端口。各I/O端口由端口地址区分。按存放信息的不同,I/O端口可分为三种类型数据端口:用于存放CPU与外设间传送的数据信息状态端口:用于暂存外设的状态信息控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。CPU对外设输入/输出的控制,是I/O接口概述通过对接口电路中各I/O端口的读/写操作完成。第6章输入/输出和中断6.1.3I/O端口的编址1.I/O端口独立编址(I/O映射方式)指主存地址空间和I/O端口地址空间相互独立,分别编址。CPU通过指令来区分是访问I/O口还是存储单元。例:Intel的80X86系列、Z80系列优点:主存和I/O端口的地址可用范围都比较大。缺点:I/O指令的功能一般比较弱,在I/O操作中必须借助CPU的寄存器进行中转。第6章输入/输出和中断2.端口与存储器统一编址(存储器映射方式)指I/O端口与存储器共享一个寻址空间,又称为统一编址。在这种系统中,CPU可以用同样的指令对I/O端口和存储器单元的进行访问。例:motorola的M6800系列、日立H8S单片机系列优点:对I/O口的访问灵活方便,有利于提高端口数据的处理能力。缺点:I/O端口占用了主存地址,相对减少了主存的可用范围。第6章输入/输出和中断8086/8088通过改变M/IO、IO/M来区分对MEM还是对I/O操作。用IN和OUT指令传送数据。在80X86CPU中,若用直接寻址方式寻址外设,可寻址256个端口;当用DX间接寻址外设,则端口地址是16位的,可寻址216=64K个端口地址。I/O地址的译码与存储器地址译码原理相同,但具备自己的特点:I/O地址空间足够大,容忍一定程度的浪费;I/O访问的频度远低于存储器访问,而且不同的外设其操作互相独立,所以编址时不太强调地址的连续。I/O寻址通常采用的是部分译码。对于8086系统而言,最低端的地址线A0往往不参与译码,选择其中的偶地址作为I/O地址。80X86采用I/O与MEM分别独立编址。第6章输入/输出和中断PC/XT、PC/AT的I/O空间分配见书表6-1Pentium系列微机系统的I/O空间分配见书表6-2在PC/XT中,扩展总线上用A9~A0作为外设端口译码(部分译码方式),共可寻址210=1K个端口。当A9=0时,寻址主机板上的512个端口。当A9=1时,寻址I/0卡上的512个端口。80386微处理器或此后的微处理器构成的微机系统,采用全译码的方法,端口为64K个字节端口或32K个字端口。I/O端口地址选用的原则自行设计接口电路或给微机系统添加接口卡时,必须避免端口地址发生冲突。申明保留的地址,不要使用。用户可使用300H--31FH地址。6.1.3I/O端口的编址第6章输入/输出和中断6.1.4简单的I/O接口I/O接口硬件分类不可编程可编程8253定时/计数器8259中断控制器通用接口8257DMA8250、8251串行接口芯片或8255、8155并行接口芯片软盘控制器8271、8272专用接口CRT8275键盘显示8279不可编程的I/O接口属简单的I/O接口,典型的芯片是三态缓冲器和数据锁存器。如:74LS244,245;74LS373,374增强总线的负载能力并隔离第6章输入/输出和中断简单的I/O接口1.三态缓冲器在总线结构的微机系统中,任一时刻只能有一个设备利用总线进行数据传送,输入设备的数据线应通过三态门与系统相连。常用缓冲器:74LS244(单向),74LS245(双向)。第6章输入/输出和中断2.数据锁存器输出设备利用锁存器接受CPU输出的数据。使某输出设备锁存器的控制端处于触发状态,数据通过该锁存器。当触发信号消失,数据锁存在锁存器中,外设侧数据不随总线侧数据的变化而变化,使慢速的外设有足够的时间处理数据。常用锁存器:74LS373,低电平锁存,高电平直通74LS273,上升沿将数据Di输出简单的I/O接口上升沿将上升沿之前的数据打入273,并由273输出。第6章输入/输出和中断6.2输入/输出的传送方式在微型计算机系统中,CPU与外设之间进行信息交换,其输入和输出的传送方式一般可分为三种:程序控制的输入和输出中断控制的输入和输出直接存储器存取(DMA)6.2.1程序控制的输入和输出程序控制的输入和输出方式是指在程序中安排相应的I/O指令来控制输入和输出,完成和外设之间信息交换的传送方式。在这种方式中何时进行数据的传送是预先知道的,所以可以根据需要把有关的I/O指令插入到程序中相应位置。无条件传送方式和查询传送方式第6章输入/输出和中断(1)无条件传送方式(同步传送方式)实现方法:CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送。特点:适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况。软硬件十分简单,适用于慢速外设。输出时用373或374,373是低电平锁存,高电平直通!若用273,则在上升沿输出并锁存数据。第6章输入/输出和中断【例6-1】采用无条件传送方式的I/O接口电路,实现发光二极管显示开关的开合状态。NEXT:MOVDX,PORT_ININAL,DX;通过输入接口读入开关状态NOTALOUTDX,AL;通过输出接口控制发光二极管显示CALLDELAYJMPNEXT无条件传送方式(同步传送方式)该例中输入接口和输出接口使用相同的口地址,不会出现矛盾。第6章输入/输出和中断(2)查询传送——一种CPU主动、外设被动的I/O操作方式实现方法:特点:避免了对端口的“盲读”、“盲写”,数据传送的可靠性高,并且硬件接口相对简单。缺点是CPU工作效率低,I/O响应速度慢;输出:CPU对“外设BUSY?”进行查询,不忙,输出。输入:CPU查“外设数据READY?”,若准备好,读入。外设要求:状态口和数据口在有多个外设的系统中,CPU的查询顺序由外设的优先级确定。第6章输入/输出和中断①查询输入(当外设数据准备好,读入)输入状态信息READY?输入数据NY编写查询式输入程序如下:IN_TEST:INAL,STATUS;读入状态信息TESTAL,80H;检查READY是否为1JZIN_TEST;条件不满足,继续查询INAL,DATAS;条件满足,读入数据第6章输入/输出和中断②查询输出(当外设空闲时,输出)编写查询式输出程序如下:MOVBX,OFFSETSTOREOUT_TEST:INAL,STATUS;读入状态信息ANDAL,80H;检查BUSY位JNZOUT_TEST;BUSY则等待MOVAL,[BX];空闲,则从缓冲区STORE中取数据OUTDATAS,AL;输出数据INCBX准备输出数据读状态端口输入数据BUSYNY第6章输入/输出和中断6.2.2中断控制的输入和输出发申请发申请中断服务程序中断服务程序中断方式下CPU执行程序流程外设CPU被动而外设主动的I/O操作方式,较大地提高了CPU的工作效率,并使系统具有了实时处理功能第6章输入/输出和中断中断传送方式的特点1.CPU和外设大部分时间处在并行工作状态,2.中断传送方式提高了CPU的效率。中断工作过程外设需要CPU服务时外设→I/O接口→向CPU发中断请求,INTR=H(中断请求有效)CPU执行完当前指令后,(注:若IF=1)CPU→I/O接口→外设发中断响应,/INTA=LCPU执行中断服务程序,CPU←→I/O接口←→外设读写数据接口特点:避免了CPU反复低效率的查询,适用于CPU任务繁忙、而数据传送不太频繁的系统中。缺点是硬件电路和处理过程都比较复杂;(中断控制芯片)只在CPU响应外设的中断申请后,进入数据传送的过程。第6章输入/输出和中断中断可被响应的条件:中断请求触发器置位;CPU内部开放中断;CPU未处理更高级中断;CPU现行指令执行完第6章输入/输出和中断进行传送的中断服务程序是预先设计好的中断请求是外设随机向CPU提出的CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚中断传送是一种效率更高的程序传送方式:使用中断方式时:•外设准备数据,CPU执行程序,CPU与外设并行工作;•一旦外设准备就绪,外设向CPU发中断申请,CPU暂停原程序执行,响应中断,进行数据传输。此时,CPU与外设是串行工作。中断控制的输入输出第6章输入/输出和中断DMA时,CPU让出总线(如AB、DB、IO/M、RD、WR等)由DMAC接管后,用DMA方式的工作过程为:①CPU设置DMAC的工作方式,将存贮区首址、传送字节数DMAC的内部Reg。②外设向DMA控制器发出DMA请求,DMA控制器向CPU发出HOLD信号。中断方式虽提高了CPU的效率,但仍然是通过CPU执行程序来实现数据传送。缺点:①大量的数据在磁盘与内存间交换需大量的时间。②高速I/O设备时或成组数据交换时,显得速度太慢。早期DMA仅限于外设内存间,随着大规模集成电路技术的发展,还可在外设外设间,内存内存间进行DMA传送。6.2.3直接数据通道传送(DMA方式)希望在外设与内存间直接传送数据,这就是DMA方式。DMA的速度取决于MEM的工作速度。第6章输入/输出和中断③CPU接收到HOLD信号后,在现行的机器周期结束后发出HLDA信号,暂停正在执行的程序,且放弃对三总线的控制。④DMA控制器DMAC回应外设,表示响应该请求。⑤DMAC向存贮器送存贮单元地址,并分别向外设及内存送IOR及MEM