中断控制器实用教案_第1页
中断控制器实用教案_第2页
中断控制器实用教案_第3页
中断控制器实用教案_第4页
中断控制器实用教案_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1中断(zhngdun)的基本概念一、什么是中断:指CPU在正常运行程序时,由于内部或外部事件引起(ynq)CPU暂时中止执行现行程序,转去执行请求CPU为其服务的那个外设或事件的服务程序,待该服务程序执行完后又返回到被中止的程序这样一个过程。 中断服务程序:处理中断事件的程序段。中断断点:被中断中止的原程序的下一条(y tio)指令的地址。第1页/共89页第一页,共90页。2例:设某中断源的类型码为4AH,试画出求中断服务处理程序的示意图。 解: 中断向量表指针为4*n=4*4AH=128H, 即:0000:0128H。 通过(tnggu)中断向量表,中断服务程序的入口地址为0F000H:1

2、806H。如图:第2页/共89页第二页,共90页。38086系统的中断(zhngdun)类型和中断(zhngdun)向量表中断向量表物理地址单元内容INT 4AH地址单元内容 I P=1806H CS=F000HF000:180600000 H类型 0中断处理程序入口地址MOV AL,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

3、:012E0:012F中断处理服务程序IRET003FF H类型 FFH中断处理程序入口地址第3页/共89页第三页,共90页。4u当有多个中断源同时请求时,CPU就要识别出是哪些中断源有中断请求,辨别和比较(bjio)它们的优先权,先响应优先权级别最高的中断申请。u这种把多个中断源按轻重缓急的优先处理权按由高到低的顺序排列,称之为中断优先权排队。中断(zhngdun)优先权排队 :第4页/共89页第四页,共90页。5若CPU正在(zhngzi)处理某一中断过程时,出现了级别更高的中断请求,CPU应能停止执行级别低的中断服务程序而去处理级别更高的中断,等高级别中断处理完,再处理未处理完的低级中断

4、,它处理完,再回到主程序。这种方式称为多重中断或中断嵌套。下图为一个三级中断处理过程。图中,外设C的优先级最高,外设B次之,外设A最低。中断(zhngdun)嵌套第5页/共89页第五页,共90页。69.1 可编程中断(zhngdun)控制器8259A 一、8259协助CPU处理(chl)中断事务所做的工作u中断源的优先级排队管理u接受、扩充(kuchng)外设的中断请求u向CPU提供中断类型号u实施中断请求的禁止和允许第6页/共89页第六页,共90页。71、8259A的引脚: 二、 8259A的引脚功能(gngnng)及内部结构 第7页/共89页第七页,共90页。88259A的内部结构框图(k

5、ungt) 二、 8259A的引脚功能(gngnng)及内部结构 第8页/共89页第八页,共90页。9二、 8259A的引脚功能(gngnng)及内部结构 8259A引脚功能 8259A是28个引脚封装的双列直插封芯片,芯片引脚功能定义如下: D7D0:双向、三态数据线,可与系统的数据总线直接相连。 WR:写控制信号,输入,低电平有效。与控制总线上的信号相连。 RD:读控制信号,输入,低电平有效。与控制总线上的信号相连。 CS:片选信号,输入,低电平有效。CPU的高位地址经地址译码电路(dinl)选中它。 INT:中断请求信号,输出,高电平有效。是8259A向CPU输出的中断请求。 第9页/共

6、89页第九页,共90页。10二、 8259A的引脚功能(gngnng)及内部结构 A0:地址选择信号,输入,用来选择内部端口。8259A只有两个端口地址,常把A0=0所对应的端口称为(chn wi)“偶端口”,把A0=1所对应的端口称为(chn wi)“奇端口”。当8259A与8位CPU8088相连时,其A0其可直接与8088的A0线相连;当8259A与16位CPU8086相连时,由于其D7D0接8086的低8位,因此,8086的A1接到该引脚,此时8259A的端口均为偶地址。第10页/共89页第十页,共90页。11二、 8259A的引脚功能(gngnng)及内部结构 nINTA:中断响应信号

