《CPU响应中断条件》由会员分享,可在线阅读,更多相关《CPU响应中断条件(40页珍藏版)》请在金锄头文库上搜索。
1、CPUCPU响应中断条件响应中断条件CPU对中断的响应关中断保留断点保护现场给出中断入口,转入相应的中断服务程序恢复现场开中断与返回执行一条指令最后一个总线周期的最后一个T状态? 有INTR?中断开放? (FR中的IF=1?)关中断 (置FR中IF=0)断点地址(CS. IP)入栈 FR 入栈 识别中断源,转入相应中断服务程序识别中断源,转入相应中断服务程序 保护现场 中断服务处理 恢复现场 开中断STI (置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYes 中断优先级中断优先级中断优先级中断优先级8086 8086 系统中,中断优先级的次序为:系统中,中断优先级的次
2、序为:高低内部中断 (除法错、INTO、INT n)NMIINTR单步中断 中中断断向向量量 ( (中中断断服服务务程程序序入入口口地地址址) ) 在在表表中的地址中的地址 = = 中断类型号中断类型号 4 41. 1. 取类型号;取类型号; 2. 2. 计算向量地址;计算向量地址; 3. 3. 根据向量地址查表,将偏移地址送根据向量地址查表,将偏移地址送IPIP,段,段基址送基址送CSCS; 4. 4. 转入中断服务程序,进行中断处理。转入中断服务程序,进行中断处理。 6.2.5 8086CPU 6.2.5 8086CPU 6.2.5 8086CPU 6.2.5 8086CPU 转入中断服务
3、程序的过程转入中断服务程序的过程转入中断服务程序的过程转入中断服务程序的过程 6.2.6 8086CPU6.2.6 8086CPU中断响应流程中断响应流程内部中断?NMI?INTR?TF0?执行下条指令完成当前指令IF1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场关中断,返回 中断响应流程第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码YYYYNNNNYN内部中断?NMI?INTR?TF0?执行下条指令完成当前指令 IF1?第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码AYYYYYNNNNNY
4、标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回A 6.3 8259A 6.3 8259A 可编程中断控制器可编程中断控制器 在在微微机机系系统统中中,可可以以使使用用8259A 8259A 扩扩展展外外部部中中断断,Intel Intel 8259A 8259A 可可编编程程中中断断控控制制器,主要有以下功能:器,主要有以下功能: 3. 3. 在在中中断断响响应应周周期期,8259A 8259A 可可提提供供相相应应的的中断类型号。中断类型号。1. 1. 1 1片片8259A 8259A 能能管管理理8 8级级中中断断,通通过过级
5、级联联用用9 9片片8259A8259A可以构成可以构成64 64 级主从式中断系统。级主从式中断系统。 2. 2. 每一级中断可以屏蔽或允许。每一级中断可以屏蔽或允许。4. 4. 可编程使可编程使8259A 8259A 工作在多种不同的方式。工作在多种不同的方式。 6.3.1 8259A 6.3.1 8259A 6.3.1 8259A 6.3.1 8259A 的内部结构与引脚信号的内部结构与引脚信号的内部结构与引脚信号的内部结构与引脚信号 控制逻辑控制逻辑中断服务中断服务 寄存器寄存器 ISR优先权优先权 电路电路 PR中断请求 寄存器 IRR中断屏蔽寄存器中断屏蔽寄存器IMRIMR读写控制
6、读写控制 逻辑逻辑级联缓冲级联缓冲 比较器比较器数据总线数据总线 缓冲器缓冲器D0D7A0CAS0 CAS1 CAS2INTIR0 IR1 IR7 8259A8259A内部逻辑框图内部逻辑框图2. 2. 读读/ /写控制逻辑写控制逻辑A0:常常与地址信号线A0相连。 8259A的两个端口地址 CPU 通常利用: OUT 指令, IN 指令, 。接高位地址的译码输出:CS有关寄存器的内容。内部配合读出与A8259A0,CSRD8. 8. 级联缓冲级联缓冲/ /比较器比较器可以实现可以实现8259A8259A的级联,扩展外中断。的级联,扩展外中断。 (1) CAS(1) CAS2 2、CASCAS
7、1 1、CASCAS0 0 引脚引脚 主主8259A: CAS8259A: CAS2 2CASCAS0 0 输出,输出被输出,输出被 响应的从片的标志码。响应的从片的标志码。 8259A 从片 A 8259A 主片8259A 从片 B INT CAS0 CAS1 CAS2 IR0INT CAS0 CAS1 CAS2 IR0 INT CAS0 CAS1 CAS2 IR7 IR6 IR3 IR0 SP/EN SP/EN IR7CS A0 INTACS A0 INTACS A0 INTA IR7SP/EN IR7AB CB DBGND GND Vcc 从从8259A: 8259A: CASCAS2
8、2CASCAS0 0 输输入入,接接收收主主片片发发出出的的标标志志码码,与与自自己己的的标标志志码码比比较较。若若相相等等,下下一一个个INTAINTA信信号号到到来来时,将中断类型号送至数据总线。时,将中断类型号送至数据总线。 从片从片AA标志码:标志码:011011,从片,从片BB标志码:标志码:110110(2) SP / EN引脚 当当8259A 8259A 工作于非缓冲方式工作于非缓冲方式 ( (直接与直接与CPU CPU 的的DB DB 相连相连) ) 为输入,是主从芯片定义引脚。 当当8259A 8259A 工作于缓冲方式工作于缓冲方式 ( (通过总线缓冲器与通过总线缓冲器与
9、CPU CPU 的的DB DB 相连相连) ) EN为输出,用于CPU与8259A传送数据信息时启动数据总线驱动器。 DBDBCPU数据总线驱动器 8259A此时,主从芯片的定义由此时,主从芯片的定义由ICWICW44中的中的M/SM/S实现。实现。 6.3.2 8259A 6.3.2 8259A 6.3.2 8259A 6.3.2 8259A 的中断处理过程的中断处理过程的中断处理过程的中断处理过程 下面以8259A单片使用为例,说明其中断处理过程。1、当一条或多条中断请求线IR0 IR7变变高高时,设置相应的IRR位。2、PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最
10、高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。3、CPU响应中断时,送回应答信号 INTA 。4、8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。5、在8259A发送中断类型号的后一个INTA 脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个 INTA 脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOIEOI命令来复位。6.3.3 8259A 6.3.3 8259A 6.3.3 8259A 6.3.3 825
11、9A 的工作方式的工作方式的工作方式的工作方式 8259A有多种工作方式,这些工作方式可以通过初始化命令字(ICW1ICW4)和操作命令字(OCW1OCW3)来设置。 ICW1:基本方式初始化字基本方式初始化字1LTIMSNGLIC4D7D6D5D4D3D2D1D0表示可以任意表示可以任意为为1为为0都可以(建议为都可以(建议为0) 1只能为只能为1,作为标志,作为标志中断触发方式:中断触发方式:LTIM1,电平触发方式,电平触发方式LTIM0,边沿触发方式,边沿触发方式 规定单片或级连方式:规定单片或级连方式:SNGL1,单片方式,单片方式SNGL0,级连方式,级连方式是否写入是否写入ICW
12、4IC41,要写入,要写入ICW4IC40,不写入,不写入ICW4,即,即ICW4规定的位全为规定的位全为0 ICW2:中断类型码:中断类型码初始化字初始化字T7T6T5T4T3D7D6D5D4D3D2D1D0设置中断向量号设置中断向量号nT7T3为中断向量号的高为中断向量号的高5位位n低低3位由位由8259A自动确定:自动确定:nIR0为为 000、 IR1为为 001、 、IR7为为111 ICW3:主片:主片/从片从片初始化字初始化字S7 /ID7S6 /ID6S5 /ID5S4 /ID4S3 /ID3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字级连命令
13、字n主主片片8259A:Si1对对应应IRi接接有有从从片片;否则否则IRi没有连接从片没有连接从片n从从片片8259A:ID0ID2编编码码说说明明从从片片INT引脚接到主片哪个引脚接到主片哪个IR引脚引脚 ICW4:方式控制初始化字:方式控制初始化字000SFNMBUFM/SAEOIPMD7D6D5D4D3D2D1D0嵌套方式嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(SFNM1)n普通全嵌套方式(普通全嵌套方式(SFNM0)数据线的缓冲方式数据线的缓冲方式:n缓冲方式(缓冲方式(BUF1)n非缓冲方式(非缓冲方式(BUF0) 主片主片/ /从片选择从片选择:n主片(主片(M/S=1)n从
14、片(从片(M/S=0)中断结束方式中断结束方式:n自动中断结束(自动中断结束(AEOI1)n非自动中断结束(非自动中断结束(AEOI0)微处理器类型微处理器类型:n16位位80x86( PM1)n8位位8080/8085( PM0) 0CW1:中断屏蔽操作字:中断屏蔽操作字M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字屏蔽命令字内容写入中断屏蔽寄存器内容写入中断屏蔽寄存器IMRDiMi对应对应IRi,为,为1禁止禁止IRi中断;中断;为为0允许允许IRi中断。各位互相独立。中断。各位互相独立。 0CW20CW2:优先级循环和中断结束:优先级循环和中断结束操作字操作字
15、RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和和EOI配合使用配合使用产产生生中中断断结结束束EOI命命令令和改变优先权顺序和改变优先权顺序L2L0的的3位编码位编码指定指定IR引脚引脚 有两个作用:有两个作用:(1) 8259A (1) 8259A (1) 8259A (1) 8259A 工作于非自动中断结束方式时,工作于非自动中断结束方式时,工作于非自动中断结束方式时,工作于非自动中断结束方式时,如何复位如何复位如何复位如何复位ISR ISR ISR ISR 中的对应位?有两种方法:中的对应位?有两种方法:中的对应位?有两种方法:中的对应位?有两种方法: SFNMS
16、FNM 一般方法:令一般方法:令SL = 0, EOI =1 SL = 0, EOI =1 将将OCW2OCW2写入写入8259A8259A后,将刚刚被服务的后,将刚刚被服务的IRIRi i对应位复位。对应位复位。 特殊方法:令特殊方法:令 SL = 1, EOI = 1 SL = 1, EOI = 1写入写入OCWOCW2 2后,使后,使L L2 2L L1 1L L0 0指定的位复位。指定的位复位。 L2 L1 L0 0 0 0 0 0 1 1 1 1 D0D1D7ISR中的DiIR0IR1IR7对应的IRi(2) (2) (2) (2) 定义定义定义定义8259A 8259A 8259A
17、 8259A 的优先权工作方法的优先权工作方法的优先权工作方法的优先权工作方法 R = 0 固定优先权方式 IR0 IR1 IR7 R = 1, SL = 0 R = 1, SL = 0 优先权自动循环方式优先权自动循环方式例: IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 初始优先权为: 7 6 5 4 3 2 1 0 若ISR =0 1 0 1 0 0 0 0 则当IR4 服务完毕后,优先权为: 2 1 0 7 6 5 4 3 R = 1, SL = 1 R = 1, SL = 1 优先权特殊循环方式优先权特殊循环方式此时,此时,L L2 2L L1 1L L0 0 规定
18、循环开始时的最低优先权规定循环开始时的最低优先权 例例: 1 1 0 0 1 0 1 IRIR5 5优先权最低优先权最低 此时,优先权为:此时,优先权为: IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 1 0 7 6 5 4 3 2 0CW30CW3:特殊屏蔽设置和中断结束特殊屏蔽设置和中断结束操作字操作字0ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM设置中断屏蔽方式设置中断屏蔽方式P、RR和和RIS规规定定随随后后读读取取的的状态字含义状态字含义(3) (3) (3) (3) 使使使使8259A 8259A 8259A 8259A 和和和和
19、CPU CPU CPU CPU 的通信方式由中断方式的通信方式由中断方式的通信方式由中断方式的通信方式由中断方式 查询方式查询方式查询方式查询方式 某些情况下,当某些情况下,当IFIF设置为设置为0 0时,用查询时,用查询方式为中断源服务。方式为中断源服务。 令令OCWOCW3 3 中的中的P = 1P = 1,写入,写入OCWOCW3 3后,若之后,若之前有前有IRiIRi有效,有效,8259A 8259A 把把CPU CPU 的下一个读信的下一个读信号看作号看作 信号,使信号,使ISR ISR 中最高优先中最高优先权的某一位置位,同时送以下数据至权的某一位置位,同时送以下数据至DBDB。M
20、OVAL, OCW3; 其中其中 P=1OUTINTA0, AL; 发发OCW3INAL, INTA0; 读偶地址端口读偶地址端口 查询字IW2W1W0D7D6D5D4D3D2D1D0中断位中断位I位为位为1,有外设请求中断有外设请求中断W2W0的编码的编码当当前前中中断断请请求求的的最高优先级最高优先级 8259A 8259A 中中IRRIRR、ISR ISR 只只能能读读出出,不不能能写写入入,都都对对应应偶偶地地址址端端口口。此此时时,可可先先写写入入OCWOCW3 3,OCWOCW3 3中中的的RRRR、RIS RIS 规规定定从从偶偶地地址址端端口口读读出的是出的是IRR IRR 或
21、或ISR ISR 的值。的值。 MOV AL, OCW3OUT INTA0, ALIN AL, INTA0 ; 若若OCW3中中 RR RIS 则读出的是则读出的是 1 1 ISR1 0 IRR6.3.7 8259A 6.3.7 8259A 6.3.7 8259A 6.3.7 8259A 对对对对ICWICWICWICW、OCWOCWOCWOCW的识别的识别的识别的识别 8259A 8259A 只占两个端口,但只占两个端口,但ICW ICW 有有4 4个,个,OCWOCW有有3 3个。个。 1. A0 = 0 (偶地址端口偶地址端口) ) 写入的有写入的有:ICW1, OCW2,OCW3(D4
22、=1)用标志位识别用标志位识别2. A0 = 1 (奇地址端口奇地址端口) 写入的有:写入的有:ICW2 ICW3 ICW4 OCW1按写入顺序识别按写入顺序识别注注意意:初始化过程中可能没有ICW3或ICW4,应根据具体情况确定。 6.3.5 8259A 6.3.5 8259A 6.3.5 8259A 6.3.5 8259A 的初始化编程逻辑的初始化编程逻辑的初始化编程逻辑的初始化编程逻辑 用ICW1设置:是否级联? 请求信号的触发方式 后面是否用ICW4用ICW2设中断类型码是否为级联方式?本片为主片吗?设ICW3各位对应 IR0IR 7 的连接状况设ICW3 高5位为0; 低3位为标识码用ICW4 吗?用 ICW4 设:为特殊全嵌套方式? 为缓冲方式? 为自动EOI方式? 为8086/8088系统?ENDNYNNY8259A的初始化流程的初始化流程注注意意:级级联联使使用用时时,主主、从从 8259A8259A都都要要作作初初始始化化操作。操作。Y