第六章输入输出和中断技术解析.ppt

R、SL、EOI不同的组合形式决定8259A的不同工作方式 本章返回 本节返回 (3)特殊屏蔽方式和中断查询方式操作命令OCW3,必须写入相应8259A芯片的偶地址端口  有3个功能: 设置和撤消特殊屏蔽方式 设置中断查询方式 设置读出ISR或IRR寄存器的内容  格式如下: OCW3的格式 本章返回 本节返回 用OCW3设置和撤消特殊屏蔽方式  特殊屏蔽方式是8259A为了响应低级中断而提供的一种功能。为了中断当前的中断服务程序转去响应低级中断,CPU要先向8259A发出一个特殊屏蔽字,使8259A进入特殊屏蔽状态;当低级中断处理完毕返回被中断的高级中断服务程序的断点时,要发出撤消特殊屏蔽字,以恢复原来的嵌套顺序。设置和撤消特殊屏蔽字由OCW3中的D6、D5位来实现  本章返回 本节返回   ESMM称为特殊屏蔽允许位,SMM称为特殊屏蔽方式位,这两位的组合决定是设置特殊屏蔽还是撤消屏蔽  当ESMM、SMM=11时,将8259A设置为特殊屏蔽方式,即只屏蔽本级中断请求,允许高级的或低级的中断申请进入  当ESMM、SMM=10时,撤消特殊屏蔽方式恢复原来的优先级控制  当ESMM=0时,不能建立特殊屏蔽方式,SMM位也不起作用  本章返回 本节返回 OCW3的中断查询功能  OCW3的D3位即P位为中断查询方式位。当P=1时,使8259A处于中断查询方式,即CPU向8259A偶地址端口写入一个查询命令OCW3=0CH后,8259A立即组成查询字,等待CPU读取,当CPU再对同一地址执行一条输入指令(IN)时,CPU便可读入8259A提供的查询字。查询字反映了当前有无中断请求,以及中断请求中优先级最高的是哪一个。 本章返回 本节返回 8259A的查询字格式 本章返回 本节返回 OCW3的读操作功能  8259A内部有3个寄存器(IRR、IMR、ISR)可供CPU读出其当前的状态,CPU在发读命令之前,须先指定读取哪个寄存器,然后再发IN指令,才能读取IRR和ISR中的内容。当所读的寄存器不变,就不必每次都指定所要读取的寄存器。 本章返回 本节返回  OCW3中的D1,Do两位用来指定具体读ISR和IRR中的哪一个寄存器  当RR、RIS=11时,表示CPU的下一条IN指令要读取ISR寄存器的内容  当RR、RIS=10时,表示CPU的下一条IN指令要读IRR寄存器的内容    对IMR寄存器的读出,直接通过读奇地址端口就可以读到IMR寄存器的内容  本章返回 本节返回 3.结束中断处理的方式 中断结束是指8259A结束中断的处理(即使ISR 复位的动作),而不是CPU结束执行中断服务程 序 自动结束方式(AEI) 非自动结束方式 一般的中断结束方式 特殊的中断结束方式 (1). 自动中断结束方式 仅适用于单片8259A的场合,在这种方式下,系统一旦响应中断,那么CPU在发第二个INTA脉冲时,就会使中断响应寄存器ISR中相应位复位,这样一来,虽然系统在进行中断处理,但对于8259A来讲,ISR没有相应的指示,就象中断处理结束,返回主程序之后一样。CPU可以再次响应任何级别的中断请求。 本章返回 本节返回 非自动中断结束方式 在中断服务程序返回之前,必须发出中断结束命令才能使ISR中的当前服务位清除。此时的中断源结束命令有两种形式: 不指定中断源结束命令,即设置操作命令字OCW2 指定中断结束命令,即设置OCW2=00100L2L1 L0,其中的最低3位L2 L1 L0的编码,表示被指定要结束的中断 (2).一般的中断结束方式 配合全嵌套优先级工作方式使用。当CPU用输出指令向8259A发一般中断结束命令OCW2时,8259A才会使中断响应寄存器ISR中已置1的优先级别最高的位复位(即接受了当前正处理的中断)。 (3).特殊的中断结束方式(SEOI) 在特殊全嵌套模式下, CPU无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束方式特殊的中断结束方式,是 本章返回 本节返回 指在CPU结束中断处理之后,向8259A发送一个特殊的EOI中断结束命令,从而,明确指出了中断响应寄存器ISR中需要复位的位 说明: 在级联方式下,一般需要用非自动结束中断方式 一个中断处理程序结束时,都必须发两个中断结束EOI命令,一个发往主片,一个发往从片。 本章返回 本节返回 4. 屏蔽中断源的方式 (1).普通屏蔽方式: 通过对屏蔽寄存器IMR的编程(操作命令字OCW1),来加以设置和改变的。 (2).特殊屏蔽方式: 希望一个中断服务程序的运行过程中,能动态地改变系统中的中断优先级结构,即在中断处理的一部分,禁止低

文档评论(0)

1亿VIP精品文档

相关文档