7、,输入,低电平有效。接收来自CPU的中断响应信号INTA。nIR7IR0:外设向8259A发出的中断请求信号,输入,高电平有效。接收来自外设接口(ji ku)发出的中断请求。 nCAS2CAS0:级连信号线,双向。当8259A作为主片时,为输出线;当8259A作为从片时,为输入线。 第11页/共89页第十一页,共90页。12SP/EN:主从片设定/允许缓冲信号,双向双功能(gngnng),低电平有效。 8259数据线与系统数据总线间连接方式采用非缓冲方式(即直接相连,无数据总线驱动器)时,作为输入。主8259接高电平,从8259接低电平。 8259数据线与系统数据总线间连接方式采用缓冲方式(即

8、有数据总线驱动器)时,作为输出,用于启动数据总线驱动器。 如果工作在缓冲方式并且有级连应用时,作为输出,用于启动数据总线驱动器。主从片的设置用软件解决。二、 8259A的引脚功能(gngnng)及内部结构 第12页/共89页第十二页,共90页。13输入:作为主片时(pinsh)接+5V作为从片时(pinsh)接地8259工作(gngzu)于非缓冲方式第13页/共89页第十三页,共90页。148259工作(gngzu)于缓冲方式数据(shj)缓冲器输出(shch):作为数据缓冲器的选通信号第14页/共89页第十四页,共90页。15(1)中断请求寄存器IRR IRR是8位寄存器,用来接收(jish

9、u)来自外设中断源的中断请求。它通过IR7IR0与8个中断源相连。若IRi=1时,IRR的相应第i位置1。若最多有8个中断请求信号同时进入IR7IR0端,IRR全被置1。一旦IRi=1中断请求被响应,则IRi=0(复位)2、8259A内部结构例:如果(rgu)当前IRR=35H ,问有哪几个中断请求尚未被响应?00110101IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0IRR第15页/共89页第十五页,共90页。162、8259A内部结构(2)中断(zhngdun)服务状态寄存器ISR ISR是8位寄存器,用来记录CPU当前正在为哪个或哪几个中断(zhngdun)源服务。当C

10、PU响应IRi请求时,ISR中相应位置1。当ISR中的有多个“1”时,表明CPU正在为较低中断(zhngdun)服务时,又有较高的中断(zhngdun)请求,CPU又转去处理较高的中断(zhngdun),形成中断(zhngdun)服务嵌套。当某个中断(zhngdun)处理完毕,ISR的相应位复位(或用指令或自动)。例:如果当前ISR=45H ,问有哪几个中断请求已经被响应?如果按照(nzho)IR0的中断优先级最高,IR7的中断优先级最低排序,当前正在相应的是哪一级中断?ISR01000101IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0第16页/共89页第十六页,共90页。1

11、700000000ISR当IR6有中断请求时,没有更高级的请求,给与(i y)响应 。如果(rgu)按照IR0的中断优先级最高,IR7的中断优先级最低排序,1当IR2有中断(zhngdun)请求时,优先级高于IR6,中断(zhngdun)IR6,给与响应 。1IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0当IR0有中断请求时,优先级高于IR2,中断IR2,给与响应 。1有三个中断请求已经被响应(IR6,IR2,IR0),当前正在执行的是IR0的中断服务。如果此时IR3有中断请求,是否能够给与响应?第17页/共89页第十七页,共90页。18(3)中断屏蔽寄存器IMR IMR是8位

12、寄存器,用来屏蔽已被锁存在IRR中的中断请求信号(xnho)。当IMR的第i位被置1时,相应的IRi被屏蔽,不能进入系统的下一级优先权处理器去判优,不能向CPU发出中断请求。IMR的值可通过软件设置或改变。2、8259A内部结构例:如果当前(dngqin)IMR=48H ,问有哪几个中断请求被屏蔽?01001000IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0IMR第18页/共89页第十八页,共90页。19(4)优先权判别电路PRPR用于判别已进入IRR中且未被IMR屏蔽的各中断请求的优先级别。当多个中断请求同时产生时,优先权处理器PR根据IMR的内容和用户设定(sh dn)的

13、优先级规则,判断这些请求信号的最高级,向CPU输出中断请求信号INT。若CPU响应中断,则将它送入中断服务寄存器ISR。若8259A正为某一中断服务,而又出现新的中断请求,则PR判断新的中断请求级别是否更高。若是,则进入中断嵌套。 2、8259A内部结构第19页/共89页第十九页,共90页。20(5)读/写控制逻辑 该电路的功能是接收来自CPU的读/写命令,完成对8259A内部端口的读写操作。具体的操作内容由CS、A0、WR、RD四个信号(xnho)共同决定。2、8259A内部结构CSWRRDA0操操 作作0010写写ICW1, OCW2, OCW30011写写ICW2, ICW3, ICW4

