资源预览内容
第1页 / 共64页
第2页 / 共64页
第3页 / 共64页
第4页 / 共64页
第5页 / 共64页
第6页 / 共64页
第7页 / 共64页
第8页 / 共64页
第9页 / 共64页
第10页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
微机原理与接口技术微机原理与接口技术7-27-27-4 7-4 可编程中断控制器可编程中断控制器 8259A 8259A 一、功能和引脚一、功能和引脚 l l具有具有8 8级优先级控制,通过级联可以扩展到级优先级控制,通过级联可以扩展到6464级优先级级优先级控制。控制。l l每一级中断可由程序单独屏蔽或允许。每一级中断可由程序单独屏蔽或允许。l l可提供中断类型号传送给可提供中断类型号传送给CPUCPU。l l可以通过编程选择多种不同工作方式。可以通过编程选择多种不同工作方式。1.1.主要功能主要功能主要功能主要功能 8/1/20248/1/20242 2 l l实际设计时,实际设计时,8259A8259A的的D D7 7DD0 0与与CPUCPU数据总线低数据总线低8 8位相连。位相连。为了保证为了保证CPUCPU与与8259A8259A用低用低8 8位传输数据,位传输数据,CPUCPU的的A A1 1连连8259A8259A的的A A0 0。这样对。这样对CPUCPU来说来说A A0 00 0,A A1 1可以为可以为1 1或为或为0 0,CPUCPU读写始终是用偶地址。对读写始终是用偶地址。对8259A8259A来说来说A A1 1可以为可以为1 1或为或为0 0,给,给8259A8259A的端口分配了两个地址,一个奇地址,一个偶的端口分配了两个地址,一个奇地址,一个偶地址,符合了地址,符合了8259A8259A的编程要求。的编程要求。 注意:注意:注意:注意:80868086系统中数据总线为系统中数据总线为1616位,位,CPUCPU传送数据时,低传送数据时,低8 8位数据总线传送到偶地址端口,高位数据总线传送到偶地址端口,高8 8位数据总线传送到奇地位数据总线传送到奇地址端口。当址端口。当8 8位位I/OI/O接口芯片与接口芯片与8086CPU168086CPU16位数据总线相连位数据总线相连接时,既可以连到低接时,既可以连到低8 8位数据总线,也可以连到高位数据总线,也可以连到高8 8位数据位数据总线。总线。8/1/20248/1/20249 9 3.3.级联缓冲级联缓冲级联缓冲级联缓冲/ /比较器比较器比较器比较器 缓冲方式缓冲方式缓冲方式缓冲方式:在多片:在多片8259A8259A级联的系统中,级联的系统中,8259A8259A通过总通过总线驱动器和数据总线相连,这就是缓冲方式。线驱动器和数据总线相连,这就是缓冲方式。uu在缓冲方式下,在缓冲方式下,8259A8259A的的SP/ENSP/EN端与总线驱动器允许端端与总线驱动器允许端相连,控制总线驱动器启动,相连,控制总线驱动器启动,SP/ENSP/EN作为输出端。作为输出端。 uu当当ENEN0 0时,时,8259A8259A控制数据从控制数据从8259A8259A送到送到CPUCPU;uu当当ENEN1 1时,控制数据从时,控制数据从CPUCPU送到送到8259A8259A。 8/1/20248/1/20241010 非缓冲方式非缓冲方式非缓冲方式非缓冲方式:单片:单片8259A8259A或少量或少量8259A8259A级联时,可以将级联时,可以将8259A8259A直接与数据总线相连,称为非缓冲方式。直接与数据总线相连,称为非缓冲方式。 uu非缓冲方式下,非缓冲方式下,8259A8259A的的SP/ENSP/EN端作输入端,控制端作输入端,控制8259A8259A作为主片还是从片。作为主片还是从片。uuSPSP1 1,表示此,表示此8259A8259A为主片。为主片。uuSPSP0 0,表示此,表示此8259A8259A为从片。为从片。uu单片单片8259A8259A时,时,SP/ENSP/EN接高电平接高电平。uu由初始化命令字由初始化命令字ICWICW4 4来设置缓冲方式或非缓冲方式来设置缓冲方式或非缓冲方式。 8/1/20248/1/20241111 4.4.中断请求寄存器中断请求寄存器中断请求寄存器中断请求寄存器 中断请求寄存器是一个中断请求寄存器是一个8 8位寄存器,存放外部输入的中断请位寄存器,存放外部输入的中断请求信号求信号IRIR7 7IRIR0 0。 l l当某个当某个IRIR端有中断请求时,端有中断请求时,IRRIRR相应的某位置相应的某位置“ “1”1”。l l可以允许可以允许8 8个中断请求信号同时进入,此时个中断请求信号同时进入,此时IRRIRR寄存器被寄存器被置成全置成全“ “1”1”。l l当中断请求被响应时,当中断请求被响应时,IRRIRR的相应位复位。的相应位复位。 8/1/20248/1/20241212 5.5.中断屏蔽寄存器中断屏蔽寄存器中断屏蔽寄存器中断屏蔽寄存器IMRIMRl l中断屏蔽寄存器是一个中断屏蔽寄存器是一个8 8位寄存器,用来存放对各级中断位寄存器,用来存放对各级中断请求的屏蔽信息。请求的屏蔽信息。l l当用软件编程使当用软件编程使IMRIMR寄存器中某一位置寄存器中某一位置“ “0”0”时,允许时,允许IRRIRR寄寄存器中相应位的中断请求进入中断优先级判别器。存器中相应位的中断请求进入中断优先级判别器。l l若若IMRIMR中某位为中某位为“ “1”1”,则此位中断请求被屏蔽。,则此位中断请求被屏蔽。l l各个中断屏蔽位是独立的,屏蔽了优先级高的中断,不影各个中断屏蔽位是独立的,屏蔽了优先级高的中断,不影响其它较低优先级的中断允许。响其它较低优先级的中断允许。 8/1/20248/1/20241313 6.6.优先级判别器优先级判别器优先级判别器优先级判别器PRPRl l优先级判别器对保存在优先级判别器对保存在IRRIRR寄存器中的中断请求进行优先寄存器中的中断请求进行优先级识别,送出最高优先级的中断请求到中断服务寄存器级识别,送出最高优先级的中断请求到中断服务寄存器ISRISR中去。中去。l l当出现多重中断时,当出现多重中断时,PRPR判定是否允许所出现的中断去打判定是否允许所出现的中断去打断正在处理的中断,让优先级更高的中断优先处理。断正在处理的中断,让优先级更高的中断优先处理。 7.7.中断服务寄存器中断服务寄存器中断服务寄存器中断服务寄存器ISRISRl l中断服务寄存器是一个中断服务寄存器是一个8 8位寄存器,保存正在处理中的中位寄存器,保存正在处理中的中断请求信号。断请求信号。l l某个某个IRIR端的中断请求被端的中断请求被CPUCPU响应后,当响应后,当CPUCPU发出第一个发出第一个INTAINTA信号时,信号时,ISRISR寄存器中的相应位置寄存器中的相应位置“ “1”1”,一直保持到,一直保持到该级中断处理结束为止。该级中断处理结束为止。l l允许多重中断时,允许多重中断时,ISRISR多位同时被置成多位同时被置成“ “1”1”。 8/1/20248/1/20241414 8.8.控制电路控制电路控制电路控制电路 l l根据中断请求寄存器根据中断请求寄存器IRRIRR的置位情况和中断屏蔽寄存器的置位情况和中断屏蔽寄存器IMRIMR的设置的情况,通过优先级判别器的设置的情况,通过优先级判别器PRPR判定优先级,判定优先级,向向8259A8259A内部及其它部件发出控制信号。内部及其它部件发出控制信号。l l向向CPUCPU发出中断请求信号发出中断请求信号INTINT和接收和接收CPUCPU的中断响应信号的中断响应信号INTAINTA,使中断服务寄存器,使中断服务寄存器ISRISR的相应位置的相应位置“ “1”1”,并使中断,并使中断请求寄存器请求寄存器IRRIRR的相应位置的相应位置“ “0”0”。l l当当CPUCPU第二个第二个INTAINTA信号到来,控制信号到来,控制8259A8259A送出中断类型送出中断类型号,使号,使CPUCPU转入中断服务子程序。转入中断服务子程序。l l如果方式控制字如果方式控制字ICWICW4 4的中断自动结束位为的中断自动结束位为“ “1”1”,则在第二,则在第二个个INTAINTA脉冲结束时,将脉冲结束时,将8259A8259A中断服务寄存器中断服务寄存器ISRISR的相应的相应位清位清“ “0”0”。 8/1/20248/1/202415151.8259A1.8259A的编程结构的编程结构的编程结构的编程结构 三、三、8259A的中断管理方式的中断管理方式 图图7 712 8259A12 8259A的编程结构的编程结构8/1/20248/1/20241616 1.8259A1.8259A的编程结构的编程结构的编程结构的编程结构 l l中断管理方式是通过中断管理方式是通过8259A8259A初始化时写入初始化命令字初始化时写入初始化命令字和操作命令字来设置的。和操作命令字来设置的。l l初始化命令字写入寄存器初始化命令字写入寄存器ICWICW1 1ICWICW4 4,它是由初始化程,它是由初始化程序设置的初始化命令字一经设定,在系统工作过程中就序设置的初始化命令字一经设定,在系统工作过程中就不再改变。不再改变。l l操作命令字写入寄存器操作命令字写入寄存器OCWOCW1 1OCWOCW3 3,它是由应用程序,它是由应用程序设定的,用来对中断处理过程进行控制,在系统运行过设定的,用来对中断处理过程进行控制,在系统运行过程中,操作命令字可以重新设置。程中,操作命令字可以重新设置。 三、三、8259A的中断管理方式的中断管理方式 8/1/20248/1/20241717 2.2.优先级设置方式优先级设置方式优先级设置方式优先级设置方式 uu若若8259A8259A初始化后没有设置其它优先级的方式,就自动进初始化后没有设置其它优先级的方式,就自动进入完全嵌套方式。入完全嵌套方式。uu在这种方式下,在这种方式下,中断优先级分配固定级别中断优先级分配固定级别中断优先级分配固定级别中断优先级分配固定级别0707级,级,级,级,IRIR0 0具具具具有最高优先级,有最高优先级,有最高优先级,有最高优先级,IRIR7 7优先级最低。优先级最低。优先级最低。优先级最低。uu可用初始化命令宇可用初始化命令宇ICWICW4 4中中SFNMSFNM0 0,将,将8259A8259A置成完全置成完全嵌套优先级方式。嵌套优先级方式。uu 在完全嵌套工作方式下,当一个中断请求被响应后,中在完全嵌套工作方式下,当一个中断请求被响应后,中断服务寄存器断服务寄存器ISRISR中的对应位置中的对应位置“ “1”1”,中断类型号被放到数,中断类型号被放到数据总线上,据总线上,CPUCPU转入中断服务程序。转入中断服务程序。完全嵌套方式完全嵌套方式完全嵌套方式完全嵌套方式8/1/20248/1/20241818 uu一般情况下(除自动中断结束方式外),在一般情况下(除自动中断结束方式外),在CPUCPU发出中断发出中断结束命令结束命令EOIEOI前,前,ISRISR寄存器中此对应位一直保持寄存器中此对应位一直保持“ “1”1”。uu当新的中断请求进入时,中断优先级裁决器将新的中断请当新的中断请求进入时,中断优先级裁决器将新的中断请求和当前求和当前ISRISR寄存器中置寄存器中置“ “1”1”位比较,判断哪一个优先级更高。位比较,判断哪一个优先级更高。允许打断正在处理的中断,优先处理更高级的中断,实现中允许打断正在处理的中断,优先处理更高级的中断,实现中断嵌套,但断嵌套,但禁止同级与低级中断请求进入禁止同级与低级中断请求进入禁止同级与低级中断请求进入禁止同级与低级中断请求进入。uu中断嵌套时,中断嵌套时,ISRISR寄存器中内容发生变化,又有一个对应寄存器中内容发生变化,又有一个对应位置位置“ “1”1”,当实现,当实现8 8级中断嵌套时,级中断嵌套时,ISRISR寄存器内容为寄存器内容为0FFH0FFH。8/1/20248/1/20241919 uu特殊全嵌套方式与全嵌套工作方式基本相同,特殊全嵌套方式与全嵌套工作方式基本相同,区别在于区别在于区别在于区别在于当处理某级中断时,有同级中断请求进入,当处理某级中断时,有同级中断请求进入,当处理某级中断时,有同级中断请求进入,当处理某级中断时,有同级中断请求进入,8259A8259A也会响也会响也会响也会响应应应应,从而实现了对同级中断请求的特殊嵌套。,从而实现了对同级中断请求的特殊嵌套。uu在级联方式中,当从片上有中断请求进入并正在处理时,在级联方式中,当从片上有中断请求进入并正在处理时,同一从片上又进入更高优先级的中断请求,从片能响应更同一从片上又进入更高优先级的中断请求,从片能响应更高优先级中断请求,并向主片申请中断,但对主片来说是高优先级中断请求,并向主片申请中断,但对主片来说是同级中断请求。当主片处于特殊全嵌套工作方式时,主片同级中断请求。当主片处于特殊全嵌套工作方式时,主片就能允许对相同级别的中断请求开放。就能允许对相同级别的中断请求开放。特殊全嵌套方式特殊全嵌套方式特殊全嵌套方式特殊全嵌套方式8/1/20248/1/20242020 优先级优先级优先级优先级自动循环自动循环自动循环自动循环方式方式方式方式uu在优先级自动循环方式中,优先级别可以改变。在优先级自动循环方式中,优先级别可以改变。uu初始优先级次序规定为初始优先级次序规定为初始优先级次序规定为初始优先级次序规定为IRIR0 0、IRIR1 1、IRIR7 7,当任何一级中,当任何一级中,当任何一级中,当任何一级中断被处理完后,它的优先级别变为最低,将最高优先级赋给断被处理完后,它的优先级别变为最低,将最高优先级赋给断被处理完后,它的优先级别变为最低,将最高优先级赋给断被处理完后,它的优先级别变为最低,将最高优先级赋给原来比它低一级的中断请求,其它依次类推。原来比它低一级的中断请求,其它依次类推。原来比它低一级的中断请求,其它依次类推。原来比它低一级的中断请求,其它依次类推。uu优先级自动循环方式适合用在多个中断源优先级相等的场优先级自动循环方式适合用在多个中断源优先级相等的场合。合。 8/1/20248/1/20242121 优先级特殊循环方式和优先级自动循环方式相比,不同优先级特殊循环方式和优先级自动循环方式相比,不同之处在于优先级特殊循环方式中,之处在于优先级特殊循环方式中,初始时最低优先级由初始时最低优先级由初始时最低优先级由初始时最低优先级由程序规定,最高优先级也就确定了。程序规定,最高优先级也就确定了。程序规定,最高优先级也就确定了。程序规定,最高优先级也就确定了。优先级优先级优先级优先级特殊循环特殊循环特殊循环特殊循环方式方式方式方式例例例例:若初始时指定若初始时指定IRIR1 1为最低优先级,则为最低优先级,则IRIR2 2为最高优先级,为最高优先级,其它依次类推。而优先级自动循环方式初始时最高优先其它依次类推。而优先级自动循环方式初始时最高优先级一定是级一定是IRIR0 0。 8/1/20248/1/20242222 3.3.中断结束方式中断结束方式中断结束方式中断结束方式l l中断结束处理实际上就是对中断服务寄存器中断结束处理实际上就是对中断服务寄存器ISRISR中对应中对应位的处理。位的处理。l l当一个中断得到响应时,当一个中断得到响应时,8259A8259A使使ISRISR寄存器中对应位寄存器中对应位置置“ “1”1”,表明此对应外设正在服务,并为中断优先判别器,表明此对应外设正在服务,并为中断优先判别器提供判别依据。提供判别依据。l l中断结束时,必须使中断结束时,必须使ISRISR寄存器中对应位置寄存器中对应位置“ “0”0”,否则中,否则中断优先权判别会不正常。断优先权判别会不正常。l l什么时刻使什么时刻使ISRISR中对应位置中对应位置“ “0”0”,就产生不同的中断结束,就产生不同的中断结束方式。方式。 8/1/20248/1/20242323 uu在完全嵌套工作方式下,任何一级中断处理结束返回上在完全嵌套工作方式下,任何一级中断处理结束返回上一级程序前,一级程序前,CPUCPU向向8259A8259A传送传送EOIEOI结束命令字,结束命令字,8259A8259A收到收到EOIEOI结束命令后,自动将结束命令后,自动将ISRISR寄存器中寄存器中级别最高的置级别最高的置级别最高的置级别最高的置“ “1”1”位清位清位清位清“ “0”0”(此位对应当前正在处理的中断)。(此位对应当前正在处理的中断)。uuEOIEOI结束命令字必须放在返回指令结束命令字必须放在返回指令IRETIRET前,没有前,没有EOIEOI结结束命令,束命令,ISRISR寄存器中对应位仍为寄存器中对应位仍为“ “1”1”,继续屏蔽同级或低,继续屏蔽同级或低级的中断请求。级的中断请求。uu若若若若EOIEOI结束命令字放在中断服务程序中其它位置,会引结束命令字放在中断服务程序中其它位置,会引结束命令字放在中断服务程序中其它位置,会引结束命令字放在中断服务程序中其它位置,会引起同级或低级中断在本级未处理完前进入,容易产生错误。起同级或低级中断在本级未处理完前进入,容易产生错误。起同级或低级中断在本级未处理完前进入,容易产生错误。起同级或低级中断在本级未处理完前进入,容易产生错误。 普通普通普通普通EOIEOI结束方式结束方式结束方式结束方式8/1/20248/1/20242424 uu在非全嵌套工作方式下,中断服务寄存器无法确定哪一在非全嵌套工作方式下,中断服务寄存器无法确定哪一级中断为最后响应和处理的,这时要采用特殊级中断为最后响应和处理的,这时要采用特殊SEOISEOI结束方结束方式。式。uuCPUCPU向向8259A8259A发特殊发特殊EOIEOI结束命令字,命令字中将当前结束命令字,命令字中将当前要清除的中断级别也传给要清除的中断级别也传给8259A8259A。此时,。此时,82598259将将将将ISRISR寄存寄存寄存寄存器中指定级别的对应位清器中指定级别的对应位清器中指定级别的对应位清器中指定级别的对应位清“ “0”0”,它在任何情况下均可使用。它在任何情况下均可使用。 特殊特殊特殊特殊EOIEOI结束方式结束方式结束方式结束方式8/1/20248/1/20242525 自动自动自动自动EOIEOI结束方式结束方式结束方式结束方式uu在自动在自动AEOIAEOI方式中,任何一级中断被响应后,方式中,任何一级中断被响应后,ISRISR寄存器寄存器对应位置对应位置“ “1”1”,但在,但在CPUCPU进入中断响应周期,发第二个进入中断响应周期,发第二个INTAINTA脉脉冲后,冲后,8259A8259A自动将自动将ISRISR寄存器中对应位清寄存器中对应位清“ “0”0”。uu此时,尽管对某个外设正在进行中断服务,但对此时,尽管对某个外设正在进行中断服务,但对8259A8259A来来说,说,ISRISR寄存器中没有指示,好象已结束了中断处理一样。寄存器中没有指示,好象已结束了中断处理一样。uu这种方式虽然简单,但因为这种方式虽然简单,但因为ISRISR寄存器中没有标志,低级中寄存器中没有标志,低级中断申请时,可以打断高级中断,产生重复嵌套,嵌套深度也断申请时,可以打断高级中断,产生重复嵌套,嵌套深度也无法控制,容易产生错误,使用时要特别小心。无法控制,容易产生错误,使用时要特别小心。8/1/20248/1/20242626 4.4.循环优先级的循环方法循环优先级的循环方法循环优先级的循环方法循环优先级的循环方法 在主程序或中断服务程序中设置操作命令字,当任何一级中在主程序或中断服务程序中设置操作命令字,当任何一级中断被处理完后,使断被处理完后,使CPUCPU给给8259A8259A回送普通回送普通EOIEOI循环命令,循环命令,8259A8259A收到收到EOIEOI循环命令后,将循环命令后,将ISRISR寄存器中最高优先级的寄存器中最高优先级的IRIRi i置置“1”“1”位清位清“0”“0”,并赋给它最低优先级,将最高优先级赋给它的,并赋给它最低优先级,将最高优先级赋给它的下一级下一级IRIRi+1i+1,其它依次类推。,其它依次类推。 普通普通普通普通EOIEOI循环方式循环方式循环方式循环方式循环优先级方式中,与中断结束方式有关,有三种循环方式。循环优先级方式中,与中断结束方式有关,有三种循环方式。8/1/20248/1/20242727例例例例: : 某中断系统某中断系统IRIR0 0为最高优先级,为最高优先级,IRIR7 7为最低优先级。有为最低优先级。有IRIR2 2、IRIR5 5两个中断请求。设置为普通两个中断请求。设置为普通EOIEOI循环方式,要求给出循环方式,要求给出IRIR2 2及及IRIR5 5中断处理完后中断优先级的变化情况。中断处理完后中断优先级的变化情况。原始原始状态状态 ISR ISR 内容内容ISRISR7 7ISRISR6 6ISRISR5 5ISRISR4 4ISRISR3 3ISRISR2 2ISRISR1 1ISRISR0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0优先级优先级 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0处理处理完完IRIR2 2ISRISR内容内容 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0优先级优先级 4 4 3 3 2 2 1 1 0 0 7 7 6 6 5 5处理处理完完IRIR5 5ISRISR内容内容 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0优先级优先级 1 1 0 0 7 7 6 6 5 5 4 4 3 32 2普通普通普通普通EOIEOI循环方式循环方式循环方式循环方式8/1/20248/1/20242828特殊特殊特殊特殊EOIEOI循环方式循环方式循环方式循环方式特殊特殊EOIEOI循环方式即循环方式即指定最低级循环方式指定最低级循环方式指定最低级循环方式指定最低级循环方式,最低优先级由编,最低优先级由编程确定,最高优先级也相应而定。程确定,最高优先级也相应而定。 例例例例: 某一时刻某一时刻8259A8259A中中IRIR2 2,IRIR6 6有中断嵌套服务。在有中断嵌套服务。在IRIR 2 2中断中断服务程序中安排了最低优先权给服务程序中安排了最低优先权给IRIR3 3,指令执行后,中断优先,指令执行后,中断优先级变化情况如下表。级变化情况如下表。 初始状态初始状态ISRISR内容内容ISRISR7 7ISRISR6 6ISRISR5 5ISRISR4 4ISRISR3 3ISRISR2 2ISRISR1 1ISRISR0 00 01 10 00 00 01 10 00 0优先级优先级7 76 65 54 43 32 21 10 0执行置位优执行置位优先权指令后先权指令后ISRISR内容内容0 01 10 00 00 01 10 00 0优先级优先级3 32 21 10 07 76 65 54 4特殊特殊特殊特殊EOIEOI循环方式循环方式循环方式循环方式8/1/20248/1/20242929自动自动自动自动EOIEOI循环方式循环方式循环方式循环方式在自动在自动EOIEOI循环方式中,任何一级中断被响应后,中断响循环方式中,任何一级中断被响应后,中断响应总线周期中第二个应总线周期中第二个INTAINTA信号的后沿自动将信号的后沿自动将ISRISR寄存器中寄存器中相应位清相应位清0 0,并立即改变各级中断的优先级别,改变方式,并立即改变各级中断的优先级别,改变方式与普通与普通EOIEOI循环循环方式相同。循环循环方式相同。注意:使用这种方式要小心,防止重复嵌套产生。注意:使用这种方式要小心,防止重复嵌套产生。注意:使用这种方式要小心,防止重复嵌套产生。注意:使用这种方式要小心,防止重复嵌套产生。8/1/20248/1/202430305.5.中断源屏蔽方式中断源屏蔽方式中断源屏蔽方式中断源屏蔽方式普通屏蔽方式普通屏蔽方式普通屏蔽方式普通屏蔽方式将中断屏蔽寄存器将中断屏蔽寄存器IMRIMR中某一位或某几位置中某一位或某几位置“1”“1”,即可将对,即可将对应位的中断请求屏蔽掉。应位的中断请求屏蔽掉。特殊屏蔽方式特殊屏蔽方式特殊屏蔽方式特殊屏蔽方式此方式能对本级中断进行屏蔽,而允许优先级比它高或低此方式能对本级中断进行屏蔽,而允许优先级比它高或低的中断进入。的中断进入。 8/1/20248/1/202431316.6.中断请求引入方式中断请求引入方式中断请求引入方式中断请求引入方式边沿触发方式边沿触发方式边沿触发方式边沿触发方式在边沿触发方式下,在边沿触发方式下,8259A8259A将中断请求输入端出现的将中断请求输入端出现的上升沿上升沿上升沿上升沿作为中断请求信号作为中断请求信号作为中断请求信号作为中断请求信号。中断请求输入端出现上升沿触发信号后,。中断请求输入端出现上升沿触发信号后,可以一直保持高电平。可以一直保持高电平。 电平触发方式电平触发方式电平触发方式电平触发方式在电平触发方式下,在电平触发方式下,8259A8259A将中断请求输入端出现的将中断请求输入端出现的高电高电高电高电平作为中断请求信号。平作为中断请求信号。平作为中断请求信号。平作为中断请求信号。注意注意注意注意:当中断得到响应后,中断输入端必须及时撤出高电平,:当中断得到响应后,中断输入端必须及时撤出高电平,:当中断得到响应后,中断输入端必须及时撤出高电平,:当中断得到响应后,中断输入端必须及时撤出高电平,否则在否则在否则在否则在CPUCPU进入中断处理过程,并且开中断的情况下,原输进入中断处理过程,并且开中断的情况下,原输进入中断处理过程,并且开中断的情况下,原输进入中断处理过程,并且开中断的情况下,原输入端的高电平会引起第二次中断的错误。入端的高电平会引起第二次中断的错误。入端的高电平会引起第二次中断的错误。入端的高电平会引起第二次中断的错误。8/1/20248/1/20243232中断查询方式中断查询方式中断查询方式中断查询方式当系统的中断源超过当系统的中断源超过6464个时,个时,8259A8259A可工作在查询方式。在可工作在查询方式。在中断查询方式下,外部设备向中断查询方式下,外部设备向8259A8259A发中断请求信号,但发中断请求信号,但8259A8259A不通过不通过INTINT信号向信号向CPUCPU发中断请求信号。发中断请求信号。CPUCPU要使用要使用软件查询来确定中断源,才能实现对外设的中断服务。软件查询来确定中断源,才能实现对外设的中断服务。CPUCPU所执行的查询程序应包括如下过程:所执行的查询程序应包括如下过程:所执行的查询程序应包括如下过程:所执行的查询程序应包括如下过程: uu系统关中断。系统关中断。uu用用OUTOUT指令使指令使CPUCPU向向8259A8259A端口(偶地址端口)送端口(偶地址端口)送OCWOCW3 3命令字。命令字。uu若外设已发出过中断请求,若外设已发出过中断请求,8259A8259A在当前中断服务寄存器在当前中断服务寄存器中使对应位置中使对应位置“ “1”1”,且立即组成查询字。,且立即组成查询字。uuCPUCPU用用ININ指令从端口(偶地址)读取指令从端口(偶地址)读取8259A8259A的查询字。的查询字。8/1/20248/1/20243333四、四、8259A的编程方法的编程方法 n n对对8259A8259A的编程有两类命令字:初始化命令字的编程有两类命令字:初始化命令字ICWICW和操和操作命令字作命令字OCWOCW。n n系统复位后,初始化程序对系统复位后,初始化程序对8259A8259A置入初始化命令字。置入初始化命令字。n n初始化后可通过发出操作命令字初始化后可通过发出操作命令字OCWOCW来定义来定义8259A8259A的的操作方式,实现对操作方式,实现对8259A8259A的状态、中断方式和优先级管理的状态、中断方式和优先级管理的控制。的控制。n n初始化命令字只发一次,操作命令字允许重置,以动态初始化命令字只发一次,操作命令字允许重置,以动态改变改变8259A8259A的操作与控制方式。的操作与控制方式。8/1/20248/1/202434341.1.初始化命令字初始化命令字初始化命令字初始化命令字初始化命令字完成的功能:初始化命令字完成的功能:初始化命令字完成的功能:初始化命令字完成的功能:l l设定中断请求信号触发形式,高电乎触发或上升沿触发。设定中断请求信号触发形式,高电乎触发或上升沿触发。l l设定设定8259A8259A工作方式,单片或级联。工作方式,单片或级联。l l设定设定8259A8259A中断类型号基值,即中断类型号基值,即IRIR0 0对应的中断类型号。对应的中断类型号。l l设定优先级设置方式。设定优先级设置方式。l l设定中断处理结束时的结束操作方式。设定中断处理结束时的结束操作方式。 注意注意注意注意:对:对8259A8259A编程初始化命令字,共预置编程初始化命令字,共预置4 4个命令字:个命令字:ICWICW1 1、ICWICW2 2、ICWICW3 3、ICWICW4 4。初始化命令字。初始化命令字必须顺序填写必须顺序填写必须顺序填写必须顺序填写,但并,但并不是任何情况下都要置不是任何情况下都要置4 4个命令字,用户根据具体使用情况而定。个命令字,用户根据具体使用情况而定。 8/1/20248/1/202435351.1.初始化命令字初始化命令字初始化命令字初始化命令字ICWICW1 1芯片控制初始化命令字芯片控制初始化命令字芯片控制初始化命令字芯片控制初始化命令字0 01 1:需要设置:需要设置ICWICW4 4 0 0:不需要设置:不需要设置ICWICW4 41 1:单级使用:单级使用0 0:级联使用:级联使用1 1:电平触发:电平触发 0 0:边缘触发:边缘触发标标标标志志志志位位位位8086/80888086/8088系统中不用系统中不用ICIC4 4SNGLSNGL0 0LTIMLTIM1 1 A A0 0D D7 7D D0 0格式格式格式格式: : : :8/1/20248/1/20243636ICWICW2 2设置中断类型号初始化命令字设置中断类型号初始化命令字设置中断类型号初始化命令字设置中断类型号初始化命令字 8259A 8259A中中IRIR0 0端对应的中断类型号为中断类型号基值,它是端对应的中断类型号为中断类型号基值,它是可以被可以被8 8整除的正整数,整除的正整数,ICWICW2 2用来设置这个中断类型号基值用来设置这个中断类型号基值用来设置这个中断类型号基值用来设置这个中断类型号基值,由,由此提供外部中断的中断类型号。此提供外部中断的中断类型号。 ICWICW2 2低低低低3 3位为位为位为位为0 0,高,高,高,高5 5位由用户设定位由用户设定位由用户设定位由用户设定。当。当8259A8259A收到收到CPUCPU发发来的第二个来的第二个INTAINTA信号,它向信号,它向CPUCPU发送中断类型号,其中高发送中断类型号,其中高5 5位位为为ICWICW2 2的高的高5 5位,低位,低3 3位根据位根据IRIR0 0IRIR7 7中响应哪级中断(对应中响应哪级中断(对应000111000111)来确定。)来确定。 0 0 0 0 0 0T T3 3T T4 4T T5 5T T6 6T T7 7D0A0D71中断类型的高中断类型的高5 5位位8/1/20248/1/20243737ICWICW3 3标识主片从片初始化命令字标识主片从片初始化命令字标识主片从片初始化命令字标识主片从片初始化命令字 0 0:表示:表示IRIRi i端上未接端上未接8259A8259A从片从片 1 1:表示:表示IRIRi i端上接有端上接有8259A8259A从片从片 S S0 0S S1 1S S2 2S S3 3S S4 4S S5 5S S6 6S S7 7D D0 0A A0 0D D7 71S Si i= =8259A8259A主片格式主片格式主片格式主片格式: :从从8259A8259A的识别地址的识别地址IDID0 0IDID1 1IDID2 2 0 0 0 0 0 0 0 0 0 0D D0 0A A0 0D D7 718259A8259A从片格式:从片格式:从片格式:从片格式:8/1/20248/1/20243838ICWICW3 3标识主片从片初始化命令字标识主片从片初始化命令字标识主片从片初始化命令字标识主片从片初始化命令字 在多片在多片8259A8259A级联情况级联情况级联情况级联情况下下,主片与从片的主片与从片的主片与从片的主片与从片的CASCAS2 2CASCAS0 0相相相相连连连连,主片的主片的CASCAS2 2CASCAS0 0为输出,从片的为输出,从片的CASCAS2 2CASCAS0 0为输入。为输入。当当CPUCPU发第一个中断响应信号发第一个中断响应信号INTAINTA时,主片通过时,主片通过CASCAS2 2CASCAS0 0发一个编码发一个编码IDID2 2IDID0 0,从片的,从片的CASCAS2 2CASCAS0 0收到主片发来的编码收到主片发来的编码与本身与本身ICWICW3 3中中IDID2 2IDID0 0相比较,如果相等,则在第二个相比较,如果相等,则在第二个INTAINTA信信号到来后,将自己的中断类型号送到数据总线上。号到来后,将自己的中断类型号送到数据总线上。 8/1/20248/1/20243939 ICW ICW1 1中中ICIC4 4为为1 1时,要求预置时,要求预置ICWICW4 4命令字,命令字,对对对对8086/80888086/8088系系系系统必须预置统必须预置统必须预置统必须预置ICWICW4 4 。ICWICW4 4方式控制初始化命令字方式控制初始化命令字方式控制初始化命令字方式控制初始化命令字PMPMAEOIAEOIM/SM/SBUFBUFSFNMSFNM 0 0 0 0 0 01 1:8086/80888086/8088配置配置0 0:8080/80858080/8085配置配置1 1:自动:自动EOIEOI方式方式 0 0:非自动:非自动EOIEOI方式方式1 1:特殊完全嵌套方式:特殊完全嵌套方式 0 0:非特殊完全嵌套方式:非特殊完全嵌套方式0 0 :非缓冲方式:非缓冲方式 1 1 0 0:缓冲方式,从:缓冲方式,从8259A 8259A 1 1: 1 1: 缓冲方式,主缓冲方式,主8259A8259A1 1D7D0A08/1/20248/1/20244040 BUFBUF1 1,采用缓冲方式,采用缓冲方式,采用缓冲方式,采用缓冲方式,8259A8259A通过总线驱动器与数据总通过总线驱动器与数据总线相连,线相连,SP/ENSP/EN作输出端,控制数据总线驱动器启动,此时作输出端,控制数据总线驱动器启动,此时SP/ENSP/EN线中线中ENEN有效,有效,ENEN0 0允许缓冲器输出(允许缓冲器输出(CPUCPU8259A8259A),),ENEN1 1允许缓冲器输入(允许缓冲器输入(CPUCPU8259A8259A)。此时,。此时,M/SM/S1 1,表示,表示该片是该片是8259A8259A主片,主片,M/SM/S0 0,表示该片是,表示该片是8259A8259A从片。从片。 BUFBUF0 0,采用非缓冲方式,采用非缓冲方式,采用非缓冲方式,采用非缓冲方式,SP/ENSP/EN线中线中SPSP有效,有效,SPSP0 0,该片是该片是8259A8259A从片,从片,SPSP1 1,该片是,该片是8259A8259A主片,此时,主片,此时,M/SM/S信号信号无效。无效。 BUFBUF位位位位M/SM/S位位位位SP/ENSP/EN端端端端0 0非缓冲方式非缓冲方式非缓冲方式非缓冲方式无意义无意义无意义无意义SPSP有效有效有效有效(输入信号)(输入信号)(输入信号)(输入信号)SP=1SP=1SP=0SP=0主主主主8259A8259A从从从从8259A8259A1 1缓从方式缓从方式缓从方式缓从方式1 1主主主主8259A8259A0 0从从从从8259A8259AENEN有效有效有效有效(输出信号)(输出信号)(输出信号)(输出信号)EN=1EN=1EN=0EN=0CPUCPU8259A8259A8259ACPU8259ACPUBUFBUF、M/SM/S、SP/ENSP/EN之间关系之间关系之间关系之间关系8/1/20248/1/20244141注意注意注意注意:初始化命令字必须从初始化命令字必须从ICWICW1 1开始设置,依下顺序进开始设置,依下顺序进行设置。并分别根据行设置。并分别根据ICWICW1 1中的中的SNGLSNGL位和位和ICIC4 4位决定是否位决定是否设置设置ICWICW3 3和和ICWICW4 4。级联时要设置。级联时要设置ICWICW3 3,并且主片与从片,并且主片与从片的的ICWICW3 3设置不同。设置不同。8/1/20248/1/202442422.2.操作命令字操作命令字操作命令字操作命令字操作命令字决定中断屏蔽,中断优先级次序,中断结束方操作命令字决定中断屏蔽,中断优先级次序,中断结束方式等。式等。 OCWOCW1 1中断屏蔽操作命令字中断屏蔽操作命令字中断屏蔽操作命令字中断屏蔽操作命令字 MM0 0MM1 1MM2 2MM3 3MM4 4MM5 5MM6 6MM7 71 11:1:屏蔽由屏蔽由IRIRi i引入的中断请求引入的中断请求 0:0:允许允许IRIRi i端中断请求引入端中断请求引入MMi i= =A A0 0D D7 7D D0 08/1/20248/1/20244343OCWOCW2 2优先权循环方式和中断结束方式操作字优先权循环方式和中断结束方式操作字优先权循环方式和中断结束方式操作字优先权循环方式和中断结束方式操作字0 0标志位标志位标志位标志位 L L0 0 L L1 1 L L2 20000EOIEOISLSLR R000IR000IR0 0001IR001IR1 1010IR010IR2 2011IR011IR3 3100IR100IR4 4101IR101IR5 5110IR110IR6 6111IR111IR7 7001001普通普通EOIEOI方式方式 011011特殊特殊EOIEOI方式方式 101101普通普通EOIEOI循环方式循环方式 111111特殊特殊EOIEOI循环方式循环方式 000000自动自动EOIEOI循环(复位)循环(复位)100100自动自动EOIEOI循环(置位)循环(置位)110110置位优先权命令置位优先权命令 010010无效无效D D7 7D D0 0A A0 0L L2 2LL0 0:SLSL1 1时时, L, L2 2LL0 0有效。有效。L L2 2LL0 0有两个用途,一个是当有两个用途,一个是当OCWOCW2 2设置为特殊设置为特殊EOIEOI结束命令时,结束命令时,L L2 2LL0 0指出清除中断服务寄存器中的指出清除中断服务寄存器中的指出清除中断服务寄存器中的指出清除中断服务寄存器中的哪哪哪哪1 1位位位位,第二个当,第二个当OCWOCW2 2设置为特殊优先级循环方式时,设置为特殊优先级循环方式时,L L2 2LL0 0指指指指出循环开始时设置的最低优先级。出循环开始时设置的最低优先级。出循环开始时设置的最低优先级。出循环开始时设置的最低优先级。8/1/20248/1/20244444RSLEOIRSLEOIR R、SLSL、EOIEOI组合功能组合功能组合功能组合功能100100设置自动设置自动设置自动设置自动EOIEOI循环方式循环方式循环方式循环方式:在中断响应周期的第二个:在中断响应周期的第二个:在中断响应周期的第二个:在中断响应周期的第二个INTAINTA信号结束时,将信号结束时,将信号结束时,将信号结束时,将ISRISR寄存器中正在服务的相应位置寄存器中正在服务的相应位置寄存器中正在服务的相应位置寄存器中正在服务的相应位置0 0,本级赋予最低优先级,最高优先级赋,本级赋予最低优先级,最高优先级赋,本级赋予最低优先级,最高优先级赋,本级赋予最低优先级,最高优先级赋给它的下一级,其他中断优先级依次循环赋给。给它的下一级,其他中断优先级依次循环赋给。给它的下一级,其他中断优先级依次循环赋给。给它的下一级,其他中断优先级依次循环赋给。000000取消自动取消自动取消自动取消自动EOIEOI循环循环循环循环101101设置普通设置普通设置普通设置普通EOIEOI循环循环循环循环:一旦中断结束,:一旦中断结束,:一旦中断结束,:一旦中断结束,8259A8259A将中断服务寄存器将中断服务寄存器将中断服务寄存器将中断服务寄存器ISRISR中,当前中,当前中,当前中,当前级别最高的置级别最高的置级别最高的置级别最高的置1 1位清位清位清位清0 0,此级赋予最低优先级,最高优先级赋给它的下一级,此级赋予最低优先级,最高优先级赋给它的下一级,此级赋予最低优先级,最高优先级赋给它的下一级,此级赋予最低优先级,最高优先级赋给它的下一级,其他中断优先级依次循环赋给。其他中断优先级依次循环赋给。其他中断优先级依次循环赋给。其他中断优先级依次循环赋给。111111设置特殊设置特殊设置特殊设置特殊EOIEOI循环循环循环循环:一旦中断结束,将中断服务寄存器:一旦中断结束,将中断服务寄存器:一旦中断结束,将中断服务寄存器:一旦中断结束,将中断服务寄存器ISRISR中,由中,由中,由中,由L L2 2LL0 0字字字字段给定级别的相应位清段给定级别的相应位清段给定级别的相应位清段给定级别的相应位清0 0,此级赋予最低优先级,最高优先级赋给它的下,此级赋予最低优先级,最高优先级赋给它的下,此级赋予最低优先级,最高优先级赋给它的下,此级赋予最低优先级,最高优先级赋给它的下一级,其他中断优先级依次循环赋给。一级,其他中断优先级依次循环赋给。一级,其他中断优先级依次循环赋给。一级,其他中断优先级依次循环赋给。110110置位优先级循环置位优先级循环置位优先级循环置位优先级循环:8259A8259A按按按按L L2 2LL0 0字段确定一个最低优先级,最高优先级字段确定一个最低优先级,最高优先级字段确定一个最低优先级,最高优先级字段确定一个最低优先级,最高优先级赋给它的下一级,其他中断优先级依次循环赋给,系统工作在优先级特殊赋给它的下一级,其他中断优先级依次循环赋给,系统工作在优先级特殊赋给它的下一级,其他中断优先级依次循环赋给,系统工作在优先级特殊赋给它的下一级,其他中断优先级依次循环赋给,系统工作在优先级特殊循环方式。循环方式。循环方式。循环方式。001001普通普通普通普通EOIEOI结束方式结束方式结束方式结束方式:一旦中断结束,:一旦中断结束,:一旦中断结束,:一旦中断结束,CPUCPU向向向向8259A8259A发出发出发出发出EOIEOI结束命令,将结束命令,将结束命令,将结束命令,将中断服务寄存器中断服务寄存器中断服务寄存器中断服务寄存器ISRISR中当前级别最高的置中当前级别最高的置中当前级别最高的置中当前级别最高的置1 1位清位清位清位清0 0。一般用在完全嵌套(包。一般用在完全嵌套(包。一般用在完全嵌套(包。一般用在完全嵌套(包括特殊嵌套)工作方式。括特殊嵌套)工作方式。括特殊嵌套)工作方式。括特殊嵌套)工作方式。011011特殊特殊特殊特殊EOIEOI结束方式结束方式结束方式结束方式:一旦中断结束,:一旦中断结束,:一旦中断结束,:一旦中断结束,CPUCPU向向向向8259A8259A发出结束命令,将中断发出结束命令,将中断发出结束命令,将中断发出结束命令,将中断服务寄存器服务寄存器服务寄存器服务寄存器ISRISR中,由中,由中,由中,由L L2 2LL0 0字段指定的中断级别的相应位清字段指定的中断级别的相应位清字段指定的中断级别的相应位清字段指定的中断级别的相应位清00。010010OCWOCW2 2无意义无意义无意义无意义8/1/20248/1/20244545OCWOCW3 3特殊屏蔽方式和查询方式操作字特殊屏蔽方式和查询方式操作字特殊屏蔽方式和查询方式操作字特殊屏蔽方式和查询方式操作字 OCW OCW3 3功能有三个:设定特殊屏蔽方式,设置对功能有三个:设定特殊屏蔽方式,设置对8259A8259A寄存寄存器的读出及设置中断查询工作方式器的读出及设置中断查询工作方式 。 RISRISRRRR P P11 0 0SMMSMMESMMESMM 0 0A0D7D000:无效:无效 10 10 :下次:下次RDRD有效,读有效,读IRR 11 : IRR 11 : 下次下次RDRD有效,读有效,读ISR ISR 1 1:查询:查询8259A8259A状态状态 0 0:不查询:不查询00:无效:无效 10 10 :特殊屏蔽方式复位:特殊屏蔽方式复位 11 : 11 : 特殊屏蔽方式置位特殊屏蔽方式置位 标标标标志志志志位位位位8/1/20248/1/20244646l l特殊屏蔽方式是对本级中断进行屏蔽,而允许优先级比它特殊屏蔽方式是对本级中断进行屏蔽,而允许优先级比它高或低的中断进入。高或低的中断进入。l lRRRR,RISRIS1010,用输入指令,用输入指令(IN(IN指令指令) ),在下一个,在下一个RDRD脉冲到脉冲到来后,将中断请求寄存器来后,将中断请求寄存器IRRIRR的内容读到数据总线上。的内容读到数据总线上。l lRRRR,RISRIS1111,用输入指令,用输入指令8259A8259A中断屏蔽寄存器中断屏蔽寄存器IMRIMR的,的,在下一个在下一个RDRD脉冲到来后,将中断服务寄存器脉冲到来后,将中断服务寄存器ISRISR的内容读到的内容读到数据总线上。数据总线上。l l随时可通过输入指令从随时可通过输入指令从奇地址端口奇地址端口奇地址端口奇地址端口读取中断屏蔽寄存器读取中断屏蔽寄存器IMRIMR的值。的值。 8/1/20248/1/20244747查询字格式如下:查询字格式如下:查询字格式如下:查询字格式如下:WW0 0WW1 1WW2 2 IRIR 0 0A0D7D0 其中其中IRIR1 1,表示有设备请求中断服务,表示有设备请求中断服务,IRIR0 0,表示没有,表示没有设备请求中断服务。设备请求中断服务。WW2 2、WW1 1、WW0 0组成的代码表示当前中断请求组成的代码表示当前中断请求的最高优先级。的最高优先级。 在查询工作方式下在查询工作方式下在查询工作方式下在查询工作方式下,CPUCPU不是靠接收中断请求信号来进入不是靠接收中断请求信号来进入中断处理过程,而是靠发送查询命令,读取查询字来获得外部设中断处理过程,而是靠发送查询命令,读取查询字来获得外部设备的中断请求信息。备的中断请求信息。CPUCPU先送操作命令先送操作命令OCWOCW3 3(P P1 1)给)给8259A8259A,再送一条输入指令将一个,再送一条输入指令将一个RDRD信号送给信号送给8259A8259A,8259A8259A收到后收到后将中断服务寄存器的相应位置将中断服务寄存器的相应位置1 1,并将查询字送到数据总线,查,并将查询字送到数据总线,查询字反映了当前外设有无中断请求及中断请求的最高优先级是哪询字反映了当前外设有无中断请求及中断请求的最高优先级是哪个。个。 8/1/20248/1/20244848l l操作控制字操作控制字OCWOCW1 1OCWOCW3 3的设置,安排在初始化命令字的设置,安排在初始化命令字之后,用户根据需要可在程序的任何位置去设置。之后,用户根据需要可在程序的任何位置去设置。l l尽管尽管8259A8259A只有两个端口地址,但不会混淆命令字及控制只有两个端口地址,但不会混淆命令字及控制字的,因为字的,因为: :uuICWICW2 2、ICWICW3 3、ICWICW4 4和和OCWOCW1 1写入写入8259A8259A奇地址端口。奇地址端口。初始化时初始化时ICWICW1 1后面紧跟后面紧跟ICWICW2 2、ICWICW3 3、ICWICW4 4,而,而OCWOCW1 1是单独写入的,不会紧跟在是单独写入的,不会紧跟在ICWICW1 1后面。后面。uuICWICW1 1、OCWOCW2 2、OCWOCW3 3写入写入8259A8259A偶地址端口,但一方偶地址端口,但一方面面ICWICW1 1在初始化时写入,另一方面可用在初始化时写入,另一方面可用D D4 4位区分,位区分,D D4 4=1=1为为ICWICW1 1,D D4 4=0=0为为OCWOCW;再用;再用D D3 3位区分,位区分,D D3 30 0为为OCWOCW2 2,D D3 3=1=1为为OCWOCW3 3。说明:说明:说明:说明:8/1/20248/1/20244949五、五、8259A的中断级联的中断级联l l主片主片8259A8259A的的SP/ENSP/EN端接端接VccVcc,从片的,从片的SP/ENSP/EN端接地。端接地。若系统中连接数据总线驱动器,主片的若系统中连接数据总线驱动器,主片的SP/ENSP/EN端与数据端与数据总线驱动器的输出允许端总线驱动器的输出允许端OEOE相连。相连。l l从片的从片的INTINT脚接主片的脚接主片的IRIRi i端,主片的端,主片的IRIRi i端若未接从片,端若未接从片,可直接连中断源。可直接连中断源。l l主片的主片的CASCAS2 2CASCAS0 0作为输出端,从片的作为输出端,从片的CASCAS2 2CASCAS0 0作作输入端,二者相连。输入端,二者相连。 1.1.中断级联使用时的连线中断级联使用时的连线中断级联使用时的连线中断级联使用时的连线8/1/20248/1/202450508/1/20248/1/20245151设置主片初始化命令字时:设置主片初始化命令字时:设置主片初始化命令字时:设置主片初始化命令字时:级联时,级联时,ICWICW1 1中中SNGLSNGL0 0,单片时,单片时SNGLSNGL1 1。级联时,要求设置级联时,要求设置ICWICW3 3,若某个,若某个IRIRi i引脚上连有从片,主引脚上连有从片,主片片ICWICW3 3的对应位设为的对应位设为1 1,未连从片的对应位设为,未连从片的对应位设为0 0。单片。单片不要设置不要设置ICWICW3 3。级联时,可设置为特殊全嵌套工作方式,此时,级联时,可设置为特殊全嵌套工作方式,此时,ICWICW4 4中中SFNMSFNM1 1,通常应定义在特殊完全嵌套工作方式。,通常应定义在特殊完全嵌套工作方式。设置从片初始化命令字时设置从片初始化命令字时设置从片初始化命令字时设置从片初始化命令字时: :从片的从片的ICWICW1 1中,中,SNGLSNGL0 0。从片必须设置从片必须设置ICWICW3 3,由,由ICWICW3 3中三个最低有效位中三个最低有效位IDID2 2IDID0 0的组合来标记此从片连到主片哪个的组合来标记此从片连到主片哪个IRIRi i引脚上。引脚上。2.2.初始化注意事项初始化注意事项初始化注意事项初始化注意事项8/1/20248/1/20245252在完全嵌套工作方式下,在完全嵌套工作方式下,8259A8259A在级联使用时,某从片在级联使用时,某从片8259A8259A的的IRIRi i端收到一个或多个中断请求信号,经从片优端收到一个或多个中断请求信号,经从片优先权判别器判优后,确定本片当前最高优先级。先权判别器判优后,确定本片当前最高优先级。从片发出一个中断请求信号从片发出一个中断请求信号INTINT到主片,再经过主片优到主片,再经过主片优先权判别器判优后,确定当前最高优先级。通过主片先权判别器判优后,确定当前最高优先级。通过主片INTINT输出端发中断请求送到输出端发中断请求送到CPUCPU,若,若IFIF1 1,CPUCPU响应中响应中断回送两个断回送两个INTAINTA信号。信号。主片收到第一个主片收到第一个INTAINTA信号,置主片中断服务寄存器信号,置主片中断服务寄存器ISRISR相应为相应为“ “1”1”,清中断请求寄存器,清中断请求寄存器IRRIRR相应位为相应位为“ “0”0”。检测。检测ICWICW3 3决定中断请求是否来自从片,若是,则将从片的级决定中断请求是否来自从片,若是,则将从片的级联地址从联地址从CASCAS2 2CASCAS0 0三条线上输出到所有三条线上输出到所有8259A8259A从片,从片,只有级联地址与只有级联地址与CASCAS2 2CASCAS0 0相同的从片才能选通。相同的从片才能选通。3.3.中断级联时的工作过程中断级联时的工作过程中断级联时的工作过程中断级联时的工作过程8/1/20248/1/20245353从片收到第一个从片收到第一个INTAINTA信号后,将从片中信号后,将从片中ISRISR寄存器中相寄存器中相应位置应位置“ “1”1”,将,将IRRIRR寄存器中相应位清寄存器中相应位清“ “0”0”。第二个第二个INTAINTA信号到达后,选中的从片将中断类型号送到信号到达后,选中的从片将中断类型号送到数据总线,以后操作与单片数据总线,以后操作与单片8259A8259A工作情况相同。工作情况相同。 注意:注意:注意:注意:级联时中断优先级判别是由从片判别本片内最高优级联时中断优先级判别是由从片判别本片内最高优先级后,向先级后,向8259A8259A主片再申请中断,然后由主片判别当前最主片再申请中断,然后由主片判别当前最高优先级,向高优先级,向CPUCPU发中断请求信号发中断请求信号INTINT。当。当8259A8259A主片设置主片设置为特殊全嵌套工作方式时,允许相同级别的中断请求通过。为特殊全嵌套工作方式时,允许相同级别的中断请求通过。8/1/20248/1/20245454例例例例 某系统中两片某系统中两片8259A8259A采用中断级联方式组成中断系统,从片采用中断级联方式组成中断系统,从片的的INTINT端连端连8259A8259A主片的主片的IRIR3 3端。若当前端。若当前8259A8259A主片从主片从IRIR1 1、IRIR5 5端端引入两个中断请求,中断类型号为引入两个中断请求,中断类型号为31H31H、35H35H。中断服务程序的。中断服务程序的段基址为段基址为1000H1000H,偏移地址分别为,偏移地址分别为2000H2000H及及3000H3000H。8259A8259A从片从片由由IRIR4 4、IRIR5 5端引入两个中断请求,中断类型号为端引入两个中断请求,中断类型号为44H44H和和45H45H,中,中断服务程序段基址为断服务程序段基址为2000H2000H,偏移地址为,偏移地址为3600H3600H及及4500H4500H。 图图7 716 8259A16 8259A级联使用实例级联使用实例8/1/20248/1/20245555主主8259A8259A引入引入的中断请求的中断请求0000202000001010000030300000101000003636000020200000454500002020000C4H000C4H000C6H000C6H000D4H000D4H000D6H000D6H00110H00110H00112H00112H00114H00114H00116H00116HIPIPCSCSIPIPCSCSIPIPCSCSIPIPCSCS主片主片主片主片IRIR1 1引入引入引入引入中断类型号中断类型号31H31H入口地址入口地址主片主片主片主片IRIR5 5引入引入引入引入中断类型号中断类型号35H35H入口地址入口地址从片从片从片从片IRIR4 4引入引入引入引入中断类型号中断类型号44H44H入入口地址口地址从片从片从片从片IRIR5 5引入引入引入引入中断类型号中断类型号45H45H入口地址入口地址从从8259A8259A引入引入的中断请求的中断请求7 717 17 中断入口地址表内容中断入口地址表内容8/1/20248/1/20245656(1 1)中断向量形成:)中断向量形成:)中断向量形成:)中断向量形成:将将4 4个中断入口地址写入中断向量表个中断入口地址写入中断向量表MOVMOV AXAX,1000H1000H;送入;送入主片主片主片主片段段段段地址地址MOVMOV DSDS,AXAXMOVMOV DXDX,2000H2000H;送入主片偏移地址;送入主片偏移地址MOVMOV ALAL,31H31H;中断类型号;中断类型号31H31HMOVMOV AHAH,25H25HINTINT21H21HMOVMOV DXDX,3000H3000H;中断类型号;中断类型号35H35HMOVMOV ALAL,35H35HINTINT21H21H8/1/20248/1/20245757MOVMOV AXAX,2000H2000H;送入;送入从片从片从片从片段地址段地址MOVMOV DSDS,AXAXMOVMOV DXDX,3600H3600H;中断类型号;中断类型号44H44HMOVMOV ALAL,44H44HMOVMOV AHAH,25H25HINTINT21H21HMOVMOV DXDX,4500H4500H;中断类型号;中断类型号45H 45H MOVMOV ALAL,45H45HINTINT21H21H8/1/20248/1/20245858(2 2)主片初始化编程:)主片初始化编程:)主片初始化编程:)主片初始化编程:8259A8259A主片端口地址位主片端口地址位FFC8HFFC8H和和FFC9HFFC9HMOVMOVALAL,0000001 10001B 0001B ;定义;定义ICWICW1 1,主片级联使用,边沿触发,主片级联使用,边沿触发MOVMOVDXDX,0FFC8H0FFC8HOUTOUTDXDX,ALALMOVMOVALAL,30H30H ;定义;定义ICWICW2 2,中断类型号,中断类型号30H37H30H37HMOVMOVDXDX,0FFC9H0FFC9HOUTOUTDXDX,ALALMOVMOVALAL,00001000B 00001000B ;定义;定义ICWICW3 3, IR IR3 3端接从片端接从片8259A8259A的的INTINT端端OUTOUTDXDX,ALALMOVMOVALAL,00010001B 00010001B ;定义;定义ICWICW4 4,特殊全嵌套方式,非缓冲方式,特殊全嵌套方式,非缓冲方式OUTOUTDXDX,ALAL ; 非自动非自动EOIEOI结束方式结束方式MOVMOVALAL,11010101B 11010101B ;定义;定义OCWOCW1 1,允许,允许IRIR1 1、IRIR3 3、IRIR5 5中断,中断,OUTOUTDXDX,ALAL ; 其余端口中断请求屏蔽其余端口中断请求屏蔽8/1/20248/1/20245959(3 3)从片初始化编程:)从片初始化编程:)从片初始化编程:)从片初始化编程:8259A8259A从片端口地址为从片端口地址为FFCAHFFCAH和和FFCBHFFCBHMOVMOVALAL,00010001B 00010001B ;定义;定义ICWICW1 1,级联使用,边沿触发,级联使用,边沿触发MOVMOVDXDX,0FFCAH0FFCAHOUTOUTDXDX,ALALMOVMOVALAL,40H40H ;定义;定义ICWICW2 2,中断类型号,中断类型号40H47H40H47HMOVMOVDXDX,0FFCBH0FFCBHOUTOUTDXDX,ALALMOVMOVALAL,00000011B 00000011B ;定义;定义ICWICW3 3,从片接在主片的,从片接在主片的IRIR3 3端端OUTOUTDXDX,ALALMOVMOVALAL,00000001B 00000001B ;ICWICW4 4,完全嵌套方式,非缓冲方式,完全嵌套方式,非缓冲方式OUTOUTDXDX,ALAL ; 非自动非自动EOIEOI结束方式结束方式MOVMOVALAL,11001111B 11001111B ;定义;定义OCWOCW1 1,允许,允许IRIR4 4、IRIR5 5中断,中断,OUTOUTDXDX,ALAL ;其余端口中断请求屏蔽;其余端口中断请求屏蔽8/1/20248/1/20246060无论对主片无论对主片8259A8259A或从片或从片8259A8259A,操作命令字都可以根据需,操作命令字都可以根据需要在操作过程中设置,要在操作过程中设置,OCWOCW2 2命令字定义中断结束方式时,命令字定义中断结束方式时,通常放在中断服务子程序中。通常放在中断服务子程序中。MOVMOV ALAL,00100000B 00100000B ;定义;定义OCWOCW2 2,普通,普通EOIEOI结束方式结束方式MOVMOV DXDX,0FFC8H0FFC8HOUTOUTDXDX,ALALMOVMOV ALAL,00100000B 00100000B ;定义;定义OCWOCW2 2,普通,普通EOIEOI结束方式结束方式MOVMOV DXDX,0FFCAH0FFCAHOUTOUTDXDX,ALAL主片主片主片主片8259A8259A的中断结束命令为:的中断结束命令为:的中断结束命令为:的中断结束命令为:从片从片从片从片8259A8259A的中断结束命令为:的中断结束命令为:的中断结束命令为:的中断结束命令为:8/1/20248/1/20246161第七章作业第七章作业P302 1、4、5、6、7、10、14、168/1/20248/1/20246262第七章结束 !8/1/20248/1/20246363结束语结束语谢谢大家聆听!谢谢大家聆听!64
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号