《9中断控制器1》由会员分享,可在线阅读,更多相关《9中断控制器1(89页珍藏版)》请在金锄头文库上搜索。
1、1第九章第九章 中断控制器中断控制器2中断的基本概念中断的基本概念一、什么是中断:一、什么是中断:指指CPU在正常运行程序时,由于内部或外部事件引起在正常运行程序时,由于内部或外部事件引起CPU暂暂时中止执行现行程序,转去执行请求时中止执行现行程序,转去执行请求CPU为其服务的那个外为其服务的那个外设或事件的服务程序,待该服务程序执行完后又返回到被中设或事件的服务程序,待该服务程序执行完后又返回到被中止的程序这样一个过程。止的程序这样一个过程。 中断服务程序:中断服务程序:处理中断处理中断事件的程序段。事件的程序段。中断断点:中断断点:被中断中止的被中断中止的原程序的下一条指令的地原程序的下一
2、条指令的地址。址。3例:例:设某中断源的类型码为设某中断源的类型码为4AH,试画出求中,试画出求中断服务处理程序的示意图。断服务处理程序的示意图。 解:解: 中断向量表指针为中断向量表指针为4*n=4*4AH=128H, 即:即:0000:0128H。 通过中断向量表,中断服务程序的入口通过中断向量表,中断服务程序的入口地址为地址为0F000H:1806H。如图:。如图:48086系统的中断类型和中断向量表系统的中断类型和中断向量表中断向量表物理地址单元内容INT 4AH地址单元内容 I P=1806H CS=F000HF000:180600000 H类型 0中断处理程序入口地址MOV AL,
3、300:0124类 型49 H中 断向 量00001 H0:01250:0126 向量地址:4AH*4=0128H0:012700004 H类型 1中断处理程序入口地址0:012806 H0:012918 H0:012A00 H0:012BF0 H00008 H0:012C类 型4B H中 断向 量0:012D0:012E0:012F中断处理服务程序IRET003FF H类型 FFH中断处理程序入口地址5u当当有有多多个个中中断断源源同同时时请请求求时时,CPU就就要要识识别别出出是是哪哪些些中中断断源源有有中中断断请请求求,辨辨别别和和比比较较它它们们的的优优先先权权,先先响响应应优优先先权
4、权级级别别最最高高的的中中断申请。断申请。u这这种种把把多多个个中中断断源源按按轻轻重重缓缓急急的的优优先先处处理理权权按按由由高高到到低低的的顺顺序序排排列列,称称之之为为中中断断优优先先权排队。权排队。中断优先权排队中断优先权排队 :6若若CPU正正在在处处理理某某一一中中断断过过程程时时,出出现现了了级级别别更更高高的的中中断断请请求求,CPU应应能能停停止止执执行行级级别别低低的的中中断断服服务务程程序序而而去去处处理理级级别别更更高高的的中中断断,等等高高级级别别中中断断处处理理完完,再再处处理理未未处处理理完完的的低低级级中中断断,它它处处理理完完,再再回回到到主主程程序序。这这种
5、种方方式式称称为为多多重重中中断断或或中中断断嵌嵌套套。下下图图为为一一个个三三级级中中断断处处理理过过程程。图图中中,外设外设C的优先级最高,外设的优先级最高,外设B次之,外设次之,外设A最低。最低。中断嵌套中断嵌套79.1 可编程中断控制器可编程中断控制器8259A8259A 一、一、8259协助协助CPU处理中断事务所做的工作处理中断事务所做的工作u中断源的优先级排队管理中断源的优先级排队管理u接受、扩充外设的中断请求接受、扩充外设的中断请求u向向CPU提供中断类型号提供中断类型号u实施中断请求的禁止和允许实施中断请求的禁止和允许81、8259A的引脚:的引脚: 二、二、 8259A的引
6、脚功能及内部结构的引脚功能及内部结构 98259A的内部结构框图的内部结构框图 二、二、 8259A的引脚功能及内部结构的引脚功能及内部结构 10二、二、 8259A的引脚功能及内部结构的引脚功能及内部结构 l8259A引脚功能引脚功能 8259A是是28个个引引脚脚封封装装的的双双列列直直插插封封芯芯片片,芯芯片片引引脚脚功功能定义如下:能定义如下:nD7D0:双向、三态数据线,可与系统的数据总线直接相双向、三态数据线,可与系统的数据总线直接相连。连。nWR:写控制信号,输入,低电平有效。与控制总线上的信写控制信号,输入,低电平有效。与控制总线上的信号相连。号相连。nRD:读控制信号,输入,
7、低电平有效。与控制总线上的信读控制信号,输入,低电平有效。与控制总线上的信号相连。号相连。nCS:片选信号,输入,低电平有效。片选信号,输入,低电平有效。CPU的高位地址经地的高位地址经地址译码电路选中它。址译码电路选中它。nINT:中断请求信号,输出,高电平有效。是中断请求信号,输出,高电平有效。是8259A向向CPU输出的中断请求。输出的中断请求。 11二、二、 8259A的引脚功能及内部结构的引脚功能及内部结构 A0:地址选择信号,输入,用来选择内部端口。地址选择信号,输入,用来选择内部端口。8259A只有两个端口地址,常把只有两个端口地址,常把A0=0所对应的端口所对应的端口称为称为“
8、偶端口偶端口”,把,把A0=1所对应的端口称为所对应的端口称为“奇端奇端口口”。当当8259A与与8位位CPU8088相连时,其相连时,其A0其可直接其可直接与与8088的的A0线相连;线相连;当当8259A与与16位位CPU8086相相连连时时,由由于于其其D7D0接接8086的的低低8位位,因因此此,8086的的A1接接到到该该引引脚脚,此时此时8259A的端口均为偶地址。的端口均为偶地址。12二、二、 8259A的引脚功能及内部结构的引脚功能及内部结构 nINTA:中断响应信号,输入,低电平有效。接中断响应信号,输入,低电平有效。接收来自收来自CPU的中断响应信号的中断响应信号INTA。
9、nIR7IR0:外设向外设向8259A发出的中断请求信号,发出的中断请求信号,输入,高电平有效。接收来自外设接口发出的中输入,高电平有效。接收来自外设接口发出的中断请求。断请求。 nCAS2CAS0:级连信号线,双向。当级连信号线,双向。当8259A作为主片时,为输出线;当作为主片时,为输出线;当8259A作为从片时,为作为从片时,为输入线。输入线。 13SP/EN:主从片设定主从片设定/允许缓冲信号,双向双功能,允许缓冲信号,双向双功能,低电平有效。低电平有效。n 8259数数据据线线与与系系统统数数据据总总线线间间连连接接方方式式采采用用非非缓缓冲冲方方式式(即即直直接接相相连连,无无数数
10、据据总总线线驱驱动动器器)时时,作为作为输入输入。主主8259接高电平,从接高电平,从8259接低电平。接低电平。n 8259数数据据线线与与系系统统数数据据总总线线间间连连接接方方式式采采用用缓缓冲冲方方式式(即即有有数数据据总总线线驱驱动动器器)时时,作作为为输输出出,用用于启动数据总线驱动器。于启动数据总线驱动器。 如如果果工工作作在在缓缓冲冲方方式式并并且且有有级级连连应应用用时时,作作为为输输出出,用用于于启启动动数数据据总总线线驱驱动动器器。主主从从片片的的设设置置用软件解决。用软件解决。二、二、 8259A的引脚功能及内部结构的引脚功能及内部结构 14输入:输入:作为主片时接作为
11、主片时接+5V作为从片时接地作为从片时接地8259工作于工作于非缓冲非缓冲方式方式158259工作于工作于缓冲缓冲方式方式数据缓冲器数据缓冲器输出:输出:作为数据缓冲器作为数据缓冲器的选通信号的选通信号16(1)中断请求寄存器)中断请求寄存器IRR u IRR是是8位位寄寄存存器器,用用来来接接收收来来自自外外设设中中断断源源的的中中断断请求。请求。u它它通通过过IR7IR0与与8个个中中断断源源相相连连。若若IRi=1时时,IRR的的相相应应第第i位位置置1。若若最最多多有有8个个中中断断请请求求信信号号同同时时进进入入IR7IR0端,端,IRR全被置全被置1。u一旦一旦IRi=1中断请求被
12、响应,则中断请求被响应,则IRi=0(复位)(复位)2、8259A内部结构内部结构例:如果当前例:如果当前IRR=35H ,问有哪几个中断请求尚未被响应?,问有哪几个中断请求尚未被响应?00110101IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0IRR172、8259A内部结构内部结构(2)中断服务状态寄存器)中断服务状态寄存器ISR u ISR是是8位位寄寄存存器器,用用来来记记录录CPU当当前前正正在在为为哪哪个个或或哪哪几几个个中断源服务。中断源服务。u当当CPU响响应应IRi请请求求时时,ISR中中相相应应位位置置1。当当ISR中中的的有有多多个个“1”时时,表表明明
13、CPU正正在在为为较较低低中中断断服服务务时时,又又有有较较高高的的中断请求,中断请求,CPU又转去处理较高的中断,形成中断服务嵌套。又转去处理较高的中断,形成中断服务嵌套。u当当某某个个中中断断处处理理完完毕毕,ISR的的相相应应位位复复位位(或或用用指指令令或或自自动动)。例:如果当前例:如果当前ISR=45H ,问有哪几个中断请求已经被响应?,问有哪几个中断请求已经被响应?如果按照如果按照IR0的中断优先级最高,的中断优先级最高,IR7的中断优先级最低排序,的中断优先级最低排序,当前正在相应的是哪一级中断?当前正在相应的是哪一级中断?ISR01000101IR7 IR6 IR5 IR4
14、IR3 IR2 IR1 IR01800000000ISR当当IR6有中断请求时,没有更高级的请求,给与响应有中断请求时,没有更高级的请求,给与响应 。如果按照如果按照IR0的中断优先级最高,的中断优先级最高,IR7的中断优先级最低排序,的中断优先级最低排序,1当当IR2有中断请求时,优先级高于有中断请求时,优先级高于IR6,中断,中断IR6,给与响应给与响应 。1IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0当当IR0有中断请求时,优先级高于有中断请求时,优先级高于IR2,中断,中断IR2,给与响应给与响应 。1有三个中断请求已经被响应(有三个中断请求已经被响应(IR6,IR2
15、,IR0),当前正),当前正在执行的是在执行的是IR0的中断服务。的中断服务。如果此时如果此时IR3有中断请求,是否能够给与响应?有中断请求,是否能够给与响应?19(3)中断屏蔽寄存器)中断屏蔽寄存器IMR u IMR是是8位位寄寄存存器器,用用来来屏屏蔽蔽已已被被锁锁存存在在IRR中中的的中断请求信号。中断请求信号。u当当IMR的的第第i位位被被置置1时时,相相应应的的IRi被被屏屏蔽蔽,不不能能进进入入系系统统的的下下一一级级优优先先权权处处理理器器去去判判优优,不不能能向向CPU发出中断请求。发出中断请求。uIMR的值可通过软件设置或改变。的值可通过软件设置或改变。2、8259A内部结构
16、内部结构例:如果当前例:如果当前IMR=48H ,问有哪几个中断请求被屏蔽?,问有哪几个中断请求被屏蔽?01001000IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0IMR20(4 4)优先权判别电路)优先权判别电路PRuPR用用于于判判别别已已进进入入IRR中中且且未未被被IMR屏屏蔽蔽的的各各中中断断请请求求的的优优先先级级别别。当当多多个个中中断断请请求求同同时时产产生生时时,优优先先权权处处理理器器PR根根据据IMR的的内内容容和和用用户户设设定定的的优优先先级级规规则则,判判断断这这些些请请求求信信号号的的最最高高级级,向向CPU输输出出中中断断请请求求信信号号INT
17、。u若若CPU响应中断,则将它送入中断服务寄存器响应中断,则将它送入中断服务寄存器ISR。u若若8259A正正为为某某一一中中断断服服务务,而而又又出出现现新新的的中中断断请请求求,则则PR判判断断新新的的中中断断请请求求级级别别是是否否更更高高。若若是是,则则进入中断嵌套。进入中断嵌套。 2、8259A内部结构内部结构21(5)读)读/写控制逻辑写控制逻辑 该该电电路路的的功功能能是是接接收收来来自自CPU的的读读/写写命命令令,完完成成对对8259A内内部部端端口口的的读读写写操操作作。具具体体的的操操作作内内容容由由CS、A0、WR、RD四个信号共同决定。四个信号共同决定。2、8259A
18、内部结构内部结构CSWR RDA0操操 作作0010写写ICW1, OCW2, OCW30011写写ICW2, ICW3, ICW4, OCW10100读读IRR, ISR, 查询字查询字0101读读IMR222、8259A内部结构内部结构(6)级联缓冲)级联缓冲/比较器比较器 当多片当多片8259A采用主从结构级联时,该部件采用主从结构级联时,该部件用来存放和比较系统中各用来存放和比较系统中各8259A的从片选择代的从片选择代码。码。(7)数据总线缓冲器:)数据总线缓冲器: 数据总线缓冲器是一个数据总线缓冲器是一个8位的双向三态缓冲器,位的双向三态缓冲器,用来连接用来连接8259A和系统数据
19、总线。和系统数据总线。 8259A通过它与通过它与CPU进行命令、状态、数据进行命令、状态、数据信息的传送。信息的传送。23(8)控制逻辑)控制逻辑 控制逻辑电路中有七个寄存器,其中控制逻辑电路中有七个寄存器,其中ICW1ICW4用用来存放初始化程序设定的来存放初始化程序设定的工作方式字工作方式字、管理、管理8259A的工的工作;作;OCW1OCW3用来存放操作命令字用来存放操作命令字,对中断处理,对中断处理过程进行动态控制。过程进行动态控制。 控制逻辑电路有两个控制作用:控制逻辑电路有两个控制作用:一是根据一是根据IRR,IMR,PR的状态,通过的状态,通过INT向向CPU请请求中断,求中断
20、,二是接收来自二是接收来自CPU的的INTA信号,使信号,使ISR相应位置相应位置1,且,且使使IRR 相应位置相应位置0,避免该中断源一次申请产生两次或,避免该中断源一次申请产生两次或两次以上中断。两次以上中断。 2、8259A内部结构内部结构24三、三、8259的工作方式的工作方式1 1、中断触发方式、中断触发方式电平触发方式电平触发方式 在该方式下,在该方式下, 8259A把把IRi端出现的高电平作为中断请求信号。端出现的高电平作为中断请求信号。使用时须注意的是,当出现一个中断请求信号并得到响应(使用时须注意的是,当出现一个中断请求信号并得到响应(ISR的的相应位置位)后,必须及时撤除高
21、电平,否则会产生不必要的第二相应位置位)后,必须及时撤除高电平,否则会产生不必要的第二次中断请求。次中断请求。 边沿触发方式边沿触发方式 在该方式下,在该方式下, 8259A把把IRi端出现的上升沿作为中断请求信号。端出现的上升沿作为中断请求信号。边沿触发的优点是申请中断的边沿触发的优点是申请中断的IRi端可以一直保持高电平,不会被端可以一直保持高电平,不会被误判为又一次中断请求。误判为又一次中断请求。中断查询方式中断查询方式外设通过外设通过8259申请中断时,申请中断时,8259不使用硬件信号不使用硬件信号INT向向CPU发发中断请求,而是中断请求,而是CPU用软件来查询用软件来查询8259
22、当前受到的中断请求,并当前受到的中断请求,并响应该请求。响应该请求。252 2、连接系统总线的方式、连接系统总线的方式 n缓冲方式缓冲方式 p在在多片多片8259A级联的大系统中级联的大系统中,8259A通过总线驱动器和通过总线驱动器和数据总线相连。此时,数据总线相连。此时,8259A的的SP/EN端输出一个低电平端输出一个低电平(EN=0)作为总线驱动器的启动信号,即与总线驱动器)作为总线驱动器的启动信号,即与总线驱动器的允许端相连。的允许端相连。n非缓冲方式非缓冲方式 p当系统中当系统中只有单片或片数不多的只有单片或片数不多的8259A时时,一般将,一般将8259A直接与数据总线相连。此时
23、,直接与数据总线相连。此时,8259A的的SP/EN端作为输入端作为输入信号。单片信号。单片8259A时,时,SP=1。若多片互连时,主片的。若多片互连时,主片的SP=1,从片的,从片的SP=0。 三、三、8259的工作方式的工作方式26缓冲方式缓冲方式数据缓冲器数据缓冲器输出:输出:作为数据缓作为数据缓冲器的选通冲器的选通信号信号27非缓冲方式非缓冲方式输入:输入:主片接主片接+5V输入:输入:从片接地从片接地283 3、中断屏蔽方式、中断屏蔽方式n普通屏蔽方式普通屏蔽方式p当当CPU执执行行主主程程序序时时不不希希望望某某几几个个中中断断源源申申请请中中断断,或或在在执执行行某某一一中中断
24、断服服务务程程序序时时不不希希望望比比该该中中断断源源级级别别更更高高的的中中断断源源申申请请中中断断,可可采采用用此法。此法。p方方法法是是:将将中中断断屏屏蔽蔽字字写写入入IMR,若若某某位位写写入入“1”,则则禁禁止止相相应应的的IR申申请请中中断断,若若写写入入“0”,则开放相应的中断源。,则开放相应的中断源。三、三、8259的工作方式的工作方式29n特殊屏蔽方式特殊屏蔽方式 p在在执执行行某某一一中中断断服服务务程程序序时时,仅仅对对本本级级中中断断进进行行屏屏蔽蔽,允允许接受级别较低的中断请求。许接受级别较低的中断请求。p设设置置特特殊殊屏屏蔽蔽方方式式后后,对对正正在在响响应应的
25、的某某级级中中断断,编编程程使使IMR对对应应位位置置1,就就会会同同时时使使ISR的的对对应应位位复复位位。这这样样,不不只只屏屏蔽蔽了了当当前前正正在在处处理理的的本本级级中中断断,而而且且开开放放了了较较低低级级的的中中断断请求。请求。 三、三、8259的工作方式的工作方式由上面的叙述可以看出,普通屏蔽方式的命令字可在主程序或中断服务程由上面的叙述可以看出,普通屏蔽方式的命令字可在主程序或中断服务程序中写入,而特殊屏蔽方式的命令字应当在中断服务程序中写入。序中写入,而特殊屏蔽方式的命令字应当在中断服务程序中写入。00001000IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR
26、0IMR0000000ISR例如正在执行例如正在执行IR3的中断服务:的中断服务:0305 5、优先级排队的方式、优先级排队的方式n固定优先级:固定优先级: 指指各各中中断断源源的的优优先先级级由由IRiIRi引引脚脚编编号号确确定定,优优先先级级是是固定的。固定的。 有有普通全嵌套普通全嵌套方式和方式和特殊全嵌套特殊全嵌套方式两种方式两种 (1 1)普通全嵌套方式)普通全嵌套方式 在在该该方方式式下下,IR7IR0的的优优先先级级顺顺序序是是IR0最最高高,IR7最最低低。且且一一个个中中断断被被响响应应,只只有有比比它它更更高高优优先先级级的的中中断断请请求才会被响应。求才会被响应。三、三
27、、8259的工作方式的工作方式31(2 2)特殊全嵌套方式)特殊全嵌套方式 与全嵌套方式基本相同,不同之处在于该方式不但响应与全嵌套方式基本相同,不同之处在于该方式不但响应比本级高的中断申请,而且比本级高的中断申请,而且响应同级的中断申请响应同级的中断申请。 该该方方式式一一般般用用于于8259A的的级级连连方方式式。在在级级连连方方式式中中,往往往往有有一一个个主主片片,其其他他为为从从片片。从从片片的的INT端端接接到到主主片片的的IRi端端。因因而而当当前前正正在在执执行行的的某某一一中中断断服服务务程程序序是是由由某某一一从从片片IRi端端。这这时时该该从从片片上上比比IRi级级别别高
28、高的的中中断断提提出出请请求求,从从片片予予以以响响应应,向向主主片片发发INT信信号号,但但主主片片分分不不出出来来,只只将将它它们们视视为为同同一一级级别别。若若普普通通全全嵌嵌套套方方式式,则则主主片片不不响应,只有特殊全嵌套方式,主片才响应。响应,只有特殊全嵌套方式,主片才响应。三、三、8259的工作方式的工作方式系系统统中中若若只只有有单单片片8259A时时,通通常常采采用用普普通通全全嵌嵌套套方方式式。系系统统中中有有多多片片8259A级级联联时时,主主片片必必须须采采用用特特殊殊全全嵌嵌套套方方式,从片可采用全嵌套方式。式,从片可采用全嵌套方式。32普通全嵌套方式:普通全嵌套方式
29、:同一级的中断请求不能中断同级中断。并且同一级的中断请求不能中断同级中断。并且IR7IR0的优先级顺序是的优先级顺序是IR0最高,最高,IR7最低。最低。如果级联工作如果级联工作主片为特殊全嵌套方式:主片为特殊全嵌套方式:IR4先后收到两个中断请求,先后收到两个中断请求,同一级的中断请求能够中断同同一级的中断请求能够中断同级中断。级中断。从片为普通全嵌套方式从片为普通全嵌套方式33n循环优先级循环优先级 : 指当某个中断源受到中断服务后,它的指当某个中断源受到中断服务后,它的优先权优先权就自动降为最低就自动降为最低,而优先级,而优先级较其低一级的升为最较其低一级的升为最高。高。 例如,例如,I
30、R4被服务后,相应的被服务后,相应的IR5的优先级升为的优先级升为最高,依次为最高,依次为IR6,IR7,IR0,IR1,IR2,IR3,IR4。 三、三、8259的工作方式的工作方式34三、三、8259的工作方式的工作方式(1)优先权普通循环方式)优先权普通循环方式该方式下,该方式下,8259A总是自动规定:初始时,总是自动规定:初始时,IR0有最高优先权,有最高优先权,IR7最低。最低。当某个中断源受到中断服务后,它的优先权当某个中断源受到中断服务后,它的优先权就自动降为最低,而优先级较其低一级的升就自动降为最低,而优先级较其低一级的升为最高。为最高。(2)优先权特殊循环方式)优先权特殊循
31、环方式该方式下,由用户编程决定初始时的最低优该方式下,由用户编程决定初始时的最低优先级。如规定先级。如规定IR5最低,则相应的最高优先最低,则相应的最高优先权为权为IR6,依次为,依次为IR7,IR0,IR1,IR2,IR3,IR4,IR5。35优先权普通循环方式举例:优先权普通循环方式举例:IR7 IR6IR5IR4IR3IR2IR1IR0原始原始状态状态ISR01000100优先级优先级76543210结束结束IR2ISR01000000优先级优先级43210765结束结束IR6ISR00000000优先级优先级07654321思考:思考:8259工作于优先权普通循环方式,当工作于优先权普
32、通循环方式,当IR3的中断服的中断服务结束时,务结束时,IR6处于优先级的哪一级?处于优先级的哪一级? IR7 IR6IR5IR4IR3IR2IR1IR0优先级优先级3210765436优先权特殊循环方式举例:优先权特殊循环方式举例:IR7 IR6IR5IR4IR3IR2IR1IR0原始原始状态状态ISR01000100优先级优先级76543210执行置执行置位优先位优先权命令权命令ISR01000100优先级优先级21076543置位优先权命令:将置位优先权命令:将IR4置为优先权最低置为优先权最低思考:如果欲将思考:如果欲将IR2的优先级设为最高级,应如何实现?的优先级设为最高级,应如何实
33、现? 答:使用置位优先权命令:将答:使用置位优先权命令:将IR1置为优先权最低置为优先权最低.375 5、结束中断的处理方式、结束中断的处理方式中断结束方式指使中断结束方式指使ISR相应位复相应位复0的方式。的方式。当当一一个个中中断断请请求求得得到到响响应应时时, 8259A会会把把ISR中的相应位置中的相应位置1。而而当当一一个个中中断断服服务务程程序序结结束束时时,必必须须将将ISR中中的的相相应应位位清清“0”,否否则则中中断断控控制制功功能能将将会会不不正正常。常。三、三、8259的工作方式的工作方式38(1)自动结束方式()自动结束方式(AEOI)l该该方方式式下下,ISR中中相相
34、应应位位复复0是是由由硬硬件件自自动动完完成成。当当CPU响响应应某某级级中中断断后后,发发出出的的第第二二个个INTA信信号号结结束束时时自自动动将将ISR的的相相应应位位复复0。注注意意:此此时时,中中断断服务程序并未结束。服务程序并未结束。l该该方方式式只只适适用用于于1片片8259A,且且不不会会发发生生中中断断嵌嵌套套的场合。的场合。l当当CPU响响应应后后自自动动清清除除ISR中中的的相相应应位位,但但此此时时中中断断服服务务程程序序并并未未结结束束,8259中中没没有有留留下下任任何何痕痕迹迹。若此时有了新的中断请求,若此时有了新的中断请求,8259都将准予响应。都将准予响应。l
35、可可能能会会响响应应级级别别较较低低的的中中断断请请求求,则则高高级级的的中中断断请请求反而有可能得不到及时地处理。求反而有可能得不到及时地处理。39(2)普通中断结束方式)普通中断结束方式 在该方式下,需要通过在该方式下,需要通过CPU发指令来使发指令来使ISR相应位复相应位复0。通通过过软软件件方方法法向向8259A发发一一个个命命令令字字,使使当当前前ISR中中级级别别最最高高的的复复位位0。该该方方式式只只适适用用于于全全嵌嵌套套方方式式下下(优优先先级级固固定定),不不能能用用于于循循环环优优先先级级方方式式。因因为为全全嵌嵌套套方方式式下下,最最高高ISR位位对对应应于于最最后后一
36、一次次被被响响应应和和处理的中断,即当前正在处理的中断。处理的中断,即当前正在处理的中断。三、三、8259的工作方式的工作方式(3)特殊中断结束方式)特殊中断结束方式 该方式也是通过软件(指令)向该方式也是通过软件(指令)向8259发一个命令字,但发一个命令字,但命令字中须指出要结束哪一级中断源,从而使命令字中须指出要结束哪一级中断源,从而使ISR相应位相应位置置0。40四、四、8259A工作过程工作过程 单片单片8259A工作时,每次处理中断包括下述过程:工作时,每次处理中断包括下述过程:n当一条或几条中断请求线(当一条或几条中断请求线(IR7IR0)变为高电平,则)变为高电平,则使使IRR
37、相应位置相应位置1。 nIMR对对IRR进行屏蔽,并通过进行屏蔽,并通过PR判断出当前未屏蔽的判断出当前未屏蔽的最高优先级中断请求。若最高优先级中断请求。若CPU正在处理某一中断,正在处理某一中断,PR判断新的请求是否比原中断级别高。判断新的请求是否比原中断级别高。 n控制逻辑接收中断请求,向控制逻辑接收中断请求,向CPU发发INT信号。信号。 n若若CPU开中断,则在执行完当前指令后,发开中断,则在执行完当前指令后,发INTR信号,信号,进入两个中断响应周期。进入两个中断响应周期。 n8259A收到第一个收到第一个INTA负脉冲后,将最高优先级的中负脉冲后,将最高优先级的中断的断的ISR相应
38、位置相应位置1,使,使IRR的相应位置的相应位置0。 418259A工作过程工作过程n 8259A收到第二个收到第二个INTA负脉冲后,将相应的中断类负脉冲后,将相应的中断类型号送上数据总线。型号送上数据总线。CPU读取后,进入中断服务程序。读取后,进入中断服务程序。n 中断响应结束后,在自动结束中断方式(中断响应结束后,在自动结束中断方式(AEOI)下,)下,8259A会在第二个脉冲结束时,自行将会在第二个脉冲结束时,自行将ISR的相应位复的相应位复位;若是非自动结束中断(位;若是非自动结束中断(EOI)方式,则)方式,则ISR中相应中相应位的位的“1”一直保持,直到中断服务程序向一直保持,
39、直到中断服务程序向8259A发发EOI(中断结束)命令时,才复位。(中断结束)命令时,才复位。 42 8259A的级联方式的级联方式 l一块一块8259A最多可管理最多可管理8级中断,在多于级中断,在多于8级中断的系统中,级中断的系统中,必须将多片必须将多片8259A级联使用。级联使用。l从片的从片的IR7IR0直接与中断源相连,其直接与中断源相连,其INT与主片的与主片的IR7IR0的某一端口相连,根据需要可以选择从片的片数,最的某一端口相连,根据需要可以选择从片的片数,最多为多为8片,因而此级联中断系统最多可带片,因而此级联中断系统最多可带64个中断源。个中断源。l引脚引脚SP/ENSP/
40、EN可区分可区分8259A是主片还是从片。主片是主片还是从片。主片SP/ENSP/EN接高接高电平,从片电平,从片SP/ENSP/EN接低电平。所有的接低电平。所有的CAS2CAS0互连。主互连。主片的片的CAS2CAS0为输出信号,从片的为输入信号。为输出信号,从片的为输入信号。l当当CPU发出第一个发出第一个INTAINTA时,主片的动作是使时,主片的动作是使ISR相应位置相应位置1,IRR相应位清相应位清0,并通过,并通过CAS7CAS0发出一个编码发出一个编码ID2ID0。当从片接到这个编码与本身控制逻辑中的。当从片接到这个编码与本身控制逻辑中的ICW3的的D2D0位比较,如果相等,在
41、位比较,如果相等,在CPU的第二个的第二个INTAINTA到来时,到来时,将本身的中断类型号送上数据总线。将本身的中断类型号送上数据总线。 43主片主片从片从片从片从片从片从片44 8259A级联结构图级联结构图 缓冲方式?缓冲方式?非缓冲方式?非缓冲方式?45四、四、 8259A的命令字的命令字 uCPU发给发给8259A的命令分两种:初始化命令字的命令分两种:初始化命令字ICW和操作命令字和操作命令字OCW。u初始化命令字初始化命令字ICW1ICW4往往是在系统启动时,往往是在系统启动时,由初始化程序设置。初始化命令字一旦设定,一般在由初始化程序设置。初始化命令字一旦设定,一般在系统工作过
42、程中就不再改变。系统工作过程中就不再改变。u而操作命令字而操作命令字OCW1OCW3是由应用程序来设是由应用程序来设定。用来对中断处理过程进行动态控制,如中断屏蔽、定。用来对中断处理过程进行动态控制,如中断屏蔽、中断结束、优先权循环和中断状态的读中断结束、优先权循环和中断状态的读/写查询。因写查询。因此,操作命令字可以作多次设置。此,操作命令字可以作多次设置。46ICW1的命令字格式的命令字格式 ICW1 8259A最初写入的必是最初写入的必是ICW1,由引脚,由引脚A0和和D4位确定,其格式如图所示。位确定,其格式如图所示。初始化命令字初始化命令字ICW47pA0=0,D4=1是是ICW1的
43、标志,表示当前操作是的标志,表示当前操作是ICW1。 pD7D5:只用于只用于8080/8085系统中,而在系统中,而在8086/8088系统中不用,系统中不用,可为任意值。可为任意值。 pD3(LTIM):IRi的触发方式选择。为的触发方式选择。为1,电平触发;为,电平触发;为0,边,边沿触发。沿触发。 pD2(ADI):这一位在:这一位在8086/8088系统中不起作用。而在系统中不起作用。而在8080/8085系统中,该位决定中断源中每两个相邻的中断向量地址的系统中,该位决定中断源中每两个相邻的中断向量地址的间隔值。间隔值。 pD1(SNGL):单片:单片/级联方式指示。为级联方式指示。
44、为1,单片使用:为,单片使用:为0,则,则级联方式。级联方式。 pD0(IC4):指示是否使用:指示是否使用ICW4。在。在8086/8088系统中,必须设系统中,必须设定定IC4,D0=1。而。而D0=0表示表示ICW4的全部功能置的全部功能置0。 ICW148ICW2A0=1:表明表明ICW2要写入奇地址端口。要写入奇地址端口。T7T3:用在用在8086/8088系统中,由用户编程设定,是系统中,由用户编程设定,是中中断类型码的高断类型码的高5位位。D2D0:指明中断源所接的指明中断源所接的IR7IR0引脚。在引脚。在8086/8088系统下,用户编程时可使系统下,用户编程时可使D2D0为
45、任意值。为任意值。当当8259A向向CPU发送中断类型码时,发送中断类型码时,IRi对应的对应的D2D0位位自动生成,其对应关系如自动生成,其对应关系如下下表表5所示。所示。ICW2是是紧紧跟跟在在ICW1后后写写入入初初始始化化程程序序中中的的。CPU响响应应中中断断,发发出出第第二二个个INTA后后,8259A将将ICW2寄寄存存器器中中内内容容(中断类型码)送上数据总线。(中断类型码)送上数据总线。用于设置中断类型码,其格式如图所示。用于设置中断类型码,其格式如图所示。498086/8088系统中的中断类型号的生成系统中的中断类型号的生成 由此可见,一片由此可见,一片8259连接的连接的
46、8个中断请求信号的中断类型号的高个中断请求信号的中断类型号的高5位位是相同的,其低三位依中断请求接入的引脚是相同的,其低三位依中断请求接入的引脚IRiIRi的序号而定。例如当的序号而定。例如当D7D7D3=10101 D3=10101 时,其时,其IR0 IR0 IR7IR7的中断类型号就分别为的中断类型号就分别为10101000 10101000 1010111110101111(A8H A8H AFHAFH)50例例2在在PC微机中断系统中,硬盘中断类型号的高微机中断系统中,硬盘中断类型号的高5位是位是08H,他的中断请求线连接到他的中断请求线连接到8259的的IR5上,在初始化上,在初始
47、化8259写写入入ICW2时只写其高时只写其高5位,而低位,而低3位取零。位取零。ICW2=0000 1000=08HMOV AL, 08HOUT 21H,AL当当CPU 响应硬盘中断时,响应硬盘中断时,8259把把IR5的编码的编码“101”填写到填写到ICW2的低的低3位上,组成硬盘的中断类位上,组成硬盘的中断类型号:型号: 0000 1101=ODH511、外部中断的中断号由两部分组成:、外部中断的中断号由两部分组成: ICW2的高的高5位位 + IRi的编码(低的编码(低3位)位)2、每片、每片8259所管理的所管理的8个中断源的中断号,它们的个中断源的中断号,它们的高五位必须是相同的
48、。高五位必须是相同的。3、每片、每片8259所管理的所管理的8个中断源的中断号,必须是个中断源的中断号,必须是连续的连续的8个数。个数。所以所以ICW2与中断类型号有以下特点:与中断类型号有以下特点:52例:设某中断向量存放在例:设某中断向量存放在00058H地址单元处。地址单元处。求求 1 1:中断类型号,:中断类型号, 2 2:该:该82598259的的ICW2ICW2 3 3:该中断源应接入:该中断源应接入IR?IR? ICW2 答: 1:中断类型号 00058H416 2:该8259的ICW2=00010000=10H 3:该中断源应接入IR653例例2:设某中断:设某中断类型号为类型
49、号为19H,19H,接入接入82598259的的IRIR1 1 求求:该:该82598259的的ICW2ICW2。 ICW2 答: 由:中断类型号19H 0001 1001 则:该8259的ICW2=00011000=18H54例例.已知某中断向量存放在已知某中断向量存放在000D4H地址单元处。并且由地址单元处。并且由000D4H单元起始依单元起始依次存放着次存放着10H、20H、30H、40H。请回答:请回答: (1)中断类型号为何?)中断类型号为何?(2)接入)接入8259时,该时,该8259的的ICW2应为何?应为何?(3)该中断源应接入该)该中断源应接入该8259的哪个中断请求输入引
50、脚?的哪个中断请求输入引脚?(4)该中断向量的物理地址为何?)该中断向量的物理地址为何?(5)CPU响应该中断时,响应该中断时,CS中的值为何?中的值为何?IP中的值为何?中的值为何?答:答: (1)中断类型号为)中断类型号为35H(2)接入)接入8259时,该时,该8259的的ICW2应为应为30H(3)该中断源应接入该)该中断源应接入该8259的的IR5引脚引脚(4)该中断向量的物理地址为)该中断向量的物理地址为42310H(5)CPU响应该中断时,响应该中断时,CS中的值为中的值为4030H,IP中的值为中的值为2010H55主片格式:主片格式:S7S0:表明主片:表明主片IR7IR0是
51、否接有从片。为是否接有从片。为1,是接,是接从片;为从片;为0,则未接从片,中断请求直接来自外设中断源。,则未接从片,中断请求直接来自外设中断源。 ICW3ICW3用于定义级联方式。用于定义级联方式。主片、从片均要写入主片、从片均要写入ICW3 ,两者的定义不同。,两者的定义不同。56p从片格式:从片格式:D7D3可为任意值。可为任意值。 ID2ID0:从片的标识码,表明该从片的:从片的标识码,表明该从片的INT端端接到主片的接到主片的IR的哪一端。的哪一端。 例如,例如,ID2ID0=110,表示这个从,表示这个从8259A接主接主8259A的的IR6。57 主、从片主、从片ICW3的命令字
52、格式的命令字格式 主主8259 IR7 IR7 IR4 IR4 IR0 IR0INTINT从从8259(1) IR7 IR7 IR4 IR4 IR0 IR0INTINT从从8259(2) IR7 IR7 IR4 IR4 IR0 IR0芯片名芯片名ICW3ICW3主8259从8259(1)从8259(2)00010001=11H00000100=04H00000000=00H例例58当当ICW1中的中的D0=1时写入。时写入。8086/8088系统中必须写系统中必须写入入ICW4。其格式如图。其格式如图。ICW459ICW4的命令字格式的命令字格式 D7D5:特征位,恒为特征位,恒为0,表示送出
53、的是,表示送出的是ICW4。 D4(SFNM):选择中断嵌套方式。:选择中断嵌套方式。 为为1,特殊全嵌套方式,一般仅用于级联方式的主片;,特殊全嵌套方式,一般仅用于级联方式的主片; 为为0,一般全嵌套方式。单级使用或者级联时的从片,一般全嵌套方式。单级使用或者级联时的从片D3(BUF):):是否选用缓冲方式。为是否选用缓冲方式。为1,缓冲方式;,缓冲方式;为为0,非缓冲方式。,非缓冲方式。D2(M/S):):表示缓冲方式下本片为主片还是从片。表示缓冲方式下本片为主片还是从片。为为1,主片;为,主片;为0,从片。,从片。当当BUF=0时,时,M/S位不起位不起作用作用。60pD1(AEOI):
54、中断结束方式位。中断结束方式位。 为为1,AEOI方式;为方式;为0,EOI方式。方式。 pD0(uPM):系统选择位,指明系统选择位,指明8259A当前工作当前工作在哪种在哪种CPU系统中。为系统中。为1,是,是8086/8088系统;为系统;为0,是是8080/8085系统。系统。618259A初始化流程初始化流程 8259A正正 常常工工作作之之前前,CPU必必 须须 对对 每每 片片8259A进进行行初初始始化编程。化编程。 初初始始化化编编程程指指通通过过指指令令按按顺顺序序依依 次次 将将 ICW1 ICW4命命 令令 字字写入写入8259A。62 8259A的命令字应用举例的命令
55、字应用举例例例 在在IBM PC/XT机中仅用一片机中仅用一片8259A,中断请求信号采,中断请求信号采用边沿触发;中断类型号为用边沿触发;中断类型号为08H0FH;用普通全嵌套、;用普通全嵌套、缓冲、非自动中断结束方式。缓冲、非自动中断结束方式。8259A的端口地址为的端口地址为20H、21H。试按照上述要求对。试按照上述要求对8259A设置初始化命令字:设置初始化命令字:采用采用单片单片8259A时时,依次写入,依次写入ICW1、ICW2、ICW4;采用采用多片级联时多片级联时,依次写入,依次写入ICW1、ICW2、ICW3、ICW4,且每片,且每片8259A都要按上述顺序写入初始化命令字
56、。都要按上述顺序写入初始化命令字。ICW1=00010011=13H 边沿触发、单片、设置边沿触发、单片、设置ICW4 ICW2=00001000=08H 中断类型号为中断类型号为08H0FHICW4=00001101=0DH 普通全嵌套、缓冲、普通全嵌套、缓冲、EOI方式方式单级使用当单级使用当作主片作主片63该片该片8259A的初始化设置的程序段如下:的初始化设置的程序段如下: MOV AL,13H ;ICW1 OUT 20H,AL ; ICW1写入写入A0=0端口端口 MOV AL,08H ;ICW2 OUT 21H,AL ; ICW2写入写入A0=1端口端口 MOV AL,0DH ;I
57、CW4 OUT 21H,AL ;ICW4写入写入A0=1端口端口64【例例】在在IBM PC/AT机机中中使使用用2片片8259A构构成成主主从从式式中中断断控控制器。从片的制器。从片的INT与主片的与主片的IRQ2相连。相连。主片的中断类型号为主片的中断类型号为08H0FH,端口地址为,端口地址为20H、21H;从片的中断类型号为从片的中断类型号为70H77H,端口地址为,端口地址为A0H、A1H。主主从从片片的的中中断断请请求求信信号号均均采采用用边边沿沿触触发发,采采用用缓缓冲冲、非非自自动动中中断结束方式。试按照上述要求对断结束方式。试按照上述要求对8259A设置初始化命令字:设置初始
58、化命令字:8259从片从片INT8259主片主片IR2ICW3(主)(主)=00000100=04HICW3(从)(从)=00000010=02H65主片初始化段如下:主片初始化段如下: MOV AL,00010001B ;ICW1:边沿触发、级联、设:边沿触发、级联、设 置置ICW4 OUT 20H,AL MOV AL,00001000B ;ICW2:中断类型号为:中断类型号为08H0FH OUT 21H,AL MOV AL,00000100B ;ICW3:主片:主片IRQ2接有从片接有从片 OUT 21H,AL MOV AL,00011101B ;ICW4:特殊全嵌套、缓冲:特殊全嵌套、缓
59、冲/主片、主片、EOI方式方式 OUT 21H,AL66从片初始化段如下:从片初始化段如下: MOV AL,00010001B ;ICW1:边沿触发、级联、设置:边沿触发、级联、设置ICW4 OUT 0A0H,AL MOV AL,01110000B ;ICW2:中断类型号为:中断类型号为70H77H OUT 0A1H,AL MOV AL,00000010B ;ICW3:从片标识码,即接主片的:从片标识码,即接主片的IRQ2 OUT 0A1H,AL MOV AL,00001001B ;ICW4:普通全嵌套、缓冲:普通全嵌套、缓冲/从片、从片、EOI方式方式 OUT 0A1H,AL 67n对对82
60、59A用初始化命令字初始化后,就进入工用初始化命令字初始化后,就进入工作状态,可以接收作状态,可以接收IRi输入的中断请求,并按系输入的中断请求,并按系统默认方式来管理中断。在系统运行时,可以统默认方式来管理中断。在系统运行时,可以根据程序需要,随时写入操作命令字,对中断根据程序需要,随时写入操作命令字,对中断管理方式进行动态地设置和修改。管理方式进行动态地设置和修改。l操作命令字操作命令字OCW68OCW1是中断屏蔽操作命令字,直接对是中断屏蔽操作命令字,直接对IMR的相应位进的相应位进行设置。其格式如图所示。行设置。其格式如图所示。 A0=1:表示要把:表示要把OCW1写入写入8259A的
61、奇地址端口。的奇地址端口。 M7M0:将将Mi置置1,就是屏蔽了,就是屏蔽了IRi 的中断请求信号。的中断请求信号。 将将Mi置置0,就是允许,就是允许IRi 的中断请求信号。的中断请求信号。OCW169中断屏蔽寄存器中断屏蔽寄存器IMR中的内容还可以读出。中的内容还可以读出。方法是直接用方法是直接用IN指令访问指令访问8259的的A0=1端口端口 【例例】 试编程实现下列要求:屏蔽试编程实现下列要求:屏蔽IR5、IR4和和IR1引脚上引脚上的中断请求,而不改变其余的中断屏蔽情况。的中断请求,而不改变其余的中断屏蔽情况。 8259A的端口地址为的端口地址为20H、21H。程序段如下:程序段如下
62、: IN AL,21H ;读取读取IMR的当前值的当前值 OR AL,00110010B ;OCW1:D5、D4、D1位置位置1 OUT 21H,AL 70例例8:操作系统的操作系统的BIOS中有一段检查中有一段检查IMR的程序,如下的程序,如下MOV AL,0OUT 21H,AL ;置;置IMR=00HIN AL,21H ;读;读IMROR AL,ALJNZ D6 ;非零则转;非零则转D6MOV AL, 0FFHOUT 21H,AL; 置置IMR=FFHIN AL,21HADD AL,1 ; FFH+1是否为零是否为零JNZ D6 ;非零则转;非零则转D6: D6: 处理出错程序处理出错程序
63、写写00H IMR检查检查IMR是否是否=0如果出错转如果出错转D6写写FFH IMR检查检查IMR是否是否=FFH如果出错转如果出错转D671功能:设置功能:设置/改变中断优先级模式;发送中断结束改变中断优先级模式;发送中断结束命令命令EOI命令。其格式如图所示。命令。其格式如图所示。 A0=0,表示,表示OCW2写入偶地址端口;写入偶地址端口;D4、D3=0是是OCW2的特征位。的特征位。OCW272pR:优先级方式控制位。优先级方式控制位。 为为1,循环优先级;为,循环优先级;为0,固定优先级。,固定优先级。pSL:决定决定L2L0是否有效。是否有效。 为为1,有效;为,有效;为0,无效
64、。,无效。 pEOI:中断命令结束位。中断命令结束位。 为为1,发,发EOI命令;为命令;为0,则该位不起作用。,则该位不起作用。 pL2L0:双功能。:双功能。 在在特特殊殊中中断断结结束束命命令令时时,L2L0指指出出具具体体要要使使ISR的的哪哪一一位复位;位复位; 在在优优先先级级特特殊殊循循环环方方式式命命令令时时,L2L0指指出出循循环环开开始始时时IRi中哪个中断优先级最低。中哪个中断优先级最低。R、SL、EOI须组合起来使用,其组合方式所对应的须组合起来使用,其组合方式所对应的命令如下表所示。命令如下表所示。73OCW2的中断结束及优先级方式的中断结束及优先级方式 74 【例例
65、1】 若对某若对某8259A的的OCW2设置为设置为11000101B,试分析此操作命令字所确定的工作方式。,试分析此操作命令字所确定的工作方式。解:根据解:根据OCW2的格式的格式 D7D5为为110,表明设置为优先级特殊循环方式;,表明设置为优先级特殊循环方式;D2D0为为101,表明指定初始时最低优先级为,表明指定初始时最低优先级为IR5。则则8259A的优先级高低顺序为的优先级高低顺序为IR6最高,然后是最高,然后是IR7、IR0、IR1、IR2、IR3、IR4,IR5最低。最低。 OCW2应用举例应用举例 :75p【例例2】如果要设置某个如果要设置某个8259A为特殊中断结束方式,使
66、为特殊中断结束方式,使IR3在在ISR中的相应位复中的相应位复0。8259A的端口地址为的端口地址为20H、21H。p试编程实现之。试编程实现之。解:根据解:根据OCW2的格式的格式 OCW2=01100011 (特殊特殊EOI、结束、结束IR3中断服务中断服务)程序段如下:程序段如下: MOV AL, 63H; OUT 20H,AL OCW2应用举例应用举例 :76【例例3】如果向如果向8259发操作命令字发操作命令字OCW2=E3H ( 1 1 1 0 0 0 1 1 )有有2个作用:个作用: (1)采用中断优先级特殊循环,并指定采用中断优先级特殊循环,并指定IR3的优先级的优先级最低,最
67、低,IR4升为最高,其它依次排列。升为最高,其它依次排列。(2)发特殊发特殊EOI命令,结束命令,结束IR3的中断服务(的中断服务(ISR的的D3位清零)位清零)OCW2应用举例应用举例 :77OCW3有三个功能:设置有三个功能:设置8259A的中断屏蔽方式;设置的中断屏蔽方式;设置中断查询方式;设置读中断查询方式;设置读8259A内部寄存器的命令,其格内部寄存器的命令,其格式如图所示。式如图所示。 A0=0,表示,表示OCW3写入偶地址端口;写入偶地址端口;D4=0,D3=1,为特征位;,为特征位;D7未用,一般为未用,一般为0。OCW378pD5、D6: ESMM、SMM:p配合使用,设置
68、配合使用,设置/取消特殊屏蔽方式。取消特殊屏蔽方式。pESMM、SMM = 11时,设置特殊屏蔽方式;时,设置特殊屏蔽方式;pESMM、SMM = 10时,取消特殊屏蔽方式。时,取消特殊屏蔽方式。p当当ESMM=0,保持原来屏蔽方式,保持原来屏蔽方式,SMM不起作用。不起作用。设设置置特特殊殊屏屏蔽蔽方方式式的的方方法法:在在某某级级中中断断服服务务程程序序中中首首先先设设置置命命令令字字OCW3的的ESMM、SMM位位为为11,进进入入特特殊殊屏屏蔽蔽方方式式,然然后后通通过过设设置置命命令令字字OCW1使使该该级级的的Mi位位为为1。这这样样该该级级中中断断被被屏屏蔽蔽而而不不允允许许发发
69、生生同同级级中中断断,同同时时开开放放了了低低级级别别的的中中断断请请求求。若若要要退退出出特特殊殊屏屏蔽蔽方方式式,通通过过设设置置命命令令字字OCW3的的ESMM、SMM位为位为10,执行输出指令即可。,执行输出指令即可。 p 79P: 查询命令位。查询命令位。为为1,CPU将将8259A置于中断查询方式,并向置于中断查询方式,并向8259A发出查询发出查询命令;命令;为为0,处于非查询方式。,处于非查询方式。 应当在关中断(应当在关中断(IF=0)情况下进行)情况下进行。RR:CPU是否发读命令。是否发读命令。为为1,发读命令,发读命令,为为0,不发读命令。,不发读命令。RIS:读读IS
70、R还是还是IRR。该位只在。该位只在RR=1时起作用。时起作用。为为1,读,读ISR;为为0,读,读IRR。读取读取ISR、IRR的方法:首先关中断,然后执行输出指令送出的方法:首先关中断,然后执行输出指令送出OCW3,使,使RR=1,发出读命令。最后执行输入指令,把所选中的寄存器内容读入,发出读命令。最后执行输入指令,把所选中的寄存器内容读入CPU。80 l查询字查询字n8259A的查询字格式如图的查询字格式如图中断查询操作中断查询操作8259还可以为还可以为CPU查询中断提供了查询命令。查询中断提供了查询命令。CPU通过查询通过查询8259的查询字可以得知外设的中断服务的查询字可以得知外设
71、的中断服务请求。请求。81A0:表明查询字从偶地址端口读出。表明查询字从偶地址端口读出。 I:表明有无中断请求。表明有无中断请求。为为1,则有中断请求;,则有中断请求;为为0,则无中断请求。,则无中断请求。 W2W0:表明当前申请中断的优先级最高的中断源。表明当前申请中断的优先级最高的中断源。为为000111时,分别表示当前请求中断的最高优先级中断源时,分别表示当前请求中断的最高优先级中断源是是IR0IR7。82n读读取取查查询询字字的的方方法法:首首先先关关中中断断,然然后后执执行行输输出出指指令令送送出出OCW3,使使P=1,发发出出查查询询命命令令,最最后后执执行行输输入入指指令令读读取
72、取查查询字。若询字。若I=1,则根据,则根据W2W0输入相应的中断服务程序。输入相应的中断服务程序。 n若若使使OCW3的的P=1,RR=1,既既发发查查询询命命令令又又发发读读命命令令,则则当当执执行行输输入入指指令令时时,首首先先读读出出的的是是查查询询字字,再再执执行行输输入入指指令,读出令,读出ISR或或IRR。 n综上所述,综上所述,8259A有多个内部寄存器,而片内地址有多个内部寄存器,而片内地址线只有线只有A0(两个端口地址),那么(两个端口地址),那么8259A是如何实是如何实现诸多寄存器的寻址呢?现诸多寄存器的寻址呢?838259A的端口地址分配表的端口地址分配表 n写入写入
73、ICW1、OCW2、OCW3时,由控制寄存器的时,由控制寄存器的D4、D3特征位特征位来区分;来区分; n写入写入ICW2、ICW3、ICW4、OCW1时,由时,由8259A片内顺序逻辑决片内顺序逻辑决定;定; n读取读取IRR、ISR、查询字时,由、查询字时,由OCW3的内容决定。的内容决定。 84ICW1OCW2OCW3写入写入A0=0由由D4、D3位位标识标识ICW2ICW3ICW4OCW1写入写入A0=1按按照照写写入入顺顺序序标标识识858259的编程的编程8259有两类编程命令:有两类编程命令:(1)初始化)初始化ICW设置设置8259的工作方式,必须在的工作方式,必须在8259运
74、行之前完成运行之前完成必须按照规定的先后顺序依次写入。必须按照规定的先后顺序依次写入。(2)操作命令)操作命令OCW8259已经进入工作状态,等待接受外部的中断请求已经进入工作状态,等待接受外部的中断请求时,在用户程序中可以随时根据需要写入。时,在用户程序中可以随时根据需要写入。没有写入的先后顺序没有写入的先后顺序868259级联应用举例级联应用举例已知有已知有A、B、C、D四个中断源,它们的中断类型号如下:四个中断源,它们的中断类型号如下: ABCD40H45H32H33H应如何将它们接入应如何将它们接入8259?主主8259IR7.IR5IR3.IR0从从8259IR7.IR5IR3 IR
75、2.IR0ABCDINTINTCPU设它们的端口地址为:主片:设它们的端口地址为:主片:FFE8H、FFEAH; (A0=0) (A0=1) 从片:从片:FFF8H、FFFAH (A0=0) (A0=1)878259级联应用举例级联应用举例要求要求 :中断信号边沿触发;非自动:中断信号边沿触发;非自动EOI;非缓冲方式;非缓冲方式1、主片、主片8259的初始化:的初始化:MOV AL, 11HMOV DX, 0FFE8HOUT DX, ALMOV DX, 0FFEAHMOV AL, 40HOUT DX, ALMOV AL, 08HOUT DX, ALMOV AL, 11HOUT DX, ALMOV AL, 0D6HOUT DX, AL写入写入ICW1写入写入ICW2写入写入ICW3写入写入ICW4写入写入OCW188MOV AL, 11HMOV DX, 0FFF8HOUT DX, ALMOV DX, 0FFFAHMOV AL, 30HOUT DX, ALMOV AL, 03HOUT DX, ALMOV AL, 01HOUT DX, ALMOV AL, 0F3HOUT DX, AL写入写入ICW1写入写入ICW2写入写入ICW3写入写入ICW4写入写入OCW18259级联应用举例级联应用举例2、从片、从片8259的初始化:的初始化:作业作业lP262 9.1, 9.3