14、, OCW10100读读IRR, ISR, 查询字查询字0101读读IMR第20页/共89页第二十页,共90页。212、8259A内部结构(6)级联缓冲/比较器 当多片8259A采用主从结构级联时,该部件用来存放和比较系统中各8259A的从片选择代码。(7)数据总线缓冲器: 数据总线缓冲器是一个8位的双向三态缓冲器,用来连接8259A和系统数据总线。 8259A通过它与CPU进行(jnxng)命令、状态、数据信息的传送。第21页/共89页第二十一页,共90页。22(8)控制逻辑 控制逻辑电路中有七个寄存器,其中ICW1ICW4用来存放初始化程序设定的工作方式字、管理8259A的工作;OCW1O

15、CW3用来存放操作命令字,对中断处理过程进行动态控制。 控制逻辑电路有两个控制作用:一是根据IRR,IMR,PR的状态,通过INT向CPU请求中断,二是接收(jishu)来自CPU的INTA信号,使ISR相应位置1,且使IRR 相应位置0,避免该中断源一次申请产生两次或两次以上中断。 2、8259A内部结构第22页/共89页第二十二页,共90页。23三、8259的工作(gngzu)方式1、中断触发方式电平触发方式 在该方式下, 8259A把IRi端出现的高电平作为(zuwi)中断请求信号。使用时须注意的是,当出现一个中断请求信号并得到响应(ISR的相应位置位)后,必须及时撤除高电平,否则会产生

16、不必要的第二次中断请求。 边沿触发方式 在该方式下, 8259A把IRi端出现的上升沿作为(zuwi)中断请求信号。边沿触发的优点是申请中断的IRi端可以一直保持高电平,不会被误判为又一次中断请求。中断查询方式外设通过8259申请中断时,8259不使用硬件信号INT向CPU发中断请求,而是CPU用软件来查询8259当前受到的中断请求,并响应该请求。第23页/共89页第二十三页,共90页。242、连接系统总线的方式 缓冲方式 在多片8259A级联的大系统中,8259A通过总线驱动器和数据总线相连。此时,8259A的SP/EN端输出一个低电平(EN=0)作为总线驱动器的启动(qdng)信号,即与总

17、线驱动器的允许端相连。非缓冲方式 当系统中只有单片或片数不多的8259A时,一般将8259A直接与数据总线相连。此时,8259A的SP/EN端作为输入信号。单片8259A时,SP=1。若多片互连时,主片的SP=1,从片的SP=0。 三、8259的工作(gngzu)方式第24页/共89页第二十四页,共90页。25缓冲(hunchng)方式数据(shj)缓冲器输出(shch):作为数据缓冲器的选通信号第25页/共89页第二十五页,共90页。26非缓冲(hunchng)方式输入(shr):主片接+5V输入(shr):从片接地第26页/共89页第二十六页,共90页。273、中断屏蔽方式普通屏蔽方式当C

18、PU执行主程序时不希望某几个中断源申请中断,或在执行某一中断服务程序时不希望比该中断源级别更高的中断源申请中断,可采用此法。方法是:将中断屏蔽字写入IMR,若某位写入“1”,则禁止相应(xingyng)的IR申请中断,若写入“0”,则开放相应(xingyng)的中断源。三、8259的工作(gngzu)方式第27页/共89页第二十七页,共90页。28特殊屏蔽方式 在执行某一中断服务程序时,仅对本级中断进行屏蔽,允许接受级别较低的中断请求。设置(shzh)特殊屏蔽方式后,对正在响应的某级中断,编程使IMR对应位置1,就会同时使ISR的对应位复位。这样,不只屏蔽了当前正在处理的本级中断,而且开放了较

19、低级的中断请求。 三、8259的工作(gngzu)方式由上面(shng min)的叙述可以看出,普通屏蔽方式的命令字可在主程序或中断服务程序中写入,而特殊屏蔽方式的命令字应当在中断服务程序中写入。00001000IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0IMR0000000ISR例如正在执行IR3的中断服务:0第28页/共89页第二十八页,共90页。295、优先级排队的方式固定优先级: 指各中断源的优先级由IRi引脚编号确定(qudng),优先级是固定的。 有普通全嵌套方式和特殊全嵌套方式两种 (1)普通全嵌套方式 在该方式下,IR7IR0的优先级顺序是IR0最高,IR7最

20、低。且一个中断被响应,只有比它更高优先级的中断请求才会被响应。三、8259的工作(gngzu)方式第29页/共89页第二十九页,共90页。30(2)特殊全嵌套方式 与全嵌套方式基本相同,不同之处在于该方式不但响应比本级高的中断申请,而且响应同级的中断申请。 该方式一般用于8259A的级连方式。在级连方式中,往往有一个主片,其他为从片。从片的INT端接到主片的IRi端。因而当前正在执行的某一中断服务程序是由某一从片IRi端。这时该从片上比IRi级别高的中断提出请求,从片予以(yy)响应,向主片发INT信号,但主片分不出来,只将它们视为同一级别。若普通全嵌套方式,则主片不响应,只有特殊全嵌套方式,

