《第八章-中断-微机原理课件.ppt》由会员分享,可在线阅读,更多相关《第八章-中断-微机原理课件.ppt(101页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理及应用微机原理及应用2023/5/26 1第 八 章 中 断8.1 引言8.1.1 为什么要用中断?8.1.2 中断源8.1.3 中断系统的功能8.2 简单的中断情况8.2.1 CPU响应中断的条件 8.2.2 CPU对中断的响应8.3 中断优先权8.3.1 用软件确定中断优先权8.3.2 硬件优先级排队电路主要内容2第 八 章 中 断8.4 8086的中断方式8.4.1 外部中断8.4.2 内部中断8.4.3中断向量表8.4.4 8086中的中断响应和处理过程8.5 中断控制器Intel8259A8.5.1 8529A功能8.5.2 8259A的结构8.5.3 8259A的引线8.5
2、.4 8259A 的中断顺序 8.5.5 8259A 的编程 8.5.4 8259A 的工作方式8.6 IBM PC/XT的中断结构8.6.1 中断类型8.6.2 IBM PC/XT中系统保留的中断3中断的概念学习目的中断类型及中断向量214中断控制器Intel825938086的中断方式及过程4中断:外设向CPU发中断请求,CPU接收到中断请求并在一定条件下,暂时停止执行原来的程序而转去处理中断,处理好中断服务再返回继续执行原来的程序,就称为一个中断过程。n 中断是CPU被动的响应外设要求服务。8.1 中断的概念为什么要用中断?68.1 中断概述中断的好处n 同步操作q 数据和外设可同时工作
3、,当外设准备好数据,可通过中断进行处理n 实时处理q 在计算机用于实时控制时,现场设备可根据需要发中断请求n 故障处理7中断源 中断源引起中断的原因,产生中断请求的来源。通常有以下几种:1.一般的I/O 设备,如键盘、打印机等。2.实时时钟。3.故障源。4.为了调试程序而设置的中断。(例如设置断点,单步运行等)8.1 中断概述88.1 中断概述n 优先权q 当系统中有多个中断源存在时,若有几个中断源同时提出申请,那么就存在CPU先响应谁的问题。2.实现中断优先权排队108.1 中断概述n 中断的嵌套q 优先级高的中断能中断正在服务的优先级低的中断3.实现中断优先权排队112.设置中断屏蔽触发器
4、8.2 最简单的中断情况13中断的全过程及有关概念:n 一个完整的中断过程包括:q 中断请求;q 中断判优;q 中断响应;q 中断处理;q 中断返回.二、中断响应 二、中断响应8.2 最简单的中断情况15执行一条指令最后一个总线周期的最后一个T状态?有INTR?中断开放?(FR中的IF=1?)关中断(置FR中IF=0)断号地址(IP.CS)入栈 FR 入栈转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI(置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYes8086 CPU 响应中断的过程16软件查询流程图在 中 断 服 务 中读 入 请 求 状 态A 申 请
5、?B 申 请?C 申 请?中 断 返 回为中断源A服务的程序段为中断源B服务的程序段为中断源C服务的程序段YYY8.3 中断优先权18 采用软件查询方式的特点:询问的次序,即为优先权的次序。硬件简单。由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。8.3 中断优先权19思考题:1.为什么要在中断服务程序中执行STI 指令?8.3 中断优先权202.硬件方式128-3优先权编码器优先权寄存器A B比较器A2A1A0B2B1B0比较失效 中断请求0 中断请求1 中断请求2 7D7 D0INTR若CPU 未处理任何中断,则“优先权失效”信号为高,当任一中断源请求中断时,通过门2发出INTR
6、 信号。若CPU 正在进行中断处理,当某一中断源请求中断时,能否向CPU 发出INTR信号,受比较器的控制。8.3 中断优先权21一、中断类型 一、中断类型8086能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如图8.5INT n 指令 中断逻辑非屏蔽中断请求中断控制系统(8259A)INT 3指令INTO指令单步中断除数为0中断 可屏蔽中断请求NMIINTR硬件中断软件中断8.4 8086中断方式22可屏蔽的中断INTR 高有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外设的中断。8.4 8086中断方式242.内部中断(软件中断)通常由三种情况引起:(1)
7、INT n 指令中断(n 为中断类型号)(2)处理CPU 某些错误的中断 除法错中断(中断类型号为0)溢出中断(INTO)(中断类型号为4)8.4 8086中断方式25(3)为调试程序设置的中断 单步中断当FR 中TF=1时,每执行一条指令,CPU 产生类型为1 的单步中断。断点中断设置断点实际上是把指令“INT 3”插入到程序中,CPU 每执行到断点处的“INT 3”指令,便产生类型为3 的中断。8.4 8086中断方式26三、中断向量表 三、中断向量表 CPU 响应中断后,如何得到中断服务程序的入口地址,转入到中断服务程序?8086CPU 通过建立中断向量表的方法解决。8.4 8086中断
8、方式28 中断向量(中断服务程序入口地址)在表中的地址=中断类型号 40000:0014 H0000:0013 H0000:0010 H0000:000F H0000:000C H0000:000B H0000:0008 H0000:0007 H0000:0004 H0000:0003 H0000:0000 H溢出中断类型5类型255供用户定义的中断(共224个)0000:007 FH0000:007 EH0000:03 FFH CS IPCS IPCS IPCS IPCS IPCS IPCS IP图8-9中断向量表专用的中断(共5个)保留的中断(共27个)类型32 类型31类型0类型4类型3
9、类型2类型1除数为 0 中断非屏蔽中断单步中断断点中断291.取类型号;2.计算向量地址;3.根据向量地址查表,将偏移地址送IP,段基址送CS;4.转入中断服务程序,进行中断处理。8.4 8086中断方式31六、8086CPU 对中断的响应流程内部中断?NMI?INTR?TF0?执行下条指令完成当前指令IF1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回第一个中断响应周期AD7 AD0 浮空第二个响应周期,取中断类型码 N N N N Y Y Y Y Y N32n 1片8259A 能管理8级中断q 通过级联用9片8259A可以构
10、成64 级主从式中断系统n 每一级中断可以屏蔽或允许n 在中断响应周期,8259A 可提供相应的中断向量。n 可编程使8259A 工作在多种不同的方式8.5 中断控制器8259AIntel 8259A 可编程中断控制器,主要有以下功能:338259A 8259A 的内部结构与引脚信号 的内部结构与引脚信号 控制逻辑中断服务寄存器ISR优先权电路PR中断请求寄存器IRR中断屏蔽寄存器IMR读写控制逻辑级联缓冲比较器数据总线缓冲器D0D7A0CAS0CAS1CAS2INTIR0IR1IR78259A内部逻辑框图8.5.1 8259A概述341.数据总线缓冲器 8位、双向、三态,是8259A与 CP
11、U 之间的数据接口。D0D7直接与CPU 数据总线的低8位连结。8.5.1 8259A概述352.读/写控制逻辑A0:常常与地址信号线A0相连。8259A的两个端口地址CPU 通常利用:OUT 指令,IN 指令,8.5.1 8259A概述363.中断请求寄存器 IRR 8 位,若IRi 有效(“1”,),对应位置“1”,直到IRi 得到响应。8.5.1 8259A概述374.中断服务寄存器 ISR8位,当IRi得到响应时,对应位置“1”。ISR 记录正在处理的IRi,当中断嵌套时,可能多位置“1”。8.5.1 8259A概述385.中断屏蔽寄存器 IMR8位,某位置“1”,对应IRi 禁止产生
12、中断。8.5.1 8259A概述396.优先权电路实现优先权的判断与处理,采用编码器和比较器电路8259A中的中断优先权电路8.5.1 8259A概述407.控制逻辑 由IRR 和PR 的情况,向8259A 其它部件发出控制信息。向CPU 发出INT 信号,接收CPU 的信号。8.5.1 8259A概述418.级联缓冲/比较器可以实现8259A的级联,扩展外中断。(1)CAS2、CAS1、CAS0 引脚 主8259A:CAS2CAS0 输出,输出被响应的从片的标志码。8.5.1 8259A概述42 从8259A:CAS2CAS0 输入,接收主片发出的标志码,与自己的标志码比较。若相等,下一个
13、信号到来时,将中断向量送至数据总线。8.5.1 8259A概述43n 主片:IR3有申请 IRR:0000 1000 ISR:0000 1000n 主片向CPU发INTR信号n CPU发回答信号INTAn 2个从片都收到TNTAn 主片向从片送识别码:CAS0CAS2=011n 2#从片n IR5有申请 IRR:0010 0000 ISR:0010 0000n 向主片发INT信号n 从片地址与主片地址同n 2#从片与识别码一致2#从片送出中断类型码1#从片挂在主片的IR62#从片挂在主片的IR38.5.1 8259A概述44(2)当8259A 工作于非缓冲方式(直接与CPU 的DB 相连)为输
14、入,是主从芯片定义引脚。8.5.1 8259A概述45 当8259A 工作于缓冲方式(通过总线缓冲器与 CPU 的DB 相连)为输出,用于启动数据总线驱动器。DB DBCPU数据总线驱动器8259A此时,主从芯片的定义由ICW4中的M/S实现。8.5.1 8259A概述468259A 8259A 的中断处理过程 的中断处理过程下面以8259A单片使用为例,说明其中断处理过程。1、当一条或多条中断请求线IR0 IR7变高时,设置相应的IRR位。2、PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。8.5.2 825
15、9工作方式473、CPU响应中断时,送回应答信号 INTA。4、8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。8.5.2 8259工作方式485、在8259A发送中断类型号的最后一个 INTA 脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个 INTA 脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。8.5.2 8259工作方式498259A 8259A 的工作方式 的工作方式8259A有多种工作方式,这些工作
16、方式可以通过初始化命令字(ICW1ICW4)和操作命令字(OCW1OCW4)来设置。8.5.2 8259工作方式501.引入中断请求的方式 边沿触发方式。以上升沿向8259A请求中断,上升沿后可一直维持高电平,不会再产生中断。电平触发方式。以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断。8.5.2 8259工作方式512.连接系统总线的方式 在大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总线连接的方式称缓冲器方式。在小系统中,则8259A不需要总线缓冲器而是将其直接接至数据总线。8.5.2 8259工作方式523.屏蔽中断源的方式 普通屏蔽方
17、式。利用操作命令字OCW1,使屏蔽寄存器IMR中的一位或几位置1来屏蔽一个或几个中断源的中断请求。特殊屏蔽方式。在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应,此时可采用特殊屏蔽方式。它可通过OCW3的D6D511来设定。8.5.2 8259工作方式534.优先级排队的方式全嵌套方式。在此种方式下中断优先级按0 7顺序进行排队,只允许中断级别高的中断源去中断中断级别低的中断服务程序。特殊全嵌套方式。它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同级中断请求的特殊嵌套(8259A级联使用时,某
18、从片的8个中断源对主片来说,可以认为是同级的)。特殊全嵌套方式用于多片级联。8.5.2 8259工作方式54D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7
19、一般全嵌套方式与特殊全嵌套方式的区别 去CPU55优先级自动循环方式。在这种方式下,优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低。其初始的优先级顺序规定为IR0,IR1,IR7。该方式用在系统中多个中断源优先级相等的场合。8.5.2 8259工作方式56优先级特殊循环方式。这种方式与优先级自动循环方式唯一的区别是,其初始的优先级顺序不是固定IR0为最高,然后开始循环,而是由程序指定IR0 IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。8.5.2 8259工作方式575.结束中断的处理方式自动中断结束方式。在中断服务程序中,中断返回之前,不需发中断结束
20、命令就会自动清除该中断源所对应的ISR位(实际上在CPU发第二个信号时,8259即自动消除ISR中的对应位)。这种方式用在多个中断不会嵌套的系统中。非自动中断结束方式。在中断服务程序返回之前,必须发中断结束命令才能使ISR中的当前服务位清除。8.5.2 8259工作方式588259A 8259A 的初始化命令字 的初始化命令字 8259A 初始化编程时,有四个初始化命令字ICW(Initialiation Command Word),即ICW1ICW4;三个操作命令字OCW(Opeiation Command Word),即OCW1OCW3)。8259A 只有两个端口地址 A0=0 偶地址端口1 奇地址端口8.5.3 8259编程591.ICW1(IRi 触发方式,是否单片使用,是否写入ICW4)0 1 LTIM SNGL IC4A0D7D6D5D4D3D2D1D0标志位8.5.3 8259编程60