版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 9 9 章章中断技术中断技术呱,打扰一下!主要内容 中断的概念中断的概念 8088 CPU的中断系统的中断系统 中断控制器中断控制器8259A8.1 8.1 中断概念中断概念什么是中断什么是中断 所谓中断,就是指当所谓中断,就是指当CPUCPU正在执行程序正在执行程序时,外设时,外设( (或其它中断源或其它中断源) )向向CPUCPU发出请求,发出请求,CPUCPU暂停当前程序的执行,转向该外设服务暂停当前程序的执行,转向该外设服务( (或称中断服务或称中断服务) )程序,当中断服务程序运程序,当中断服务程序运行结束后,返回原程序继续执行的过程。行结束后,返回原程序继续执行的过程。 处理
2、处理:外部紧急事件、异常情况:外部紧急事件、异常情况中断服务程序中断服务程序(Interrupt-service Interrupt-service routing routing ), ,处理随机事件的特殊程序,处理随机事件的特殊程序,又被称为中断处理程序(又被称为中断处理程序(interrupt interrupt handlerhandler)。)。中断源中断源,引起,引起CPUCPU中断的随机事件,或能中断的随机事件,或能发出中断请求的其它来源。发出中断请求的其它来源。中断技术是现代计算机系统中很重要的一中断技术是现代计算机系统中很重要的一项功能,可以应用于以下几个方面的处理项功能,可
3、以应用于以下几个方面的处理。1 1 )故障检测和自动处理故障检测和自动处理2 2 )实时信息处理)实时信息处理3 3 )并行操作,控制和管理多台外设记终端)并行操作,控制和管理多台外设记终端4 4 )分时操作)分时操作一一 什么是中断什么是中断断点主程序中断服务程序中断请求对外设进行处理继续执行返回断点 ?中断源有哪些中断源有哪些怎样识别中断源怎样识别中断源怎样进入中断服务怎样进入中断服务怎样返回断点怎样返回断点怎样管理中断源怎样管理中断源中断的过程中断的过程向向CPUCPU发出中断发出中断CPUCPU允许响应此中断允许响应此中断压栈保护现场及断点压栈保护现场及断点找到中断服务程序的入口地址找
4、到中断服务程序的入口地址执行中断服务程序执行中断服务程序恢复现场及断点恢复现场及断点即即 包括:中断请求,中断判优,中断响应,包括:中断请求,中断判优,中断响应,中断处理,中断返回。中断处理,中断返回。中断系统应具有的功能中断系统应具有的功能(1)实现中断及返回)实现中断及返回(2)能实现优先权排队)能实现优先权排队(3)高级中断源能中断低级的中断处理)高级中断源能中断低级的中断处理中断响应与调用子程序的区别中断响应与调用子程序的区别调用子程序调用子程序事先安排好的主动行为事先安排好的主动行为保护断点保护断点为主程序服务为主程序服务一般与外设无关一般与外设无关中断响应中断响应随机的、被动行为随
5、机的、被动行为保护断点及现场保护断点及现场为外设服务为外设服务为处理各种事件服务为处理各种事件服务软件中断和调用子程序软件中断和调用子程序很相似,调用方便很相似,调用方便8.2 80868.2 8086的中断技术的中断技术80888088的中断系统采用向量中断机制的中断系统采用向量中断机制能够处理能够处理256256个中断个中断用中断向量号用中断向量号0 0 255255区别区别可屏蔽中断还需要借助专用中断控制器可屏蔽中断还需要借助专用中断控制器Intel 8259AIntel 8259A实现优先权管理实现优先权管理80868086提供两条外部中断请求线,和一条与提供两条外部中断请求线,和一条
6、与中断有关的控制线:中断有关的控制线:NMINMI,INTRINTR, INTAINTA(中断响应)。中断响应)。80868086中断有两大类中断有两大类(1 1)软件中断(内部中断),由指令的执行)软件中断(内部中断),由指令的执行所引起的中断;所引起的中断;(2 2)硬件中断(外部中断),由外部主要是)硬件中断(外部中断),由外部主要是外设的请求引起的中断。外设的请求引起的中断。一、中断类型和中断向量表一、中断类型和中断向量表1 1、中断类型号、中断类型号 80868086用用0 0255255来区分来区分256256个不同中断源,个不同中断源,并对应给出并对应给出中断向量。中断向量。0
7、04 4: 5 5个内部中断,有固定的定义和处理个内部中断,有固定的定义和处理功能;功能;5 53131:系统保留,用户一般不应使用:系统保留,用户一般不应使用3232255255:用户使用作为硬件或软件中断,也:用户使用作为硬件或软件中断,也可不用,作为数据存储区。可不用,作为数据存储区。2 2、中断向量表、中断向量表 8086/80888086/8088系统支持最多系统支持最多256256个中断,对应个中断,对应每一个中断,都有一个中断服务程序,该每一个中断,都有一个中断服务程序,该中断服务程序的中断服务程序的入口地址入口地址称为中断向量。称为中断向量。每个中断向量占用每个中断向量占用4
8、4个字节,前两个字节为个字节,前两个字节为服务程序的服务程序的IPIP(偏移量),后两个字节为(偏移量),后两个字节为服务程序的服务程序的CSCS(段地址)。(段地址)。 每个中断类型对应一个中断向量。每个中断类型对应一个中断向量。256256个中断类型,其中断向量构成一个中断个中断类型,其中断向量构成一个中断向量表,放在向量表,放在0 0段的段的0 03FFH3FFH区域内,每个区域内,每个占占4 4个字节。个字节。存放中断向量的位置中断类型号存放中断向量的位置中断类型号4 4(0 0段)开始的段)开始的4 4个内存单元。个内存单元。向量号为向量号为N的中断向量的物理地址的中断向量的物理地址
9、N48086的中断向量表的中断向量表向量号向量号255的的CS值值用户中断用户中断(向量号(向量号255)3FCH向量号向量号255的的IP值值向量号向量号2的的CS值值非屏蔽中断非屏蔽中断(向量号(向量号2)008H向量号向量号2的的IP值值向量号向量号1的的CS值值单步中断单步中断(向量号(向量号1)004H向量号向量号1的的IP值值向量号向量号0的的CS值值除法错中断除法错中断(向量号(向量号0)000H向量号向量号0的的IP值值例:例:20H号中断的中断服务程序的入口地址号中断的中断服务程序的入口地址(中断向量)(中断向量)4030H:2010H,则此中断向,则此中断向量占用的内存单元
10、为:量占用的内存单元为:0000H:0080H开始的开始的4个单元个单元0080H0081H0082H0083H10H20H30H40HIPCS二、中断指令和中断屏蔽二、中断指令和中断屏蔽1 1、中断指令、中断指令CLICLI:清中断标志,:清中断标志,IFIF0 0,禁止可屏蔽中断;,禁止可屏蔽中断;STISTI:中断标志置位,:中断标志置位, IFIF1 1,开放可屏蔽中断;,开放可屏蔽中断;INT nINT n:软件中断:软件中断CPUCPU工作:工作:(Flags) (SP)(Flags) (SP)2)2) 先复制先复制TFTF状态,然后状态,然后TF,IF=0TF,IF=0 (CS)
11、 (SP) (CS) (SP)4)4) (4 (4* *n+2) (CS)n+2) (CS) (IP) (SP) (IP) (SP)6) 6) (4 (4* *n) (IP) n) (IP) IRET: 中断返回中断返回CPU的工作:的工作:(SP) IP(SP)+2) CS(SP)+4) flag(SP)+6 SPINTO 溢出中断(溢出中断(INT 4)HLT 暂停等待外部中断或复位暂停等待外部中断或复位2、 中断的屏蔽中断的屏蔽中断允许标志位(中断允许标志位(IF),只能影响可屏蔽),只能影响可屏蔽外部中断,不影响软件中断、内部中断以外部中断,不影响软件中断、内部中断以及非屏蔽的外部中断
12、。及非屏蔽的外部中断。系统响应中断时,使系统响应中断时,使IF0,保证响应过程,保证响应过程不被打断。不被打断。若有优先级高的中断,若有优先级高的中断, 在服务子程序中使在服务子程序中使IF1。3、IF 中断标志中断标志IF0,关中断、禁止中断、中断屏蔽,因,关中断、禁止中断、中断屏蔽,因此可屏蔽的中断不会被响应。此可屏蔽的中断不会被响应。系统复位系统复位任何一个中断响应任何一个中断响应执行执行CLI 将使将使IF0IF1,开中断、允许中断、中断开放,可,开中断、允许中断、中断开放,可屏蔽的中断会被响应。屏蔽的中断会被响应。执行执行STI 将使将使IF1执行执行IRET,恢复原,恢复原IF非屏
13、蔽中断源非屏蔽中断源中断逻辑中断逻辑INTO指令指令(4)单步单步中断中断(1)除法除法错误错误(0)INT N指令指令CPUINTRNMI(2)可屏蔽中断源可屏蔽中断源8259A中断中断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外设设中中断断源源 INTA内部中断内部中断除法错中断除法错中断指令中断指令中断溢出中断溢出中断单步中断单步中断外部中断外部中断非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断三、中断的功能INT 3指令指令1. 1. 内部中断内部中断内部中断是由于内部中断是由于8088内部执行程序出现异内部执行程序出现异常引起常引起的程序中断的程序中断利用内部中断,微处
14、理器为用户提供了发利用内部中断,微处理器为用户提供了发现、调试并解决程序执行时异常情况的有现、调试并解决程序执行时异常情况的有效途径效途径例如,例如,ROM-BIOS和和DOS系统利用内部中系统利用内部中断为程序员提供了各种功能调用断为程序员提供了各种功能调用除法错中断,类型除法错中断,类型0中断中断在执行除法指令时,若除数为在执行除法指令时,若除数为0或商超过了或商超过了寄存器所能表达的范围,则产生一个寄存器所能表达的范围,则产生一个向量号向量号为为0的内部中断,称为的内部中断,称为除法错中断。自动转除法错中断。自动转到到0000H0003H存放的地址执行。存放的地址执行。例如:例如:mov
15、 bl,0idiv bl;除数;除数BL0,产生除法错中断,产生除法错中断mov ax,200hmov bl,1div bl;商;商200H,不能用,不能用AL表达表达;产生除法错中断;产生除法错中断溢出中断,溢出中断, 类型类型4中断中断在执行溢出中断指令在执行溢出中断指令INTO时,若溢出标志时,若溢出标志OF为为1,则产生一个则产生一个向量号为向量号为4的内部中断,被称为的内部中断,被称为溢出中溢出中断断有必要时用有必要时用INTO引入,用于测试溢出标志。跟在引入,用于测试溢出标志。跟在有符号数的计算后面,程序员知道是否为有符号有符号数的计算后面,程序员知道是否为有符号数,对于无符号数则
16、无所谓。数,对于无符号数则无所谓。例如:例如:mov ax,2000hadd ax, 7000h;2000H7000H9000H,溢出:,溢出:OF1into;因为;因为OF1,所以产生溢出中断,所以产生溢出中断单步中断,类型单步中断,类型1中断中断若单步中断若单步中断TF为为1,则在每条指令执行结束,则在每条指令执行结束后产生一个向量号为后产生一个向量号为1的内部中断,称为单的内部中断,称为单步中断步中断例如:例如:DEBUG.EXE调试程序的单步命令调试程序的单步命令T就利就利用单步中断实现对程序的单步调试用单步中断实现对程序的单步调试断点中断,类型断点中断,类型3中断中断在调试程序时使用
17、,将某处的一条指令替在调试程序时使用,将某处的一条指令替换为换为 INT3指令。需要保存原内容,调试完指令。需要保存原内容,调试完后回复原指令。后回复原指令。比较特别(生成一个字节的指令代码:比较特别(生成一个字节的指令代码:11001100),常用于程序调试,被称为),常用于程序调试,被称为断断点中断点中断例如:例如:DEBUG.EXE调试程序的运行命令调试程序的运行命令G设置设置的断点,就是利用的断点,就是利用INT 3指令实现的指令实现的2 2、软件(指令)中断、软件(指令)中断在执行中断调用指令在执行中断调用指令INT n时产生的一个时产生的一个向向量号为量号为n(0 255)的内部中
18、断,称为)的内部中断,称为指令指令中断。中断。被成为向量化的子程序调用,一般会是功被成为向量化的子程序调用,一般会是功能比较复杂的仿真子程序。能比较复杂的仿真子程序。所有的外部中断也可以用指令调用所有的外部中断也可以用指令调用。3 3、外部中断、外部中断外部中断是由于外部中断是由于8088外部提出中断请求引外部提出中断请求引起起的程序中断的程序中断利用外部中断,微机系统可以实时响应外利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部设备的数据传送请求,能够及时处理外部意外或紧急事件部意外或紧急事件外部中断的原因是处理器外部随机产生的,外部中断的原因是处理器外部随机产生的
19、,所以是真正的所以是真正的中断中断(Interrupt)内部中断的原因是处理器执行程序出现异内部中断的原因是处理器执行程序出现异常,所以经常被称为常,所以经常被称为异常异常(Exception) 非屏蔽中断非屏蔽中断通过非屏蔽中断请求信号向微处理器提出通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称前指令执行结束予以响应,这个中断被称为非屏蔽中断为非屏蔽中断8088的非屏蔽中断的向量号为的非屏蔽中断的向量号为2,非屏蔽中,非屏蔽中断请求信号为断请求信号为NMI非屏蔽中断主要用于处理系统的意外或故非屏
20、蔽中断主要用于处理系统的意外或故障。例如:障。例如:电源调电前的数据保护电源调电前的数据保护存储器读写错误的处理存储器读写错误的处理 可屏蔽中断可屏蔽中断外部通过可屏蔽中断请求信号向微处理器外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断就是可屏蔽中断8088的可屏蔽中断请求和响应信号分别是的可屏蔽中断请求和响应信号分别是INTR和和INTA*;由由IF标志控制可屏蔽中断标志
21、控制可屏蔽中断是否允许响应是否允许响应;向量号来自外部中断控制向量号来自外部中断控制器。器。申请在申请在INTR线上发出信号,可以被线上发出信号,可以被CPU查查到,有要在服务完成前及时撤销,以防重到,有要在服务完成前及时撤销,以防重复触发。复触发。INTA*作为中断应答信号,送出两个负脉作为中断应答信号,送出两个负脉冲,第一个通知外设得到响应,第二个将冲,第一个通知外设得到响应,第二个将中断类型号送上数据线。中断类型号送上数据线。8088通常需要配合中断控制器通常需要配合中断控制器8259A共同处共同处理可屏蔽中断理可屏蔽中断可屏蔽中断主要用于主机与外设交换数据可屏蔽中断主要用于主机与外设交
22、换数据明明确确IF标标志志的的状状态态是是关关键键8086/8088的中断响应过程的中断响应过程NMIN软件中断软件中断INTRTF=1中断响应周期中断响应周期读中断向量号读中断向量号下条指令下条指令现行指令现行指令IF1NNNNYYYYY查询中断的顺序,查询中断的顺序,决定了各种中断源的优先权决定了各种中断源的优先权 软件中断软件中断 除法错中断除法错中断 指令中断指令中断 溢出中断溢出中断 非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断单步中断单步中断高高低低8086/8088的中断响应过程的中断响应过程(续)(续)Y还有还有NMITEMP1标志寄存器入栈标志寄存器入栈TEMPTF,IFTF0
23、CS:IP入栈入栈获取中断向量获取中断向量执行服务程序执行服务程序弹出弹出CS:IP弹出标志寄存器弹出标志寄存器返回被中断程序返回被中断程序(1)(2)(3)(4)(5)NNY(6)8.3 8.3 中断控制器中断控制器8259A8259A呱,打扰一下呱。呱呱呱,还有我中断申请管理接口的主要功能中断申请管理接口的主要功能:1. 向向CPU的引脚的引脚INTR发中断申请信号发中断申请信号 当有多个外设同时发出中断请求时,当有多个外设同时发出中断请求时, 能按照一定的优先级顺序,向能按照一定的优先级顺序,向CPU发出中断申请,发出中断申请, 使使CPU能优先响应优先级最高的外部设备的中断申请。能优先
24、响应优先级最高的外部设备的中断申请。2. 送中断类型号送中断类型号 在在CPU中断响应周期,针对不同外设的中断请求,中断响应周期,针对不同外设的中断请求, 向向CPU传送不同的中断类型号,传送不同的中断类型号, 使使CPU执行相应的中断子程执行相应的中断子程。Intel 8259A是可编程中断控制器是可编程中断控制器用于管理用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断的可屏蔽中断8259A的基本功能的基本功能一片一片8259A可以管理可以管理8级中断,可扩展至级中断,可扩展至64级级每一级中断都可单独被屏蔽或允许每一级中断都可单独被屏蔽或允许在
25、中断响应周期,可提供相应的中断向量号在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择设计有多种工作方式,可通过编程选择8259A的引脚的引脚 双列直插式芯片,双列直插式芯片,28个引脚个引脚方方 波波键键 盘盘保保 留留串串 口口2 硬硬 盘盘软软 盘盘打印机打印机IOW18.2HzA0CS8259A总线总线A0数数 据据 线线 IORRDWR片片选选译译码码IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INTA INT
26、R串串 口口1 一、一、8259A8259A的引脚、结构和工作原理的引脚、结构和工作原理引脚引脚1、D0D7: 8条数据线,与条数据线,与CPU数据总线相连,数据总线相连,进行数据交换,写入控制字或送出类型号。进行数据交换,写入控制字或送出类型号。2、INT:中断请求,与:中断请求,与CPU INTR相连发出中断相连发出中断申请。申请。INTA*: 接收来自接收来自CPU的响应信号,一般两个负脉的响应信号,一般两个负脉冲。冲。RD*: 读信号,读读信号,读CPU某个内部寄存器的内容某个内部寄存器的内容WR*:写信号,通知:写信号,通知CPU接收命令字。接收命令字。CS*:片选信号片选信号A0:
27、1片片8259A占用两个端口地址,一个偶地址占用两个端口地址,一个偶地址(A00)较低,一个奇地址()较低,一个奇地址(A01)较高。)较高。IR0IR7: 分别接分别接8个外设中断请求或从片中断请个外设中断请求或从片中断请求。求。CAS0CAS2:主从结构时,区分不同的从片。主从结构时,区分不同的从片。SP*/EN*: 双向线,双向线,(由初始化命令字设置由初始化命令字设置)非缓冲方式:输入非缓冲方式:输入 SP*1本片主片,本片主片, SP*0本片主本片主片片缓冲方式:输出缓冲方式:输出EN*0有效,数据从有效,数据从8259传向传向8086,一般用于驱动一个总线驱动器一般用于驱动一个总线
28、驱动器 关于数据线和地址线的连接关于数据线和地址线的连接8259A只有只有8根数据线,一般与根数据线,一般与8086的低的低8根数据线相连,因此必须把根数据线相连,因此必须把8086地址线的地址线的A1与与8259A的的A0相连。相连。其中其中A00为偶地址为偶地址 A01为奇地址。为奇地址。8259A8259A的内部结构的内部结构D7D0INTAINT中断请求寄存器中断请求寄存器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制控制逻辑逻辑级联级联缓冲器缓冲器比较器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路优先权判别电路中断服务寄存
29、器中断服务寄存器控制逻辑控制逻辑* * 保存保存8 8条外界中断请求信号条外界中断请求信号IR0IR0IR7IR7的请求状态的请求状态; ;* * Di Di位为位为1 1表示表示IRiIRi引脚有中断请求;引脚有中断请求;为为0 0表示无请求表示无请求. .* *保存对中断请求信号保存对中断请求信号IRIR的屏蔽状态的屏蔽状态* *DiDi位为位为1 1表示表示IRiIRi中断被屏蔽(禁止)中断被屏蔽(禁止), ,为为0 0表示允许表示允许; ;* *各自独立各自独立. .* *保存正在被保存正在被8259A8259A服务着的中断状态服务着的中断状态; ;* *DiDi位为位为1 1表示表示
30、IRiIRi中断正在服务中中断正在服务中, ,为为0 0表示没有被服务表示没有被服务. .* *用以比较正在处理的中断和刚刚进入用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套是否产生多重中断或中断嵌套. . 8259 8259的内部控制器。的内部控制器。1 1 根据中断请求寄存器根据中断请求寄存器IRRIRR、中断屏蔽寄存器、中断屏蔽寄存器IMRIMR的设置情况,通过优先级比较器判定优先的设置情况,通过优先级比较器判定优先级级; ;2 2 向其他部件发出控制信号向其他部件发出控制信号; ;3 3 并发出中断请求信号并发
31、出中断请求信号INT;INT;4 4 接受中断响应信号接受中断响应信号INTAINTA,使中断服务寄存器,使中断服务寄存器ISRISR的相应位置的相应位置1 1,IRRIRR的相应位清的相应位清0;0;5 5 在在INTAINTA第二个负脉冲到来的时候送出中断类第二个负脉冲到来的时候送出中断类型号型号; ;6 6 根据中断结束类型对根据中断结束类型对ISRISR的相应位清的相应位清0 0。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型中断类型号号 ICW3 主从片关主从片关
32、系系 ICW4 方式控制方式控制101 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR8259A的内部寄存器的内部寄存器中断请求寄存器中断请求寄存器IRR保存保存8条外界中断请求信号条外界中断请求信号IR0IR7的请求状态的请求状态Di位为位为1表示表示IRi引脚有中断请求;为引
33、脚有中断请求;为0表示无请求表示无请求中断服务寄存器中断服务寄存器ISR保存正在被保存正在被8259A服务着的中断状态服务着的中断状态Di位为位为1表示表示IRi中断正在服务中;为中断正在服务中;为0表示没有被服务表示没有被服务中断屏蔽寄存器中断屏蔽寄存器IMR保存对中断请求信号保存对中断请求信号IR的屏蔽状态的屏蔽状态Di位为位为1表示表示IRi中断被屏蔽(禁止);为中断被屏蔽(禁止);为0表示允许表示允许优先级比较器优先级比较器(裁决器裁决器)用以比较正在处理的中断和刚刚进入的中断请用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断求之间的优先级别,以决定是否
34、产生多重中断或中断嵌套。或中断嵌套。数据总线缓冲器数据总线缓冲器它是它是8259A与系统数据总线的接口,是与系统数据总线的接口,是8位双位双向三态缓冲器。向三态缓冲器。CPU与与8259A之间的控制命令之间的控制命令信息、状态信息以及中断类型信息,都是通过信息、状态信息以及中断类型信息,都是通过该缓冲器传送的。该缓冲器传送的。 读读/写控制逻辑写控制逻辑CPU通过它实现对通过它实现对8259A的读的读/写操作。写操作。 级连缓冲器级连缓冲器:用以实现用以实现8259A芯片之间的级连,使得中断源芯片之间的级连,使得中断源可以由可以由8级扩展至级扩展至64级。级。控制逻辑电路控制逻辑电路对整个芯片
35、内部各部件的工作进行协调和控制。对整个芯片内部各部件的工作进行协调和控制。8259的中断控制部分有的中断控制部分有7各寄存器,根据初始各寄存器,根据初始化命令字和操作命令字工作。化命令字和操作命令字工作。中断响应过程中断响应过程CPU在在INTA*上给出两个负脉冲上给出两个负脉冲第一个负脉冲使第一个负脉冲使8259A作如下的工作:作如下的工作:使使IRR寄存器暂时失效,不再接收新的申请,第二个负寄存器暂时失效,不再接收新的申请,第二个负脉冲恢复脉冲恢复使当前的使当前的ISR中的相应位置中的相应位置1使使IRR中的相应位清中的相应位清0第二个负脉冲第二个负脉冲使中断类型寄存器的使中断类型寄存器的
36、ICW2的内容送的内容送D0D7(中断类(中断类型码)型码)如果如果ICW4中的自动结束位为中的自动结束位为1,则使,则使ISR的相应位清的相应位清0。三、三、8259A8259A的工作方式的工作方式8259A8259A有多种工作方式,这些工作方式,有多种工作方式,这些工作方式,可以通过可以通过编程设置或改变编程设置或改变。1.1.优先级的管理方式优先级的管理方式(1).(1).全嵌套方式全嵌套方式这是这是8259A默认默认的优先权设置方式,在全嵌套的优先权设置方式,在全嵌套方式下,方式下,8259A所管理的所管理的8级中断优先权是级中断优先权是固固定不变定不变的,其中的,其中IR0的中断优先
37、级最高,的中断优先级最高,IR7的的中断优先级最低中断优先级最低。CPU响应中断后,请求中断的中断源中,优先响应中断后,请求中断的中断源中,优先级最高的中断源,在中断服务寄存器级最高的中断源,在中断服务寄存器ISR中的中的相应位置位,而且把它的中断矢量送至系统数相应位置位,而且把它的中断矢量送至系统数据总线,在此中断源的中断服务完成之前,与据总线,在此中断源的中断服务完成之前,与它它同级或优先级低的中断源的中断请求被屏蔽同级或优先级低的中断源的中断请求被屏蔽,只有优先级比它高的中断源的中断请求才是运只有优先级比它高的中断源的中断请求才是运算的,从而出现中断嵌套。算的,从而出现中断嵌套。 (2)
38、.).特殊全嵌套方式特殊全嵌套方式特殊全嵌套方式特殊全嵌套方式与全嵌套方式基本相同与全嵌套方式基本相同,所不,所不同的是,当同的是,当CPU处理某一级中断时,如果有同处理某一级中断时,如果有同级中断请求,那么级中断请求,那么CPU也会作出响应,从而形也会作出响应,从而形成了对成了对同一级中断的特殊嵌套同一级中断的特殊嵌套。特殊全嵌套方式特殊全嵌套方式通常应用在有通常应用在有8259A级连的系级连的系统中统中,在这种情况下,对主,在这种情况下,对主8259A编程时,通编程时,通常使它工作在特殊全嵌套方式下。这样,一方常使它工作在特殊全嵌套方式下。这样,一方面,面,CPU对于优先级别较高的主片的中
39、断输入对于优先级别较高的主片的中断输入是允许的,另一方面,是允许的,另一方面,CPU对于来自同一从片对于来自同一从片的优先级别较高(但对于主片来讲,优先级别的优先级别较高(但对于主片来讲,优先级别是相同的)的中断也是允许、能够响应的。是相同的)的中断也是允许、能够响应的。 (3).优先级自动循环方式优先级自动循环方式在实际应用中,中断源优先级的情况是比较复在实际应用中,中断源优先级的情况是比较复杂的,要求杂的,要求8级中断的优先级在系统工作过程级中断的优先级在系统工作过程中,可以中,可以动态改变动态改变。即一个中断源的中断请求。即一个中断源的中断请求被响应之后,其优先级被响应之后,其优先级自动
40、降为最低自动降为最低。系统启。系统启动时,动时,8级中断优先级级中断优先级默认为默认为IR0IR7,这时,这时,刚好刚好IR4发出了中断请求,发出了中断请求,CPU响应之后,若响应之后,若8259A工作在优先级自动循环方式下,则中断工作在优先级自动循环方式下,则中断优先级自动变为优先级自动变为IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4。(4).优先级特殊循环方式优先级特殊循环方式优先级特殊循环方式与自动循环方式相比,只优先级特殊循环方式与自动循环方式相比,只有一点不同,即初始化的优先级(最低)是由有一点不同,即初始化的优先级(最低)是由程序控制的,而不是默认的程序控制的,而
41、不是默认的IR0IR7。 2.2.中断源的屏蔽方式中断源的屏蔽方式CPUCPU对于对于8259A8259A提出的中断请求,都可以加提出的中断请求,都可以加以屏蔽控制,屏蔽控制有下列几种方式:以屏蔽控制,屏蔽控制有下列几种方式:(1).(1).普通屏蔽方式:普通屏蔽方式:8259A的每个中断请求输入,都要受到屏蔽寄的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。若相应位为存器中相应位的控制。若相应位为“1”,则中,则中断请求不能送断请求不能送CPU。屏蔽是通过对屏蔽寄存器。屏蔽是通过对屏蔽寄存器IMR的编程(操作命令字的编程(操作命令字OCW1),来加以设),来加以设置和改变的。置和改变的
42、。(2).).特殊屏蔽方式特殊屏蔽方式:有些场合下,希望一个中断服务程序的运行过程中,有些场合下,希望一个中断服务程序的运行过程中,能动态地改变系统中的中断优先级结构,即在中断处能动态地改变系统中的中断优先级结构,即在中断处理的一部分,禁止低级中断,而在中断处理的另一部理的一部分,禁止低级中断,而在中断处理的另一部分,又能够允许低级中断,于是引入了对中断的特殊分,又能够允许低级中断,于是引入了对中断的特殊屏蔽方式。屏蔽方式。设置了特殊屏蔽方式后,设置了特殊屏蔽方式后,用用OCW1对屏蔽寄存器中的对屏蔽寄存器中的某一位置位时,同时也会使中断服务寄存器某一位置位时,同时也会使中断服务寄存器ISR中
43、的相中的相应位复位应位复位,这样就不只屏蔽了正在处理的等级中断,这样就不只屏蔽了正在处理的等级中断,而且而且真正开放了其它优先级别较低的中断请求真正开放了其它优先级别较低的中断请求。特殊屏蔽是在中断处理程序中使用的,用了这种方式特殊屏蔽是在中断处理程序中使用的,用了这种方式之后,尽管系统正在处理高级中断,但对外界来讲,之后,尽管系统正在处理高级中断,但对外界来讲,只有同级中断被屏蔽,才允许其它任何级别的中断请只有同级中断被屏蔽,才允许其它任何级别的中断请求。求。3.结束中断处理的方式结束中断处理的方式按照对中断结束(复位中断响应寄存器按照对中断结束(复位中断响应寄存器ISR中中相应位)的不同处
44、理,相应位)的不同处理,8259A有两种工作方式,有两种工作方式,即即自动结束方式(自动结束方式(AEI)和非自动结束方式)和非自动结束方式。而非自动结束方式又可进一步分为而非自动结束方式又可进一步分为一般的中断一般的中断结束方式和特殊的中断结束方式结束方式和特殊的中断结束方式。(1).(1).中断自动结束方式中断自动结束方式这种方式仅适用于只有这种方式仅适用于只有单片单片8259A的场合的场合,在这种方,在这种方式下,系统一旦响应中断,那么式下,系统一旦响应中断,那么CPU在发在发第二个第二个INTA脉冲时脉冲时,就会使中断响应寄存器就会使中断响应寄存器ISR中相应位复位中相应位复位,这,这
45、样一来,虽然系统在进行中断处理,但对于样一来,虽然系统在进行中断处理,但对于8259A来来讲,讲,ISR没有相应的指示,就象中断处理结束,返回主没有相应的指示,就象中断处理结束,返回主程序之后一样。程序之后一样。CPU可以再次响应任何级别的中断请可以再次响应任何级别的中断请求求。(2).一般的中断结束方式一般的中断结束方式一般的中断结束方式适用用在一般的中断结束方式适用用在全嵌套全嵌套的情况下,当的情况下,当CPU用输出指令向用输出指令向8259A发发一般中断中断结束命令一般中断中断结束命令OCW2时,时,8259A才会使中断响应寄存器才会使中断响应寄存器ISR中优先级中优先级别最高的位复位。
46、别最高的位复位。(3).特殊的中断结束方式特殊的中断结束方式在特殊全嵌套模式下,系统无法确定哪一级中断为最在特殊全嵌套模式下,系统无法确定哪一级中断为最后相应和处理的中断,也就是说,后相应和处理的中断,也就是说,CPU无法确定当前无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束所处理的是哪级中断,这时就要采用特殊的中断结束方式。方式。特殊的中断结束方式是指在特殊的中断结束方式是指在CPU结束中断处理之后,结束中断处理之后,向向8259A发送一个特殊的发送一个特殊的EOI中断结束命令,这个特殊中断结束命令,这个特殊的中断结束的中断结束EOI命令,命令,明确指出了中断响应寄存器明确指出了
47、中断响应寄存器ISR中需要复位的位中需要复位的位。这里,我们还要指出一点,在级联方式下,一般不用这里,我们还要指出一点,在级联方式下,一般不用自动中断结束方式,而需要用非自动结束中断方式,自动中断结束方式,而需要用非自动结束中断方式,一个中断处理程序结束时,都必须发两个中断结束一个中断处理程序结束时,都必须发两个中断结束EOI命令,一个发往主片,一个发往从片。命令,一个发往主片,一个发往从片。 4.4.系统总线的连接方式系统总线的连接方式 按照按照8259A8259A与系统总线的连接方式来分,有下与系统总线的连接方式来分,有下列两种方式:列两种方式:(1).(1).缓冲方式缓冲方式在多片在多片
48、8259A级连的大系统中,级连的大系统中,8259A通过外部总线通过外部总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下,式下,8259的输出信号作为缓冲器的启动信号,用来的输出信号作为缓冲器的启动信号,用来启动总线驱动器,在启动总线驱动器,在8259A与与CPU之间进行信息交换。之间进行信息交换。(2).非缓冲方式非缓冲方式当系统中只有一片或几片当系统中只有一片或几片8259A芯片时,可以将数据芯片时,可以将数据总线直接与系统数据总线相连,这时总线直接与系统数据总线相连,这时8259A处于非缓处于非缓冲方式下。在这种方式下,冲方式下。在这种
49、方式下,8259A的作为输入端设置,的作为输入端设置,主片应接高电平,从片应接低电平。主片应接高电平,从片应接低电平。 5、引入中断请求的方式、引入中断请求的方式 按照引入中断请求的方式,按照引入中断请求的方式,8259A有下列几种工有下列几种工作方式:作方式: (1).边沿触发方式边沿触发方式8259A将中断请求输入端出现的上升沿,作为中断请将中断请求输入端出现的上升沿,作为中断请求信号,上升沿后求信号,上升沿后 相应引脚,可以一直保持高电平。相应引脚,可以一直保持高电平。 (2).电平触发方式电平触发方式 8259A将中断请求输入端出现的高电平作为中断请求将中断请求输入端出现的高电平作为中
50、断请求信号,在这种方式下,必须注意:中断响应之后,高信号,在这种方式下,必须注意:中断响应之后,高电平必须及时撤除,否则,在电平必须及时撤除,否则,在CPU响应中断,开中断响应中断,开中断之后,会引起第二次不应该有的中断。之后,会引起第二次不应该有的中断。 (3).).中断查询方式中断查询方式当系统中的中断源很多,超过当系统中的中断源很多,超过64个时,则可以使个时,则可以使8259A工作在查询方式下,中断查询方式的特点是:工作在查询方式下,中断查询方式的特点是:中断源仍往中断源仍往8259A发中断请求,但发中断请求,但8259A却不使用却不使用INT信号向信号向CPU发中断请求信号。发中断请
51、求信号。CPU内部的中断允许标志复位,所以内部的中断允许标志复位,所以CPU对对INT引脚上引脚上出现的中断请求呈禁止状态。出现的中断请求呈禁止状态。CPU 用软件查询的方法来确定中断源,从而实现对设用软件查询的方法来确定中断源,从而实现对设备的中断服务,可见,中断查询方式,既有中断的特备的中断服务,可见,中断查询方式,既有中断的特点,又有查询的特点,从外设的角度来看,是靠中断点,又有查询的特点,从外设的角度来看,是靠中断的方式来请求服务,但从的方式来请求服务,但从CPU的角度来看,是用查询的角度来看,是用查询方式来确定发中断请求的中断源。方式来确定发中断请求的中断源。查询是通过查询是通过CP
52、U向向8259A发查询命令发查询命令OCW3来实现的。来实现的。四、初始化命令字和操作命令字四、初始化命令字和操作命令字8259根据收到的根据收到的CPU的命令进行工作,奇命令的命令进行工作,奇命令分为两类:分为两类:初始化命令字(预置命令字初始化命令字(预置命令字ICW):):8259A在在进入操作之前,必须由预置命令字来使它处于进入操作之前,必须由预置命令字来使它处于初始状态。初始状态。操作命令字操作命令字OCW:在在8259初始化之后,来控初始化之后,来控制制8259A执行不同的操作方式。其可在初始化执行不同的操作方式。其可在初始化之后的任何时刻写入之后的任何时刻写入8259A。(一)初
53、始化命令字(一)初始化命令字(4 4个)个)开机时,由初始化程序按一定的顺序写入开机时,由初始化程序按一定的顺序写入设设8259有两个地址:偶地址、奇地址有两个地址:偶地址、奇地址1 1、ICW1ICW1:芯片控制命令字,偶地址:芯片控制命令字,偶地址D7D5:8086不用,随机不用,随机D4:总是:总是1,与,与A00结合,表示结合,表示ICW1D3:LTIM设置中断请求的方式设置中断请求的方式 LTIM0,边沿触发 LTIM1,电平触发D7D6D5D4D3D2D1D0XXX1LTIMADISNGLIC4A00D2:ADI 8086不用不用D1:SNGL决定本片是否级联决定本片是否级联 D1
54、1,只有一片8259A D10,多片D0:IC4表明后面是否使用表明后面是否使用ICW4 D01,用ICW4 D00,不用注:注:16位系统必须使用位系统必须使用ICW4,所以对于,所以对于8086、8088常见的命令字为常见的命令字为00010011B,即,即13H2 2、ICW2ICW2设置中断类型码,奇地址设置中断类型码,奇地址D7D6D5D4D3D2D1D0T7T6T5T4T3XXXA01中断类型码的高5位000 IR0001 IR1111 IR7中断类型码的高中断类型码的高5 5位由用户在位由用户在3232255255的范围内任选,的范围内任选,低低3 3位由引脚区别自动插入。即高位
55、由引脚区别自动插入。即高5 5位可填,低位可填,低3 3位自动位自动生成。生成。例:例:00111000B,则:则:IR038H IR139H IR240H IR73FH3 3、ICW3ICW3,主从片命令字,奇端口,主从片命令字,奇端口当系统有多片级联时,有意义。当系统有多片级联时,有意义。ICW1 D10时要时要设,否则不必设。而且主从片不同。设,否则不必设。而且主从片不同。主片主片D7D6D5D4D3D2D1D0IR7IR6IR5IR4IR3IR2IR1IR0A011,表示本引脚上连,表示本引脚上连1从片从片0,表示本引脚上未连从片,表示本引脚上未连从片从片从片D7D6D5D4D3D2D
56、1D0ID2ID1ID0A01不用,一般写不用,一般写0作为从片的标识码,作为从片的标识码,表示连主片的哪一个表示连主片的哪一个引脚引脚实际操作时,主片从实际操作时,主片从CAS0CAS0CAS2CAS2发出申请中断的发出申请中断的引脚号码,个从片均接收,与自己的引脚号码,个从片均接收,与自己的ID0ID0ID2ID2对对照,相同则送出中断类型码。照,相同则送出中断类型码。4 4、ICW4ICW4方式控制命令字,奇端口方式控制命令字,奇端口ICW1 D01时才设,时才设,8086系统必须使用系统必须使用D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIPM A01标识码D4(S
57、FNM):):1 特殊全嵌套方式,主从结构时使用特殊全嵌套方式,主从结构时使用 0 非特殊的全嵌套方式非特殊的全嵌套方式D3(BUF):):1 缓冲方式,缓冲方式,EN*0 启动数据总线启动数据总线0 非缓冲方式非缓冲方式D2(M/S):D31时,时,D2有意义有意义 D31,D21,表本片是主片 D20,表本片是从片D1(AEOL):):1 自动结束方式自动结束方式 0 非自动结束方式,因此需非自动结束方式,因此需要中断结束命令。要中断结束命令。D0( PM ):):1,用于,用于8086/8088系统系统 0,用于,用于8080/8085系统系统8259初始化流程初始化流程用用ICW1设置
58、设置是否级联是否级联请求格式信号请求格式信号是否需要设置是否需要设置ICW4用用ICW2设置中断类型码设置中断类型码是否为级联方式本片设为主片吗?设置设置ICW3,各位,各位对应对应IR0IR7设置设置ICW3,高,高5位位为为0,低,低3位为标识码位为标识码需要用到ICW4吗?用ICW4设置是否为特殊全嵌套方式是否为特殊全嵌套方式是否为缓冲方式是否为缓冲方式是否为自动结束中断方式是否为自动结束中断方式是否为是否为16位系统位系统结束,进行中断服务NYNYNY注意注意“偶地址低,奇地址高,占用两个连续的地址或偶地址低,奇地址高,占用两个连续的地址或两个连续的偶地址。两个连续的偶地址。ICW1I
59、CW4的顺序不能乱的顺序不能乱ICW3、ICW4可省可省级联时,级联时,ICW3主从片的意义不同,地址不同,主从片的意义不同,地址不同,一般先写主片,后些从片。一般先写主片,后些从片。例例1,设某,设某8259A的端口地址的端口地址80H,82H,分析下列命令。分析下列命令。MOV AL, 13HOUT 80H,AL;设;设ICW1MOV AL, 18HOUT 82H,AL;设;设ICW2,中断类型码,中断类型码MOV AL, 1DHOUT 82H,AL;设;设ICW4,00001101常用的常用的ICW4,01H。(二)操作命令字,(二)操作命令字,3个个8259A用初始化命令字命令编程后,
60、就进入工用初始化命令字命令编程后,就进入工作状态,准备好接收输入的中断请求信号。在作状态,准备好接收输入的中断请求信号。在工作期间,可以通过操作命令字来使它按不同工作期间,可以通过操作命令字来使它按不同的方式工作。因此可以在任何时候以任意顺序的方式工作。因此可以在任何时候以任意顺序输出。输出。1、OCW1中断屏蔽命令字,奇地址中断屏蔽命令字,奇地址D7D6D5D4D3D2D1D0M7M6M5M4M3M2M1M0A01Mi1,屏蔽本位请求,屏蔽本位请求Mi0,允许本位请求,允许本位请求2、OCW2设置优先级循环及结束中断方式命令字,设置优先级循环及结束中断方式命令字,偶地址偶地址D7D6D5D4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宁波东方人力资源服务有限公司招聘外包工作人员备考题库及一套参考答案详解
- 2026年福建省邵武市“人才·校园行”专项招聘33人备考题库完整参考答案详解
- 2025北京工业大学人才引进7人(第五批)备考考试试题及答案解析
- 2025年承德市大学生(大众)创业园项目招募备考题库参考答案详解
- 2025年厦门实验中学招聘顶岗教师的备考题库及参考答案详解
- 2025年宁波农商发展集团有限公司招聘14人备考题库含答案详解
- 2025年大安市太山镇卫生院招聘备考题库及答案详解1套
- 2025年国机集团北京共享服务中心有限公司社会招聘备考题库及参考答案详解一套
- 2025年云南水务投资股份有限公司宁洱县污水处理厂招聘备考题库及1套完整答案详解
- 2025年四会市江谷精细化工产业基地管理中心公开招聘备考题库及答案详解一套
- 《房间空气调节器室内热舒适性评价方法》
- 2025秋期版国开电大本科《管理英语3》一平台综合测试形考任务在线形考试题及答案
- 电解铝安全环保知识培训课件
- 高校重点人管理办法
- 基于地理信息系统的位置分析与环境影响评价-洞察及研究
- 药物警戒培训课件
- 【2025秋新版】三年级上册语文期末复习1- 8单元日积月累
- 竞争性谈判会议记录
- GB/T 30658-2025假肢和矫形器开具下肢假肢处方考虑的因素
- 安全标志现场评审规范
- 食品添加剂检验员岗位面试问题及答案
评论
0/150
提交评论