21、主片才响应。三、8259的工作(gngzu)方式系统中若只有单片8259A时,通常采用普通(ptng)全嵌套方式。系统中有多片8259A级联时,主片必须采用特殊全嵌套方式,从片可采用全嵌套方式。第30页/共89页第三十页,共90页。31普通(ptng)全嵌套方式:同一级的中断请求不能中断同级中断。并且IR7IR0的优先级顺序是IR0最高,IR7最低。如果(rgu)级联工作主片为特殊全嵌套方式:IR4先后收到两个中断请求,同一级的中断请求能够(nnggu)中断同级中断。从片为普通全嵌套方式第31页/共89页第三十一页,共90页。32循环优先级 : 指当某个中断源受到中断服务后,它的优先权就自动(

22、zdng)降为最低,而优先级较其低一级的升为最高。 例如,IR4被服务后,相应的IR5的优先级升为最高,依次为IR6,IR7,IR0,IR1,IR2,IR3,IR4。 三、8259的工作(gngzu)方式第32页/共89页第三十二页,共90页。33三、8259的工作(gngzu)方式(1)优先权普通循环(xnhun)方式该方式下,8259A总是自动规定:初始时,IR0有最高优先权,IR7最低。当某个中断源受到中断服务后,它的优先权就自动降为最低,而优先级较其低一级的升为最高。(2)优先权特殊循环(xnhun)方式该方式下,由用户编程决定初始时的最低优先级。如规定IR5最低,则相应的最高优先权为

23、IR6,依次为IR7,IR0,IR1,IR2,IR3,IR4,IR5。第33页/共89页第三十三页,共90页。34优先权普通循环(xnhun)方式举例:IR7IR6IR5IR4IR3IR2IR1IR0原始状原始状态态ISR01000100优先级优先级76543210结束结束IR2ISR01000000优先级优先级43210765结束结束IR6ISR00000000优先级优先级07654321思考:8259工作于优先权普通循环方式(fngsh),当IR3的中断服务结束时,IR6处于优先级的哪一级? IR7IR6IR5IR4IR3IR2IR1IR0优先级优先级32107654第34页/共89页第三

24、十四页,共90页。35优先权特殊(tsh)循环方式举例:IR7IR6IR5IR4IR3IR2IR1IR0原始状原始状态态ISR01000100优先级优先级76543210执行置执行置位优先位优先权命令权命令ISR01000100优先级优先级21076543置位优先权命令(mng lng):将IR4置为优先权最低思考(sko):如果欲将IR2的优先级设为最高级,应如何实现? 答:使用置位优先权命令:将IR1置为优先权最低.第35页/共89页第三十五页,共90页。365、结束中断的处理方式中断结束方式指使ISR相应位复0的方式。当一个中断请求得到响应时, 8259A会把ISR中的相应位置1。而当一

25、个中断服务程序结束时,必须将ISR中的相应位清“0”,否则中断控制(kngzh)功能将会不正常。三、8259的工作(gngzu)方式第36页/共89页第三十六页,共90页。37(1)自动结束方式(AEOI)该方式下,ISR中相应位复0是由硬件自动完成。当CPU响应某级中断后,发出的第二个INTA信号结束时自动将ISR的相应位复0。注意:此时,中断服务程序并未结束。该方式只适用于1片8259A,且不会发生中断嵌套的场合。当CPU响应后自动清除(qngch)ISR中的相应位,但此时中断服务程序并未结束,8259中没有留下任何痕迹。若此时有了新的中断请求,8259都将准予响应。可能会响应级别较低的中

26、断请求,则高级的中断请求反而有可能得不到及时地处理。第37页/共89页第三十七页,共90页。38(2)普通中断结束(jish)方式 在该方式下,需要通过CPU发指令来使ISR相应位复0。通过软件方法向8259A发一个命令字,使当前ISR中级别最高的复位0。该方式只适用于全嵌套方式下(优先级固定),不能用于循环优先级方式。因为全嵌套方式下,最高ISR位对应于最后一次被响应和处理的中断,即当前正在处理的中断。三、8259的工作(gngzu)方式(3)特殊中断结束方式(fngsh) 该方式(fngsh)也是通过软件(指令)向8259发一个命令字,但命令字中须指出要结束哪一级中断源,从而使ISR相应位

