●独立中断请求屏蔽功能 ●8086,8088兼容
●单电源+5v,无时钟 ●MCS-80,MCS-85兼容
●28脚DIP或PLCC封装 ●8位优先级控制
●高速-标准温度范围 ●可扩展至64级
-扩展温度范围 ●可编辑中断模式
intel 8259a 可编程中断控制器可以为CPU处理8位优先级中断,而且,无须额外电路即可级联扩展至64位优先级中断处理。28脚DIP封装,使用NMOS技术,电路是静态的,无须时钟信号输入。
8259a被设计用来减少软件和实时处理的多级优先级中断。它有多种模式,满足系统的多种需要的最佳化。
8259a全面向上兼容intel8259。原先为8259所写的软件,可以使用8259a代替(MCS-80.85,无缓冲边沿触发)。
图一.模块框图
表一。管脚描述
符号 VCC
GND CS
图二。管脚配置
管脚号 类型 名字和功能
28 I 电源:+5V 14 I 地
1 I 芯片使能:低电压时,允许CPU与8259a之间/RD、
/WR的通信。但INTA功能与它独立
WR 2 I 写:低电压且CS亦为低电压时,8259a接受来自
CPU的命令字 RD 3 I 读:它与CS皆为低电压时,允许8259a将状态通
过数据总线发到CPU D7-D0 4-11 I/O 双向数据总线:控制,状态和中断向量信息通过此
传输
CAS0-CAS2 12,13,15 SP/EN 16 I/O
级联线:CAS线组成8259a的私有总线以控制多8259a架构。对主片为输出,对从片为输入
I/O 从编程/缓冲器允许信号:这是一个双功能管脚。当
缓冲模式时,它可作为输出到缓冲接收器(EN)。当非缓冲模式,作为输入以指定是否是主/从片(SP=1时主片)
INT 17 O 中断:当一个有效的中断请求判定出时,该管脚变
为高电平;用于给cpu中断 IR0-IR7 18-25 I
中断请求:异步输入。当如下情况时,被判定为中断请求:出现上升沿电压且保持高电压直至被识别(边沿触发模式),或者高电平触发。
INTA 26 I 中断响应:用于允许8259a中断向量数据传输到数据总线,由其定序。 A0 27 I A0地址线:与/CS,/WR,/RD配合使用。用于解析来
自cpu的不同信息和cpu想要读出的状态。一般与a0线相接(8086时A1)
功能说明书
微机系统上的中断
微机系统设计需要I/O设备,诸如键盘,显示器,传感器,和其他部件,并且以一种有效的方式接受I/O设备的服务,这样在整个过程中,微机才可以承担大量的系统任务而无所影响。
最常用的使用这些设备的方法是检测法。此即处理器必需以一定次序检测每一个设备,并且询问它需要服务的每一个设备。显而易见,主程序的很大一部分被这些持续的检测循环所占据,而且这种方法对系统有着严重的影响,限制了微机能够成带的任务,减少了使用这些设备的性价比。
一个更好的方法是,能够允许微处理器执行主程序并且只有当周边设备请求时才停下来去处理(周边设备的请求)。确实,这种方法将提供一个外部的异步输入,以通知处理器结束当前正被执行的指令,取得服务请求设备的子程序。一旦这个服务结束,处理器将重新继续放下的任务。
这种方法叫做中断。显然,系统效能大大增加,这样处理器可以承担更多的任务,进一步的提高其性价比。
可编程中断控制器(PIC)功能上是中断驱动系统环境下的总管家,决定那一个输入优先级最高,确定输入请求是否拥有比当前服务级别更高的优先级,并且将决定出的中断通知cpu。
每一个周边设备或者架构通常都有一个与其特殊功能或工作要求相关联的程序,他被称为服务程序。PIC给CPU中断后,必须输入给CPU信息,以指出程序响应与请求设备相关的服务程序。这个指针是一个位表地址,并会被经常访问。
8259a
8259a是一个专门用在实时中断驱动的微机系统。它管理8级优先级或中断请求并可与其他8259a芯片级联(可达64级)。它被系统软件当做周边I/O设备来操作。编程者可以选择8259a的工作方式,以满足系统需要。优先级模式可以在主程序之间随时更改。这意味着
整个中断结构可以根据系统需要而定义。
中断请求寄存器(IRR)和中断服务寄存器(ISR)
输入的中断由两个级联的寄存器IRR、ISR处理。IRR用来储存所有请求的中断,ISR用来储存所有正在服务的中断请求。
优先权裁决器(PR)
该逻辑模块决定IRR各位的优先级。最高优先级的中断请求被选取并在/INTA脉冲期间映射到ISR的相应位。
中断屏蔽寄存器(IMR)
IMR储存需要屏蔽的位。IMR操作IRR。屏蔽高优先级输入并不影响低优先级
INT:它直接输出到CPU中断输入端。 Voh完全兼容8080a,8085a和8086输入电平。 /INTA(中断响应)
/INTA脉冲将引起8259a向数据总线释放位信息。数据格式取决于8259a的系统模式(uPM)
数据总线缓冲器这是一个三态双向8位缓冲器,是8259a与系统数据总线之间的接口。
控制字和状态信息通过它来传输。
读写控制逻辑
本模块的功能是接受CPU的输出命令。它包括初始化命令字(ICW)寄存器和操作命令字(OCW)寄存器,储存着多种设备操作的控制格式。该功能模块也可以允许将8259a的状态传送到数据总线。
/CS
低电压有效。否则,不允许读写芯片操作。
/WR
低电压有效,允许向8259a写入ICWs AND OCWs
/RD
低电压有效,发送IRR ISR IMR 或者中断号到数据总线。
A0
这个输入信号与/WR /RD 信号关联,以写入命令给不同的命令寄存器、以及读取不同状态寄存器,可以直接与地址总线的某根相连。
级联缓冲器/比较器
该功能模块存储和比较系统中所有8259a的ID。相关的三根I/O管脚(CAS0-2),当8259a是主片时,作为输出;当8259a是从片时,作为输入。作为主片时,8249a发送请求中断的从片ID到CAS0-2上。这样选中的从片,将在下一个或两个连续的/INTA脉冲中,发送预
先编辑好的子程序的地址到数据总线上(详见“8259a的级联”部分)。
中断流程
在微机系统中,8259a最强大的的特征是可编程性和中断程序地址功能。后者允许直接或间接跳转到相应中断服务程序,而无须检测设备。中断事件的一般流程取决与所用CPU的类型。
当为MCS-80/85系统时:
1.有一个或多个中断请求,IRR相应位置位
2.8259a处理这些请求,并向CPU发送中断请求INT。 3.CPU识别INT信号,并发出响应脉冲/INTA。
4.根据来自CPU的/INTA信号,置位最高优先级的ISR位,并将相应的IRR位复位。8259a也会通过D7-0向8位数据总线释放一个CALL指令代码(11001101)
5.这个CALL指令将会引起使cpu向8259发送另外两个/INTA脉冲。
6.这两个/INTA脉冲允许8259a释放它的预编辑程序地址到数据总线上。低八位地址在第一个/INTA脉冲发送,高八位地址在第二个/INTA脉冲发送。
7.这个由8259a释放3字节CALL指令完成。在自动中断结束模式(AEOI)时,在第三个/INTA脉冲的末尾,ISR位复位;否则,ISR位将保持“1”直到终端流程最后处理相应EOI命令。
在8086系统中,在第四步之前,终端流程是一样的。
4.根据来自CPU的/INTA信号,最高优先级的ISR位置位,并且相应的IRR位复位。在此脉冲期间内,8259a并不驱动数据总线。
5.8086发送第二个/INTA脉冲。在此期间,8259a向数据总线释放一个供CPU读取的八位指针。
6这样就结束了中断周期。AEOI模式时,在第二个/INTA脉冲结束时,ISR位复位。否则,ISR位将保持“1”直到在程序结尾相应的EOI命令被处理。
如果到第四步时没有中断请求(换言之,中断请求持续时间太短),8259a将处理中断级别7.向量字节和CAS线将看起来像是中断输入端7请求中断。
当8259a PIC接收到中断信号时,INT管脚激活并且开始响应周期。如果一个更高优先级的中断在这两个/INTA周期内发生,INT管脚在第二个/IINTA脉冲后立即失效(变为低电平)。再过一段不定时间后,INT管脚重新激活以识别等待服务的更高级别的中断请求。沉寂时间(inactive time)不是固定的,且在一个区间内变动。设计人员在使用8259a时,应当考虑这点。鉴于此,我们推荐设计相应的异步技术。
中断流程输出
MCS-80,MCS-85
该序列由三个/INTA脉冲定时。在第一个/INTA脉冲时,CALL代码被放到数据总线上。
表2.第一个中断向量内容
CALL代码 11001101
在第二个/INTA脉冲时,相应服务程序的低位地址放到数据总线上。当interval=4位时,A5-A7是可编辑的,A0-A4是由8259a自动插入。当interval=8,只有A6和A7可编辑,A0-A5自动插入。
表3.第二个中断向量内容
IR Interval=4 Interval=8 7 6 5 4 3 2 1 0
D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0A7A6A511100A7A6A511000A7A6A510100A7A6A510000A7A6A501100A7A6A501000A7A6A500100A7A6A500000
A7A7A7A7A7A7A7A7A6A6A6A6A6A6A6A6111100001100110010101010000000000000000000000000
在/INTA脉冲期间,预先编辑好的子程序的高位地址,作为初始化次流程的字节2(A8-A15),被释放到总线上。中断向量的第三个字节内容如下表示:
D7 D6 D5 D4 D3 D2 D1 D0 A15 A14 A13 A12 A11 A10 A9 A8
8086,8088
8086模式与MCS-80模式相似,除了只有两个由处理器完成的中断响应周期,并且没有CALL操作码被送到处理器。第一个中断响应周期与mcs-80,85系统相似,都是在内部冻结中断状态以等待优先级处理。作为主片,8259处理在此脉冲结束时,处理级联线上的中断编码。在第一个周期,他不处理任何数据给处理器,且此时的数据总线缓冲器是禁用的。在8086模式下的第二个中断响应周期,主片(或设定的从片)将发送给处理器一个字节大小的中断号,它的编码如下图(注意ADI模式控制被忽略,8086模式下A5-A11不用)
D7 D6 D5 D4 D3 D2 D1 D0 IR7 T7 T6 T5 T4 T3 1 1 1 IR6 T7 T6 T5 T4 T3 1 1 0 IR5 T7 T6 T5 T4 T3 1 0 1 IR4 T7 T6 T5 T4 T3 1 0 0 IR3 T7 T6 T5 T4 T3 0 1 1 IR2 T7 T6 T5 T4 T3 0 1 0 IR1 T7 T6 T5 T4 T3 0 0 1 IR0 T7 T6 T5 T4 T3 0 0 0
8259A状态编辑
8259A接受来自CPU的两类命令字:
1.初始化命令字(ICW):在正常操作之前,系统使用的每一片8259a都必须初始化,通过2-4个字节的ICW,此由/WR脉冲控制。
2.操作命令字(OCW):这些命令字控制8259a工作于不同的中断模式。这些模式有: a。全嵌套模式 b。循环优先模式 c。特殊屏蔽方式
d。程序查询模式
OCW命令字可以在初始化后的任何时间写入8259a
初始化命令字(ICW)
概述
无论何时,当A0=0且D4=1时,这个命令字将被认为是ICW1。ICW1开始初始化流程,以下步骤将自动发生:
a。边缘感应电路(the edge sense circuit)被复位,这意味着:中断输入(IR)必须为上升沿才能触发(即边缘触发模式)
b。中断屏蔽寄存器被清空(全置0) c。IR7输入被置为优先级7(lowest) d。从片模式地址被设为7
e。特殊屏蔽方式被清空,状态读取(Status Read)指向IRR f。若IC4=0,那么ICW4全被置0(这意味着:非缓冲模式,非自动中断结束模式,mcs-80/85系统)
注意:ICW4中的主从模式仅用于缓冲模式。
ICW1,ICW2
A5-A15:服务程序页开始地址。在MCS 80/85系统中,8个请求级别将产生Call指令对应8个等距分布在内存中的位置。可以编程设置内存间距是4或者8,这样8个程序将产生32/64字节的页。
地址格式长2字节(A0-A15)。当成需间隔为4时,A0-A4将被8259a自动分配,而A5-A15可被外部编辑;当interval=8时,A0-A5被8259a自动插入,而A6-A15可被外部编辑。
8字节interval将会与当前软件完美配合;4字节interval适合于紧凑跳转表。
在8086系统中,A15-A11被插入5个重要的位,8259a根据中断级别自动设置剩下的3位,A10-A5被忽略,ADI(地址间距)无效。
LTIM:如果LTIM=1,那么,8259a将工作于电平触发模式,边沿触发模块被禁用。 ADI:CALL指令地址间隔。1时4,0时8.
SNGL:信号,即是否为单片8259a。1时不处理ICW3。 IC4:1时读取ICW4.
ICW3
这个控制字只有在多片8259a级联时使用,此时SNGL=0。它将装载8位从寄存器,这个寄存器多功能如下:
a。主片时(或者SP=1,或者在缓冲模式时ICW4的M/S=1),每一个从片都设为相应的“1”。主片然后发出一个字节大小的Call序列(MCS-80/85系统时),并且通过级联线(cascade line)使能相应从片发送第2、3个字节(8086时仅为第二个字节)。
b。从片(或者当SP=0,或者ICW4的BUF=1且M/S=0),位2-0 为从片识别码(id)。从片标胶他的级联输入与这些位,如相等,Call序列的第2、3字节(8086仅第二个字节)将被发送到数据总线。
ICW1 ICW2 级联?ICW3 需ICW4ICW4
SFNM: 如果SFNM=1,将设为特殊全嵌套模式
BUF: 若BUF=1,将设为缓冲模式。在缓冲模式时,SP/EN使能为输出并且主从片由M/S决定
M/S:若为缓冲模式,M/S=1意味着8259a被定为主片,反之为从片。若BUF=0,则M/S无效。
AEOI: 若AEOI=1,将设为自动结束中断模式。
mPM:微处理器模式,若mPM=0则设为MCS-80,85系统环境。若mPM=1,则设为8086系统环境。
ICW4 初始化流程
初始化命令字格式
ICW1
A0 D7 D6 D6 D4 D3 D2 D1 D0 0 A7 A6 A5 1 LTIM
中断向量地址
A7-A5(仅用于MCS-80/85)
1:电平触发0:边沿触发
ADI 地址调用间隔 1:4间隔 0:8间隔
SNGL 1:单片模式 0:级联模式
IC4 1:需要ICW4 0不需要
ICW2
A0 D7 D6 D6 D4 1 A15/T7 A14/T6 A13/T5
A12/T4
D3 A11/T3
D2 A10
D1 D0 A9
A8 中断向量地址的A15-A8(MCS-80/85)
中断向量地址T7-T3
ICW3(主片)
A0 D7 D6 D5 D4 D3 D2 D1 D0 1 1:IR输入有从片
0:IR输入无从片
ICW3(从片)
A0 D7 D6 D5 1 0 0 0
D4 0
ICW4
A0 D7 D6 D5 1 0 0 0 D4 SFNM
D3 D2 D1 BUF M/S AEOI D0
mPM
D3 D2 D1 0 ID2 ID1
从片地址
D0 ID0
1:特殊全嵌套模式0:全嵌套模式
0X:无缓冲模式 10:缓冲模式/从片11:缓冲模式/主片
1:自动EOI 0:一般EOI 1:8086/8088
模式 0:MCS-80/85
模式
注意:从片ID等于相应主片上的IR输入。
操作命令字(OCWS)
初始化命令字被写入8259a后,芯片已经准备好接收中断请求。但是,在8259a工作期间,一个算法的选择(a select6ino of algorithms)可通过OCW命令8259a工作在多种模式。
操作命令字格式
OCW1
A0 D7 1 0
R(rotate) 001 011 101
SL
一般中断结束方式 特殊终端结束方式 循环一般中断结束方式
M7
D6 M6
D5 M5
D4 M4 OCW2 EOI
中断结束方式 自动循环方式
0
0
L2
L1
L0
待操作的中断级别的二进制代码:L2,L1,L0
注意:带*的表明试用
了L2-L0.
D3 M3
D2 M2
D1 M1
D0 M0
1:中断屏蔽;0:屏蔽复位
100 设置为循环自动中断结束方式000 清除循环自动中断结束方式(为
固定优先级) 111 110 010 0
0
ESMM
*循环特殊中断结束方式
*设置优先级命令
无操作
特殊循环方式
OCW3
SMM 01P RR RIS
10:一般屏蔽方式 11:特殊屏蔽方式 00:无操作 01:无操作 1:程序查询方式 10:在下一个RD脉冲读IRR0:中断方式 11:在下一个RD脉冲读ISR
00:无操作 01:无操作
OCW1
ocw1设定或清除中断屏蔽寄存器(IMR)的屏蔽位。M7-M0代表八个屏蔽位。若M=1则该输入端被屏蔽;若M=0则该输入端使能。
OCW2
R,SL,EOI-这三位控制着循环、结束中断模式以及两者结合模式。这三者的组合见上表。 L2,L1,L0-当SL为激活,这些位决定中断级别。
OCW3
ESMM-使能特殊中断屏蔽模式。若设为1,将使能SMM位设置或重设特殊中断屏蔽模
式。若为0,SMM位忽略。
SMM-特殊中断屏蔽模式。若ESMM=1且SMM=1,8259a将进入特殊中断屏蔽模式,若ESMM=1且SM=0,8259a将回到普通中断屏蔽模式。当ESMM=0,SMM位无效。
全嵌套模式
初始化后若不另外设定模式,将自动进入此模式。中断请求按优先权从0到7排序(0最高)。当(CPU)中断响应时,裁决出(PR)最高优先级的中断请求,并将它的向量信息传到数据总线。另外,ISR(ISO-7)中的相应位被置位。此位保持为‘1’直到微处理器处理EOI命令(在从服务程序返回前),或者到最后一个INTA的后沿(trailing edge)(如果AEOI=1的话)。当IS位置位,以后所有同级别或低级别的中断将被禁止,而较高级别的中断将产生中断(只有当微处理器的内部中断使能端被软件设为使能时,才会响应)。
初始化之后,IR0优先级最高,IR7优先级最低。优先级可以被改变,这将在循环优先模式中说明。
中断结束(EOI)
在以下情况,IS(in service)将会被复位(置0):
1.在最后一个INTA脉冲的后沿(trailing edge)自动完成(ICW1的AEOI位置1) 2.中断服务程序结束前由8259a处理的命令字,EOI命令。
当级联模式时,必须有两个EOI命令,主从片各一次。
有两类EOI:特殊的和一般的。当工作在全嵌套系列模式时,8259a可以决定执行EOI时,哪位IS位被复位。当为非特殊EOI命令时,8259A将自动复位ISR中已置位的最高优先级位,因为在全嵌套模式中,最高的IS级别一定是最近响应且服务的。一般中断结束方式可通过OCW2(EOI=1,SL=0,R=0)设置.
当非全嵌套模式时,8259a可能不能确定最近响应的中断级别。这种情况下,即需要--特殊中断结束命令,它包括要复位的IS级别。特殊EOI可通过OCW2(EOI=1,SL=1,R=0,且L0-L2是需要复位的二进制代码)设置。
这里需要注意,如果8259a工作在特殊屏蔽模式,由IMR位屏蔽的IS位将不会被非特殊EOI命令清除,。
自动中断结束模式(AEOI)
若ICW4的AEOI=1,那么,8259a将工作在AEOI模式直至由ICW4复位。此模式下,8259a在最后一个中断响应脉冲的后沿,将自动执行非特殊EOI命令(MCS-80/85时第三个,8086时第二个)。注意,从系统观点来看,此模式只适合于多片8259a嵌套中断架构。(Note that from a system standpoint, this mode should be used only when a nested multilevel interrupt structure is not required within a single 8259A)
AEOI模式只能用于主片。但1985年及以后的版本可以工作在AEOI模式,无论是主片还是从片。
Automatic Rotation优先级自动循环模式(等优先级设备)
在一些应用中,存在一些等优先级的设备,它们在被服务后,优先级降为最低,因此,在最糟的情况下,一个需要中断请求的设备等待直到其他七个设备至多服务一次。
有两种方法实现优先级自动循环模式,通过OCW2,有非特殊EOI命令
(R=1,SL=0,EOI=1);和通过AEOI模式循环,由(R=1,SL=0.EOI=0)设置,由(R=0,SL=0,EOI=0)清除。
优先权特殊循环方式(Specific Rotation(Specific Priority))
编程者可以改变优先级通过编辑最低优先级,这样解决其它的优先级。例如,若IR5被设为最低优先级,那么IR6将是最高优先级。
设定优先级命令由OCW2处理:R=1,SL=1,EOI=0,L0-L2是最低优先级设备的二进制代码。
注意,此时的内部状态已被操作OCW2过程中又软件控制更新。但是,他独立与EOI命令(同样由OCW2执行) 。改变优先级通过EOI命令,通过使用循环或者特殊EOI命令in OCW2(R=1, SL=1, EOI=1, L0-L2=将要接受的最低优先级级别 )。
中断屏蔽
每一个中断输入均可通过中断屏蔽寄存器(IMR)单独被屏蔽(操作OCW1).IMR的置1的每一位屏蔽响应中断输入。位0屏蔽IR0,位1屏蔽IR1,依此类推。屏蔽一位不影响其他。
特殊屏蔽模式
一些应用在软件操作过程中可能需要中断服务程序动态的改变中断优先结构。例如,程序可能有时希望禁用低优先级请求,有时又希望允许低优先级别请求。
这儿的困难是,若一个中断请求被响应而且EOI命令还未复位其IS位(换句话说,其正在被服务),8259A已经禁止了所有低优先级请求,如此就不容易让程序允许他们(指低优先级别请求)。
这就是为什么引进特殊屏蔽模式。在此模式中,当屏蔽位被OCW1置位,他禁用以后的同级别中断,但允许所有其他级别未被屏蔽的请求(低或者高均可)。
这样,通过IMR,任何请求均可被选择性允许.
特殊屏蔽模式由OCW3控制:SSMM=1,SMM=1,当SSMM=1,SMM=0是清除。
程序查询模式(poll mode)
在程序查询模式,INT 输出功能不变,但微处理器可以忽略它。这可以这样完成:或者INT 端不予微处理器连接,或者通过禁用微处理器中断功能。对设备的服务由查询命令完成。
查询命令由OCW3控制(P=1)。8259A把第二个RD信号(即RD=0,CS=0)作为中断响应,若有请求将相应IS位置位,读优先级。当由WR到RD时,中断冻结。
在读信号期间,以下字当被放到数据总线上: D7 I
D6 --
D5 -
D4 -
D3 -
D2 W2
D1 W1
D0 W0
W2-W0:请求服务的最高优先级的二进制代码
若I=1,则说明有中断
当程序有多处相同时,该模式很有用(This mode is useful if there is a routine command common to several levels so that the INTA sequence is not needed (saves ROM space).)。另一个应用是扩展中断优先级当中断源多于64个时。
读8259a状态
一些内部寄存器的输入状态可以被读取以更新系统上的用户信息。 以下寄存器可被读取,通过OCW3(IRR和ISR,或OCW1[IMR]。 IRR:8位寄存器,包含待响应的中断请求级别。当中断被识别时,最高优先级将被复位。(不受IMR影响)
ISR:8位寄存器,包含正在被服务的优先级别。当EOI命令被处理时,ISR更新。 IMR:8位寄存器,包含被屏蔽的中断请求。
当OCW3的读寄存器命令处理时(RR=1,RIS=0)(RD脉冲之前),可以读取IRR。 当OCW3的读寄存器命令处理时(RR=1,RIS=1)(RD脉冲之前),可以读取ISR。
没有必要在每一个读状态操作前,都写一个OCW3命令,只要状态读取与前一次操作相关(操作同一寄存器),即,8259a记忆上一次IRR或ISR被OCW3选择。当程序查询模式时不成立。
初始化后,8259a指向IRR。
若读IMR,则不需要OCW3。输出信号将会包含IMR(当RD活跃且A0=1(OCW1))。 程序查询模式时状态读取无效,即OCW3的(P=1,RR=1)
边沿和电平触发模式
此模式由ICW1的位1设定。
若LTIM=0,中断请求将由IR输入上升沿决定,IR输入端可以保持高电平而不会产生另外的中断。
here is a figure of IRTriggering Timing Requirements。P18。
如果LTIM=1,中断请求将由IR输入端的高电平识别。而不需要边沿检测。中断请求必须在EOI命令处理前移去,或者,CPU中断允许阻止产生第二个中断。
优先级单元框图展示了一个8259a的概念性的电平感应和边沿感应电路。请一定注意:请求触发器(request latch )显然是一个D触发器。
不论在边沿还是电平触发模式,IR输入必须保持高电平直到第一个INTA的下降沿。若IR输入在此之前变为低电平,当CPU响应中断时,将默认为IR7。这是一个有用的保护措施,对于由IR输入端上的低频干扰噪声引起的响应。为了有效地实现这个功能,IR7(对应)服务程序是一个清除命令,简单的执行一个返回指令,以忽略中断干扰。如果IR7需做他用,默认的IR7仍然能够通过读取ISR检测到。正常的Ir7将会置位相应的ISR位,而默认的IR7不会。若在一个正常的IR7程序期间,一个默认的IR7发生,但ISR仍然保持置位。这种情况下,很有必要跟踪之前IR7程序是否执行过。如果另外的IR7发生,那么他是默认的。
特殊全嵌套模式
该模式用大型系统中,其中,8259a需要级联,且优先级保存在从片中。在此情况下,主片被设为特殊全嵌套模式(使用ICW4)。该模式与普通的嵌套模式有以下不同:
a。当来自某一个从片的中断请求,该从片在主片的优先级模块中不会被锁住,来自该从片的更高级别的中断请求将会被主片识别,并给CPU中断。(在普通嵌套模式下,当从片的请求正被服务,从片被锁住,且更高级别的中断请求不会被响应。)
b。当存在中断服务程序,软件将会检测正被服务的中断,来自该从片只有一个。这将通过给从片发送一个非特殊中断结束(EOI)命令,然后读取它的ISR,检查是否为零。如果是空,则一个非特殊EOI被送到主片。如果不是,将不会送EOI给主片。
缓冲模式(BUFFERED MODE)
当8259a应用于大型系统,就需要使用总线驱动缓冲,需要使用级联模式。此处存在缓冲使能问题。
缓冲模式时,8259a通过SP/EN发送一个使能信号,以使能缓冲。在该模式下,无论何时8259a的数据总线输出使能,SP/EN输出激活。
这种改变迫使使用软件编辑以确定8259a是否是主片或从片。ICW4的位3设定缓冲模式,ICW4的位2决定主从片。
级联模式(CASCADE MODE)
8259A可以简单的互联成一个主片、八个从片的系统,可处理高达64级优先级。 主片通过3线级联总线控制从片。级联总线在从片的/INTA序列(sequence)中有使能作用。
在级联配置中,从片中断输出与主片中断输入相连。当从片请求时,然后被响应,在INTA期间,主片将使能相应从片发出程序地址字节2、3(8086/8088仅有字节2),。
级联总线通常是低电平,并将在第一个INTA脉冲的后沿到第三个脉冲的后沿期间,发送从片地址代码。系统中的每一片8259a必须单独初始化,并可被设定为不同的工作模式。EOI命令必须处理两次,一次主片,一次相应从片。需要一个地址译码器,以使能每一片8259a(通过CS端)。
主片的级联线只有当从片输入时才激活,没有从片输入时,级联线保持低电压。
因篇幅问题不能全部显示,请点此查看更多更全内容