输入输出及中断系统教学课件电子教案.ppt
第6章输入输出及中断系统各种外设各种外设计算机计算机图7.1 主机与外设的连接CPUI/O接口外设DBDBCPUCPU外设外设图图7.2 CPU7.2 CPU与外设交换的信息与外设交换的信息I/OI/O接口接口数据信息数据信息状态信息状态信息控制信息控制信息CBABDBCPU数据端口数据端口状态端口状态端口I/O设设备备译译码码控制端口控制端口图图7.3 I/O接口的基本结构接口的基本结构I/O接口接口图图7.4 I/O端口与内存单元统一编址端口与内存单元统一编址存储器存储器I/O端口端口00000HXXXXXHFFFFFH整整个个地地址址空空间间(XXXXX+1)HI/O端口端口存储器空间存储器空间I/O端口空间端口空间00000HFFFFFH存储器存储器I/OFFFFH0000H图图7.5 I/O端口与内存单元独立编址端口与内存单元独立编址 (a)(a)来自外设来自外设的数据的数据数据总线数据总线(DB)(DB)地址地址译码器译码器地址总线地址总线(AB)(AB)11三态三态缓冲器缓冲器至至CPUCPURDRDIOIOM/M/(b)(b)至外设至外设数据总线数据总线(DB)(DB)地址总线地址总线(AB)(AB)锁存器锁存器来自来自CPUCPU的数据的数据地址地址译码器译码器WRWRIOIOM/M/11图图7.6 7.6 无条件传送方式无条件传送方式(a) (a) 无条件传送数据输入无条件传送数据输入(b) (b) 无条件传送数据输出无条件传送数据输出有条件传送:有条件传送: 也称查询方式传送,程序中I/O指令的执行需要事先测试外设的状态,待外设准备就绪后,执行I/O指令进行数据传送,否则循环测试等待。例如,CPU向打印机送打印字符,就需要测试打印接口电路的BUSY信号。图图7.7 查询传送方式的流程图查询传送方式的流程图NYY取外设状态取外设状态外设准备外设准备就绪?就绪?N开始开始传送数据传送数据传送完否?传送完否?结束结束选选通通状态信息状态信息READY数据总线数据总线DB至至CPU地址地址译码器译码器&5 V锁锁存存器器数据数据缓冲器缓冲器三态三态缓冲器缓冲器Q D输输入入设设备备数据数据状态端口状态端口译码输出译码输出数据端口数据端口译码输出译码输出RRD&IO/MRD地址总线地址总线AB图图7.8 查询式输入的接口电路查询式输入的接口电路 去去CPUDB输输出出设设备备&数据数据地址地址译码器译码器数据端口数据端口译码输出译码输出地址总线地址总线DB状态端口状态端口译码输出译码输出状态状态寄存器寄存器BUSY5 V锁锁存存器器QD数据总线数据总线DB来自来自CPU选通信号选通信号ACKWRIO/MR&RDIO/M图图7.9 查询式输出的接口电路查询式输出的接口电路 程序程序断点断点主程序主程序中断请求中断请求为为外外设设继继续续执执行行返回断点返回断点传送流程传送流程提提供供服服务务中断服务程序中断服务程序入口入口6.2.1 中断的概念及其作用中断的概念及其作用1. 中断的概念中断的概念6.2 中断系统概述中断系统概述1.1.中断源中断源 6.2.2 中断处理系统中断处理系统图图6 6. .7 7 向量中断技术中断源识别示意图向量中断技术中断源识别示意图外外设设中中断断请请求求 D D7 7 CPU CPU D D1 1 D D0 0IRIR外设提供外设提供设备标志码设备标志码图图6 6. .8 8 软件查询接口电路软件查询接口电路 N N保护现场,读中断位状态保护现场,读中断位状态出错处理出错处理恢复现场开中断恢复现场开中断A A中断服务子程序中断服务子程序中断入口中断入口是是A A请求?请求?Y YN N是是B B请求?请求?B B中断服务子程序中断服务子程序是是H H请求?请求?H H中断服务子程序中断服务子程序返回返回Y YY YN N图图6 6. .9 9 软件查询程序流程软件查询程序流程图图6-10 中断优先权编码电路中断优先权编码电路STISTI(EOI)(EOI)IRETIRETIR2IR2和和IR4IR4中断请求中断请求STI STI 。(EOI) (EOI) IRETIRETIR1IR1中断请求中断请求IR2IR2中断清除中断清除IR4IR4中断请求中断请求开中断开中断IR1IR1中断清除中断清除主程序主程序IR2IR2处理程序处理程序IR1IR1处理程序处理程序STISTI。(EOI) (EOI) IRETIRETSTI STI 。(EOI) (EOI) IRETIRETIR3IR3中断请求中断请求开中断开中断IR3IR3中断清除中断清除IR4IR4处理程序处理程序IR3IR3处理程序处理程序IR4IR4中断清除中断清除图图6 6. .1111中断嵌套管理中断嵌套管理CPUCPU取下一条指令取下一条指令中断源提出中断请求中断源提出中断请求判优逻辑进行优先排队判优逻辑进行优先排队CPUCPU执行完当前指令执行完当前指令中断请求信号有效?中断请求信号有效? IF=1IF=1?CPUCPU关闭中断关闭中断保护断点地址保护断点地址找出中断源,形成中断服务找出中断源,形成中断服务程序入口地址,并转向中断服务程序入口地址,并转向中断服务保护现场保护现场执行中断服务程序执行中断服务程序恢复现场恢复现场CPUCPU开放中断开放中断返回主程序断点处返回主程序断点处中断请求中断请求中断判优中断判优中断响应中断响应中断处理中断处理中断返回中断返回Y YY YN NN N图图6 6. .1212 中断处理基本过程中断处理基本过程 硬件中断,又称外部中断,它是由处理器硬件中断,又称外部中断,它是由处理器外部的硬件、外围设备的请求而引起的中断。外部的硬件、外围设备的请求而引起的中断。80868086有两条硬件中断请求信号线:有两条硬件中断请求信号线:NMINMI(非屏蔽(非屏蔽中断)和中断)和INTRINTR(可屏蔽中断)。(可屏蔽中断)。内部中断内部中断又称又称为软件中断。为软件中断。中断逻辑中断逻辑INTO指令指令单步单步中断中断除法除法错误错误INT N指令指令CPUNMI8259A中断中断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外设设中中断断源源 -INTA可屏蔽中断申请可屏蔽中断申请 INTR不可屏蔽中断申请不可屏蔽中断申请可屏蔽中断源可屏蔽中断源不可屏蔽中断源不可屏蔽中断源内部中断内部中断图6-13 8086的中断类型4B4B中断向量表1KB3FFH0H0号中断向量号中断向量IPCS00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址内存高地址 1E000 H+ 0A00 H 1EA00 H中断类型号中断类型号3 34 4000CH000CH.00(IPL)0A(IPH)00(CSL)1E(CSH).中断服务程序中断服务程序则:中断服务程序的入口地址为?则:中断服务程序的入口地址为? 图图6-156-15 80868086系统中断系统中断响应过程的流程响应过程的流程执行当前指令执行当前指令有溢出中断?有溢出中断?有非屏蔽中断?有非屏蔽中断?有单步中断吗?有单步中断吗?N NY YN NN NN NN NN N自动形成中断类型码自动形成中断类型码2 2自动形成中断类型码自动形成中断类型码1 1Y YY YY YY YY YY YN NY YN NPSWPSW、CSCS、IPIP依次入栈并清除依次入栈并清除IFIF和和TFTF标志位标志位由中断类型码形成中断服务程序由中断类型码形成中断服务程序的入口、并执行中断服务程序的入口、并执行中断服务程序IPIP、CSCS、PSWPSW依次出栈依次出栈取下一取下一条指令条指令指令执行结束吗?指令执行结束吗?IFIF1 1?有除法出错中断?有除法出错中断?有软件中断有软件中断INTnINTn?有可屏蔽中断?有可屏蔽中断?自动形成中断类型码自动形成中断类型码0 0自动形成中断类型码自动形成中断类型码4 4响应中断响应中断读取中断类型码读取中断类型码从指令中取出中断类型码从指令中取出中断类型码n n若是断点形成中断类型码若是断点形成中断类型码3 3v中断源通过中断控制器中断源通过中断控制器82598259向向CPUCPU发出中断请求信号发出中断请求信号 。vCPUCPU在每一个指令周期的最后一个时钟周期采样在每一个指令周期的最后一个时钟周期采样INTRINTR信号线。信号线。 v当当CPUCPU响应可屏蔽级的中断请求时,首先通过信号线向响应可屏蔽级的中断请求时,首先通过信号线向82598259连续发出两连续发出两个负脉冲的中断响应信号个负脉冲的中断响应信号INTAINTA。 vCPUCPU暂停执行当前程序,而转去执行相应的中断处理程序暂停执行当前程序,而转去执行相应的中断处理程序CPUCPU执行中断服执行中断服务程序务程序 。v返回断点,继续执行被打断的程序。返回断点,继续执行被打断的程序。 旧(PSW)旧(CS)旧(IP)新(IP)新(CS)IRET指令使IPCS和PSW弹出堆栈当前的PSW、CS和IP压入堆栈PSWCSIPCPU和总线控制逻辑948710中断子程序按中断的程序返回被中断的程序开中断中断子程序执行堆栈中断向量内存65(4*N)作为IP(4*N+2)作为CS清除IF和TF当前指令执行完后CPU进行中断应答21接口发中断请求信号STI接口3中断类型号N送CPU数据总线控制总线 地址总线8086/80888086/8088可屏蔽中断的响应过程可屏蔽中断的响应过程 D7D0-INTAINT中断请求寄存器中断请求寄存器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制控制逻辑逻辑级联级联缓冲器缓冲器比较器比较器-RD-WRA0-CSCAS0CAS1CAS2-SP/-EN优先权判别电路优先权判别电路中断服务寄存器中断服务寄存器控制逻辑控制逻辑图6-17 8259A的内部结构和引脚v控制电路控制电路 它是它是82598259内部的控制器,根据内部的控制器,根据CPUCPU对对82598259编程设定的工作方式产生内编程设定的工作方式产生内部控制信号,向部控制信号,向CPUCPU发出中断请求信号发出中断请求信号INTINT,请求,请求CPUCPU响应,同时产生响应,同时产生与当前中断请求服务有关的控制信号,并在接收到来自与当前中断请求服务有关的控制信号,并在接收到来自CPUCPU的中断响的中断响应信号后,将中断类型号送到数据总线。应信号后,将中断类型号送到数据总线。 v级联缓冲级联缓冲/ /比较器比较器 该功能部件用来实现多个该功能部件用来实现多个82598259的级联连接及数据缓冲方式。的级联连接及数据缓冲方式。 CAS0 IR0CAS0 IR0CAS1 IR1CAS1 IR1CAS2 IR2CAS2 IR2 IR3 IR3-INTA IR4-INTA IR4 IR5 IR5INT IR6INT IR6 IR7 IR7-SP/-EN-SP/-EN CAS0CAS0-INTA CAS1-INTA CAS1 CAS2 CAS2INT IR0INT IR0 IR1 IR1-SP/-EN IR7-SP/-EN IR7CAS0 IR0CAS0 IR0CAS1 IR1CAS1 IR1CAS2 IR2CAS2 IR2 IR3 IR3-INTA IR4-INTA IR4 IR5 IR5INT IR6INT IR6 IR7 IR7-SP/-EN-SP/-EN-INTA-INTAINTRINTR+5V+5V82598259级联工作示意图级联工作示意图输出得到响应输出得到响应的从片编号的从片编号主片主片从片从片从片从片图6-18 8259A的级连普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自动循环方式自动循环方式特殊循环方式特殊循环方式优先权固定方式优先权固定方式优先权循环方式优先权循环方式 设置优先权方式设置优先权方式普通中断结束方式普通中断结束方式特殊中断结束方式特殊中断结束方式自动中断结束方式自动中断结束方式非自动中断结束方式非自动中断结束方式 结束中断方式结束中断方式 中断屏蔽方式中断屏蔽方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式 中断触发方式中断触发方式边沿触发方式边沿触发方式电平触发方式电平触发方式 数据线连接方式数据线连接方式缓冲方式缓冲方式非缓冲方式非缓冲方式 与与CPUCPU配合方式配合方式与与8080/8085 CPU8080/8085 CPU配合配合与与8086/8088 CPU8086/8088 CPU配合配合 级连方式级连方式级连级连不级连不级连什么是什么是8259A8259A的中断结束?的中断结束?8259A8259A利用中断服务寄存器利用中断服务寄存器ISRISR判断:判断:n某位为某位为1 1,表示正在进行中断服务;,表示正在进行中断服务;n该位为该位为0 0,就是该中断结束服务。,就是该中断结束服务。 这里说明如何使这里说明如何使ISRISR某位为某位为0 0,不反映,不反映CPUCPU的的工作状态。工作状态。自动中断结束方式自动中断结束方式普通中断结束方式普通中断结束方式 配合全嵌套优先权方式使用配合全嵌套优先权方式使用 当当CPUCPU用输出指令往用输出指令往8259A8259A发出普通中断结束发出普通中断结束EOI EOI 命令时,命令时,8259A8259A就会把正在服务的中断中优先权最高的就会把正在服务的中断中优先权最高的 ISR ISR位复位。位复位。特殊中断结束方式特殊中断结束方式 配合循环优先权方式使用配合循环优先权方式使用 CPUCPU在程序中向在程序中向8259A8259A发送一条特殊中断结束命令,这个发送一条特殊中断结束命令,这个 命令中指出了要清除哪个命令中指出了要清除哪个ISRISR位。位。例如:例如:CPUCPU在对在对IR3IR3的中断服务过程中,通过指令在的中断服务过程中,通过指令在OCW2OCW2中指定中指定IR5IR5具有具有最低优先级,则最低优先级,则IR3IR3中断服务结束时,中断服务结束时,2859A2859A的的8 8个中断源优先顺序由高个中断源优先顺序由高到低为到低为IR6IR6,IR7IR7,IR0IR0,IR1IR1,IR2IR2,IR3IR3,IR4IR4,IR5IR5。初始化初始化8259A8259A开始工作前,用户必须对开始工作前,用户必须对8259A8259A进行初始化编程。通过写进行初始化编程。通过写入入初始化命令字初始化命令字ICWICW对对8259A8259A进行初始化。进行初始化。工作方式编程工作方式编程在在8259A8259A工作期间可以随时向工作期间可以随时向8259A8259A写入写入操作命令操作命令OCWOCW,使之按,使之按用户设置的新的工作方式进行工作,用户还可以通过写操作命用户设置的新的工作方式进行工作,用户还可以通过写操作命令字令字OCWOCW通知通知8259A8259A,下面的操作要读取,下面的操作要读取8259A8259A中的状态信息,中的状态信息,以便了解其工作情况。以便了解其工作情况。70 73 IR0为为000、IR1为为001、IR7为为111D0A0D71751176D7D0A08259A 的初始化编程流程的初始化编程流程 用用ICW1设置:设置:是否级联?是否级联? 请求信号的触发方式请求信号的触发方式 后面是否用后面是否用ICW4用用ICW2设中断类型码设中断类型码是否为级联方式?是否为级联方式?本片为主片吗?本片为主片吗?主片主片ICW3各位对应各位对应 IR0IR 7 的连接状况的连接状况从片从片ICW3 高高5位为位为0; 低低3位为标识码位为标识码用用ICW4 吗?吗?用用 ICW4 设:设:为特殊全嵌套方式?为特殊全嵌套方式? 为缓冲方式?为缓冲方式? 为自动为自动EOI方式?方式? 为为8086/8088系统?系统?NYNNY注意:级联使注意:级联使用时,主用时,主/从从8259A都要作都要作初始化操作。初始化操作。初始化完,准备接受中断请求输入初始化完,准备接受中断请求输入(1 1)芯片控制初始化命令字()芯片控制初始化命令字(ICW1ICW1) 例:例:82598259单级使用,中断请求信号为边缘触发,中断类型码为单级使用,中断请求信号为边缘触发,中断类型码为18H18H1FH1FH,中断优先级管理采用普通全嵌套方式,中断结束方,中断优先级管理采用普通全嵌套方式,中断结束方式采用非自动结束方式,系统中未使用数据缓冲器。端口地址式采用非自动结束方式,系统中未使用数据缓冲器。端口地址为为80H80H和和81H81H。ICW1=ICW1=00010011B=13H00010011B=13HMOV AL, 13HMOV AL, 13HOUT 80H, ALOUT 80H, AL (2) ICW2(2) ICW2(中断类型码初始化命令字)的格式和含义(中断类型码初始化命令字)的格式和含义MOV AL,18HMOV AL,18HOUT 81H,ALOUT 81H,AL00011000B=18H00011000B=18HICW2=ICW2=中断类型码为中断类型码为18H18H1FH1FHD0A0D71 1-8088/8086CPU 0-8080/8085CPU 1-自动 EOI 方式 0-非自动 EOI 方式 1-特殊完全嵌套方式 0-一般完全嵌套方式 0 非缓冲方式 1 0 缓冲方式从片 1 1 缓冲方式主片 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI uPM (4) ICW4(4) ICW4(方式控制初始化命令字)的格式和含义(方式控制初始化命令字)的格式和含义 采用普通全嵌套方式,中断结束方式采用非自动结束方式,系统中未使用数据缓冲器。ICW4= 00000001B=01H MOV AL,01HMOV AL,01HOUT 81H,ALOUT 81H,AL对对8259A8259A的初始化程序如下:的初始化程序如下: MOV ALMOV AL,13H 13H ;设置;设置ICWICW1 1初始化命令字初始化命令字 OUT 80HOUT 80H,AL AL ;将;将ICWICW1 1输出到偶地址端口输出到偶地址端口 MOV ALMOV AL,18H 18H OUT 81HOUT 81H,AL AL ;将;将ICWICW2 2送入奇地址端口送入奇地址端口 MOV ALMOV AL,01H 01H ;ICWICW4 4 OUT 81H OUT 81H,AL AL ;将;将ICWICW4 4送入奇地址瑞口送入奇地址瑞口 初始化编程初始化编程82598259工作方式编程主要完成的任务是对中断请求的屏蔽、优工作方式编程主要完成的任务是对中断请求的屏蔽、优先级循环控制、中断结束方式、内部控制寄存器的查询等。先级循环控制、中断结束方式、内部控制寄存器的查询等。 8259A8259A工作期间,可以随时接受工作期间,可以随时接受操作命令字操作命令字OCWOCW。OCWOCW共有共有3 3个:个:OCW1OCW1OCW3OCW3838485A0D7D0IW2W1W0D7D6D5D4D3D2D1D0中断位中断位I I位为位为1 1,有外设请求中断有外设请求中断W2W2W0W0的编码的编码当前中断请求的当前中断请求的最高优先级最高优先级地址地址译码译码CPUD7D0A7A1D7D0A0A0INTAINTRINTAINT8259IR0IR7CS2022/7/1191第六章结束!