27、置0。第38页/共89页第三十八页,共90页。39四、8259A工作(gngzu)过程 单片8259A工作时,每次处理中断包括下述过程:当一条或几条中断请求线(IR7IR0)变为高电平,则使IRR相应位置1。 IMR对IRR进行屏蔽,并通过PR判断(pndun)出当前未屏蔽的最高优先级中断请求。若CPU正在处理某一中断,PR判断(pndun)新的请求是否比原中断级别高。 控制逻辑接收中断请求,向CPU发INT信号。 若CPU开中断,则在执行完当前指令后,发INTR信号,进入两个中断响应周期。 8259A收到第一个INTA负脉冲后,将最高优先级的中断的ISR相应位置1,使IRR的相应位置0。 第

28、39页/共89页第三十九页,共90页。408259A工作(gngzu)过程n 8259A收到第二个INTA负脉冲后,将相应的中断类型号送上数据总线。CPU读取后,进入中断服务程序。n 中断响应结束后,在自动结束中断方式(AEOI)下,8259A会在第二个脉冲结束时,自行将ISR的相应位复位;若是非自动结束中断(EOI)方式,则ISR中相应位的“1”一直(yzh)保持,直到中断服务程序向8259A发EOI(中断结束)命令时,才复位。 第40页/共89页第四十页,共90页。41 8259A的级联方式(fngsh) 一块8259A最多可管理8级中断,在多于8级中断的系统中,必须将多片8259A级联使

29、用。 从片的IR7IR0直接与中断源相连,其INT与主片的IR7IR0的某一端口相连,根据需要可以选择从片的片数,最多为8片,因而此级联中断系统最多可带64个中断源。 引脚SP/EN可区分8259A是主片还是从片。主片SP/EN接高电平,从片SP/EN接低电平。所有的CAS2CAS0互连。主片的CAS2CAS0为输出信号,从片的为输入信号。 当CPU发出第一个INTA时,主片的动作是使ISR相应位置1,IRR相应位清0,并通过CAS7CAS0发出一个编码ID2ID0。当从片接到这个编码与本身控制(kngzh)逻辑中的ICW3的D2D0位比较,如果相等,在CPU的第二个INTA到来时,将本身的中

30、断类型号送上数据总线。 第41页/共89页第四十一页,共90页。42主片从片从片从片第42页/共89页第四十二页,共90页。43 8259A级联结构图 缓冲方式?非缓冲方式?第43页/共89页第四十三页,共90页。44四、 8259A的命令字 uCPU发给8259A的命令分两种:初始化命令字ICW和操作命令字OCW。u初始化命令字ICW1ICW4往往(wngwng)是在系统启动时,由初始化程序设置。初始化命令字一旦设定,一般在系统工作过程中就不再改变。u而操作命令字OCW1OCW3是由应用程序来设定。用来对中断处理过程进行动态控制,如中断屏蔽、中断结束、优先权循环和中断状态的读/写查询。因此,

31、操作命令字可以作多次设置。第44页/共89页第四十四页,共90页。45ICW1的命令字格式(g shi) ICW1 8259A最初(zuch)写入的必是ICW1,由引脚A0和D4位确定,其格式如图所示。初始化命令字ICW第45页/共89页第四十五页,共90页。46A0=0,D4=1是ICW1的标志,表示当前操作是ICW1。 D7D5:只用于8080/8085系统中,而在8086/8088系统中不用,可为任意值。 D3(LTIM):IRi的触发方式选择。为1,电平触发;为0,边沿触发。 D2(ADI):这一位在8086/8088系统中不起作用。而在8080/8085系统中,该位决定中断源中每两个

32、相邻的中断向量地址的间隔值。 D1(SNGL):单片/级联方式指示。为1,单片使用:为0,则级联方式。 D0(IC4):指示是否使用ICW4。在8086/8088系统中,必须设定IC4,D0=1。而D0=0表示ICW4的全部(qunb)功能置0。 ICW1第46页/共89页第四十六页,共90页。47ICW2A0=1:表明ICW2要写入奇地址端口。T7T3:用在8086/8088系统中,由用户(yngh)编程设定,是中断类型码的高5位。D2D0:指明中断源所接的IR7IR0引脚。在8086/8088系统下,用户(yngh)编程时可使D2D0为任意值。当8259A向CPU发送中断类型码时,IRi对

