第六章输入输出和中断技术输入输出系统概述简单接口电路基本输入输出方法中断技术中断芯片8259A6.1输入输出系统概述微型计算机系统可通过系统总线与外设相连,进行系统的扩展与开发,而外设必须通过接口才能与CPU交换信息。CPU或系统总线I/O接口电路外设把外设和I/O接口叫做输入输出系统作为接口电路,通常必须为外部设备提供几个不同地址的寄存器,每个寄存器称为一个I/O端口。通常的I/O接口示意图如下图所示:数据线控制线状态线DBCBAB数据输入寄存器(or三态门)数据输出寄存器(锁存器)状态寄存器(or三态门)命令寄存器译码电路控制逻辑接外设接主机I/O接口内部一般由数据(I、O)、状态(O)、控制(I)三类寄存器组成。数据寄存器在输入时,保存外设发往CPU的数据(输入寄存器)在输出时,保存CPU发往外设的数据(输出寄存器)状态寄存器——保存状态信息,CPU可从状态口读取当前状态;控制寄存器——用来保存CPU写入的控制字。设定接口功能、工作参数和工作方式。1、接口的用途(功能)设备选择把选中的与总线相接,未选中的与总线隔离(高阻态)外设管理。对进行监测、控制与管理,中断处理数据缓冲缓解接口与CPU工作速度的差异信号转换形式、格式、电平、功率、码制等2、I/O端口的寻址方式I/O端口:I/O信息的三种类型:数据、命令、状态。传送这三类信息的通道分别称为:数据端口(I、O)、命令端口(O)、状态端口(I)。不同外设具有的端口数各不相同,计算机中为每一个端口都赋予一个惟一编号——称为端口地址(或端口号)。端口有两种编址方式:统一编址和独立编址。(1).统一编址--存储映像的I/O寻址把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。FFFFFH0地址空间(共1MB)内存地址(960KB)I/O地址(64KB)EFFFFHF0000H优点•指令统一,灵活,强大;缺点•内存可用地址空间减小;•阅读困难。(2).独立编址外设地址空间和内存地址空间相互独立。优点:不影响内存地址空间;易阅读。缺点:I/O指令功能较弱,使用不同的读写控制信号00000H内存地址空间内存空间(1MB)I/O空间(64KB)FFFFHFFFFFHI/O地址空间0000H(3)8088/8086CPU的I/O编址方式采用I/O独立编址方式(但地址线与存储器共用)地址线上的信号是内存地址还是IO地址,取决于IO/M管脚的状态。I/O操作只使用20根地址线中的16根:A15~A0,或者8根.可寻址的I/O端口数为64K(65536)个I/O地址范围为0~FFFFH3、8086CPU的输入/输出1、8086CPU的I/O指令(1)直接寻址输入/输出指令(八位端口地址)INAL,n(字节输入)INAX,n(字输入)OUTn,AL(字节输出)OUTn,AX(字输出)(2)DX寄存器间接寻址输入(十六位端口地址)INAL,DX(字节输入)INAX,DX(字输入)OUTDX,AL(字节输出)OUTDX,AX(字输出)6.2CPU与外设通信的接口(简单)简单接口电路基本构成不查询外设状态、不进行IO控制,认为外设已经准备就绪,直接与外设传送数据。输入:缓冲器(如:74LS244)输出:锁存器(如:74LS273)输入用缓冲器/输出用锁存器74LS244输入缓冲器—单向数据输入INTER8286双向数据收发器。LS245简单的输入接口举例K6K7+5VI0I3D0-D7DO0DO7~74LS244E1E2≥1&A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOR系统总线信号≥1K5K4K3K2K1K0I1I2I4I5I6I7接口电路图如下:83FCH~83FFH译码器++外设具有数据保持能力74LS273输出锁存器,LS374INTER8282具有三态输出的锁存器,LS373不能作为输入接口,没有三态门译码器=1=1.........+5VRD0|D7CPQ0Q7...D0~D7A0~A15IOW#74LS273R+5VF0H=0000000011110000F1H=0000000011110001O1I1O2I2O3I3O4I4#E1K0~K3GG2AG2BCBA+74LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7abcdefgDP74068个反相器74LS273Rx8+74LS138D0~D7IOW#IOR#Y0Y1&+A7~A4A15~A8A3A2A1A0D0D1D2D3译码电路O1I1O2I2O3I3O4I4#E1K0GG2AG2BCBA+74LS244D0Q0|Q1D7Q2Q3Q4CPQ5Q6Q7abcdefgDP74068个反相器74LS273Rx8+74LS138D0~D7IOW#IOR#Y0Y1&+A7~A4A15~A8A3A2A1A0D0D1D2D3译码电路+5VF0H=0000000011110000F1H=0000000011110001例1:发光二级管由低位向高位循环显示,显示时间隔1s(彩灯显示)MOVAL,01HMOVDX,00F0H;输出接口地址为00F0HNEXT:OUTDX,ALMOVCX,100DELAY:CALLDELAY_10;调用10ms延时程序100次LOOPDELAYROLAL,1JMPNEXT例2:当开关的状态为闭合时,在数码管显示“0”;当开关为打开时,数码管显示“1”。符号形状7段码.gfedcba符号形状7段码.gfedcba’0’00111111’8’01111111’1’00000110’9’01100111’2’01011011’A’01110111’3’01001111’B’01111100’4’01100110’C’00111001’5’01101101’D’01011110’6’01111101’E’01111001’7’00000111’F’01110001相应程序段如下:NEST:MOVDX,0F1H;状态接口的地址为F1HINAL,DX;读入开关状态TESTAL,01;测试位MOVAL,0F0HJzDISP;断开显示1MOVAL,06;闭合显示0DISP:MOVDX,0F0H;数据接口的地址为F0HOUTDX,ALJMPNEST相应程序段如下:Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71H……LEABX,Seg7;取7段码表基地址GO:MOVDX,0F1H;开关接口的地址为F1HINAL,DX;读入开关状态ANDAL,0FH;保留低4位MOVAH,0MOVSI,AX;作为7段码表的表内位移量MOVAL,[BX+SI];取7段码MOVDX,0F0H;7段数码管接口的地址为F0HOUTDX,ALJMPGO显示开关状态的编码!6.3输入/输出方式1、程序控制传送方式(1)无条件传送方式(2)查询传送方式(3)中断方式2、直接存储器存取方式DMA1、程序控制传送方式(1)无条件传送方式CPU直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,直接与外设传送数据。由于不查询外设状态,接口电路不需要状态寄存器开关发光器件(如发光二极管、7段数码管、灯泡等)继电器步进电机优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄必须查询外设状态,然后再决定是否与外设传送数据。(1)查询状态口通过读取状态寄存器的标志位来检查外设是否“就绪”。(2)数据口通过输入/输出指令从数据端口输入/输入数据(2)查询传送方式查询式输入时的数据和状态信息查询式输入程序流程图TEST1:INAL,S-PORT;从状态口输入状态信息TESTAL,01H;测试标志位是否为1JZTEST1;未就绪,继续查询INAL,D-PORT;从数据端口输入数据在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪;—“你准备好没有?”输出时,状态寄存器的状态指示输出设备是否空闲。—“你是否空闲?”适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。如打印机、猫。优点:软件比较简单(控制方式)缺点:CPU效率低,数据传送的实时性差,速度较慢(3)中断方式当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。在中断未发生时,CPU可以执行其他程序,这样可以提高CPU的利用率。优点:CPU效率高,实时性好,速度快。缺点:程序编制较为复杂。(控制方式)分时传送,并行处理2、直接存储器存取方式(DMA)(DirectMemoryAccess)。前面三种I/O方式都需要CPU作为中介:外设CPU内存需要程序控制1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的;2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)—解决:DMA传输DMA传输:外设内存外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)缺点:硬件复杂。