第6微机原理与接口技术课件清华大学.ppt
1,第6章 输入输出及中断技术,2,主要内容,输入输出系统的基本概念I/O接口和端口端口的编址方式简单接口芯片及其应用基本输入输出方法中断的基本概念及工作过程*中断控制器8259,3,6.1 输入输出系统,4,了解和掌握:,I/O系统的概念和特点接口的基本功能端口的概念端口的编址方式I/O地址译码,5,一、输入输出系统的组成及特点,组成:I/O设备,I/O接口,I/O软件特点:复杂性实时性异步性与设备无关性,6,二、I/O接口和端口,I/O接口:将外设连接到总线上的一组逻辑电路的总称。实现外设与主机之间的信息交换。I/O端口:接口中的寄存器,7,I/O接口要解决的问题,速度匹配(Buffer)信号的驱动能力(电平转换器、驱动器)信号形式和电平的匹配(A/D、D/A)信息格式(字节流、块、数据包、帧)时序匹配(定时关系)总线隔离(三态门),8,接口的功能,数据的缓冲与暂存信号电平与类型的转换增加信号的驱动能力对外设进行监测、控制与管理,中断处理,9,I/O端口,数据端口状态端口控制端口,端 口,10,I/O端口,CPU,数据,状态,控制,外设,I/O接口,DB,11,三、I/O端口的编址方式,8086/8088的寻址能力:内存:1MB端口:64KB编址方式:与内存统一编址独立编址,12,端口与内存的统一编址,特点:指令及控制信号统一内存地址资源减少,内存地址960KB,I/O地址64KB,00000H,F0000H,FFFFFH,13,端口的独立编址,特点:内存地址资源充分利用能够应用于端口的指令较少,内存地址,I/O地址,00000H,FFFFFH,FFFFH,0000H,14,端口的寻址,8088/8086寻址端口数:64KB寻址端口的信号:IOR、IOWA15 A0,15,8088/8086的I/O端口编址,采用I/O独立编址方式(但地址线与存储器共用)地址线上的地址信号用IO/M来区分I/O操作只使用20根地址线中的16根:A15A0可寻址的I/O端口数为64K(65536)个I/O地址范围为0FFFFHIBM PC只使用了1024个I/O地址(03FFH),16,四、I/O地址的译码,目的:确定端口的地址参加译码的信号:IOR,IOW,高位地址信号OUT指令将使总线的IOW信号有效IN指令将使总线的IOR信号有效,17,I/O译码的地址信号,当接口只有一个端口时,16位地址线一般应 全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则16位地址线的高 位参与译码(决定接口的基地址),而低位 则用于确定要访问哪一个端口。,18,I/O地址译码例,某外设接口有4个端口,地址为2F0H2F3H,由A15A2译码得到,而A1、A0用来区分接口中的4个端口。试画该接口与系统的连接图。,19,I/O地址译码例,地址范围:0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1,任意状态,A11,片内地址,图中不接入,20,I/O地址译码例,译码电路图:,1,A11,A10,A18,A3,A2,A9,A7,A4,&,CE,A1,A0,接口芯片,21,6.2 简单接口电路,22,掌握:,接口电路的分类及特点;两类简单接口芯片的应用,23,一、接口的基本构成,数据线,控制线,状态线,DB,CB,AB,数据输入寄存器(or 三态门),数据输出寄存器(锁存器),状态寄存器(or 三态门),命令寄存器,译码电路,控制逻辑,24,接口的基本构成,数据输入/输出寄存器 暂存输入/输出的数据命令寄存器 存放控制命令设定接口功能、工作参数和工作方式。状态寄存器 保存外设当前状态,以供CPU读取。,25,二、接口的类型及特点,按传输信息的方向分类:输入接口输出接口按传输信息的类型分类:数字接口模拟接口按传输信息的方式分类:并行接口串行接口,26,接口特点,输入接口:要求对数据具有控制能力常用三态门实现输出接口:要求对数据具有锁存能力常用锁存器实现,27,三、三态门接口,高电平、低电平、高阻态,28,三态门接口,三态门的工作波形:,A0A15,IOR,译码输出,D0D7,开关状态,地址有效,29,74LS244,含8个三态门的集成电路芯片在外设具有数据保持能力时用来输入接口74LS244应用例教材p238,P238图,30,三态门接口应用例,利用三态门作为输入接口(接口地址380H)接到地址范围为70000H-71FFFH的EEPROM芯片的READY/BUSY端,当三态门输出高电平时,可向98C64A写入一个字节数据,输出低电平时则不能写入。画芯片与系统的连接图,31,三态门接口应用例,D0D7,A0,A12,WE,OE,READY/BUSY,A0,A12,MEMW,MEMR,高位地址信号,D0D7,D0,380H,CE,译码,IOR,32,四、锁存器接口,通常由D触发器构成;特点:具有对数据的锁存能力;不具备对数据的控制能力,33,常用锁存器芯片,74LS273 8D触发器,不具备数据的控制能力74LS373 含三态的8D触发器,具有对数据的控 制能力,P239图,34,锁存器芯片74LS374,D0D7,Q0,Q7,.,OE,CP,译码器,Q0Q7,D0,D7,.,OE,CP,译码器,做输出口:,做输入口:,外设,自外设,35,I/O接口综合应用例,根据开关状态在7段数码管上显示数字或符号设输出接口的地址为F0H设输入接口地址为F1H当开关的状态分别为00001111时,在7段数码管上对应显示0F,7段数码管图见教材p255,O1 I1O2 I2O3 I3O4 I4E1,K0K3,+5V,G G2A G2B C B A,1,74LS244,D0 Q0|Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7,abcdefgDP,7406,反相器,74LS273,Rx8,1,74LS138,D0D7,IOW,IOR,Y0,Y1,F0H=1111 0000F1H=1111 0001,&,A6A4,A3,A2,A1,A0,D0,D1,D2,D3,译码器,A7,A0,1,38,I/O接口综合应用例 程序段,Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H LEA BX,Seg7 MOV AH,0,GO:INAL,0F1H AND AL,0FH MOV SI,AX MOV AL,BX+SI OUT 0F0H,AL JMP GO,39,6.3 基本输入/输出方法,40,基本输入/输出方法,无条件传送查询式传送中断方式传送直接存储器存取(DMA),程序控制方式,41,一、无条件传送,要求外设总是处于准备好状态优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄,42,无条件传送例,读取开关的状态;当开关闭合时,输出编码使发光二极管亮,D,CP,Q,D0,D1,输出口地址38F3H,输入口地址38F0H,+5V,1,44,二、查询工作方式,仅当条件满足时才能进行数据传送;每满足一次条件只能进行一次数据传送。适用场合:外设并不总是准备好对传送速率和效率要求不高工作条件:外设应提供设备状态信息接口应具备状态端口,45,查询工作方式,优点:软硬件比较简单缺点:CPU效率低,数据传送的实时性 差,速度较慢,READY?,进行一次数据交换,读入并测试外设状态,Y,N,传送完?,Y,结 束,N,开 始,每满足一次条件只能进行一次数据传送,超时?,READY?,与外设进行数据交换,超时错,读入并测试外设状态,Y,N,Y,N,传送完?,防止死循环,复位计时器,N,Y,结 束,N,48,查询工作方式例,外设状态端口地址为03FBH,第5位(bit5)为状态标志(=1忙,=0准备好)外设数据端口地址为03F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。试画出其电路图,并将DATA下100B数据输出。,D5,D7-D0,A9|A3,1,&,A15|A10,1,IOW,D7-D0,3F8H,外设,D7D6D5D4D3D2D1D0,BUSY,CP,Q7Q6Q5Q4Q3Q2Q1Q0,状态端口,GG2AG2BCBA,A2A1A0,74LS138,Y0,1,IOR,Y3,OE,74LS374,3FBH,LEA SI,DATA MOV CX,100AGAIN:MOV DX,03FBHWAITT:IN AL,DX TEST AL,20H JNZ WAITT MOV DX,03F8H MOV AL,SI OUT DX,AL INC SI LOOP AGAIN HLT,读状态,进行一次传送,Bit5=1?,传送完否?,修改地址指针,初始化,Y,N,N,Y,结 束,51,三、中断控制方式,特点:外设在需要时向CPU提出请求,CPU再去为它 服务。服务结束后或在外设不需要时,CPU可 执行自己的程序优点:CPU效率高,实时性好,速度快。缺点:程序编制相对较为复杂,52,以上三种I/O方式的共性,信息的传送均需通过CPU软件:外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式);硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的。缺点:程序的执行速度限定了传送的最大速度,53,四、DMA控制方式,特点:外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。,54,DMA控制方式,DMAC,外设接口,CPU,QRD,MEM,DACK,HOLD,HLDA,BUS,控制信号,地址信号,55,DMA控制方式的工作过程,外设向DMA控制器发出“DMA传送请求”信号DRQ;DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD;CPU在完成当前总线周期后会立即发出HLDA 信号,对HOLD信号进行响应;DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK,56,DMA控制方式的工作过程,例:从外设向内存传送若干字节数据DMAC向I/O接口发出读信号;向地址总线上发出存储器的地址;发出存储器写信号和AEN信号;传送数据并自动修改地址和字节计数器判断是否需要重复传送操作。,57,DMA控制方式的工作过程,当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。,58,DMA工作方式,数据块传送方式:DMAC在申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。周期窃取方式(每次传送一个字节或一个字):每个DMA周期只传送一个字节或一个字就立即释放总线。直接存取方式:DMA的数据传送请求直接发到主存储器,在得到响应后,整个工作过程在DMA控制器中由硬件完成。,周期窃取的DMA方式:,N,Y,N,允许DMA,DMAC请求总线,CPU响应,DMAC获总线控制权,DMA传送一个数据,块结束?,释放总线至少一个总线周期,地址增量,计数器减量,DMAC释放总线,Y,测试I/O的DREQ DMA请求?,60,DMA控制方式,优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率。,61,6.4 中断技术,62,掌握:,中断的基本概念中断响应的一般过程中断向量表及其初始化8088/8086中断系统,63,一、中断的基本概念,中断:CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。,64,中断源,引起CPU中断的事件,发出中断请求的来源。,内部中断,外部中断,异常中断,软件中断,可屏蔽中断,非屏蔽中断,异常事件引起,中断指令引起,INTR中断,NMI中断,65,引入中断的原因,提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率。实现对特殊事件的实时响应。,66,二、外部中断响应的一般过程,中断请求中断源识别及中断判优中断响应中断处理(服务)中断返回,67,中断请求,中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。,NMIINTR,68,中断源识别,软件查询法中断矢量法由中断源提供中断类型号,CPU根据类型确定中断源。,中断源识别及判优由硬件系统完成,69,中断判优,优先级法则低优先级的中断程序允许被高优先级的中断源所中断排队法则,中断嵌套,70,中断判优,软件判优 顺序查询中断请求,先查询的先服务(即先查询的优先级别高)硬件判优 链式判优、并行判优(中断向量法),菊花链逻辑电路,INTAin,IREQ,INTR,&,1,INTAout,DB,三态门,中断向量码,E,外设接口,中断确认,菊花链逻辑电路,72,中断响应,向中断源发出INTA中断响应信号;保护断点将FLAGS、CS、IP压入堆栈获得中断服务程序入口地址,由硬件系统完成,73,中断处理,执行中断服务子程序中断服务子程序的特点:为“远过程”用IRET指令返回,74,中断服务子程序完成的工作,关中断,保护断点,找入口地址保护软件现场(参数)开中断(STI)中断处理关中断(CLI)恢复现场中断返回,75,中断返回,执行IRET指令,使IP、CS和FLAGS从堆栈弹出,76,三、8088/8086中断系统,内部中断外部中断,异常中断软件中断,非屏蔽中断可屏蔽中断,256个中断源,除法错中断溢出中断单步中断,NMI,INTR,中断逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控制器8259APIC,8086/8088CPU内部逻辑,断点中断,可屏蔽中断请求,n,4,3,0,1,2,8086/8088中断源类型:,78,中断向量表,00000H,003FFH,1KB,79,中断向量表,存放各类中断的中断服务程序的入口地址;每个入口占用4 Bytes,低字为段内偏移,高字为段基址;表的地址位于内存的00000H003FFH,大小为1KB,共256个入口。,80,中断向量表的初始化,将用户自定义的中断服务程序入口地址放入向量表注意点:向量表所在的段地址=0存放子程序入口的单元的偏移地址=n4例:将中断向量码为48H的服务程序入口地址放入向量表,p274,81,中断向量表的初始化,MOV AX,0000HMOV DS,AXMOV SI,0120HMOV BX,OFFSET TIMERMOV SI,BXMOV BX,SEG TIMER MOV SI+2,BX,82,8088内部中断响应过程,特点:无INTA周期中断类型码固定或由指令给出,83,8088内部中断响应过程,响应过程步骤:PUSH FLAG LET TEMP=TF CLEAR IF,TF PUSH CS PUSH IP(I P)=(TYPE*4+1):(TYPE*4+0)(CS)=(TYPE*4+3):(TYPE*4+2),84,8088外部中断响应过程,可屏蔽中断:第1个INTA,PIC进行优先级排队判优处理 第1个INTA,PIC把中断类型码放到DB上,由CPU读入 PUSH FLAG LET TEMP=TF CLEAR IF,TF PUSH CS PUSH IP(I P)=(TYPE*4+1):(TYPE*4+0)(CS)=(TYPE*4+3):(TYPE*4+2)NMI中断响应过程与内部中断类似,85,8088/8086中断系统的优先级,优先级从高到低的顺序为:内部中断NMI中断INTR中断单步中断,86,中断处理过程,当NMI、INTR、单步和除法错中断同时产生时,响应顺序为:,响应除法错中断,响应NMI中断,响应INTR中断,响应单步中断,级别高的中断可以中断级别低的中断服务程序,87,本章课外自学内容:,中断控制器8259,88,作业:,作业请从服务器下载,谢谢大家!,