33、应的D2D0位自动生成,其对应关系如下表5所示。ICW2是紧跟在ICW1后写入初始化程序中的。CPU响应中断,发出第二个INTA后,8259A将ICW2寄存器中内容(nirng)(中断类型码)送上数据总线。用于设置(shzh)中断类型码,其格式如图所示。第47页/共89页第四十七页,共90页。488086/8088系统中的中断类型(lixng)号的生成 由此可见,一片(y pin)8259连接的8个中断请求信号的中断类型号的高5位是相同的,其低三位依中断请求接入的引脚IRi的序号而定。例如当D7D3=10101 时,其IR0 IR7的中断类型号就分别为10101000 10101111(A8H

34、 AFH)第48页/共89页第四十八页,共90页。49例2在PC微机(wi j)中断系统中,硬盘中断类型号的高5位是08H,他的中断请求线连接到8259的IR5上,在初始化8259写入ICW2时只写其高5位,而低3位取零。ICW2=0000 1000=08HMOV AL, 08HOUT 21H,AL当CPU 响应硬盘中断时,8259把IR5的编码(bin m)“101”填写到ICW2的低3位上,组成硬盘的中断类型号: 0000 1101=ODH第49页/共89页第四十九页,共90页。501、外部(wib)中断的中断号由两部分组成: ICW2的高5位 + IRi的编码(低3位)2、每片8259所

35、管理的8个中断源的中断号,它们(t men)的高五位必须是相同的。3、每片8259所管理(gunl)的8个中断源的中断号,必须是连续的8个数。所以ICW2与中断类型号有以下特点:第50页/共89页第五十页,共90页。51例:设某中断向量存放在00058H地址单元(dnyun)处。求 1:中断类型号, 2:该8259的ICW2 3:该中断源应接入IR? ICW2 答: 1:中断(zhngdun)类型号 00058H416 2:该8259的ICW2=00010000=10H 3:该中断(zhngdun)源应接入IR6第51页/共89页第五十一页,共90页。52例2:设某中断(zhngdun)类型号

36、为19H,接入8259的IR1 求:该8259的ICW2。 ICW2 答: 由:中断(zhngdun)类型号19H 0001 1001 则:该8259的ICW2=00011000=18H第52页/共89页第五十二页,共90页。53例.已知某中断向量存放在000D4H地址单元处。并且由000D4H单元起始依次存放着10H、20H、30H、40H。请回答: (1)中断类型(lixng)号为何?(2)接入8259时,该8259的ICW2应为何?(3)该中断源应接入该8259的哪个中断请求输入引脚?(4)该中断向量的物理地址为何?(5)CPU响应该中断时,CS中的值为何?IP中的值为何?答: (1)中

37、断类型(lixng)号为35H(2)接入8259时,该8259的ICW2应为30H(3)该中断源应接入该8259的IR5引脚(4)该中断向量的物理地址为42310H(5)CPU响应该中断时,CS中的值为4030H,IP中的值为2010H第53页/共89页第五十三页,共90页。54主片格式(g shi):S7S0:表明主片IR7IR0是否接有从片。为1,是接从片;为0,则未接从片,中断请求直接来自外设中断源。 ICW3ICW3用于定义级联方式(fngsh)。主片、从片均要写入ICW3 ,两者的定义不同。第54页/共89页第五十四页,共90页。55 从片格式: D7D3可为任意值。 ID2ID0:

38、从片的标识码,表明该从片的INT端接到主片的IR的哪一端(ydun)。 例如,ID2ID0=110,表示这个从8259A接主8259A的IR6。第55页/共89页第五十五页,共90页。56 主、从片ICW3的命令字格式(g shi) 主8259 IR7 IR4 IR0INT从8259(1) IR7 IR4 IR0INT从8259(2) IR7 IR4 IR0芯片名芯片名ICW3ICW3主8259从8259(1)从8259(2)00010001=11H00000100=04H00000000=00H例第56页/共89页第五十六页,共90页。57当ICW1中的D0=1时写入。8086/8088系统

39、中必须(bx)写入ICW4。其格式如图。ICW4第57页/共89页第五十七页,共90页。58ICW4的命令字格式(g shi) D7D5:特征位,恒为0,表示(biosh)送出的是ICW4。 D4(SFNM):选择中断嵌套方式。 为1,特殊全嵌套方式,一般仅用于级联方式的主片; 为0,一般全嵌套方式。单级使用或者级联时的从片D3(BUF):是否选用缓冲方式。为1,缓冲方式;为0,非缓冲方式。D2(M/S):表示(biosh)缓冲方式下本片为主片还是从片。为1,主片;为0,从片。当BUF=0时,M/S位不起作用。第58页/共89页第五十八页,共90页。59D1(AEOI):中断结束方式(fngs

40、h)位。 为1,AEOI方式(fngsh);为0,EOI方式(fngsh)。 D0(uPM):系统选择位,指明8259A当前工作在哪种CPU系统中。为1,是8086/8088系统;为0,是8080/8085系统。第59页/共89页第五十九页,共90页。608259A初始化流程(lichng) 8259A正常工作之 前 , C P U 必 须(bx)对每片8259A进行初始化编程。 初始化编程指通过指令按顺序依次将ICW1 ICW4命令字写入8259A。第60页/共89页第六十页,共90页。61 8259A的命令字应用(yngyng)举例例 在IBM PC/XT机中仅用一片8259A,中断请求信

