第7章 微型计算机中断系统.ppt
(2)特殊全嵌套工作方式 在级联时,还有一种特殊全嵌套工作方 式,它与完全嵌套工作方式基本相同。区别 在于当处理某级中断时,有同级中断请求进 入,8259A也会响应,从而实现了对同级中断 请求的特殊嵌套。 在级联方式中,主片编程为特殊全嵌套 工作方式,从片为其他优先级方式。当从片 上有中断请求进入并正在处理时,同一从片 上又进入更高级别的中断请求,从片能响应 更高优先级中断请求,并向主片申请中断, 但对主片来说是同级中断请求。当主片处于 特殊全嵌套工作方式时,主片就能允许对相 同级别的中断请求开放。所以特殊全嵌套工 作方式是专门为多片8259A系统提供的,可以 用来确定从片内部优先级的工作方式。 特殊全嵌套工作方式的设置是主片初始化时ICW4中的SFNM=1,同时应将主片ICW4中EOI位置‘0’,设成非自动结束方式,通常用特殊EOI结束方式。 (3)优先级自动循环方式 在优先级自动循环方式中,优先级别可以改变。初始优先级次序规定为IR0、IR1、┅、IR7,当任何一级中断被处理完后,它的优先级别变为最低,将最高优先级赋给原来比它低一级的中断请求,其他依次类推。例当前IR3中断请求,则处理IR3,处理完IR3后,IR4变成最高优先级,优先级依次为IR4、IR5、IR6、┅、IR2、IR3。所以,优先级自动循环方式适合用在多个中断源优先级相等的场合。 用操作命令字OCW2中R、SL=10就可设置优先级自动循环方式。根据结束方式不同,有两种自动循环方式:普通EOI循环方式和自动EOI循环方式。 (4)优先级特殊循环方式 优先级特殊循环方式和优先级自动循环方式相比,不同之处在于优先级特殊循环方式中,初始时最低优先级由程序规定,最高先级就确定了。例如初始时指定IR1为最低优先级,则IR2为最高优先级,其他依次类推。而优先级自动循环方式初始时最高优先级一定是IR0。用操作命令字OCW2中R、SL=11就可以设置优先级特殊循环方式,根据结束方式不同,通常用特殊EOI循环方式。 3. 中断结束方式 在固定优先级方式中,对中断结束的处理有自动AEOI结束方式和非自动结束方式,非自动结束方式又分普通EOI结束方式和特殊SEOI结束方式。 中断结束处理实际上就是对中断服务寄存器ISR中对应位的处理。当一个中断得到响应时,8259A使ISR寄存器中对应位置‘1’,表明此对应外设正在服务,并为中断优先判别器提供判别依据。中断结束时,必须使ISR寄存器中对应位置‘0’,否则中断优先级判别会不正常。什么时刻使ISR中对应位置‘0’,就产生不同的中断结束方式。 (1)普通EOI结束方式 在完全嵌套工作方式下,任何一级中断处理结束返回上一级程序前,CPU向8259A传送EOI结束命令字,8259A收到EOI结束命令后,自动将ISR寄存器中级别最高的置‘1’位清成‘0’(此位对应当前正在处理的中断)。EOI结束命令字必须放在返回指令IRET前,没有EOI结束命令,ISR寄存器中对应位仍为‘1’,继续屏蔽同级或低级的中断请求。若EOI结束命令字放在中断服务程序中其他位置,会引起同级或低级中断在本级未处理完前进入,容易产生错误。 (2)特殊EOI结束方式 在非完全嵌套工作方式下,中断服务寄存器无法确定哪一级中断为最后响应和处理的,这时要采用特殊SEOI结束方式。CPU向8259A发特殊EOI结束命令字,命令字中将当前要清除的中断级别也传给8259A。此时,8259A将ISR寄存器中指定级别的对应位清‘0’,它在任何情况下均可使用。 (3)自动EOI结束方式 在自动AEOI方式中,任何一级中断被响应后,ISR寄存器对应位置‘1’,但在CPU进入中断响应周期,发第二个 脉冲后,8259A自动将ISR寄存器中对应位清‘0’。此时,尽管对某个外设正在进行中断服务,但对8259A来说,ISR寄存器中没有指示,好象已结束了中断处理一样。这种方式虽然简单,但因为ISR寄存器中没有标志,低级中断申请时,可以打断高级中断,产生重复嵌套,嵌套深度也无法控制,容易产生错误,使用时要特别小心。 在级联方式下,一般用非自动结束方式,无论用普通EOI结束方式,还是用特殊EOI结束方式,中断处理结束时,要发两次中断结束命令,一次是对主片发的,一次是对从片发的。 4. 循环优先级的循环方法 在循环优先级方式中,与中断结束方式有关,有三种循环方式。 (1)普通EOI循环方式 在主程序或中断服务程序中设置操作命令字,当任何一级中断被处理完后,使CPU给8259A回送普通EOI循环命令, 8259A收到循环命令后,将ISR寄存器中,最高优先级