第8章中断和8259A中国科学技术大学8.28259A工作原理第8章中断和8259A中国科学技术大学8.28259A工作原理§8.28259A的工作原理8.2.18259A的引脚信号和内部结构8.2.28259A的工作方式8.2.38259A的命令字及编程第8章中断和8259A中国科学技术大学8.28259A工作原理可编程中断控制器8259A中断控制器8259A1.8259A的引脚8259A与CPU的接口引脚8259A与外设的接口引脚8259A级联时的接口引脚第8章中断和8259A中国科学技术大学8.28259A工作原理8.2.18259A的引脚信号和内部结构可接收8级中断,经4个8位寄存器判别后,优先级最高的中断请求信号从INT脚输出,送CPU的INTR脚请求可屏蔽中断。第8章中断和8259A中国科学技术大学8.28259A工作原理内部结构1.中断请求寄存器IRR(InterruptRequestRegister)外部8级中断请求信号从IR7~IR0脚上引入,有请求时相应位置1。多个中断请求可同时进入。例如IR7、IR5、IR2上有请求,IRR将置成10100100。中断响应时相应位清0。中断请求信号可为高电平或上升沿触发,编程定义。2.中断屏蔽寄存器IMR(InterruptMaskRegister)存放中断屏蔽信息,每1位与1个IR位对应,置1禁止对应中断请求进入系统。用来有选择地禁止某些设备请求中断。第8章中断和8259A中国科学技术大学8.28259A工作原理内部结构3.中断服务寄存器ISR(InterruptServiceRegister)保存正处理的中断请求。任一中断被响应而执行其服务程序时,相应位置1,直到处理结束。多重中断情况下,会有多个位置1。4.优先级判决器PR(PriorityResolver)判别请求寄存器IRR里中断的优先级,把优先级最高的中断请求选进服务寄存器ISR中去。多重中断出现时,PR判定新出现的中断能否去打断正在处理的中断,优先服务更高的中断级别。第8章中断和8259A中国科学技术大学8.28259A工作原理内部结构5.控制电路包含一组初始化命令字寄存器ICW1~ICW4和一组操作命令字寄存器OCW1~OCW3,管理8259A的全部工作。根据IRR设置和PR判定,发控制信号。从INT脚向CPU发中断请求信号,接收CPU或总线控制器8288送来的中断响应信号;中断响应时ISR相应位置1,并发送中断类型号n,经数据总线缓冲器送到D7~D0;中断服务程序结束时,按编程规定方式结束中断。INTA第8章中断和8259A中国科学技术大学8.28259A工作原理内部结构6.数据总线缓冲器是8259A与CPU的接口,CPU经它向8259A写控制字,接收8259A送出的中断类型号,还可从中读出状态字(中断请求、屏蔽、服务寄存器的状态)和中断查询字。7.读/写控制电路接收CPU的、、地址、片选。一片8259A只占两个I/O地址,XT机中A0接地址A0,口地址为20H、21H。与8086连时,A0脚接地址A1,A0的0/1选偶/奇地址口。执行OUT指令时,信号与A0配合,将控制字写入ICW和OCW寄存器;执行IN指令时,信号与A0配合,将内部寄存器的内容经D7~D0送给CPU。RDWRWRWR第8章中断和8259A中国科学技术大学8.28259A工作原理内部结构8.级联缓冲器/比较器一片8259A最多引入8级中断,超过8级要用多片8259A构成主从关系,级联使用。从片输出INT接主片IRi。主从片的3条级联信号线CAS2~CAS0并接。单片时,从设备编程/允许缓冲线接高电平;多片时,主片接高电平,从片的接低电平。多片时,8259A必须经驱动器与数据总线相连,工作于缓冲方式;少量8259A系统中,8259A可直接与数据总线相连,工作于非缓冲方式。SP/ENSP/EN第8章中断和8259A中国科学技术大学8.28259A工作原理§8.28259A的工作原理8.2.18259A的引脚信号和内部结构8.2.28259A的工作方式8.2.38259A的命令字及编程第8章中断和8259A中国科学技术大学8.28259A工作原理8.2.28259A的工作方式写入初始化命令字ICW和控制命令字OCW,对8259A设置不同的工作方式。1.设置优先级方式1)全嵌套方式:最基本方式,初始化后自动进入。从各IRi脚引入的中断请求具有固定优先级,IR0IR7依次降低,IR0最高。8259A初始化后自动进入此方式。中断响应后,中断服务寄存器ISR的对应位ISn置1,并保持到中断结束,类型号n出现在DB上,然后进入中断处理。由CPU发EOI命令结束中断,使ISn复位;也可发自动结束中断命令AEOI。处理过程中,高级中断打断低级中断,禁止低级或同级中断进入。2)特殊全嵌方式:同全嵌套方式,但允许同级中断进入。第8章中断和8259A中国科学技术大学8.28259A工作原理1.设置优先级方式图中,从片INT脚接主片的IR2,主片角度看,从片的8级中断为同级中断。若正在处理IR3,则允许IR0~IR2进入,即允许同级中断进入。必须在IR3中断处理程序中,用STI指令开中断,才允许从片中断嵌套。但全嵌套方式禁止同级中断进入。例8.3同级中断举例。第8章中断和8259A中国科学技术大学8.28259A工作原理1.设置优先级方式3)优先级自动循环方式各中断请求优先级相同,IRi服务完后成为最低级,IRi+1成最高级。初始优先级从高到低为IR0IR7。例8.4参看下图的优先级自动循环方式示意图。图(a):初始状态IR0为最高级,若IR1、IR3、IR6同时请求中断,则ISR的IS1、IS3、IS6均置1。图(b):IR1先被服务,之后IS1=0,IR1成最低级,IR2为最高级,优先级顺序:IR2IR7、IR0、IR1。为IR3服务后IS3=0,IR3最低,IR4最高,依次类推。第8章中断和8259A中国科学技术大学8.28259A工作原理1.设置优先级方式4)优先级特殊循环方式也称为设置最低优先级方式,与优先级自动循环方式类似,只是最低优先级由程序设置,并非IR7最低。IRi设为最低后,IRi+1便是最高。第8章中断和8259A中国科学技术大学8.28259A工作原理可用CLI指令关中断,禁止可屏蔽中断进入;开中断情况下,可将中断屏蔽寄存器IMR的相应位置1,来屏蔽某一级或某几级中断。有两种屏蔽方式:1)普通屏蔽方式将IMR中的某1位或某几位置1,就可将相应的中断请求屏蔽。例如,令IMR=00100100,则IR5和IR2上的中断请求被屏蔽。2)特殊屏蔽方式仅屏蔽本级中断,高级或低级中断都允许进入。2.中断屏蔽方式第8章中断和8259A中国科学技术大学8.28259A工作原理3.结束中断方式中断响应后,ISR的相应位ISn置1,中断结束后应将ISn清0,表示结束中断。2种结束中断方式:自动和非自动,后者又分普通结束和特殊结束(EOI和SEOI)。1)自动结束中断方式—AEOIIRi上中断响应后,ISR相应位置1,在CPU发来的中断响应信号的第2周期结束时,ISR相应位自动清0,结束中断。AEOI方式,中断结束时不用对8259A发任何命令,通常在只有一片8259A,多个中断不会嵌套的情况下使用。INTA第8章中断和8259A中国科学技术大学8.28259A工作原理3.结束中断方式2)普通结束中断方式—EOI是常用的结束中断方式,用于全嵌套方式。当CPU处理完1个中断请求时,需向8259A发EOI命令,8259A收到EOI后,将ISR寄存器中优先级最高的中断,也就是刚服务过的中断的ISn清零,从而结束中断。3)特殊结束中断方式—SEOI在非完全嵌套方式下,用ISR寄存器无法确定当前正在处理哪级中断,也无法确定哪级中断是最后响应和处理的,不能用EOI方式结束中断,要用特殊方式。这时要用OCW2命令中的L2~L0来指定将ISR寄存器的哪1位清0。第8章中断和8259A中国科学技术大学8.28259A工作原理4.中断查询方式-POLL使用一条IN指令读取中断查询字,就可查到8259A是否有中断请求以及哪个优先级最高。下图是中断查询字格式第8章中断和8259A中国科学技术大学8.28259A工作原理§8.28259A的工作原理8.2.18259A的引脚信号和内部结构8.2.28259A的工作方式8.2.38259A的命令字及编程第8章中断和8259A中国科学技术大学8.28259A工作原理8.2.38259A的命令字及编程为使8259A按预定方式工作,必须对它编程,由CPU向其控制寄存器发各种控制命令。控制命令有两类:初始化命令字ICW1~ICW4,对8259A初始化;操作命令字OCW1~OCW3,定义操作方式。在操作过程中,允许重设置操作命令字,动态改变8259A的控制方式。两类命令字被写入8259A的两个端口,一个为偶地址口,8259A的A0=0,另一个为奇地址口,A0=1。在XT机中,偶/奇地址口为20H和21H。第8章中断和8259A中国科学技术大学8.28259A工作原理1.初始化命令字ICW初始化命令字ICW1~ICW4顺序写入控制口,设置8259A初始状态。8086系统中ICW1、ICW2和ICW4必须要有,ICW3只在级联时用。ICWlA0=0,ICW1写入偶地址口;D4=1标志位;IC4=1需要设ICW4;单片时SNGL=1,不要写入ICW3,级联时SNGL=0,要写入ICW3;LIMT=1从IRi引入中断为电平触发,0边沿触发;A7~A5及ADI位用于8位CPU。第8章中断和8259A中国科学技术大学8.28259A工作原理初始化命令字ICW2ICW2紧跟ICW1写入,A0=1,写入奇地址口,无标志位。T7~T3位用于确定中断类型码n的高5位,低3位D2~D0则由8259A根据从IRi上引入中断的引脚序号自动填入,从IR0~IR7的序号依次为000~111,其初值可以置为0。ICW2的高5位内容是可以任选的,一旦高5位确定,一块芯片的8个中断请求信号IR0~IR7的中断类型号也就确定了。第8章中断和8259A中国科学技术大学8.28259A工作原理初始化命令字例8.4在PC/XT机中,ICW2的高5位T7~T3=00001B,若从IR5上引入中断请求,则其中断类型码n=?如何设置ICW2?从IR5上引入的中断类型号的低3位D2~D0=101B,由于高5位是00001B,所以从IR5上引入的中断类型码n=00001101B=0DH,表示是硬盘中断请求。因此设置ICW2的指令为:MOVAL,00001000BOUT21H,AL据此可知,若ICW2的高5位为01110B,则该8259A引入的8级中断的中断类型号n=01110000B~01110111B=70H~77H,这是为PC/AT机设置的ICW2。第8章中断和8259A中国科学技术大学8.28259A工作原理初始化命令字ICW3ICW3只在级联时使用。图8.15是ICW3的格式和8259A主从结构连接图。(a)主片ICW3格式。Si=0,IRi上未接从片,Si=1接有从片。(b)从片ICW3格式。低3位指明从片接主片哪个引脚,ID2~ID0=000~111表示IR0~IR7引脚。第8章中断和8259A中国科学技术大学8.28259A工作原理初始化命令字例8.5用3片8259A按主从结构连接,如图8.15(c)。主片口地址为20H/21H,从片1口地址为A0H/A1H,从片2为B0/B1H。试求出3片8259A的ICW3,并编程将ICW3写入各芯片的奇地址口中。主片IR2、IR7接从片,故主片ICW3=10000100B=84H,从片1接主片IR2,故从片1的ICW3=00000010B=02H;从片2接主片IR7,故从片2的ICW3=00000