41、号采用边沿触发(chf);中断类型号为08H0FH;用普通全嵌套、缓冲、非自动中断结束方式。8259A的端口地址为20H、21H。试按照上述要求对8259A设置初始化命令字:采用(ciyng)单片8259A时,依次写入ICW1、ICW2、ICW4;采用(ciyng)多片级联时,依次写入ICW1、ICW2、ICW3、ICW4,且每片8259A都要按上述顺序写入初始化命令字。ICW1=00010011=13H 边沿触发、单片、设置ICW4 ICW2=00001000=08H 中断类型号为08H0FHICW4=00001101=0DH 普通全嵌套、缓冲、EOI方式单级使用当作主片第61页/共89页第

42、六十一页,共90页。62 该片8259A的初始化设置(shzh)的程序段如下: MOV AL,13H ;ICW1 OUT 20H,AL ; ICW1写入A0=0端口 MOV AL,08H ;ICW2 OUT 21H,AL ; ICW2写入A0=1端口 MOV AL,0DH ;ICW4 OUT 21H,AL ;ICW4写入A0=1端口第62页/共89页第六十二页,共90页。63【例】在IBM PC/AT机中使用2片8259A构成主从式中断控制器。从片的INT与主片的IRQ2相连。主片的中断类型号为08H0FH,端口地址为20H、21H;从片的中断类型号为70H77H,端口地址为A0H、A1H。主

43、从片的中断请求信号均采用边沿触发(chf),采用缓冲、非自动中断结束方式。试按照上述要求对8259A设置初始化命令字:8259从片INT8259主片IR2ICW3(主)=00000100=04HICW3(从)=00000010=02H第63页/共89页第六十三页,共90页。64主片初始化段如下: 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,00

44、011101B ;ICW4:特殊全嵌套、缓冲(hunchng)/主片、EOI方式 OUT 21H,AL第64页/共89页第六十四页,共90页。65从片初始化段如下: MOV AL,00010001B ;ICW1:边沿(binyn)触发、级联、设置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 第65页/共89

45、页第六十五页,共90页。66 对8259A用初始化命令字初始化后,就进入工作状态(zhungti),可以接收IRi输入的中断请求,并按系统默认方式来管理中断。在系统运行时,可以根据程序需要,随时写入操作命令字,对中断管理方式进行动态地设置和修改。l操作命令字OCW第66页/共89页第六十六页,共90页。67OCW1是中断屏蔽操作命令字,直接对IMR的相应(xingyng)位进行设置。其格式如图所示。 A0=1:表示要把OCW1写入8259A的奇地址端口。 M7M0:将Mi置1,就是屏蔽了IRi 的中断请求信号。 将Mi置0,就是允许IRi 的中断请求信号。OCW1第67页/共89页第六十七页,

46、共90页。68中断屏蔽寄存器IMR中的内容还可以读出。方法(fngf)是直接用IN指令访问8259的A0=1端口 【例】 试编程实现下列要求(yoqi):屏蔽IR5、IR4和IR1引脚上的中断请求,而不改变其余的中断屏蔽情况。 8259A的端口地址为20H、21H。程序段如下: IN AL,21H ;读取IMR的当前值 OR AL,00110010B ;OCW1:D5、D4、D1位置1 OUT 21H,AL 第68页/共89页第六十八页,共90页。69例8:操作系统的BIOS中有一段检查IMR的程序(chngx),如下MOV AL,0OUT 21H,AL ;置IMR=00HIN AL,21H

47、;读IMROR AL,ALJNZ D6 ;非零则转D6MOV AL, 0FFHOUT 21H,AL; 置IMR=FFHIN AL,21HADD AL,1 ; FFH+1是否(sh fu)为零JNZ D6 ;非零则转D6: D6: 处理出错程序写00H IMR检查IMR是否=0如果(rgu)出错转D6写FFH IMR检查IMR是否=FFH如果(rgu)出错转D6第69页/共89页第六十九页,共90页。70功能:设置/改变中断优先级模式;发送中断结束命令(mng lng)EOI命令(mng lng)。其格式如图所示。 A0=0,表示OCW2写入偶地址端口;D4、D3=0是OCW2的特征位。OCW2

