第9章-可编程中断控制器8259_第1页
第9章-可编程中断控制器8259_第2页
第9章-可编程中断控制器8259_第3页
第9章-可编程中断控制器8259_第4页
第9章-可编程中断控制器8259_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章 可编程中断控制器8259A,2,学习接口电路的要点,1、了解芯片的结构、引脚 结构:有几个端口,端口地址的设置数据寄存器端口命令寄存器端口状态寄存器端口 引脚:如何与CPU 和外设连接。2、了解芯片工作方式有几种工作方式,每种工作方式的应用场合工作方式控制字、状态字如何定义的。 如何写入控制字,如何读出状态字。3、了解芯片的应用应用举例中的硬件连接、软件编程。,3,NUIST,第9章 可编程中断控制器8259A,8259A的主要功能结构,1,8259A的工作过程,2,8259A的中断管理,3,8259A的编程,4,8259A的应用举例,5,4,9.1 8259A的主要功能, 一片8259A可以管理8级中断,且可以多片级联,最多可以用9片构成64级的主从式中断管理。, 对任何一级中断都可以单独屏蔽。, 可以通过编程,使8259A工作在不同方式下,使用灵活。, 能根据编程提供中断源的中断类型码。,5,9.1 8259A的主要功能,中断请求,中断响应,6,9.1 8259A的主要功能,级联信号,从设备编程/缓冲器允许引脚,内部寄存器选择。A0=0:ICW1,OCW2OCW3A0=1:ICW2ICW4,OCW1,片选信号,读、写信号,7,9.1 8259A的主要功能,8位的寄存器,用来接收来自IR0IR7上的中断请求信号,当收到请求信号时就在IRR的相应位置位。外设产生中断请求的方式有两种:一种是边沿触发方式,另一种是电平触发方式。用户可根据需要通过编程来设置。,8,9.1 8259A的主要功能,8位的寄存器,用来存放中断屏蔽字,它是由用户通过编程(操作命令字OCW1)来设置的。IMRi与IRi一一对应,当IMR中第i位置位时,就屏蔽了来自IRi的中断请求,使锁存于IRRi位的中断请求不能送达优先权裁决电路参加排队,也就是说,禁止了IRi的中断请求获得服务的机会。这样用户就可以根据需要设置IMR的值,从而改变系统原有的中断优先级。,9,9.1 8259A的主要功能,标记了CPU正在为哪些中断源服务,这又分为两种情况:其一,若CPU不处于中断服务状态,有未被屏蔽的中断请求,CPU满足中断响应条件,将响应这些请求中级别最高的中断 。如经中断优先权裁决电路裁决IRi的中断请求被响应,当8259A收到第一个中断响应信号时将使ISRi置“1”,而IRRi清“0”。ISRi置1表明CPU正在为IRi端的中断请求服务;而IRRi由1变0则表示IRi端的中断请求已被响应。,其二,若CPU正在为中断源服务,比如正在为IR6端的中断请求服务中,如果IR0又申请中断且没被屏蔽,按8259A的默认优先级IR0高于IR6,因而CPU会暂停IR6的中断处理而响应IR0的中断请求,这样ISR0也被置1,此时IRS0、IRS6均为1,这表明IR0、IR6的中断服务均未结束。从该意义上而言,ISR的每一位都是“中断服务的标志位”。,10,9.1 8259A的主要功能,它是用来管理和识别各个中断源的优先级的,也分为两种情况。其一,根据优先级的规定,判别同时送达优先权电路的中断源(IRRi=1且IMRi=0的位)那一个级别最高。其二,根据当前服务寄存器的状态和新进入中断优先权裁决电路的中断请求,判别新的中断请求的级别是否更高,以决定是否进入中断嵌套。,11,中断优先权裁决电路,12,9.1 8259A的主要功能,有一组初始化命令字寄存器(ICW1ICW4共4个)和一组操作命令字寄存器(OCW1OCW3共3个),这7个寄存器均由用户根据需要通过编程来设置。控制逻辑可以按照编程所设置的工作方式来管理8259A的全部工作。在IRR中有未被屏蔽的中断请求位时,它可以输出高电平的INT信号向CPU申请中断。在中断响应期间,它使得ISR的相应位置位,并控制向CPU发送相应的中断类型码。在中断服务结束时,它按照编程指定的方式进行结束处理。,13,9.1 8259A的主要功能,8位的双向三态缓冲器,用作8259A与系统数据总线的接口。用来传输初始化命令字、操作命令字、状态字和中断类型码。,14,9.1 8259A的主要功能,15,9.1 8259A的主要功能,16,NUIST,第9章 可编程中断控制器8259A,8259A的主要功能结构,1,8259A的工作过程,2,8259A的中断管理,3,8259A的编程,4,8259A的应用举例,5,17,9.2 8259A的工作过程,中断源通过IR0IR7向8259A发中断请求,使得IRR 的相应位置位。,若此时IMR中的相应位为0,即该中断请求没有被屏蔽,则进入优先级排队。8259A分析这些请求,若条件满足,则通过INT向CPU发中断请求。,CPU接收到中断请求信号后,如果满足条件,则进入中断响应,通过引脚发出两个连续负脉冲。,18,9.2 8259A的工作过程, 使ISR的相应位置位,表示已为该中断请求服务。, 使IRR相应位清0,表明对应的中断请求被响应 。,19,9.2 8259A的工作过程, 把中断类型码送往数据总线 。,如果8259A工作在中断自动结束方式,此时将清除ISR的相应位,如果8259A工作在中断非自动结束方式,此时不清除ISR的任何位,只有在中断服务结束时发出中断结束命令才会使ISR中的相应位清除 。,20,9.2 8259A的工作过程,在级联使用时,至少要两片8259A(一片主片,一片从片,所以也叫主从式连接),可管理15级外部中断。最多允许9片8259A级联(其中一片为主片,8片从片),可管理64级中断,21,9.2 8259A的工作过程,22,9.2 8259A的工作过程,级联时,从片上中断源的请求与响应过程:,从片上的中断源通过IR0IR7向从8259A发中断请求 , 使得IRR 的相应位置位。,若此时IMR中的相应位为0,即该中断请求没有被屏 蔽,则进入优先级排队。8259A分析这些请求,若条件满足,则通过INT向主8259A发中断请求。,23,9.2 8259A的工作过程,主8259A收到请求后若满足条件则通过INT向CPU 发中断请求,24,9.2 8259A的工作过程,每个从片均收到这一设备代码并和自身的代码进行比较。,25,9.2 8259A的工作过程,与主片送出的代码一致的从片则清除被响应的中断源的IRR位,置位被响应的中断源的ISR位,并做好把自身被响应的中断源的类型码送到数据总线的准备。,26,NUIST,第9章 可编程中断控制器8259A,8259A的主要功能结构,1,8259A的工作过程,2,8259A的中断管理,3,8259A的编程,4,8259A的应用举例,5,27,9.3 8259A的中断管理,28,9.3 8259A的中断管理,29,中断优先级管理,固定优先级方式,8259A复位后自动处于固定优先级方式,8个中断源的优先级别是固定的,依次为IR0 IR1 IR2 IR3 IR4 IR5IR6IR7。,循环优先级方式,设置为此方式后瞬时优先级为IR0 IR1 IR2 IR3 IR4IR5IR6IR7,一旦某中断源的请求被响应后它就变成最低优先级,它的下一级上升为最高优先级。,30,中断优先级管理,特殊循环优先级方式,在设置8259A为循环优先级的同时,还指明循环起始时的最低优先级。,查询排序优先级方式,一般用于中断级数多于64级的场合。由程序读取8259A的查询字来判断该8259A的中断源是否有请求。,31,9.3 8259A的中断管理,32,中断结束管理,自动结束方式,一般结束方式,由CPU向8259A的偶地址写入一个一般的EOI命令来实现,一旦写入该命令字,ISR中为1的位中的最高优先权的ISR位就被清除,从而结束了本级中断服务。,33,中断结束管理,特殊结束方式,通过向8259A的偶地址写入一个特殊的EOI命令来实现,这个命令字特殊就特殊在清除指定要的ISR位,而不是象一般的EOI命令直接清除ISR中的最高优先权的ISR为1的位。,34,9.3 8259A的中断管理,35,中断嵌套管理,完全嵌套方式,8259A复位后自动处于这种方式,8259A按默认优先级管理中断,即优先级为IR0IR1IR7;在该方式下,高级中断可以中断低级中断,低级或同级中断不能被响应。,当一个服务结束时必须通过中断结束命令(用一般的EOI命令即可)清除该中断源所对应的在服务寄存器的ISR位。,36,例 设某系统只用了1片8259A,初始化时设置为完全嵌套,一般结束方式,并设当前所有的ISR和IMR均为零。假设系统在执行主程序时,首先在IR2和IR4引脚上同时出现中断请求。然后IR1引脚上又有中断请求。,37,主程序,初始化,STI,IR2,IR4有请求,ISR2=1,IR2中断处理程序,IR1有请求,开中断后才能被响应,STI,IR1中断处理程序(嵌套),STI,ISR1=1,中断结束命令,ISR1被清除,IRET,返回IR2中断处理程序,中断结束命令,ISR2被清除,ISR4=1,IR4中断处理程序,STI,中断结束命令,IRET,返回IR2中断处理程序,IRET,返回主程序,为什么低优先级的IR4可以打断高优先级的IR2的执行?,38, 进入中断处理程序后,只有执行STI指令,才能允许其他可屏蔽中断处理程序进行嵌套。,进入中断处理程序后,如果STI指令使IF为1,但未用OCW2清除对应的ISR位,这种情况下,会允许比本中断优先级高的中断进入,形成符合优先级规则的嵌套。如果在STI指令之后,接着用OCW2命令清除了相应的ISR位,但中断处理过程并没有结束,这种情况下,中断嵌套就未必按优先级规则进行了。,39, 在主程序中如允许响应可屏蔽中断,必须执行开中断指令使IF为1 。, 每当进入一个中断处理程序时,系统会自动关中断,所以只有中断处理程序中再次开放中断,才有可能被较高级的可屏蔽中断嵌套。, 每个中断处理程序结束时,必须执行中断结束命令,清除对应的ISR位,才能返回断点。否则,将阻止同级和低级中断被响应。,40,中断嵌套管理,特殊全嵌套方式,用于级联方式下主片的管理。,例 某计算机系统由2片8259A构成主从式中断管理系统,主片IR4端接有1个从片,若从片上有1个中断源(IR6) 的中断正在被CPU处理,则主片的ISR4=1,从片的ISR6=1。在处理从片的IR6中断时,该从片上又有高级别的中断源IR0请求服务。,41,方案A:全嵌套方式级联情况下的中断管理。,0,0,0,0,0,0,0,0,从片(全嵌套方式),IRR,0,0,0,0,0,0,1,0,ISR,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,优先级排队电路,INT IR4,从片的IR6被服务的情况,42,0,0,0,0,0,0,0,0,从片(全嵌套方式),IRR,0,0,0,0,0,0,1,0,ISR,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,优先级排队电路,INT IR4,从片的IR6被服务时又有IR0请求的情况,1,对于主片而言,该请求属于同级中断,按全嵌套管理模式该请求将被屏蔽。,43,中断嵌套管理,特殊全嵌套方式,当来自某个从设备的中断请求进入服务时,主设备的优先权控制逻辑不封锁这个从设备,从而使来自该从设备的较高优先级的中断请求能被主设备识别,并向CPU发出中断请求。,44,方案B:特殊全嵌套方式级联情况下的中断管理。,0,0,0,0,0,0,0,0,从片(全嵌套方式),IRR,0,0,0,0,0,0,1,0,ISR,IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7,优先级排队电路,INT IR4,从片的IR6被服务时又有IR0请求的情况,1,暂停从片IR6的服务,1,45,中断嵌套管理,特殊全嵌套方式,主片的中断结束必须先用软件检查被服务的中断是否是该从设备的唯一中断请求。为此,先向从设备发一个一般中断结束命令,清除已完成服务的ISR的相应位。然后读出从片的ISR内容,若全为零,则向主设备发出一个一般的EOI命令。反之,则不向主设备发出EOI命令。,46,9.3 8259A的中断管理,47,中断屏蔽管理,一般屏蔽方式,只屏蔽本机中断,使得被屏蔽的中断源无权参加优先级排队。其余中断源仍然按原有中断管理模式进行。,特殊屏蔽方式,一般是在为某个中断源服务时进行,而不像一般屏蔽方式是在响应之前。不仅屏蔽本级中断源的再次被响应,而且还自动清除被屏蔽中断源的ISR位。,48,NUIST,第9章 可编程中断控制器8259A,8259A的主要功能结构,1,8259A的工作过程,2,8259A的中断管理,3,8259A的编程,4,8259A的应用举例,5,49,9.4 8259A 的编程,ICW1,ICW2,ICW3,ICW4,50,9.4 8259A 的编程,ICW1,ICW2,ICW3,ICW4,0,A0,1,D4,中断向量地址的A7A5,仅用于8080/8085系统,其他系统无意义。,中断请求触发方式选择:1:电平触发0:边沿触发,调用地址间隔(8080/8085用):1:4个字节0:8个字节,1:单一82590:8259级联,1:需用ICW40:不用ICW4,51,9.4 8259A 的编程,ICW1,ICW2,ICW3,ICW4,用于设定中断类型码,0,A0,8080/8085系统为中断向量地址的A15A8.,8086/8088系统中为中断类型码的高5位,52,9.4 8259A 的编程,ICW1,ICW2,ICW3,ICW4,有多片8259A级联时,才需要设置ICW3,1,A0,1:该引脚有从片,0:该引脚无从片,主片,从片,从设备的ID编码,53,9.4 8259A 的编程,ICW1,ICW2,ICW3,ICW4,1:特殊完全嵌套方式0:完全嵌套方式,0X:非缓冲方式10:缓冲方式,从片11:缓冲方式,主片,1:自动结束方式0:非自动结束,1:8086/8088系统0:8080/8085系统,54,9.4 8259A 的编程,ICW1(A0=0),ICW2(A0=0),级联方式?,Y,为主片?,ICW3(A0=1)指出从片连接情况,Y,N,ICW3(A0=1)指出本从片连接主片哪个引脚,要写ICW4吗?,Y,ICW4(A0=1),N,N,55,9.4 8259A 的编程,例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,试完成初始化程序。,ICW1,20H,0,0,0,1,0,0,1,ICW4,1,(13H),56,9.4 8259A 的编程,例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,试完成初始化程序。,ICW2,20H,1,0,1,1,0,0,0,0,(B0H),57,9.4 8259A 的编程,例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,试完成初始化程序。,ICW4,21H,0,0,0,0,0,0,0,1,(01H),58,9.4 8259A 的编程,例9-1 一个CPU为8086/8088的系统,采用1片8259A做控制器,要求其工作在全嵌套方式,不用中断自动结束方式,不用缓冲方式,中断请求信号为边沿触发方式,中断类型码为0B0H0B7H。该8259A的两个端口地址分别为20H和21H,试完成初始化程序。,MOV AL, 13H ; ICW1OUT 20H,ALMOV AL, 0B0H ; ICW2OUT 21H,AL,MOV AL,01H; ICW4OUT 21H,AL,59,9.4 8259A 的编程,OCW1,OCW2,OCW3,60,9.4 8259A 的编程,OCW1,OCW2,OCW3,Mi=1:IRi的中断请求被屏蔽Mi=0:IRi的中断请求开放,61,9.4 8259A 的编程,OCW1,OCW2,OCW3,1:L2L0有意义0:L2L0无意义,1:循环优先级0:固定优先级,1:有中断结束功能0:无中断结束功能,62,9.4 8259A 的编程,OCW1,OCW2,OCW3,SL=1时有意义:R=1、EOI=0时指出循环优先级起始最低优先级,即为特殊循环优先级。R=0、EOI=1时指出要清除的ISR位,即为特殊中断结束方式。R=EOI=1时是上述两功能的组合,即指出要清除的ISR位,同时指定它为最低优先级。,63,64,9.4 8259A 的编程,OCW1,OCW2,OCW3,特殊屏蔽方式允许位:1:允许;0:禁止,特殊屏蔽方式位:1:进入特殊屏蔽0:恢复一般屏蔽(D6=1时有效),11:进入特殊屏蔽10:退出特殊屏蔽0X:无意义,65,9.4 8259A 的编程,OCW1,OCW2,OCW3,查询方式位:1:查询命令;0:无查询功能,读IRR,ISR寄存器允许位:1:允许;0:禁止,RR=1有效RIS=0:读IRRRIS=1:读ISR,1XX:设置为查询方式(从偶地址口读回)00X:无意义010:读IRR允许(从偶地址口读回)011:读ISR允许(从偶地址口读回),66,NUIST,第9章 可编程中断控制器8259A,8259A的主要功能结构,1,8259A的工作过程,2,8259A的中断管理,3,8259A的编程,4,8259A的应用举例,5,67,9.5 8259A的应用,8259A的应用编程主要包括初始化命令字写入、操作命令字写入、状态字读取三部分。,68,9.5 8259A的应用,8259A的应用编程主要包括初始化命令字写入、操作命令字写入、状态字读取三部分。,69,9.5 8259A的应用,从8259A,主8259A,去CPU的INTR,70,9.5 8259A的应用,从8259A,主8259A,去CPU的INTR,写入主片8259A的ICWICW1=11H;定义主片8259A为上升沿触发方式,级联使用,要写入ICW3和ICW4。ICW2=08H;定义主片8259A中断类型码初值从08H开始,对应于IRQ0的中断类型码。ICW3=04H;定义主片8259A的引脚IR2上接有从片8259A。ICW4=01H;定义主片8259A工作在非缓冲器方式,非自动中断结束方式,正常完全嵌套方式和8259A芯片用于X86微机中。,71,9.5 8259A的应用,从8259A,主8259A,去CPU的INTR,写入从片8259A的ICWICW1=11H;与主片完全相同。ICW2=70H;定义从片8259A中断类型码的初始值为70H,对应于中断8(从片IRQ0)的中断类型码。ICW3=02H;定义为从片8259A的标志码,02H表示从片接在主片的IR2上。ICW4=01H;定义与主片完全相同。,72,9.5 8259A的应用,例 PC实模式下的中断初始化,系统分配给8259A的端口地址是:主片为20H和21H,从片为A0H和A1H,MOV AL,11H;ICW1送AL,上沿触发,级联使用;需要写入ICW3,ICW4。OUT 20H,AL;ICW1送主片ICW1口地址。OUT 0A0H,AL;ICW1送从片ICW1口地址。MOV AL,08H;ICW2送AL,设置主片中断向量初值08H。OUT 21H,AL;ICW2送主片ICW2口地址。MOV AL,70H;ICW2送AL,设置从片中断向量初值70H。OUT 0A1H,AL;ICW2送从片ICW2口地址。,73,9.5 8259A的应用,例 PC实模式下的中断初始化,系统分配给8259A的端口地址是:主片为20H和21H,从片为A0H和A1H,MOV AL,04H ;ICW3送AL,定义主片IR2上接有从片。OUT 21H,AL ;ICW3送主片ICW3口地址MOV AL,02H ;ICW3送AL,定义从片标志码OUT 0A1H,AL ;ICW3送从片ICW3口地址MOV AL,01H ;ICW4送AL,定义8259A的工作方式(主片从片一样)OUT 21H,AL ;ICW4送主片ICW4口地址OUT 0A1H,AL ;IC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论