1、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接口要解决的问题,速度匹配(Buffe
2、r)信号的驱动能力(电平转换器、驱动器) 信号形式和电平的匹配(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/
3、O地址64KB,00000H,F0000H,FFFFFH,13,端口与内存的统一编址,存储器和I/O端口共用统一的地址空间。I/O端口的读写操作同样由硬件信号 和 来实现,访问I/O端口同样用MOV指令。所有访问存储器的指令(包括存储器的算术、逻辑运算指令)都可用于I/O端口。,14,端口的独立编址,特点:内存地址资源充分利用能够应用于端口的指令较少,内存地址,I/O地址,00000H,FFFFFH,FFFFH,0000H,15,端口的独立编址,独立编址方式的优点I/O端口的地址码较短(一般比同一系统中存储单元的地址码短);译码电路比较简单,存储器同I/O端口的操作指令不同,程序比较清晰;存储
4、器和I/O端口的控制结构相互独立,可以分别设计。独立编址方式的缺点I/O指令的功能一般不如存储器访问指令丰富;程序设计灵活性较差。,16,端口的寻址,8088/8086寻址端口数:64KB寻址端口的信号:IOR、IOWA15 A0,17,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),18,四、I/O地址的译码,目的:确定端口的地址参加译码的信号:IO
5、R,IOW,高位地址信号OUT指令将使总线的IOW信号有效IN指令将使总线的IOR信号有效,19,I/O译码的地址信号,当接口只有一个端口时,16位地址线一般应 全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则16位地址线的高 位参与译码(决定接口的基地址),而低位 则用于确定要访问哪一个端口。,20,I/O地址译码例,某外设接口有4个端口,地址为2F0H2F3H,由A15A2译码得到,而A1、A0用来区分接口中的4个端口。试画该接口与系统的连接图。,21,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
6、,任意状态,A11,片内地址,图中不接入,22,I/O地址译码例,译码电路图:, 1,A11,A10,A18,A3,A2,A9,A7,A4,&,CE,A1,A0,接口芯片,23,6.2 简单接口电路,24,掌握:,接口电路的分类及特点;两类简单接口芯片的应用,25,一、接口的基本构成,数据线,控制线,状态线,DB,CB,AB,数据输入寄存器(or 三态门),数据输出寄存器(锁存器),状态寄存器(or 三态门),命令寄存器,译码电路,控制逻辑,26,接口的基本构成,数据输入/输出寄存器 暂存输入/输出的数据命令寄存器 存放控制命令设定接口功能、工作参数和工作方式。状态寄存器 保存外设当前状态,以
7、供CPU读取。,27,二、接口的类型及特点,按传输信息的方向分类:输入接口输出接口按传输信息的类型分类:数字接口模拟接口按传输信息的方式分类:并行接口串行接口,28,接口特点,输入接口:要求对数据具有控制能力常用三态门实现输出接口:要求对数据具有锁存能力常用锁存器实现,29,三、三态门接口,高电平、低电平、高阻态,30,74LS244,含8个三态门的集成电路芯片在外设具有数据保持能力时用来输入接口,31,74LS244缓冲器逻辑电路和引脚图,32,缓冲器74LS244三态输出的八缓冲器和线驱动器;8个输入端,分为二路1A11A4,2A12A4;8个输出端,分为二路1Y11Y4,2Y12Y4;分
8、别由2个门控信号 和 控制; 和 为低,芯片工作,Y = A;74LS244缓冲后,输入信号被驱动,输出信号的驱动能力加大了;常用的缓冲器还有74LS240和74LS241等。,33,简单的输入接口举例,编写程序判断下图的开关的状态。如果所有的开关都闭合,则程序转向NEXT1。否则转向NEXT2。,34,简单的输入接口举例,83FCH83FFH,译码器,35,简单的输入接口举例,MOV DX,83FCHIN AL,DXAND AL,0FFHJZ NEXT1JMP NEXT2,36,四、锁存器接口,通常由D触发器构成;特点:具有对数据的锁存能力;不具备对数据的控制能力74LS273 8D触发器,
9、37,74LS273的引线图和真值表,38,74LS273作为输出接口,39,74LS273作为输出接口,8个Q端与8个发光二极管相连,要使Q0端和Q7端的发光二极管发光,则Q0和Q7端须为1状态,其他Q端则为0状态。输出接口地址为:0FFFFH。程序如下:MOV DX,0FFFFHMOV AL,10000001BOUT DX,AL,40,74LS273作为输出接口,工作波形:,A0A15,IOW,CP,地址有效,41,74LS374带三态输出的锁存器,既可作输入接口又可作输出接口,42,74LS374作输入和输出接口,43,74LS374作输入和输出接口,用作输入接口,端口地址信号经译码器接
10、OE端,外设数据锁存在374内部,当CPU读该接口时,译码器输出低电平,使374的输出三态门打开,读出外设的数据。用作输出接口,可将OE端接地,使输出三态门一直打开,这样和74LS273一样使用。,44,输入/输出接口综合应用例子,根据开关状态在7段数码管上显示数字或符号共阳极7段数码管结构用74LS273作为输出接口,把数据送到7段数码管74LS273的地址假设为F0H用74LS244作为输入口,读入开关K0K3的状态74LS244的地址假设为F1H当开关的状态分别为00001111时,在7段数码管上对应显示0F,45,共阳极七段数码管示意图,47,O1 I1O2 I2O3 I3O4 I4E
11、1,K0K3,+5V,GG2AG2BCBA,1,74LS244,D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7,abcdefgDP,7406,8个反相器,74LS273,Rx8,1,74LS138,D0D7,IOW,IOR,Y0,Y1,F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001,&,1,A7A4,A15A8,A3,A2,A1,A0,D0,D1,D2,D3,译码电路,48,Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX
12、, Seg7;取7段码表基地址MOVAH, 0,相应程序段如下:,49,相应程序段如下:,GO:MOVDX, 0F1H;开关接口的地址为F1HINAL, DX;读入开关状态ANDAL, 0FH;保留低4位MOVSI, AX ;作为7段码表的表内位移量MOVAL, BX+SI;取7段码MOVDX, 0F0H;7段数码管接口的地址为F0HOUTDX, ALJMPGO,50,6.3 基本输入/输出方法,51,基本输入/输出方法,无条件传送查询式传送中断方式传送直接存储器存取(DMA),程序控制方式,52,一、无条件传送,要求外设总是处于准备好状态优点:软件及接口硬件简单缺点:只适用于简单外设,适应范
13、围较窄,53,无条件传送例,读取开关的状态;当开关闭合时,输出编码使发光二极管亮,D,CP,Q,D0,D1,输出口地址38F3H,输入口地址38F0H,+5V,1,55,二、查询工作方式,仅当条件满足时才能进行数据传送;每满足一次条件只能进行一次数据传送。适用场合:外设并不总是准备好对传送速率和效率要求不高工作条件:外设应提供设备状态信息接口应具备状态端口,56,查询工作方式,优点:软硬件比较简单缺点:CPU效率低,数据传送的实时性 差,速度较慢,READY?,进行一次数据交换,读入并测试外设状态,Y,N,传送完?,Y,结 束,N,开 始,每满足一次条件只能进行一次数据传送,超时?,READY
14、?,与外设进行数据交换,超时错,读入并测试外设状态,Y,N,Y,N,传送完?,防止死循环,复位计时器,N,Y,结 束,N,59,查询工作方式例,外设状态端口地址为03FBH,第6位(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,
15、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,结 束,62,三、中断控制方式,特点:外设在需要时向CPU提出请求,CPU再去为它 服务。服务结束后或在外设不需要时,CPU可 执行自己的程序优点:CPU效率高,实时性好,速度快。缺点:程
16、序编制相对较为复杂,63,以上三种I/O方式的共性,信息的传送均需通过CPU软件: 外设与内存之间的数据传送是通过CPU执行程序来完成的(PIO方式);硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的。 缺点:程序的执行速度限定了传送的最大速度,64,四、DMA控制方式,特点:外设直接与存储器进行数据交换 ,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。,65,DMA控制方式,DMAC,外设接口,CPU,DRQ,MEM,DACK,HOLD,HLDA,BUS,控制信号,地址信号,
17、66,DMA控制方式的工作过程,外设向DMA控制器发出“DMA传送请求”信号DRQ;DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD;CPU在完成当前总线周期后会立即发出HLDA 信号,对HOLD信号进行响应;DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK,67,DMA控制方式的工作过程,例:从外设向内存传送若干字节数据DMAC向I/O接口发出读信号;向地址总线上发出存储器的地址;发出存储器写信号和AEN信号;传送数据并自动修改地址和字节计数器判断是否需要重复传送操作。,68,DMA控制方式的工作过程,当规定的数据传送完后,DMA控制器就撤销发往
18、CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。,69,DMA工作方式,数据块传送方式:DMAC在申请到总线后,将一块数据传送完后才释放总线,而不管中间DRQ是否有效。周期窃取方式(每次传送一个字节或一个字):每个DMA周期只传送一个字节或一个字就立即释放总线。直接存取方式:DMA的数据传送请求直接发到主存储器,在得到响应后,整个工作过程在DMA控制器中由硬件完成。,70,DMA控制方式,优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率。,71,6.4 中断技术,72,掌握:,中断的基本概念中断响
19、应的一般过程中断向量表及其初始化8088/8086中断系统,73,一、中断的基本概念,中断:CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。,74,中断源,引起CPU中断的事件,发出中断请求的来源。,内部中断,外部中断,异常中断,软件中断,可屏蔽中断,非屏蔽中断,异常事件引起,中断指令引起,INTR中断,NMI中断,75,引入中断的原因,提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率。实现对
20、特殊事件的实时响应。,76,二、外部中断响应的一般过程,中断请求中断源识别及中断判优中断响应中断处理(服务)中断返回,77,中断请求,中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。,NMIINTR,78,中断源识别,软件查询法中断矢量法由中断源提供中断类型号,CPU根据类型确定中断源。,中断源识别及判优由硬件系统完成,79,中断判优,优先级法则低优先级的中断程序允许被高优先级的中断源所中断排队法则,中断嵌套,80,中断判优,软件判优 顺序查询中断请求,先查询的先服务 (即先查询的优先级别高)硬件判优 链式判优、并行判优(中断向量法),81,中断响应,向中断源发出
21、INTA中断响应信号;保护断点将FLAGS、 CS、IP压入堆栈获得中断服务程序入口地址,由硬件系统完成,82,中断处理,执行中断服务子程序中断服务子程序的特点:为“远过程”用IRET指令返回,83,中断服务子程序完成的工作,关中断,保护断点,找入口地址保护软件现场(参数)开中断(STI)中断处理关中断(CLI)恢复现场中断返回,84,中断返回,执行IRET指令,使IP、CS和FLAGS从堆栈弹出,85,三、8088/8086中断系统,内部中断外部中断,异常中断软件中断,非屏蔽中断可屏蔽中断,256个中断源,除法错中断溢出中断单步中断 ,NMI,INTR,中断逻辑,软件中断指令,溢出中断,除法
22、错,单步中断,非屏蔽中断请求,中断控制器8259APIC,8086/8088CPU内部逻辑,断点中断,可屏蔽中断请求,n,4,3,0,1,2,8086/8088中断源类型:,87,中断向量表,00000H,003FFH,1KB,88,中断向量表,存放各类中断的中断服务程序的入口地址;每个入口占用4 Bytes,低字为段内偏移,高字为段基址;表的地址位于内存的00000H003FFH,大小为1KB,共256个入口。,89,中断向量表的初始化,将用户自定义的中断服务程序入口地址放入向量表注意点:向量表所在的段地址=0存放子程序入口的单元的偏移地址=n4例:将中断向量码为48H的服务程序入口地址放入
23、向量表,90,中断向量表的初始化,MOV AX,0000HMOV DS,AXMOV SI,0120HMOV BX,OFFSET TIMERMOV SI,BXMOV BX,SEG TIMER MOV SI+2,BX,91,8088内部中断响应过程, 计算中断向量的地址 PUSH FLAG CLEAR IF,TF(清除IF和TF,屏蔽新的INTR中断和单步中断) PUSH CS, PUSH IP(保存断点) (I P)=(TYPE*4+1):(TYPE*4+0)(取中断服务程序入口地址,偏移地址) (CS)=(TYPE*4+3):(TYPE*4+2) (取中断服务程序入口地址,段地址) 执行中断服
24、务程序,92,8088外部中断响应过程(可屏蔽中断), 第1个中断响应信号INTA,中断控制器PIC进行优先级排队判优处理 第2个中断响应信号INTA ,中断控制器PIC把中断类型码放到DB上,由CPU读入 计算中断向量的地址 PUSH FLAG CLEAR IF,TF(清除IF和TF,屏蔽新的INTR中断和单步中断) PUSH CS, PUSH IP(保存断点) (I P)=(TYPE*4+1):(TYPE*4+0)(取中断服务程序入口地址,偏移地址) (CS)=(TYPE*4+3):(TYPE*4+2) (取中断服务程序入口地址,段地址) 执行中断服务程序,93,8088/8086中断系统的优先级,优先级从高到低的顺序为:内部中断NMI中断INTR中断单步中断,94,中断处理过程,当NMI、INTR、单步和除法错中断同时产生时,响应顺序为:,响应除法错中断,响应NMI中断,响应INTR中断,响应单步中断,级别高的中断可以中断级别低的中断服务程序,95,本章课外自学内容:,中断控制器8259,96,作业:,作业请从服务器下载,谢谢大家!,