第8章 微型计算机的中断系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第八章微型计算机的中断系统2正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理中断请求及响应实际场景计算机中断返回38259A可屏蔽中断请求中断逻辑INTO指令INTn指令除法出错单步(TF=1)非屏蔽中断请求8086/8088CPUNMIINTR内部中断外部中断可屏蔽中断非屏蔽中断4NY保护现场中断服务恢复现场返回取下一条指令执行指令转中断程序响应中断关中断保护断点寻找中断源指令结束有中断请求NY5NYNYNNNNNYY执行指令执行完否?取指令IF=1?内部中断?NMI?INTR?TF=1?类型码=0~255类型码=2类型码=1中断响应,读回类型码PSW入栈TEMP←TFTF=0CS、IP入栈计算向量表地址高字→CS低字→IP执行中断服务程序NMI?TEMP=1?转入中断服务程序恢复CS和IP恢复PSW返回被中断的程序YYYYNIRET指令的操作8086的中断响应过程。6类型255中断入口类型32中断入口类型31中断入口类型5中断入口类型4中断入口(溢出中断)类型3中断入口(断点中断)类型2中断入口(MNI)类型1中断入口(单步中断)类型0中断入口(除法出错)IPCSIPCSIPCS00000400800C01001407C0803FC专用5个系统用27个用户用224个7例8-1某中断的类型号为68H,中断的操作过程如下:类型69H中断向量A0002050类型67H中断向量中断处理程序STIPUSHDS…..….IRET2050INT68HMOVAX,00:19C0:1A00:1A20:1A4A000IPCSA000:2050向量地址=68H×4=1A0H①②③④⑤8例8-2用指令来设置中断服务程序的入口地址到中断类型号n所对应的中断向量表中。MOVAX,0;中断向量表的段地址送到ESMOVES,AXMOVDI,N*4;中断类型号*4MOVAX,OFFSETINTRAD;取中断服务程序的偏移地址CLDSTOSW;偏移地址送[4n][4n+1]单元MOVAX,CSSTOSW;段地址送[4n+2][4n+3]单元STI……INTRAD:PUSHAXSTI……POPAXIRET9例8-3用指令设置中断向量方法二。MOVAX,0MOVES,AXMOVBX,N*4MOVAX,OFFSETINTRADMOVES:WORDPTR[BX],AXMOVAX,SEGINTRADMOVES:WORDPTR[BX+2],AXSTI…..INTRAD:PUSHAXSTI…..POPAXIRET10例8-4利用DOS功能设置中断向量和取中断向量。MOVAL,N;取中断向量,并存中断向量MOVAH,35HINT21HPUSHESPUSHBXPUSHDSMOVAX,SEGINTRAD;设中断向量MOVDS,AXMOVDX,OFFSETINTRADMOVAL,NMOVAH,25HINT21HPOPDS……POPDX;恢复原中断POPDSMOVAL,NMOVAH,25HINT21HRETINTRAD:……IRET11中断响应时序CLKT1T2T3T4T1T2T3T4第1个周期第2个周期D7~D0ALEnLOCKINTAINTAINTA1213菊花链逻辑电路中断请求INTAINTR中断回答中断请求INTA以及总线控制逻辑CPUINTR接口1菊花链逻辑电路接口2菊花链逻辑电路接口3菊花链逻辑电路中断回答14中断服务寄存器中断类型寄存器优先级管理逻辑中断请求寄存器中断屏蔽寄存器由中断请求决定IR0IR1...……IR715中断嵌套STI..(EOI)..IRETIR2处理程序.......主程序.STI..(EOI)IRETIR4处理程序STI...(EOI)IRETIR3处理程序STI...(EOI)IRETIR1处理程序IR2和IR4中断请求IR1中断请求IR3中断请求IR2中断清除IR4中断请求IR1中断清除开中断开中断IR3中断清除IR4中断清除1617级联缓冲器/比较器控制电路数据总线缓冲器读/写控制电路中断服务寄存器(ISR)优先级管理逻辑(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)IR0IR1……IR7RDINTWRSP/ENCSA0D7~D0CAS0CAS1CAS2INTA18有关这些读写操作的说明自学P282~28319三、8259A的中断管理方式1、8259A的编程结构20从8259A的编程结构中可以得到的结论:(1)中断管理方式是通过8259A初始化时写入初始化命令字和操作命令字来设置的。(2)初始化命令字写入寄存器ICW1~ICW4,它由初始化程序设置。初始化命令字一经设定,在系统工作过程中就不再改变。(3)操作命令字写入寄存器OCW1~OCW3,它是由应用程序设定的,用来对中断处理过程进行控制,在系统运行过程中,操作命令字可以重新设置。212、优先级的设置方式(4种)(1)完全嵌套方式特点:①若8259A初始化后没有设置其它优先级的方式,就自动进入完全嵌套方式。②在这种方式下,中断优先级分配固定级别0~7级,IR0具有最高优先级,IR7优先级最低。③可将初始化命令字ICW4中的SFNM=0,将8259A置成完全嵌套优先级方式。④允许打断正在处理的中断,优先处理更高级的中断,实现中断嵌套,但禁止同级与低级中断请求进入。⑤可用普通EOI结束方式、自动AEOI结束方式来结束中断的处理过程。22(2)特殊全嵌套方式特点:与全嵌套工作方式基本相同,区别在于当处理某级中断时,有同级中断请求进入,8259A也会响应,从而实现了对同级中断请求的特殊嵌套。作用:在级联方式中,当从片上有中断请求进入并正在处理时,同一从片上又进入更高优先级的中断请求,从片能响应更高优先级中断请求,并向主片申请中断,但对主片来说是同级中断请求。当主片处于特殊全嵌套工作方式时,主片就能允许对相同级别的中断请求开放。常用特殊EOI结束方式来结束中断的处理过程。2324(3)优先级自动循环方式特点:①在优先级自动循环方式中,优先级别可以改变。②初始优先级次序规定为IR0、IR1、…、IR7,当任何一级中断被处理完后,它的优先级别变为最低,将最高优先级赋给原来比它低一级的中断请求,其它依次类推。③优先级自动循环方式适合用在多个中断源优先级相等的场合。④普通EOI循环方式、自动EOI循环方式。例8-5当前IR3有中断请求,则处理IR3,处理完IR3后,IR4变成最高优先级,优先级依次为IR4,IR5、IR6、IR7、IR0、IR1、IR2、IR3。25(4)优先级特殊循环方式特点:优先级特殊循环方式中,初始时最低优先级由程序规定,最高优先级也就确定了。若初始时指定IR1为最低优先级,则IR2为最高优先级,其它依次类推。优先级顺序:IR2、IR3、IR4,IR5、IR6、IR7、IR0、IR1常用特殊EOI循环方式。263、中断结束的方式(3种)(1)普通EOI结束方式特点:①在完全嵌套工作方式下,任何一级中断处理结束返回上一级程序前,CPU向8259A传送EOI结束命令,8259A收到EOI结束命令后,自动将ISR寄存器中和当前正在处理的中断对应的位清“0”。②EOI结束命令必须放在返回指令IRET前,没有EOI结束命令,ISR寄存器中对应位仍为“1”,继续屏蔽同级或低级的中断请求。③若EOI结束命令放在中断服务程序中其它位置,会引起同级或低级中断在本级未处理完前进入,容易产生错误。27(2)特殊EOI结束方式特点:①在非全嵌套工作方式下,中断服务寄存器无法确定哪一级中断为最后响应和处理的,这时要采用特殊EOI结束方式。②CPU向8259A发特殊EOI结束命令,命令中将当前要清除的中断级别也传给8259A。此时,8259A将ISR寄存器中指定级别的对应位清“0”。28(3)自动EOI结束方式INTA特点:①在自动AEOI方式中,任何一级中断被响应后,ISR寄存器对应位置“1”,但在CPU进入中断响应周期,发第二个脉冲后,8259A自动将ISR寄存器中对应位清“0”。②此时,尽管对某个外设正在进行中断服务,但对8259A来说,ISR寄存器中没有指示,好象已结束了中断处理一样。③这种方式虽然简单,但因为ISR寄存器中没有标志,低级中断申请时,可以打断高级中断,产生重复嵌套,容易产生错误,使用时要特别注意。294、循环优先级的循环方法(3种)(1)普通EOI循环方式特点:当任何一级中断被处理完后,使CPU给8259A送普通EOI循环命令,8259A收到EOI循环命令后,将ISR寄存器中最高优先级的IRi置“1”位清“0”,并赋给它最低优先级,将最高优先级赋给它的下一级IRi+1,其它依次类推。30例8-6某中断系统IR0为最高优先级,IR7为最低优先级。有IR2,IR5两个中断请求。设置为普通EOI循环方式,要求给出IR2和IR5中断处理完后中断优先级的变化情况。31例8-7某一时刻8259A中IR2,IR6有中断嵌套服务。在IR2中断服务程序中安排了最低优先权赋给IR3,要求给出指令执行后中断优先级变化的情况。(2)特殊EOI循环方式特殊EOI循环方式即指定最低优先级循环方式,最低优先级由编程确定。32(3)自动EOI循环方式INTA在这种方式下,任何一级中断被响应后,中断响应总线周期中第二个信号的后沿自动将ISR寄存器中相应位清0,并立即改变各级中断的优先级别,改变方式与普通EOI循环方式相同。注意:使用这种方式要小心,防止重复嵌套产生。335、中断源的屏蔽方式(2种)(1)普通屏蔽方式通过操作命令字OCW1将中断屏蔽寄存器IMR中某一位或某几位置“1”,可将对应位的中断请求屏蔽掉。例8-8屏蔽第2、3、5、6位进入的中断请求,假设8259A的端口地址为20H,21H。MOVAL,01101100BOUT21H,AL(2)特殊屏蔽方式此方式能对本级中断进行屏蔽,而允许优先级比它高或低的中断进入。通过OCW3进行设置。346、中断请求的引入方式(3种)(1)边沿触发方式在边沿触发方式下,8259A将中断请求输入端出现的上升沿作为中断请求信号。中断请求输入端出现上升沿触发信号后,可以一直保持高电平。(2)电平触发方式在电平触发方式下,8259A将中断请求输入端出现的高电平作为中断请求信号。注意:当中断得到响应后,中断输入端必须及时撤出高电平,否则在CPU进入中断处理过程,并且开中断的情况下,原输入端的高电平会引起第二次中断的错误。35(3)中断查询方式在中断查询方式下,外部设备向8259A发中断请求信号,但8259A不通过INT信号向CPU发中断请求信号。CPU要使用软件查询来确定中断源,才能实现对外设的中断服务。36(1)ICW1命令字IC4SNGL0LTIM1A5A6A70D0D1D2D3D4D5D6D7A0ICW1的地址1:需要ICW40:不设ICW41:8259A单片方式0:8259A级联方式ICW1的标志位8080/8085用触发方式1:高电平触发0:上跳沿触发37例8-9IBMPC/XT系统初始化中,设ICW1=13H,表示系统中8259A为单片方式,上升沿触发,要求设置ICW4。指令为:MOVAL,13HOUT20H,ALIC4SNGL0LTIM1A5A6A70D0D1D2D3D4D5D6D7A0ICW1的地址1:需要ICW40:不设ICW41:8259A单片方式0:8259A级连方式ICW1的标志位8080/8085用触发方式1:高电平触发0:上跳沿触发38(2)ICW2000T3T4T5T6T71D0D1D2D3D4D5D6D7A0中断类型的高5位例8-10在IBMPC/XT系统中,T7~T3=00001,所以对应8个中断的类型号为08H~0FH。端口地址为21H。设置ICW2的指令为:MOVAL,8OUT21H,AL39(3)ICW38259A主片格式:S0S1S2S3S4S5S6S71D0D1D2D3D4D5D6D7A00:表示IRi端上未接8259A从片1:表示IRi端上接有8259A从片Si=ID0ID1ID200

1 / 55
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功