
第十八讲:可编程中断控制器8259a 主讲老师:王克义.pdf
66页《微机原理A》《微机原理A》第十八讲:可编程中断控制器第十八讲:可编程中断控制器 8259A主讲老师:王克义课程主页: 可编程中断控制器可编程中断控制器8259A的功能的功能• 8259A的结构的结构• 8259A的控制字及编程使用的控制字及编程使用1. 8259A的功能的功能 •Intel 8259A用于管理和控制80x86的外部中断请 求,实现优先级判决,提供中断类型码,屏蔽中 断输入等功能•使用单片单片8259A可以管理8级中断,采用级联级联方 式,可扩充到64级(用9片8259A)18.1 中断控制器中断控制器8259A的功能与结构的功能与结构IR0IR7单片单片INTINTA8259AINTRINTACPU. . .中 断 请 求CPU8259A. . . . .IR0IR7级联级联主片主片8259AIR0 从片. . . IR78259AIR0 从片. . . IR7INTAINTR2. 8259A的引脚的引脚• 封装形式28脚双列直插1 2 3 4 5 6 7 8 9 10 11 12 13 1428 27 26 25 24 23 22 21 20 19 18 17 16 158259ACSWR RD D7D6D4D5D2D3D0D1CAS0CAS1GNDINTA IR7IR6IR4IR5IR2IR3IR0IR1INTCAS2SP/ENVCCA0•-片选信号(Chip Select)低电平有效,来自地 址译码器的输出只有有效时,CPU才能对 8259A进行读写操作。
•-写信号,低电平有效,来自CPU的 输出;当有效且有效时,使8259A接受 CPU送来的命令字•-读信号,低电平有效,来自CPU的输出; 当有效且有效时,使8259A将状态信息放到 数据总路线上,供CPU检测CSWRCSCSCSRDRDWRWR RDWR • D7~ D0:双向数据总线,接到系统数据总线的D7~ D0上,用来传送控制字、状态字和中断类型号• IR7~IR0:中断请求信号,输入,来自外部接口电 路单片时)• INT:向CPU发出的中断请求信号,(单片时)• INTA:中断响应信号,由此接收CPU发来的中断 响应脉冲• A0::地址输入信号,用于对8259A内部寄存器的寻址• CAS2~ CAS0:级联线(CASCADELINES),传送3位 标识码标识码,用于区分特定的从控制器双向:对于主片为 输出,对于从片为输入•:从片/允许缓冲器信号双功能引脚: – 作为输入时,8259A作为主片(=1) 8259A作为从片(=0) – 作为输出时,用来启动(允许)数据总线收发器(如 8286)SP/ ENSP/ ENSP/ EN图图18.2 8259A的内部逻辑结构的内部逻辑结构数据总线 缓冲器数据总线 缓冲器读读/写 控制电路写 控制电路级连 缓冲器级连 缓冲器/比较器比较器中断服务 寄存器中断服务 寄存器 ((ISR))中断请求 寄存器中断请求 寄存器 (IRR)优先权 判别器优先权 判别器 ((PR))中断屏蔽寄存器中断屏蔽寄存器 (IMR)控制电路控制电路SP/EN。
IR0 IR1 IR2IR6 IR7内部总线内部总线CAS0 CAS1 CAS2____ INTA INTWRRDCSA0D7~~D03. 8259A的内部结构的内部结构CPUAD7~AD0INTA INTRSP/ENISRICW1OCW1(IMR)ICW2OCW2ICW3OCW3ICW4PRIRRD7~D0地址 译码地址 译码. . .INTINTACSRDWRA0CAS0 CAS1 CAS2. . .IR7IR08259A的编程结构的编程结构• IRR—Interrupt Request Register • PR---Priority Resolver • ISR---In-Service Register • IMR---Interrupt Mask Register • ICWs---Initialization Command Words • OCWs---Operation Command Words • 7个CPU可访问的寄存器,分两组: – 初始化命令字ICW1 ~ICW4---系统初启时设定 – 操作命令字OCW1~OCW3—系统运行时,由应用程序 设定(实现对中断处理的动态管理和控制).7个寄存器的寻址问题个寄存器的寻址问题:规规定:规规定:A00111ICW1:用偶地址写入,且D4=1ICW2ICW3ICW4紧接着ICW1,用奇地址写入100OCW1:也用奇地址写入,但不紧跟ICW1OCW2OCW3也用偶地址写入,但D4=0即: 010 00 1D4D3ICW1OCW2OCW300•采用了专门的“标识位“, 以节省输入地址的引脚数( 仅用了A0)规规定:规规定:A00111ICW1:用偶地址写入,且D4=1ICW2ICW3ICW4紧接着ICW1,用奇地址写入100OCW1:也用奇地址写入,但不紧跟ICW1OCW2OCW3也用偶地址写入,但D4=0即: 010 00 1D4D3ICW1OCW2OCW300•采用了专门的“标识位“, 以节省输入地址的引脚数( 仅用了A0)• 8259A的处理部件: – 中断请求寄存器IRR-8位寄存器+控制逻辑 作用:作用:接受并锁存来自IR0~IR7的中断请求信号。
– 中断服务寄存器ISR 作用:作用:保存当前正在处理的中断请求 – 优先级裁决器PR 作用:作用:把新进入的中断请求和当前正在处理的中 断进行比较,以决定哪一个优先级更高• 处理过程:处理过程: – IR0~IR7上出现某一中断请求信号->IRR对应位 被置“1”->由IMR的相应位决定是否将其屏蔽(屏 蔽位=1,不通过;屏蔽位=0,通过)->中断请 求进PR->PR把新进入的中断请求和当前正在 处理的中断进行优先级比较->若新进入的中断 优先级高,该中断请求被送到CPU – 若CPU的IF=1,CPU完成当前指令后,响应中 断,在引脚上发出两个负脉冲 (执行两个 中断响应总线周期)INTA图图18.3 8086的中断响应总线周期的中断响应总线周期T1 T2 T3 T4 TI TI TI T1 T2 T3 T4第一个总线周期第二个总线周期第一个总线周期第二个总线周期三个空闲状态三个空闲状态中断类型码中断类型码CLK____ INTAAD7~AD0• 8259A收到第一个负脉冲后:收到第一个负脉冲后: ? 使IRR锁存允许,不予接受IR0~IR7上的中断请求信 号;直到第二个负脉冲结束后,才又使IRR锁存禁止 (输入输出透明)。
? 使ISR的相应位置“1”,以便为优先级裁决器以后的裁 决提供依据 ? 清除IRR的相应位• 8259A收到第二个负脉冲后:收到第二个负脉冲后: ? 把中断类型码寄存器的内容(ICW2的内容的内容)送到D7~D0 ? 如果ICW4的AEOI位为1,则在第二个脉冲结束 时,将ISR中被第一个脉冲置“1”的位清除(自动结 束自动结 束);;否则,要等到中断结束命令(EOI)发送后才能清除INTA INTA1. 设置优先级的方式设置优先级的方式 (1) 全嵌套方式(FULLY NESTED MODE)?也称固定优先级方式在这种方式下,由IRi引入的中 断请求具有固定的优先级-IR0(最高)->IR7(最低).?This mode is entered after initialization unless another mode is programmed.?当一个中断请求被响应时,ISR中的对应位ISn被置 “1”,8259A把中断类型码放到数据总线上把中断类型码放到数据总线上,然后,进 入中断服务程序一般情况下(除了“中断自动结束中断自动结束”方式方式外),在CPU发出 中断结束命令(EOI)前,此对应位一直保持为“1”-封锁 同级或低级封锁 同级或低级的中断响应,但并不禁止比本级优先级高 的中断响应-实现中断-实现中断“嵌套嵌套”。
18.2 8259A的工作方式的工作方式(2) 特殊全嵌套方式 (SPECIAL FULLY NESTED MODE-SFNM) • 在处理某一级中断时,不但允许优先级更高的中断请 求进入,也允许同级的中断请求进入在处理某一级中断时,不但允许优先级更高的中断请 求进入,也允许同级的中断请求进入 • 用于主从结构的8259系统中,将主片设置为“特殊全嵌 套方式特殊全嵌 套方式” • 通过ICW4的“SFNM”位可以设置此种方式CPUIR0 IR1IR7…IR0 IR1IR7…8259(主片主片)8259(从片从片)(3) 优先级自动循环方式(AUTOMATIC ROTATION) • 优先级是循环变化的(不希望有固定的优先级差别)- 一个设备的中断服务完成后,其优先级自动降为最 低,而将最高优先级赋给原来比它低一级的中断请求 • 开始时,优先级队列还是:IR0->IR7,若此时出 现了IR0请求,响应IR0并处理完成后,队列变为: IR1,,IR2,,IR3,,IR4,,IR5,,IR6,,IR7,,IR0 若又出现了IR4请求,处理完IR4后,队列变为: __________________________________•系统中是否采用“自动循环优先级自动循环优先级”,由•操作命令字OCW2来设定。
4)优先级特殊循环方式(SPECIFIC ROTATION) – 与“优先级自动循环方式”相比,只有一点不同,即可以 设置开始的最低优先级 – 例如,设定IR4为最低优先级,那么IR5就是最高优先 级,其余各级按循环方法类推2. 屏蔽中断源的方式(中断屏蔽方式中断屏蔽方式) – 普通屏蔽方式 • 通过对中断屏蔽寄存器(IMR)的设定,实现对相应位 为“1”的中断请求的屏蔽 • 可通过OCW1使IMR的一位或几位置“1” – *特殊屏蔽方式(SPECIAL MASK MODE) • 作用:P462 • 实现:输出OCW3(ESMM=1,SMM=1)输出OCW1(使IMR对应于本级的位为“1”)…………输出OCW1(使IMR对应于本级的位为“0”)输出OCW3(ESMM=1,SMM=0)“中断级无效中断级无效”设置设置撤销撤销(1)中断自动结束方式(1)中断自动结束方式(AUTOMATIC-AEOI方式)(AUTOMATIC-AEOI方式) 在第二个后沿,即完成把对应的ISR位复位在第二个后沿,即完成把对应的ISR位复位 •注意:AEOI方式是在中断响应后,而不是在中断处 理程序结束后将ISR位清0。
•这样,在中断处理过程中,8259A中就没有“正在处 理正在处 理”的标识此时,若有中断请求出现,且IF=1,则 无论其优先级如何(比本级高、低或相同比本级高、低或相同),都将得到 响应 •尤其是当某一中断请求信号被CPU响应后,如不及时 撤销,就会再次被响应-“二次中断二次中断” •AEOI方式方式适合于中断请求信号的持续时间有一定限 制以及不出现中断嵌套的场合 •通过ICW4可以设置AEOI方式(AEOI=1)INTA3. 中断结束方式中断结束方式(END OF INTERRUPT--EOI)(2)一般一般(常规常规)中断结束方式中断结束方式 • 适合于全嵌套方式全嵌套方式 • 实现:在中断服务程序结束时,向8259A发常规中断结 束命令(OCW2:EOI=1,SL=0,R=0) 例:MOV AL,20H; OCW2=20H OUT。