48、第70页/共89页第七十页,共90页。71R:优先级方式控制位。 为1,循环优先级;为0,固定优先级。SL:决定L2L0是否有效。 为1,有效;为0,无效(wxio)。 EOI:中断命令结束位。 为1,发EOI命令;为0,则该位不起作用。 L2L0:双功能。 在特殊中断结束命令时,L2L0指出具体要使ISR的哪一位复位; 在优先级特殊循环方式命令时,L2L0指出循环开始时IRi中哪个中断优先级最低。R、SL、EOI须组合起来使用,其组合方式(fngsh)所对应的命令如下表所示。第71页/共89页第七十一页,共90页。72OCW2的中断(zhngdun)结束及优先级方式 第72页/共89页第七十

49、二页,共90页。73 【例1】 若对某8259A的OCW2设置为11000101B,试分析此操作命令字所确定的工作方式。解:根据OCW2的格式 D7D5为110,表明设置为优先级特殊循环(xnhun)方式;D2D0为101,表明指定初始时最低优先级为IR5。则8259A的优先级高低顺序为IR6最高,然后是IR7、IR0、IR1、IR2、IR3、IR4,IR5最低。 OCW2应用(yngyng)举例 :第73页/共89页第七十三页,共90页。74【例2】如果要设置某个8259A为特殊中断结束方式,使IR3在ISR中的相应位复0。8259A的端口地址为20H、21H。试编程实现之。解:根据OCW2

50、的格式(g shi) OCW2=01100011 (特殊EOI、结束IR3中断服务)程序段如下: MOV AL, 63H; OUT 20H,AL OCW2应用(yngyng)举例 :第74页/共89页第七十四页,共90页。75【例3】如果向8259发操作命令字OCW2=E3H ( 1 1 1 0 0 0 1 1 )有2个作用(zuyng): (1)采用中断优先级特殊循环,并指定IR3的优先级最低,IR4升为最高,其它依次排列。(2)发特殊EOI命令,结束IR3的中断服务(ISR的D3位清零)OCW2应用(yngyng)举例 :第75页/共89页第七十五页,共90页。76OCW3有三个功能:设置

51、8259A的中断屏蔽方式;设置中断查询方式;设置读8259A内部寄存器的命令,其格式(g shi)如图所示。 A0=0,表示OCW3写入偶地址端口;D4=0,D3=1,为特征位;D7未用,一般为0。OCW3第76页/共89页第七十六页,共90页。77D5、D6: ESMM、SMM:配合使用,设置/取消特殊屏蔽(pngb)方式。ESMM、SMM = 11时,设置特殊屏蔽(pngb)方式;ESMM、SMM = 10时,取消特殊屏蔽(pngb)方式。当ESMM=0,保持原来屏蔽(pngb)方式,SMM不起作用。设置特殊屏蔽(pngb)方式的方法:在某级中断服务程序中首先设置命令字OCW3的ESMM、

52、SMM位为11,进入特殊屏蔽(pngb)方式,然后通过设置命令字OCW1使该级的Mi位为1。这样该级中断被屏蔽(pngb)而不允许发生同级中断,同时开放了低级别的中断请求。若要退出特殊屏蔽(pngb)方式,通过设置命令字OCW3的ESMM、SMM位为10,执行输出指令即可。 第77页/共89页第七十七页,共90页。78P: 查询命令位。为1,CPU将8259A置于中断查询方式(fngsh),并向8259A发出查询命令;为0,处于非查询方式(fngsh)。 应当在关中断(IF=0)情况下进行。RR:CPU是否发读命令。为1,发读命令,为0,不发读命令。RIS:读ISR还是IRR。该位只在RR=1

53、时起作用。为1,读ISR;为0,读IRR。读取ISR、IRR的方法:首先关中断(zhngdun),然后执行输出指令送出OCW3,使RR=1,发出读命令。最后执行输入指令,把所选中的寄存器内容读入CPU。第78页/共89页第七十八页,共90页。79 查询(chxn)字8259A的查询(chxn)字格式如图中断(zhngdun)查询操作8259还可以为CPU查询中断提供了查询命令。CPU通过查询8259的查询字可以得知(d zh)外设的中断服务请求。第79页/共89页第七十九页,共90页。80A0:表明查询字从偶地址端口读出。 I:表明有无中断请求。为1,则有中断请求;为0,则无中断请求。 W2W0:表明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论