8259A中文说明书.docx
《8259A中文说明书.docx》由会员分享,可在线阅读,更多相关《8259A中文说明书.docx(21页珍藏版)》请在冰豆网上搜索。
8259A中文说明书
8259A-中文说明书
8259A中文说明书
intel8259a可编程中断控制器
●8086,8088兼容
●MCS-80,MCS-85兼容
●8位优先级控制
●可扩展至64级
●可编辑中断模式
●独立中断请求屏蔽功能
●单电源+5v,无时钟
●28脚DIP或PLCC封装
●高速-标准温度范围
-扩展温度范围
intel8259a可编程中断控制器可以为CPU处理8位优先级中断,而且,无须额外电路即可级联扩展至64位优先级中断处理。
28脚DIP封装,使用NMOS技术,电路是静态的,无须时钟信号输入。
8259a被设计用来减少软件和实时处理的多级优先级中断。
它有多种模式,满足系统的多种需要的最佳化。
8259a全面向上兼容intel8259。
原先为8259所写的软件,可以使用8259a代替(MCS-80.85,无缓冲边沿触发)。
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写入ICWsANDOCWs
/RD
低电压有效,发送IRRISRIMR或者中断号到数据总线。
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请求中断。
当8259aPIC接收到中断信号时,INT管脚激活并且开始响应周期。
如果一个更高优先级的中断在这两个/INTA周期内发生,INT管脚在第二个/IINTA脉冲后立即失效(变为低电平)。
再过一段不定时间后,INT管脚重新激活以识别等待服务的更高级别的中断请求。
沉寂时间(inactivetime)不是固定的,且在一个区间内变动。
设计人员在使用8259a时,应当考虑这点。
鉴于此,我们推荐设计相应的异步技术。
中断流程输出
MCS-80,MCS-85
该序列由三个/INTA脉冲定时。
在第一个/INTA脉冲时,CALL代码被放到数据总线上。
表2.第一个中断向量内容
在第二个/INTA脉冲时,相应服务程序的低位地址放到数据总线上。
当interval=4位时,A5-A7是可编辑的,A0-A4是由8259a自动插入。
当interval=8,只有A6和A7可编辑,A0-A5自动插入。
表3.第二个中断向量内容
IR
Interval=4
Interval=8
D7D6D5D4D3D2D1D0
D7D6D5D4D3D2D1D0
7
A7A6A511100
A7A6111000
6
A7A6A511000
A7A6110000
5
A7A6A510100
A7A6101000
4
A7A6A510000
A7A6100000
3
A7A6A501100
A7A6011000
2
A7A6A501000
A7A6010000
1
A7A6A500100
A7A6001000
0
A7A6A500000
A7A6000000
在/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。
边缘感应电路(theedgesensecircuit)被复位,这意味着:
中断输入(IR)必须为上升沿才能触发(即边缘触发模式)
b。
中断屏蔽寄存器被清空(全置0)
c。
IR7输入被置为优先级7(lowest)
d。
从片模式地址被设为7
e。
特殊屏蔽方式被清空,状态读取(StatusRead)指向IRR
f。
若IC4=0,那么ICW4全被置0(这意味着:
非缓冲模式,非自动中断结束模式,mcs-80/85系统)
注意:
ICW4中的主从模式仅用于缓冲模式。
ICW1,ICW2
A5-A15:
服务程序页开始地址。
在MCS80/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系统时),并且通过级联线(cascadeline)使能相应从片发送第2、3个字节(8086时仅为第二个字节)。
b。
从片(或者当SP=0,或者ICW4的BUF=1且M/S=0),位2-0为从片识别码(id)。
从片标胶他的级联输入与这些位,如相等,Call序列的第2、3字节(8086仅第二个字节)将被发送到数据总线。
ICW4
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系统环境。
初始化命令字格式
ICW1
A0
D7
D6
D6
D4
D3
D2
D1
D0
0
A7
A6
A5
1
LTIM
ADI
SNGL
IC4
中断向量地址A7-A5(仅用于MCS-80/85)
1:
电平触发
0:
边沿触发
地址调用间隔
1:
4间隔
0:
8间隔
1:
单片模式
0:
级联模式
1:
需要ICW4
0不需要
ICW2
A0
D7
D6
D6
D4
D3
D2
D1
D0
1
A15/T7
A14/T6
A13/T5
A12/T4
A11/T3
A10
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
D4
D3
D2
D1
D0
1
0
0
0
0
0
ID2
ID1
ID0
从片地址
ICW4
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
0
0
0
SFNM
BUF
M/S
AEOI
mPM
1:
特殊全嵌套模式
0:
全嵌套模式
0X:
无缓冲模式
10:
缓冲模式/从片
11:
缓冲模式/主片
1:
自动EOI
0:
一般EOI
1:
8086/8088模式
0:
MCS-80/85模式
注意:
从片ID等于相应主片上的IR输入。
操作命令字(OCWS)
初始化命令字被写入8259a后,芯片已经准备好接收中断请求。
但是,在8259a工作期间,一个算法的选择(aselect6inoofalgorithms)可通过OCW命令8259a工作在多种模式。
操作命令字格式
OCW1
A0
D7
D6
D5
D4
D3
D2
D1
D0
1
M7
M6
M5
M4
M3
M2
M1
M0
1:
中断屏蔽;0:
屏蔽复位
OCW2
0
R(rotate)
SL
EOI
0
0
L2
L1
L0
001
一般中断结束方式
中断结束方式
011
特殊终端结束方式
101
循环一般中断结束方式
自动循环方式
100
设置为循环自动中断结束方式
000
清除循环自动中断结束方式(为固定优先级)
111
*循环特殊中断结束方式
特殊循环方式
110
*设置优先级命令
010
无操作
待操作的中断级别的二进制代码:
L2,L1,L0
注意:
带*的表明试用了L2-L0.
OCW3
0
0
ESMM
SMM
0
1
P
RR
RIS
10:
一般屏蔽方式
11:
特殊屏蔽方式
00:
无操作
01:
无操作
1:
程序查询方式
0:
中断方式
10:
在下一个RD脉冲读IRR
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的后沿(trailingedge)(如果AEOI=1的话)。
当IS位置位,以后所有同级别或低级别的中断将被禁止,而较高级别的中断将产生中断(只有当微处理器的内部中断使能端被软件设为使能时,才会响应)。
初始化之后,IR0优先级最高,IR7优先级最低。
优先级可以被改变,这将在循环优先模式中说明。
中断结束(EOI)
在以下情况,IS(inservice)将会被复位(置0):
1.在最后一个INTA脉冲的后沿(trailingedge)自动完成(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嵌套中断架构。
(Notethatfromasystemstandpoint,thismodeshouldbeusedonlywhenanestedmultilevelinterruptstructureisnotrequiredwithinasingle8259A)
AEOI模式只能用于主片。
但1985年及以后的版本可以工作在AEOI模式,无论是主片还是从片。
AutomaticRotation优先级自动循环模式(等优先级设备)
在一些应用中,存在一些等优先级的设备,它们在被服务后,优先级降为最低,因此,在最糟的情况下,一个需要中断请求的设备等待直到其他七个设备至多服务一次。
有两种方法实现优先级自动循环模式,通过OCW2,有非特殊EOI命令(R=1,SL=0,EOI=1);和通过AEOI模式循环,由(R=1,SL=0.EOI=0)设置,由(R=0,SL=0,EOI=0)清除。
优先权特殊循环方式(SpecificRotation(SpecificPriority))
编程者可以改变优先级通过编辑最低优先级,这样解决其它的优先级。
例如,若IR5被设为最低优先级,那么IR6将是最高优先级。
设定优先级命令由OCW2处理:
R=1,SL=1,EOI=0,L0-L2是最低优先级设备的二进制代码。
注意,此时的内部状态已被操作OCW2过程中又软件控制更新。
但是,他独立与EOI命令(同样由OCW2执行)。
改变优先级通过EOI命令,通过使用循环或者特殊EOI命令inOCW2(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是清除。
程序查询模式(pollmode)
在程序查询模式,INT输出功能不变,但微处理器可以忽略它。
这可以这样完成:
或者INT端不予微处理器连接,或者通过禁用微处理器中断功能。
对设备的服务由查询命令完成。
查询命令由OCW3控制(P=1)。
8259A把第二个RD信号(即RD=0,CS=0)作为中断响应,若有请求将相应IS位置位,读优先级。
当由WR到RD时,中断冻结。
在读信号期间,以下字当被放到数据总线上:
D7
D6