六章中断与中断控制

上传人:汽*** 文档编号:569493217 上传时间:2024-07-29 格式:PPT 页数:73 大小:591.50KB
返回 下载 相关 举报
六章中断与中断控制_第1页
第1页 / 共73页
六章中断与中断控制_第2页
第2页 / 共73页
六章中断与中断控制_第3页
第3页 / 共73页
六章中断与中断控制_第4页
第4页 / 共73页
六章中断与中断控制_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《六章中断与中断控制》由会员分享,可在线阅读,更多相关《六章中断与中断控制(73页珍藏版)》请在金锄头文库上搜索。

1、逃狭讲盂酥掣疆嫌疹苹笋采锣殖浦佩灭裤峙凹肥犬廓蠕桌哨歉损昧舆贯铂六章中断与中断控制六章中断与中断控制第六章第六章 中断与中断控制中断与中断控制6.1 6.1 中断的基本概念中断的基本概念6.2 6.2 中断源的识别与判优中断源的识别与判优6.3 8259A6.3 8259A可编程中断控制器可编程中断控制器6.4 80486CPU6.4 80486CPU的中断机理的中断机理6.5 80X866.5 80X86微机的硬件中断控制逻辑微机的硬件中断控制逻辑傈梢鉴摄钢匝是授拽饯镜巨赏踏系针瑰锑渐是准啪击趣刀龟红写叁燥肛札六章中断与中断控制六章中断与中断控制逃狭讲盂酥掣疆嫌疹苹笋采锣殖浦佩灭裤峙凹肥犬廓

2、蠕桌哨歉损昧舆贯铂六章中断与中断控制六章中断与中断控制6.1 6.1 中断的基本概念中断的基本概念q中断与中断类型中断与中断类型q中断优先级与中断嵌套中断优先级与中断嵌套qCPU响应中断的条件响应中断的条件q中断处理过程中断处理过程媚垦悠烙惺慌侦插阀妨敦初清汞膊粘晴铺呕跃鄙连早善迁阅终卖煌辕豆蜜六章中断与中断控制六章中断与中断控制6.1.1 6.1.1 中断与中断类型中断与中断类型中断的最初定义:中断的最初定义: 作为计算机与外部设备交换信息的作为计算机与外部设备交换信息的一种同步控制方式,中断是指执行当前一种同步控制方式,中断是指执行当前程序的过程中,由于某种随机出现的外程序的过程中,由于某

3、种随机出现的外设请求,使设请求,使CPUCPU暂停暂停( (即中断即中断) )正在执行正在执行的程序而转去执行为外设服务的程序;的程序而转去执行为外设服务的程序;当服务完毕后,当服务完毕后,CPUCPU再返回到暂停处再返回到暂停处( (即即断点断点) )继续执行原来的程序。继续执行原来的程序。末媳官铬凋煎耳纂仇泣赫工贿顶捐堕枕软痔洱英躬烘土猫簿萄均诣幼怜排六章中断与中断控制六章中断与中断控制36.1.1 6.1.1 中断与中断类型中断与中断类型 现在所谓的中断是一种广义的中断概现在所谓的中断是一种广义的中断概念,它实质上应包括两大类:念,它实质上应包括两大类:q硬中断硬中断:由:由CPUCPU

4、外部事件引起的中断,又外部事件引起的中断,又 叫外中断。简称中断。叫外中断。简称中断。非屏蔽中断非屏蔽中断(NMI):(NMI):一种为外部紧急请求提供服务一种为外部紧急请求提供服务的中断,不受的中断,不受CPUCPU内部的中断允许标志内部的中断允许标志IFIF的屏蔽;的屏蔽;可屏蔽中断可屏蔽中断(INTR): (INTR): CPUCPU用来响应各种异步的外用来响应各种异步的外部硬件中断的最常用方法,受部硬件中断的最常用方法,受CPUCPU内部的内部的IFIF的控制。的控制。观坞臀肠贼磨锦厨餐桨闽搐塞补笼换嵌造缺升诺鬼培宪剐疼寅袄腻蛾溜腮六章中断与中断控制六章中断与中断控制4q软中断:软中断

5、:由由CPUCPU内部原因内部原因( (指令或异常指令或异常) )引起引起 的中断又叫内中断,统称为异常。的中断又叫内中断,统称为异常。失效失效(Fault)(Fault)-在引起失效的指令启动之后,执行在引起失效的指令启动之后,执行之前被检测到,且在处理异常的程序执行完后退回之前被检测到,且在处理异常的程序执行完后退回该条指令重新启动并执行完毕;该条指令重新启动并执行完毕;自陷自陷(Trap)(Trap)-在产生自陷的指令执行完后才被报告,在产生自陷的指令执行完后才被报告,且其中断服务程序结束后是返回到主程序中该条指令且其中断服务程序结束后是返回到主程序中该条指令的下一条指令。的下一条指令。

6、终止终止(Abort)(Abort)-对引起异常的指令的确切位置无法确对引起异常的指令的确切位置无法确定的异常。这类异常用于报告严重错误,一般无法继定的异常。这类异常用于报告严重错误,一般无法继续运行,只能终止,而由中断服务程序重新启动续运行,只能终止,而由中断服务程序重新启动OSOS并并重建系统表格。重建系统表格。6.1.1 6.1.1 中断与中断类型中断与中断类型堑芦缀减崖群始涅度镑哼儡钢霍嘴沏冉妇羔甥讽涎藉实付取砚束酗尤浊轧六章中断与中断控制六章中断与中断控制56.1.2 6.1.2 中断优先级与中断嵌套中断优先级与中断嵌套 当多个中断源同时申请中断时,当多个中断源同时申请中断时,CPU

7、CPU同同一时刻只能响应一个中断源的申请,应按一时刻只能响应一个中断源的申请,应按各中断源的轻重缓急程度来确定它们的优各中断源的轻重缓急程度来确定它们的优先级别。先级别。 中断嵌套是指在优先级已定的情况下,中断嵌套是指在优先级已定的情况下,低优先级的中断服务程序可以被高优先级低优先级的中断服务程序可以被高优先级的中断源所中断,等高优先级的中断服务的中断源所中断,等高优先级的中断服务程序结束后,再返回去执行被中断的低优程序结束后,再返回去执行被中断的低优先级中断服务程序。先级中断服务程序。硝拭吵臀悉吞吁幌鸳疏乖遇杉哪系卒躁躺步担卯闺执滨牌镊苇畏拌碗嗣苏六章中断与中断控制六章中断与中断控制66.1

8、.2 6.1.2 中断优先级与中断嵌套中断优先级与中断嵌套中断嵌套示意图:中断嵌套示意图:1#中断请求中断请求原主程序原主程序1#中断服中断服务程序务程序2#中断请求中断请求2#中断服中断服务程序务程序3#中断请求中断请求3#中断服中断服务程序务程序返回返回返回返回返回返回(中断优先级:(中断优先级:3#2#1#) 嵌套的级数原则上不限,只取决于堆栈深度,嵌套的级数原则上不限,只取决于堆栈深度,实际上与要求的中断响应速度也有关。实际上与要求的中断响应速度也有关。响应响应响应响应响应响应颤偏夫临蛰酣缉丈黑哑苔族巴澜橇江逻妄渗踢嘱赚裔赠屑浓募选祖炽卢弊六章中断与中断控制六章中断与中断控制76.1.

9、3 CPU6.1.3 CPU响应中断的条件响应中断的条件 对中断源发出的中断请求是否响应,视对中断源发出的中断请求是否响应,视CPUCPU内中断和外中断有所不同:内中断和外中断有所不同:q对内中断请求,可在当前指令执行前或执行后直对内中断请求,可在当前指令执行前或执行后直 接转入中断周期,由内部硬件自动执行预定的操作;接转入中断周期,由内部硬件自动执行预定的操作;q对外中断请求,通常必须满足以下条件才能响应:对外中断请求,通常必须满足以下条件才能响应:置位了中断请求触发器置位了中断请求触发器-每个中断源对应一每个中断源对应一 个,通过它来保持请求信号,直至中断响应。个,通过它来保持请求信号,直

10、至中断响应。辑赊钧峡颖漓柴涌仆眉懈劝袖醉癣葛悠墟补邱拇妨窑窄予叠涉桅奶衍著皿六章中断与中断控制六章中断与中断控制86.1.3 CPU6.1.3 CPU响应中断的条件响应中断的条件中断屏蔽触发器处于非屏蔽状态中断屏蔽触发器处于非屏蔽状态-在多中断在多中断 源系统中,为增加中断控制的灵活性,一般源系统中,为增加中断控制的灵活性,一般 为每个中断源都设置一个中断屏蔽触发器。为每个中断源都设置一个中断屏蔽触发器。具有中断屏蔽具有中断屏蔽 的中断接口的中断接口AB15AB150 0DB7DB70 0RDRDWRWRINTRINTRCPUCPUAB7AB70 0地址地址译码译码地址地址译码译码数据总线数据

11、总线AB7AB70 0& &CSCS控制信号控制信号端口端口1 1R RQ QD DD DQ Q+5V+5V中断中断请求请求 中断中断屏蔽屏蔽 数据数据(中断源)(中断源)外设外设READYREADY数据数据端口端口偷渔印恃胃脾创诽嘻聊畴冉价绽鬼享庄烘还刊靠姐瑶石侵凝刮漾亲凉忱畸六章中断与中断控制六章中断与中断控制9CPUCPU内部是中断开放的内部是中断开放的-CPU-CPU内部有中断允许内部有中断允许 触发器,只有当它为触发器,只有当它为1 1时才能响应外部中断。时才能响应外部中断。 (STI (STI指令就是起这种作用的,使指令就是起这种作用的,使IFIF标志位置标志位置1)1)没有更高优

12、先级别的中断请求正在被响应或没有更高优先级别的中断请求正在被响应或 正发出、正挂起。正发出、正挂起。CPUCPU正在执行的现行指令已经结束正在执行的现行指令已经结束-因为因为CPUCPU 一定是在每条指令执行完后才采样一定是在每条指令执行完后才采样INTRINTR线而线而 响应可能提出的中断请求。响应可能提出的中断请求。6.1.3 CPU6.1.3 CPU响应中断的条件响应中断的条件种赃悲杭榆腺补缄向支掖府设纲六又叹考春冲灭础职肮顶血秩拌娟被锗淫六章中断与中断控制六章中断与中断控制106.1.4 6.1.4 中断处理过程中断处理过程响应中断请求响应中断请求保护断点和现场保护断点和现场 开中断开

13、中断中断服务中断服务恢复现场恢复现场 开中断开中断中断返回中断返回 关中断关中断妈冰账断腔族脉陆珠瓦混窍季典熏偿泵供咒腐竣历莽冕喘唤勤兽芬溶继仕六章中断与中断控制六章中断与中断控制116.1.4 6.1.4 中断处理过程中断处理过程q保护断点和现场保护断点和现场 为使中断处理程序不影响被中断程序运行,为使中断处理程序不影响被中断程序运行,须首先将断点处的有关各寄存器内容和标志位须首先将断点处的有关各寄存器内容和标志位的状态压入堆栈保护起来,以便中断处理完毕的状态压入堆栈保护起来,以便中断处理完毕后能返回原程序,从断点开始正确执行。后能返回原程序,从断点开始正确执行。要保护的断点现场内容通常包括

14、:要保护的断点现场内容通常包括:vCPUCPU的标志寄存器的标志寄存器(FR)(FR)内容内容v代表断点地址的程序计数器代表断点地址的程序计数器PCPC内容或代码内容或代码 段寄存器段寄存器CSCS和指令指针和指令指针(E)IP(E)IP内容内容v中断处理程序中将用到的各中断处理程序中将用到的各CPUCPU内部寄存器内部寄存器 内容内容q开中断开中断 以便执行中断服务程序时,能响应更高级以便执行中断服务程序时,能响应更高级别的中断源请求。别的中断源请求。奥挝艇窃泻撤棍奥卜复狰刀翟冠牧残肯处疆嘱溪薪端日窖叁埋珐赣酱腰碧六章中断与中断控制六章中断与中断控制12 完成完成I/OI/O操作或异常事件处

15、理,是整个中操作或异常事件处理,是整个中断处理程序的核心。断处理程序的核心。q中断服务中断服务q关中断关中断目的是保证在恢复现场时不被新的中断所打扰。目的是保证在恢复现场时不被新的中断所打扰。q恢复现场恢复现场 多数多数CPUCPU是用是用POPPOP指令把保存的断点信息从指令把保存的断点信息从堆栈中弹出,以达到恢复现场的目的堆栈中弹出,以达到恢复现场的目的q中断返回中断返回 使断点地址送回程序计数器或使断点地址送回程序计数器或CSCS:(E)IP(E)IP,继续执行被中断的程序。,继续执行被中断的程序。6.1.4 6.1.4 中断处理过程中断处理过程跟泰拭礁曝夯扣案刑氢验辽特陨池养晋斡酒扮悉

16、微脚赫拿叙尹壬募咖脉尔六章中断与中断控制六章中断与中断控制13中断处理过程中断处理过程响应中断请求响应中断请求保护断点和现场保护断点和现场 开中断开中断中断服务中断服务恢复现场恢复现场 开中断开中断中断返回中断返回 关中断关中断 上述一般中断处理流程中是否每步工作都要做,上述一般中断处理流程中是否每步工作都要做,取决于具体的取决于具体的CPUCPU种类。种类。保护断点和现场保护断点和现场中断服务中断服务恢复现场恢复现场中断返回中断返回森圾塔基厉拨师俱疫诱庄娜孕部殿放空税舌蒋占玖舞耪沙终嗣巴闰背整县六章中断与中断控制六章中断与中断控制146.26.2 中断源的识别与判优中断源的识别与判优 凡有多

17、中断源存在时,都存在一个中凡有多中断源存在时,都存在一个中断源的识别与判优问题。断源的识别与判优问题。q如果如果CPUCPU或或CPUCPU模块提供了多根中断请求线,且多模块提供了多根中断请求线,且多于外部中断源数目,则由于它们之间的识别和判优于外部中断源数目,则由于它们之间的识别和判优已由芯片或模块内部逻辑按一定优先级算法已由芯片或模块内部逻辑按一定优先级算法( (一般一般为固定优先级算法为固定优先级算法) )设计好了,用户只需按要求将设计好了,用户只需按要求将不同中断源接至不同中断请求输入线上即可。不同中断源接至不同中断请求输入线上即可。q如果系统只有一根中断请求线或者虽有多根中断如果系统

18、只有一根中断请求线或者虽有多根中断请求线但仍比中断源数目少时,就需要多中断源合请求线但仍比中断源数目少时,就需要多中断源合用一根中断请求线,这种情况下就需要用户自己来用一根中断请求线,这种情况下就需要用户自己来设计中断源的识别与判优逻辑。设计中断源的识别与判优逻辑。缸益喧镑壕令碉册锗湖艇币迹秧虚察怖匙求闻免童撩帜螺话摔坍爬灵炒聪六章中断与中断控制六章中断与中断控制156.2 6.2 中断源的识别与判优中断源的识别与判优q多中断源的识别与判优,要解决两大问题:多中断源的识别与判优,要解决两大问题:1)1)判别哪个中断请求源的优先权最高;判别哪个中断请求源的优先权最高;2)2)将程序转移到相应的中

19、断处理程序入口。将程序转移到相应的中断处理程序入口。完成这一任务的方法通常有两种:完成这一任务的方法通常有两种:v程序查询式识别与判优程序查询式识别与判优v中断向量式识别与判优中断向量式识别与判优土帐椅忧溜造吧尘搅枣稀材娇宝苞惑与湖马摔缕溃察困法瞳灼锋涸丛嘛牢六章中断与中断控制六章中断与中断控制16程程序序查查询询式式识识别别与与判判优优 软件识别与判优方法。所需的硬件支持最软件识别与判优方法。所需的硬件支持最少,主要需要一个中断请求锁存器作为状态输少,主要需要一个中断请求锁存器作为状态输入口,以供入口,以供MPUMPU查询用。查询用。MPUMPU中断处中断处理器理器INTINTD7D7D6D

20、6D0D0:IACKIACK11中断中断请求请求锁存锁存器器中断接口中断接口CSCSINT0INT0INT1INT1INT7INT70#=I/O0#=I/O1#=I/O1#=I/O7#=I/O7#=I/O 中断响应时,中断响应时,MPUMPU用软件程序读入中断请求锁存器状用软件程序读入中断请求锁存器状态,按确定的次序逐位查询,以识别中断请求源,当查到态,按确定的次序逐位查询,以识别中断请求源,当查到某位状态有效时,便转入相应某位状态有效时,便转入相应I/OI/O服务程序,为该外设服服务程序,为该外设服务。查询各位的次序就决定了各外设的中断优先级。务。查询各位的次序就决定了各外设的中断优先级。6

21、.2 6.2 中断源的识别与判优中断源的识别与判优牛斩订乙属耗扦加喳银覆犹扔亡坍擒昨盲颖元复联奠刀怪晌痔郝低熔均醒六章中断与中断控制六章中断与中断控制17中断处理程序中断处理程序保护现场保护现场读中断请求状态读中断请求状态N NN N恢复现场恢复现场Y Y7#I/O7#I/O请求?请求?7#I/O7#I/O服务程序服务程序Y Y6#I/O6#I/O请求?请求?6#I/O6#I/O服务程序服务程序N NY Y0#I/O0#I/O请求?请求?0#I/O0#I/O服务程序服务程序中断返回中断返回查询式中断流程图查询式中断流程图6.2 6.2 中断源的识别与判优中断源的识别与判优程程序序查查询询式式识

22、识别别与与判判优优惠苦苹舒茶獭碗柬肯谁莫室森郧苹突盔行劳竖怎链喂攘俄跪横俺醉叭靖烽六章中断与中断控制六章中断与中断控制18程序查询式识别与判优的优缺点:程序查询式识别与判优的优缺点:优点:优点:硬件简单,程序层次分明,只要改变程硬件简单,程序层次分明,只要改变程序中查询的顺序而不必改变硬件连接,序中查询的顺序而不必改变硬件连接,即可方便地改变外设的中断优先即可方便地改变外设的中断优先级。级。缺点:缺点:中断源较多时,中断响应速度慢,中断源较多时,中断响应速度慢,CPUCPU使使用效率降低。用效率降低。6.2 6.2 中断源的识别与判优中断源的识别与判优程程序序查查询询式式识识别别与与判判优优吧

23、软阻况袖纲适吓恼规彬般再恼粮沁踢肪伸韭揽痹氯庞齿皂笆坍瘤阅伙伦六章中断与中断控制六章中断与中断控制19中中断断向向量量式式识识别别与与判判优优 硬件识别与判优方法。主要用硬件电路对硬件识别与判优方法。主要用硬件电路对中断源进行优先级排队,并将程序引导到有关中断源进行优先级排队,并将程序引导到有关I/OI/O的中断服务程序入口。的中断服务程序入口。 具体实现方案有菊花链优先级仲裁和并行具体实现方案有菊花链优先级仲裁和并行优先级仲裁两种。优先级仲裁两种。MPUMPU中中断断处处理理器器数据总线数据总线(DB)(DB)中断向量中断向量发生器发生器1中断向量中断向量发生器发生器2中断向量中断向量发生器

24、发生器nIACKIACKIN1IN1OUT1OUT1OUT2OUT21#I/O1#I/O2#I/O2#I/On#I/On#I/OIN2IN2IN3IN3 INnINnIR1IR1IR2IR2IRnIRnINTINT中断请求线中断请求线每个中断请求源对应有一个向量发生器。每个中断请求源对应有一个向量发生器。6.2 6.2 中断源的识别与判优中断源的识别与判优嫡印禾弯肤煎烟刮昌庙介屎榨渔育池姨栗庞慧圆痊叠见嗜冀睫鼓在泊掐训六章中断与中断控制六章中断与中断控制20并行优先级仲裁并行优先级仲裁 其核心部件是一个优先级编码器和各中断源公用的中其核心部件是一个优先级编码器和各中断源公用的中断向量发生器。当

25、断向量发生器。当IACKIACK有效时,中断向量发生器将把与最有效时,中断向量发生器将把与最高优先级中断请求源对应的中断向量号送上数据总线高优先级中断请求源对应的中断向量号送上数据总线DBDB。 无论菊花链还是并行结构,当无论菊花链还是并行结构,当MPUMPU在中断响应周期中在中断响应周期中收到中断向量号后,便通过计算或查表得到中断向量收到中断向量号后,便通过计算或查表得到中断向量( (即即中断服务程序入口地址中断服务程序入口地址) ),并自动进入和执行相应的中断,并自动进入和执行相应的中断服务程序。服务程序。6.2 6.2 中断源的识别与判优中断源的识别与判优中中断断向向量量式式识识别别与与

26、判判优优MPUMPU数据总线数据总线(DB)(DB)IACKIACKINTINT中断向量发生器中断向量发生器优先级编码器优先级编码器n nIRIR0 0IRIR1 1中中断断处处理理器器绣颐擦钟蓑园兑爹跳餐赎钩工左篓宾酒计蝶钥玛任围概颅幂月牛眠耽荆糙六章中断与中断控制六章中断与中断控制21 例如在例如在8086/8088/80186/802868086/8088/80186/80286微机中,都微机中,都在内存的最低在内存的最低10241024个字节专门建立了一个中断向个字节专门建立了一个中断向量表,用来存放量表,用来存放256256个中断向量,每个中断向量个中断向量,每个中断向量占用占用4

27、4字节,低字节,低2 2字节装中断服务程序入口地址的字节装中断服务程序入口地址的偏移量,高偏移量,高2 2字节装其段基址。字节装其段基址。MPUMPU收到中断向量收到中断向量号号(8(8位位) )后,乘以后,乘以4 4作为查表索引,即可查得对应作为查表索引,即可查得对应的中断向量,并将它装入的中断向量,并将它装入CS:IPCS:IP,从而控制程序,从而控制程序转移到中断处理程序去执行。转移到中断处理程序去执行。6.2 6.2 中断源的识别与判优中断源的识别与判优中中断断向向量量式式识识别别与与判判优优玄戌哥需扮磅惰涟匈吕乔住壹蕴阳质烃疏禾蜂间缺巨益耕哥棋扒办增蚜债六章中断与中断控制六章中断与中

28、断控制22 这种向量式中断结构的最大优点是中断响这种向量式中断结构的最大优点是中断响应速度快,应速度快,CPUCPU使用效率高,原因是其中断源识使用效率高,原因是其中断源识别、判优和中断向量提供都是由硬件完成的。别、判优和中断向量提供都是由硬件完成的。实际中应用最多的典型中断控制器芯片有:实际中应用最多的典型中断控制器芯片有:vi8214-i8214-不可编程不可编程(8080(8080等等8 8位机中采用位机中采用) )6.2 6.2 中断源的识别与判优中断源的识别与判优中中断断向向量量式式识识别别与与判判优优vi8259A-i8259A-可编程可编程(PC(PC系列微机中广泛采用系列微机中

29、广泛采用) )险繁翅粤梨膀享沙涟跪说育赘嗡苹尹贤侩箩梢柴筋摊瘸垛锣处轮舜奉帐檄六章中断与中断控制六章中断与中断控制236.3 8259A6.3 8259A可编程中断控制器可编程中断控制器q内部结构与引脚功能内部结构与引脚功能q中断工作过程中断工作过程q应用编程应用编程谣晨礼丸匿许谣侯收简谐渝邦垂庙勤炒诌不渭肘杜馆溯彰纺调监堵钾瓮恒六章中断与中断控制六章中断与中断控制246.3.1 8259A6.3.1 8259A的内部结构与引脚功能的内部结构与引脚功能D7D7D0D0数据总线数据总线缓冲器缓冲器RDRDWRWRA0A0CSCSCAS0CAS0CAS1CAS1CAS2CAS2SP/ENSP/EN

30、ICW1ICW1ICW2ICW2ICW3ICW3ICW4ICW4读写电路读写电路级联缓冲器级联缓冲器/比较器比较器初始化初始化命令寄命令寄存器组存器组内内部部总总线线中断中断服务服务寄存寄存器器(ISR)优先优先级分级分析器析器中断中断请求请求寄存寄存器器(IRR)INTAINTAIR0IR0IR1IR1IR2IR2IR7IR7中断屏蔽寄存器中断屏蔽寄存器(IMR)操作命令操作命令寄存器组寄存器组OCW1OCW1OCW2OCW2OCW3OCW3控控 制制 逻逻 辑辑INTINT闯瓦迟蚊稀袁蔽妹堤棘傻掳踊匿植盼了亥裕评褥钱俺舌寅录懂蝉妥响搐抠六章中断与中断控制六章中断与中断控制256.3.1 8

31、259A6.3.1 8259A的内部结构与引脚功能的内部结构与引脚功能A0A0、RDRD、WRWR、CSCS对对8259A8259A读写操作的控制作用读写操作的控制作用禁止禁止 1 1 禁止禁止 1 1 1 1 IMRIMR数据总线数据总线 1 1 0 0 0 0 1 1IRRIRR、ISRISR、中断级、中断级BCDBCD码码数数据总线据总线 1 1 0 0 0 0 0 0数据总线数据总线 OCW1 OCW1、 ICW1 ICW1、ICW3ICW3、ICW4 ICW4 0 0 1 1 0 0 1 1数据总线数据总线ICW1ICW1 1 1 0 0 1 1 0 0 0 0数据总线数据总线OCW

32、3OCW3 1 1 0 0 0 0 1 1 0 0 0 0数据总线数据总线OCW2OCW2 0 0 0 0 0 0 1 1 0 0 0 0 D3 D3 CS CSA0A0RDRDWRWRD4D4读写操作读写操作这些命令的输入顺序由这些命令的输入顺序由8259A8259A内部的时序逻辑通过适当的时序控制加以保证。内部的时序逻辑通过适当的时序控制加以保证。对对IRRIRR、ISRISR或中断级或中断级BCDBCD码的选择,决定于在读出操作之前,码的选择,决定于在读出操作之前,CPUCPU写入的操作命令字写入的操作命令字OCW3OCW3的内容。的内容。虑素甘芦札娘衫碘深眩头郊棵祭圭拐俐寿磨律美堪确黄

33、哩痘纺叶称格惮爷六章中断与中断控制六章中断与中断控制26级联缓冲器级联缓冲器/ /比较器有关引脚功能:比较器有关引脚功能: SP/EN( SP/EN(从编程从编程/ /使能缓冲线使能缓冲线)-)-输入输入/ /输出输出线,作输入用时,用于区别主从线,作输入用时,用于区别主从8259A8259A芯片:芯片:主片使主片使SP=1SP=1;从片使;从片使SP=0SP=0。作输出用时,用于。作输出用时,用于选通选通8259A8259A至至CPUCPU之间的数据总线缓冲器。之间的数据总线缓冲器。 CAS0 CAS0、CAS1CAS1、CAS2(CAS2(级联线级联线)-)-输入输入/ /输出输出线,当线

34、,当8259A8259A是主片时,是主片时,CAS0CAS0CAS2CAS2是输出线,是输出线,在在CPUCPU响应中断时用来输出级联选择代码响应中断时用来输出级联选择代码, ,选选出请求中断的从片;当出请求中断的从片;当8259A8259A为从片为从片(SP=0)(SP=0)时时,CAS0,CAS0CAS2CAS2是输入线,接收主片送来的选择是输入线,接收主片送来的选择代码。代码。6.3.1 8259A6.3.1 8259A的内部结构与引脚功能的内部结构与引脚功能嘻儡视焚救牌冶十出园鳃兢词奴奄济露肋休汪釉蚤烟决艇蔚搞旗桥牡哀舞六章中断与中断控制六章中断与中断控制276.3.2 8259A6.

35、3.2 8259A的中断工作过程的中断工作过程 8259A 8259A进入工作状态的先决条件是必须按进入工作状态的先决条件是必须按要求对其初始化,使其处于准备就绪状态。要求对其初始化,使其处于准备就绪状态。8259A8259A对外部中断请求的响应和处理过程如下:对外部中断请求的响应和处理过程如下:1)1)当中断请求输入线当中断请求输入线IR0IR0IR7IR7中有一条或多条变高时,中有一条或多条变高时,则中断请求寄存器则中断请求寄存器IRRIRR的相应位置的相应位置11。2)2)若中断请求线中至少有一条是中断允许的,则若中断请求线中至少有一条是中断允许的,则8259A8259A由由INTINT

36、引脚向引脚向CPUCPU发出中断请求信号。发出中断请求信号。3)3)如如CPUCPU是处于开中断状态,则在当前指令执行完后,是处于开中断状态,则在当前指令执行完后,用用INTAINTA信号作为响应。信号作为响应。4)8259A4)8259A在接收到在接收到CPUCPU的的INTAINTA信号后,使最高优先级的信号后,使最高优先级的ISRISR位置位置“1”“1”,而相应的,而相应的IRRIRR位清位清“0”“0”,但在该中断,但在该中断响应周期中,响应周期中,8259A8259A并不向系统总线送任何内容。并不向系统总线送任何内容。窗哲巍绞盯害辟忿驰胯穴佃粟成狄翌习枢沛靛涂泊料锡否蹬恕栅氨寨挣架

37、六章中断与中断控制六章中断与中断控制286.3.2 8259A6.3.2 8259A的中断工作过程的中断工作过程5)CPU(8086/80885)CPU(8086/8088和和80X86)80X86)输出第二个输出第二个INTAINTA信号,信号,启动第二个中断响应周期。在此周期中,启动第二个中断响应周期。在此周期中,8259A8259A向数据总线输送一个向数据总线输送一个8 8位的中断类型号位的中断类型号( (也叫指针也叫指针或向量号或向量号) );CPUCPU读取此类型号后将它乘以读取此类型号后将它乘以4(4(左移左移2 2位位) ),即可从中断服务程序向量表,即可从中断服务程序向量表(

38、(即入口地址即入口地址表表) )中取出中断服务程序的入口地址,包括段地中取出中断服务程序的入口地址,包括段地址和段内偏移地址,据此址和段内偏移地址,据此CPUCPU便可转入中断服务便可转入中断服务程序。程序。6)6)如如8259A8259A工作在工作在AEOIAEOI模式,则在第二个模式,则在第二个INTAINTA脉脉冲信号结束时,将使被响应的中断源在冲信号结束时,将使被响应的中断源在ISRISR中的中的对应位清对应位清00,否则,直至中断服务程序结束,否则,直至中断服务程序结束,发出发出EOIEOI命令才使命令才使ISRISR中的对应位清中的对应位清00。邓后昭盗棉靶冰疾雪购课店观柿晓叙叭昌

39、铬边屉豫灼癌诣硷圣罐枷煽谊葡六章中断与中断控制六章中断与中断控制296.3.3 8259A6.3.3 8259A的应用编程的应用编程 8259A 8259A的编程是指用户通过写操作送一的编程是指用户通过写操作送一些命令字些命令字( (也叫控制字也叫控制字) )到到8259A8259A内部的控制内部的控制寄存器寄存器( (命令字寄存器命令字寄存器) ),用于设定或动态,用于设定或动态改变它的工作方式和控制模式。改变它的工作方式和控制模式。8259A8259A的编程包括两方面:的编程包括两方面:v初始化编程初始化编程v操作方式编程操作方式编程驯内依柱敝刨迁享戎茫他符非叔轰轩谷讽云敢忻熄幂撤祟探灰畜

40、钟镣史丝六章中断与中断控制六章中断与中断控制306.3.3 8259A6.3.3 8259A的应用编程的应用编程1.1.初始化编程初始化编程 写初始化命令字写初始化命令字ICW1ICW1ICW4ICW4到初始化命令寄存器组到初始化命令寄存器组 这项工作一定要在这项工作一定要在8259A8259A开始工作之前完成,用于建立开始工作之前完成,用于建立基本工作条件,写入后一般不基本工作条件,写入后一般不再改变。再改变。对初始化编程要注意两点:对初始化编程要注意两点:v写写ICWICW的流程必须按规的流程必须按规 定顺序写,不能颠倒。定顺序写,不能颠倒。v各各ICWICW的格式的格式/ /功能功能写写

41、ICW1ICW1写写ICW2ICW2初始化完成初始化完成N N写写ICW3ICW3级联?级联?Y Y写写ICW4ICW4Y Y要要ICW4?ICW4?N N乌警誉源钧附冬掠忌鄙淄摄瓤涯宙抑送剪圾俱匝掷佳恬掺捣腹交洲普兑冠六章中断与中断控制六章中断与中断控制31写初始化命令字写初始化命令字ICW1ICW1v使使8259A8259A对中断请求信号边沿检测电路复位。对中断请求信号边沿检测电路复位。 它仅在中断请求信号由低变高时能产生中断。它仅在中断请求信号由低变高时能产生中断。v清除中断屏蔽寄存器,设置中断优先级排清除中断屏蔽寄存器,设置中断优先级排 队队,IRQ0,IRQ0IRQ7IRQ7依次降低

42、。依次降低。v指明系统使用的指明系统使用的8259A8259A是单片还是多片级联。是单片还是多片级联。格式:格式:6.3.3 8259A6.3.3 8259A的应用编程的应用编程0-0-多片多片8259A8259A1-1-单片单片8259A8259AA0A0D7D7D6D6D5D5 D4D4D3D3D2D2D1D1D0D00 0A7A7A6A6A5A51 1LTIMLTIMA AS SIC4IC4中断向量地址中断向量地址, ,仅在仅在8080/80858080/8085模式下用模式下用0-0-边沿触发边沿触发1-1-电位触发电位触发0-0-不需不需ICW4ICW41-1-需要需要ICW4ICW

43、4地址间距地址间距0-0-间距间距8 81-1-间距间距4 4崔肉凶号晨奈啪咯三花芹救担咱倦排涣罐印毕社扼宛娃禾毡巩拔怀脐受盎六章中断与中断控制六章中断与中断控制32初始化命令字初始化命令字ICW2ICW2 设定设定8080/80858080/8085模式系统的中断向量地址模式系统的中断向量地址高高8 8位位A15A15A8A8或或8086/80888086/8088模式系统的中断向模式系统的中断向量号高量号高5 5位位T7T7T3T3格式:格式:ICW2ICW2A0A0D7D7D6D6D5D5D4D4D3D3D2D2 D1D1D0D01 1A15/T7A15/T7 A14/T6A14/T6A

44、13/T5A13/T5A12/T4A12/T4A11/T3A11/T3A10A10A9A9A8A88080/80858080/8085模式下模式下A15A15A8A8中断向量地址中断向量地址8086/80888086/8088模式下模式下T7T7T3T3中断向量地址中断向量地址6.3.3 8259A6.3.3 8259A的应用编程的应用编程犀赋虫纲侦吗挛私缓决衙董界锯粮瑶腕篡捎蒲毫股税绊墓门邯燎支依拘夺六章中断与中断控制六章中断与中断控制33目的:用于定义目的:用于定义8259A 88259A 8根中断请求线上有无级根中断请求线上有无级联联8259A8259A从片从片写初始化命令字写初始化命令

45、字ICW3ICW3 若系统只有一片若系统只有一片8259A8259A,则不用,则不用ICW3ICW3,若有,若有 多片多片8259A8259A级联,则每一片级联,则每一片8259A8259A都必须使用都必须使用ICW3ICW3,且主、从片的,且主、从片的ICW3ICW3格式不同。格式不同。主片主片ICW3ICW31-IRQi1-IRQi线上有从片线上有从片0-IRQi0-IRQi线上无从片线上无从片A0A0D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0M7M7 M6M6 M5M5 M4M4 M3M3 M2M2 M1M1 M0M01 1A0A0D7D7 D6D6

46、D5D5 D4D4 D3D3 D2D2 D1D1 D0D01 10 00 00 00 00 0 ID2ID2ID1ID1ID0ID00 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11 11 11 11 11 11 11 12 23 34 45 56 67 7IRQiIRQi6.3.3 8259A6.3.3 8259A的应用编程的应用编程炙簇喀疏恬氏靛涟淘恫问蛙菱收识电吩路采撂儒饲龙悍赦阮近砸掏多开惩六章中断与中断控制六章中断与中断控制34目的:定义目的:定义8259A8259A工作时用工作时用8080/80858080/8085

47、模式还是模式还是8086/80888086/8088模式,以及中断服务程序是否要送出模式,以及中断服务程序是否要送出EOIEOI命令,以清除中断服务寄存器命令,以清除中断服务寄存器ISRISR,允许其他中断。,允许其他中断。写初始化命令字写初始化命令字ICW4ICW41-1-特殊全嵌套方式特殊全嵌套方式0-0-一般全嵌套方式一般全嵌套方式1-8086/80881-8086/8088 模式模式0-8080/8085 0-8080/8085 模式模式1-1-自动自动EOIEOI0-0-正常正常EOIEOI非缓冲方式非缓冲方式缓冲方式缓冲方式/ /从控制器从控制器缓冲方式缓冲方式/ /主控制器主控制

48、器0 00 01 11 11 1A0A0D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D01 10 00 00 0SFNMSFNMBUFBUF M/SM/SAEOIAEOI PMPMICW4ICW4格式:格式:6.3.3 8259A6.3.3 8259A的应用编程的应用编程迢甲怀醇翠牵慰吠廊拯染赖渗呢鸿残傻擞赦质强疼眶闻会糊东遗茅樟恃奥六章中断与中断控制六章中断与中断控制35-有选择地写操作命令字有选择地写操作命令字OCW1OCW1OCW3OCW3到操作命到操作命 令寄存器组令寄存器组2.2.操作方式编程操作方式编程 这项工作可在这项工作可在8259A8259A已经初始化后的任何

49、时已经初始化后的任何时候进行,目的是对中断处理过程实现动态控制。候进行,目的是对中断处理过程实现动态控制。 如果不写操作命令字,如果不写操作命令字,8259A8259A就按初始化编就按初始化编程所设置好的方式和模式工作,工作于程所设置好的方式和模式工作,工作于IR0IR0优先优先级最高,从级最高,从IR0IR0IR7IR7优先级依次降低的固定优优先级依次降低的固定优先级的全嵌套工作方式。先级的全嵌套工作方式。 如需改变初始化时设置的中断控制方式,或如需改变初始化时设置的中断控制方式,或屏蔽某些中断级,读出一些状态信息,就必须在屏蔽某些中断级,读出一些状态信息,就必须在8259A8259A进入工

50、作之前或工作过程中酌情写入操作进入工作之前或工作过程中酌情写入操作命令字命令字OCWOCW。6.3.3 8259A6.3.3 8259A的应用编程的应用编程狮坑奢彦挛考入焰董蛔抹揭窘闭挖唯济纸亩无乙尼椭香捍酚干阎悟犊呛嘴六章中断与中断控制六章中断与中断控制36目的:用来设置目的:用来设置/ /清除对中断源的屏蔽清除对中断源的屏蔽写操作命令字写操作命令字OCW1OCW1格式:格式:A0A0D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D01 1M7M7M6M6M5M5M4M4M3M3M2M2M1M1M0M00-0-中断请求被开放中断请求被开放1-1-中断请求被屏蔽中断请求被屏蔽6.

51、3.3 8259A6.3.3 8259A的应用编程的应用编程探锥杏棍枯忘戚响牧加蓝殷钠泡采沧胚稚钦愉趾吨腆矮材懈炙廖联倘字寅六章中断与中断控制六章中断与中断控制37目的:设置中断优先级是否循环,循环的方式及目的:设置中断优先级是否循环,循环的方式及中断结束的方式中断结束的方式写操作命令字写操作命令字OCW2OCW2格式:格式:0 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11 11 11 11 11 11 10 00 00 00 00 00 00 00 00 00 00 00 00 01 11 11 11 11 11 11 11 11

52、 11 11 11 11 12 23 34 45 56 67 7A0A0D7D7D6D6D5D5D4D4 D3D3D2D2D1D1D0D00 0R RSLSLEOIEOI0 00 0L2L2L1L1L0L0标志位标志位非特殊非特殊EOIEOI特殊特殊EOIEOI中断结束中断结束自动循环优先级清除自动循环优先级清除自动循环自动循环EOIEOI自动循环优先级设置自动循环优先级设置自动循环自动循环特殊循环特殊循环EOIEOI特殊循环优先级设置特殊循环优先级设置停止操作停止操作特殊循环特殊循环最低优先最低优先级编码级编码6.3.3 8259A6.3.3 8259A的应用编程的应用编程钱刘事耕仑骗辰遁可

53、漆褥醛瓜跋阉湍来种莲零娥吓咏拉炸闭北缄帕时句怠六章中断与中断控制六章中断与中断控制38目的:用于设置查询方式、特殊屏蔽方式、以及目的:用于设置查询方式、特殊屏蔽方式、以及用来读用来读8259A8259A的的IRRIRR、ISRISR、IMRIMR的当前状态的当前状态写操作命令字写操作命令字OCW3OCW3格式:格式:A0A0D7D7D6D6D5D5D4D4 D3D3D2D2D1D1D0D00 00 00 0S1S1S2S21 1P PPRPRRISRIS标志位标志位0 00 00 00 01 11 11 11 1无作用无作用特殊屏蔽方式清除特殊屏蔽方式清除特殊屏蔽方式设置特殊屏蔽方式设置1-1

54、-查询命令查询命令0-0-不查询不查询0 00 00 00 01 11 11 11 1无作用无作用下一个下一个RDRD读读IRRIRR下一个下一个RDRD读读ISRISR6.3.3 8259A6.3.3 8259A的应用编程的应用编程隐瞪象何桥秆颧诚捷骄秦啪侵边膳址咬委臆陵喀原牲躯节扮业粱另讯奄巡六章中断与中断控制六章中断与中断控制39 把正在执行的高级中断屏蔽掉,而开放较低级把正在执行的高级中断屏蔽掉,而开放较低级中断的屏蔽方式中断的屏蔽方式特殊屏蔽方式特殊屏蔽方式 先利用先利用OCW1OCW1命令将正在执行的高级中断屏蔽掉;命令将正在执行的高级中断屏蔽掉;然后用然后用OCW3OCW3命令命

55、令(D6D5=11)(D6D5=11)设置特殊屏蔽方式,这样设置特殊屏蔽方式,这样可使可使ISRISR相应位的功能中止,直到清除特殊屏蔽方式。相应位的功能中止,直到清除特殊屏蔽方式。 利用该功能,可使中断不受优先级限制,而利用该功能,可使中断不受优先级限制,而人为地为某一较低优先级中断服务,这就为用户人为地为某一较低优先级中断服务,这就为用户提供了很大的灵活性。提供了很大的灵活性。实现方法:实现方法:6.3.3 8259A6.3.3 8259A的应用编程的应用编程冶舔劫坊醉拈岸辐丑歧腊痉硬豹梁臼涕匿且锌隅瓢试渭舵澄赌轻盐篆譬唁六章中断与中断控制六章中断与中断控制40 例如系统正在为例如系统正在

56、为IRQ4IRQ4中断服务,服务过程中为了中断服务,服务过程中为了允许比它低的中断得到响应,可用特殊屏蔽命令字将允许比它低的中断得到响应,可用特殊屏蔽命令字将IRQ4IRQ4中断暂时屏蔽,当为较低级中断服务完后,再解中断暂时屏蔽,当为较低级中断服务完后,再解除对除对IRQ4IRQ4中断的屏蔽中断的屏蔽, ,以最后完成对它的中断服务。以最后完成对它的中断服务。. . ;为;为IRQ4IRQ4中断服务的程序中断服务的程序 . . ;屏蔽除准备允许响应的低级中断外的;屏蔽除准备允许响应的低级中断外的. . ;所有其它低级中断;所有其它低级中断CLI CLI ;为在;为在IRQ4IRQ4服务程序中开放

57、低级中断设服务程序中开放低级中断设 ;置特殊命令字而关中断;置特殊命令字而关中断MOV AL,10H MOV AL,10H ;送屏蔽;送屏蔽IRQ4IRQ4的的OCW1OCW1命令命令MOV DX,PORT1 MOV DX,PORT1 ;送;送OCW1OCW1口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCW18259A,A0=1OCW18259A,A0=1MOV AL,68H MOV AL,68H ;送特殊屏蔽方式字;送特殊屏蔽方式字OCW3AL,S1S2=11OCW3AL,S1S2=116.3.3 8259A6.3.3 8259A的应用编程的应用编程A0A0D7D7D6D

58、6D5D5D4D4 D3D3D2D2D1D1D0D00 00 00 0S1S1S2S21 1P PPRPRRISRIS标志位标志位0 00 00 00 01 11 11 11 1无作用无作用特殊屏蔽方式清除特殊屏蔽方式清除特殊屏蔽方式设置特殊屏蔽方式设置1-1-查询命令查询命令0-0-不查询不查询0 00 00 00 01 11 11 11 1无作用无作用下一个下一个RDRD读读IRRIRR下一个下一个RDRD读读ISRISR劈晶举弱碉皑句振璃涯包疯沧厦捐只灵诌鳃怎笺螺绣轿舍腋谴蛔馅祖泄排六章中断与中断控制六章中断与中断控制41MOV DX,PORT2 MOV DX,PORT2 ;送;送OCW

59、3OCW3口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCW38259A,A0=0OCW38259A,A0=0STI STI ;开中断;开中断. . .CLI CLI ;为复位特殊屏蔽方式而关中断;为复位特殊屏蔽方式而关中断MOV AL,48H MOV AL,48H ;OCW3AL,S1S2=10OCW3AL,S1S2=10MOV DX,PORT2 MOV DX,PORT2 ;送;送OCW3OCW3口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCW38259A,A0=0OCW38259A,A0=0MOV AL,0 MOV AL,0 ;解除对;解除对IRQ4I

60、RQ4的屏蔽的屏蔽MOV DX,PORT1 MOV DX,PORT1 ;OCW1OCW1口地址口地址DXDXOUT DX,AL OUT DX,AL ;OCW18259A,A0=1OCW18259A,A0=1STI STI ;开中断;开中断 ;包含;包含EOIEOI的中断结束命令的中断结束命令IRET IRET ;中断结束返回;中断结束返回6.3.3 8259A6.3.3 8259A的应用编程的应用编程渔韶秃刮耳步脑至咕袜鱼潭闷印脂肠定围宠吐屡耻谍卜瘦畔鸟貌比戳康模六章中断与中断控制六章中断与中断控制42 CPU CPU根据需要随时查询中断源,当查询到有中断根据需要随时查询中断源,当查询到有中断

61、请求时,就转入为相应中断源服务的程序中去。请求时,就转入为相应中断源服务的程序中去。查询方式查询方式v系统关中断,写入查询命令字系统关中断,写入查询命令字OCW3OCW3至至0 0端口端口实现方法:实现方法:v读读0 0口,可读到下列查询字:口,可读到下列查询字:I I X X X X W2 W1 W0 X X X X W2 W1 W0I=1 I=1 表示有中断请求,表示有中断请求,W2W1W0W2W1W0为中断请求源中为中断请求源中优先级最高者的编码,程序执行转到优先级最高者的编码,程序执行转到W2W1W0W2W1W0所所对应的中断源服务程序去。对应的中断源服务程序去。I=0 I=0 表示无

62、中断请求,表示无中断请求,CPUCPU继续执行原程序。继续执行原程序。6.3.3 8259A6.3.3 8259A的应用编程的应用编程抹哺掏菊卜疫炔抢伶浙敷涣凤萤胚坞责手醚青垦丽镊齿赞填冬跑箱搀枪捌六章中断与中断控制六章中断与中断控制43v读读IRRIRR、ISRISR的方法:先发读命令字的方法:先发读命令字OCW3OCW3到到0 0端口,端口, 再读再读0 0端口。端口。读读8259A8259A状态状态读命令字格式为:读命令字格式为:0 0 0 0 1 0 R1 R00 0 0 0 1 0 R1 R0R1R0=10R1R0=10,读出的是中断请求寄存器,读出的是中断请求寄存器IRRIRR;R

63、1R0=11R1R0=11,读出的是中断服务寄存器,读出的是中断服务寄存器ISRISR。v读读IMRIMR的方法:直接对的方法:直接对1 1端口进行读操作,即可端口进行读操作,即可 读出读出IMRIMR的内容。的内容。6.3.3 8259A6.3.3 8259A的应用编程的应用编程莽丸拧仰逗竭旅押头肤著伸迹祥裸超蘑潦犊歹须属向渡与盗超琳六孪恭率六章中断与中断控制六章中断与中断控制448259A8259A具有十分灵活的中断管理方式:具有十分灵活的中断管理方式:3.3.可编程设置的工作方式可编程设置的工作方式中断优先级管理中断优先级管理-中断管理的核心中断管理的核心6.3.3 8259A6.3.3

64、 8259A的应用编程的应用编程 1)1)中断嵌套方式中断嵌套方式 2) 2)中断优先级循环方式中断优先级循环方式 3) 3)中断屏蔽方式中断屏蔽方式 4) 4)程序查询方式程序查询方式 5) 5)中断结束方式中断结束方式 6) 6)中断请求触发方式中断请求触发方式 7) 7)读状态方式读状态方式 8) 8)数据缓冲方式数据缓冲方式 9) 9)多片级联方式多片级联方式反妒张橙祷嘲鸿笆衣舆擎蹦球岸亿舒蕉套啼眯算鸽焙贿闸审冯疑蛾咬掘蒲六章中断与中断控制六章中断与中断控制45 8259A 8259A中有两种中断嵌套方式:全嵌套方式和特中有两种中断嵌套方式:全嵌套方式和特殊全嵌套方式殊全嵌套方式1.1

65、.中断嵌套方式中断嵌套方式全嵌套方式全嵌套方式q一种最普通的工作方式,芯片写完初始化命令字一种最普通的工作方式,芯片写完初始化命令字ICWICW后,后,如不再写入操作命令字如不再写入操作命令字OCWOCW,则自动进入并保持此方式。,则自动进入并保持此方式。此时中断优先级固定为此时中断优先级固定为IRQ0IRQ0最高,最高,IRQ7IRQ7最低,且高级中最低,且高级中 断源可中断低级中断源。断源可中断低级中断源。系统按此工作方式工作的条件:系统按此工作方式工作的条件:v主程序必须开中断。主程序必须开中断。v每进入一个中断服务程序,系统都会自动关中断,故必每进入一个中断服务程序,系统都会自动关中断

66、,故必须在中断服务程序中再次开中断,才有可能嵌套更高级须在中断服务程序中再次开中断,才有可能嵌套更高级的中断。的中断。v每次中断服务程序结束时,必须执行中断结束命令,每次中断服务程序结束时,必须执行中断结束命令,清除清除ISRISR中对应的位,才能返回断点并响应再次到来的中对应的位,才能返回断点并响应再次到来的中断请求。中断请求。6.3.3 8259A6.3.3 8259A的应用编程的应用编程攘绚采铜遗最欧骄屏拣蛛圃竞厉仪殿躲枫凉刃恍半旋曾抡模沏棚匣赎办惶六章中断与中断控制六章中断与中断控制46全嵌套中断方式流程全嵌套中断方式流程开中断开中断主程序主程序IRQ3IRQ3中断服务程序中断服务程序

67、IRQ1IRQ1中断请求中断请求开中断开中断: :关中断关中断中断结束中断结束EOIEOI开中断开中断返回返回关中断关中断中断结束中断结束EOIEOI开中断开中断返回返回: :开中断开中断IRQ1IRQ1中断服务程序中断服务程序6.3.3 8259A6.3.3 8259A的应用编程的应用编程: :IRQ3IRQ3中断请求中断请求汞填槽揖挽铺翔湍疚录垣核读寨秋梦乖呸憨绎瞬昏掸并偶烙烬骗雍抒虽王六章中断与中断控制六章中断与中断控制47特殊全嵌套方式特殊全嵌套方式 适用于多片适用于多片8259A8259A级联且响应的中断优先级保存级联且响应的中断优先级保存在各从片中的大系统。在各从片中的大系统。与普

68、通全嵌套方式相比,特殊全嵌套方式的特殊性表现在:与普通全嵌套方式相比,特殊全嵌套方式的特殊性表现在:q当从片的中断请求被响应后,主片并不封锁从当从片的中断请求被响应后,主片并不封锁从片的片的INTINT输入端,以便从片中优先级更高的请求输入端,以便从片中优先级更高的请求可得到响应。可得到响应。q在从片中断服务程序快结束时要检查其在从片中断服务程序快结束时要检查其ISRISR内容,内容,检测刚服务完的中断是否为该从片唯一的中断请检测刚服务完的中断是否为该从片唯一的中断请求源,如是,则连发两个非特殊求源,如是,则连发两个非特殊EOIEOI命令,使从片、命令,使从片、主片相继结束中断;否则,只发一个

69、主片相继结束中断;否则,只发一个EOIEOI命令,使命令,使主片仍不结束中断。主片仍不结束中断。6.3.3 8259A6.3.3 8259A的应用编程的应用编程绩沟辅春溶蠕行吉祸燃历捣叭巍涟迭缕璃扬刑樊珍款寄终离瓷妹政胳极阉六章中断与中断控制六章中断与中断控制482.2.中断优先级循环方式中断优先级循环方式8259A8259A提供了两种中断优先级循环方式:提供了两种中断优先级循环方式:自动循环优先级方式自动循环优先级方式-适合于各中断源的优先级相适合于各中断源的优先级相 同的应用场合,一个中断源被服务后,其优先级自动同的应用场合,一个中断源被服务后,其优先级自动排到最低。排到最低。 此方式又分

70、非自动结束方式下循环和自动结束方此方式又分非自动结束方式下循环和自动结束方式下循环两种,具体通过写式下循环两种,具体通过写OCW2OCW2最高三位设置。最高三位设置。特殊循环优先级方式特殊循环优先级方式-适合于中断源的优先级需随适合于中断源的优先级需随意改变的应用场合,由意改变的应用场合,由OCW2OCW2的最高三位再辅之以最低的最高三位再辅之以最低三位设定,通过设定最低三位编码指定最低优先级从三位设定,通过设定最低三位编码指定最低优先级从而改变各中断源优先级。而改变各中断源优先级。6.3.3 8259A6.3.3 8259A的应用编程的应用编程密喝卜禾喘春叭冶磁斌土遥驭碉取定嘉告启间机它即狙

71、单索阐坍戏蘑瓷耀六章中断与中断控制六章中断与中断控制493.3.中断屏蔽方式中断屏蔽方式具体屏蔽方式有两种:具体屏蔽方式有两种:普通屏蔽方式:普通屏蔽方式:用用OCW1OCW1设置设置IMRIMR中某一位或某几位中某一位或某几位 为为1 1,即可将相应中断请求屏蔽掉。,即可将相应中断请求屏蔽掉。特殊屏蔽方式:特殊屏蔽方式:用用OCW3OCW3设置该方式,设置该方式,OCW1OCW1建立普建立普 通屏蔽信息,当响应一个中断请求通屏蔽信息,当响应一个中断请求 时,开放所有未被时,开放所有未被OCW1OCW1屏蔽的其它屏蔽的其它 优先级中断。优先级中断。6.3.3 8259A6.3.3 8259A的

72、应用编程的应用编程驻钟脯鹊尘请鼠蹄腾酥挤傲熄志考锐粗缀鬼饥廖宴诀迈澎恍突墟壁维都央六章中断与中断控制六章中断与中断控制504.4.程序查询方式程序查询方式 这种方式下这种方式下CPUCPU可获得当前请求中断服务可获得当前请求中断服务的优先级。的优先级。 实现方法是将实现方法是将OCW3OCW3的的D2D2位设置为位设置为1 1,再紧,再紧跟一个读命令。跟一个读命令。6.3.3 8259A6.3.3 8259A的应用编程的应用编程体霜忧迈秽殿栏醉圈县转殿胃很背噎胜陛鼓碍狡弗迭介肾弄姆腺邱杰殿要六章中断与中断控制六章中断与中断控制515.5.中断结束方式中断结束方式8259A8259A提供了两种中

73、断结束方式:提供了两种中断结束方式:自动中断结束自动中断结束-只能用于不要求中断嵌套的场合只能用于不要求中断嵌套的场合非自动中断结束非自动中断结束-中断服务程序要借助于中断服务程序要借助于OCW2OCW2发发 出中断结束命令出中断结束命令EOIEOI具体可通过具体可通过 ICW4 ICW4设置设置EOIEOI命令又有两种形式:命令又有两种形式:工作在全嵌套方式下的非特殊工作在全嵌套方式下的非特殊EOIEOI命令命令-由由OCW2OCW2最高的三位为最高的三位为001001规定;规定;工作在非嵌套方式下的非特殊工作在非嵌套方式下的非特殊EOIEOI命令命令-由由OCW2OCW2最高的三位最高的三

74、位为为011011规定,同时必须由其最低三位指定需复位的规定,同时必须由其最低三位指定需复位的ISRISR中的中的中断级编码。中断级编码。6.3.3 8259A6.3.3 8259A的应用编程的应用编程小睹咐榷陛官莹穗韵爱疏惹顾蹦迸紫奴巩悬平唤豺撞桃酚剔袖璃胯磋桓份六章中断与中断控制六章中断与中断控制526.6.中断请求触发方式中断请求触发方式 通过设置初始化命令字通过设置初始化命令字ICW1ICW1的的D3D3位为位为0 0或为或为1 1,可,可使使8259A8259A工作于边沿工作于边沿( (上升沿上升沿) )触发方式或电平触发方式或电平( (高电平高电平) )触发方式。触发方式。q在电平

75、触发方式下,在电平触发方式下,CPUCPU在发出在发出EOIEOI命令前或再次命令前或再次开放中断前,必须确保已响应的中断请求开放中断前,必须确保已响应的中断请求IRiIRi为低为低电平,以防出现第二次中断。电平,以防出现第二次中断。q无论哪种触发方式,必须确保在接收到第无论哪种触发方式,必须确保在接收到第1 1个个INTAINTA脉冲负跳变之前,脉冲负跳变之前,IRiIRi输入保持高电平,若输入保持高电平,若IRiIRi输入输入提前变低,则提前变低,则CPUCPU响应中断时就自动设定响应中断时就自动设定IR7IR7。这样。这样可防止由可防止由IRiIRi输入端上严重的噪声干扰产生的中断。输入

76、端上严重的噪声干扰产生的中断。注意:注意:6.3.3 8259A6.3.3 8259A的应用编程的应用编程叔碴延佐遭颐随坤脱沸士祟税韦异埃慈负跌宿抨同咬据僵伴侧掷狈赤销超六章中断与中断控制六章中断与中断控制537.7.读状态方式读状态方式 8259A 8259A内部的内部的IRRIRR、ISRISR和和IMRIMR三个寄存三个寄存器状态,可通过适当的输入命令读至器状态,可通过适当的输入命令读至CPUCPU中。中。6.3.3 8259A6.3.3 8259A的应用编程的应用编程祟汉暖禹延拄亲众汐髓戏稚硫滚选邑腾粒歇闯烦找泰退何舆壕剿翼羞轧纂六章中断与中断控制六章中断与中断控制548.8.数据缓冲

77、方式数据缓冲方式-常用于多片级联的大系统中常用于多片级联的大系统中 各片各片8259A8259A的中断向量号均要在接收第二个的中断向量号均要在接收第二个INTAINTA脉冲之后的数据总线发送脉冲之后的数据总线发送, ,故芯片需要通过总线缓冲故芯片需要通过总线缓冲器挂接在数据总线上。采用数据缓冲方式后,将在器挂接在数据总线上。采用数据缓冲方式后,将在SP/ENSP/EN端输出一个有效低电平,开启缓冲器工作。端输出一个有效低电平,开启缓冲器工作。设置方式:将设置方式:将ICW4ICW4的的D5D5位位(BUF(BUF位位) )置置11。6.3.3 8259A6.3.3 8259A的应用编程的应用编

78、程誓伏而嗅靶曝妓堂措闪荡脚稽二皇怀俯伊蚤焕顺淑玩登乘努据趟膘瞬雾乐六章中断与中断控制六章中断与中断控制559.9.多片级联方式多片级联方式 一个系统中,可将多片一个系统中,可将多片8259A8259A级联,级联后一片级联,级联后一片8259A8259A为主片,若干片为主片,若干片8259A8259A为从片,最多可有为从片,最多可有8 8个从个从片,将中断源扩展到片,将中断源扩展到6464个。个。 主片和每个从片都必须通过写入主片和每个从片都必须通过写入ICW3ICW3分别初始化分别初始化和设置必要的工作状态。每片和设置必要的工作状态。每片8259A8259A都必须分配两个都必须分配两个互不相同

79、的端口地址:偶地址、奇地址各一个。互不相同的端口地址:偶地址、奇地址各一个。6.3.3 8259A6.3.3 8259A的应用编程的应用编程鼓康悄铝眉束曝稍谚语盈阎科吉倡球烯拿绝袖撞骚祖运董峻灾失澎殉趁耗六章中断与中断控制六章中断与中断控制566.4 80486 CPU6.4 80486 CPU的中断机理的中断机理 80386/80486 80386/80486在中断机理上与其前辈在中断机理上与其前辈CPU8086 /8088/80186/80286CPU8086 /8088/80186/80286大同小异,大同小异,差别主要表现在中断向量号转换为向量地差别主要表现在中断向量号转换为向量地址的

80、方法以及系统定义、保留的中断和异址的方法以及系统定义、保留的中断和异常不完全相同。常不完全相同。v中断向量与中断描述符表中断向量与中断描述符表v中断中断/ /异常向量分配异常向量分配v中断中断/ /异常的检测、响应、处理过程异常的检测、响应、处理过程天堤埠孵直砚抨勤民怔呜盏浪颜篡绍崭颈墒矿账辩妄喷傅说兰痊吟壁淋侠六章中断与中断控制六章中断与中断控制576.4.1 6.4.1 中断向量与中断描述符表中断向量与中断描述符表1.1.中断向量和中断向量表中断向量和中断向量表255255# #中断中断OOOHOOOH004H004H3FCH3FCH3FFH3FFH0 0# #中断中断1 1# #中断中断

81、IPIP低地址低地址IPIP高地址高地址CSCS低地址低地址CSCS高地址高地址中中断断向向量量表表80868086中断向量表中断向量表 结构示意结构示意M M中断向量即中断处理程序的入口地址。中断向量即中断处理程序的入口地址。 为了对中断进行管理,一般为了对中断进行管理,一般CPUCPU都是都是在内存中建立一个在内存中建立一个 中断向量表,然后为中断向量表,然后为每个中断源分配一个中断向量号每个中断源分配一个中断向量号( (或叫中或叫中断类型号断类型号) ),作为指向其中断向量地址指,作为指向其中断向量地址指针的索引。针的索引。 例如例如80868086中断系统是在内存的最低中断系统是在内存

82、的最低1K1K字节建立了一个可存放字节建立了一个可存放256256个中断向量个中断向量的中断向量表,每个中断向量号对应一的中断向量表,每个中断向量号对应一个中断向量。中断向量号与中断向量地个中断向量。中断向量号与中断向量地址指针的对应关系是:址指针的对应关系是:中断向量地址指针中断向量地址指针=4=4中断向量号中断向量号糯突寥抓搂熬懦檬冤紧匀皋傻笺块辆输秆构茧馆温唤沁邻寺祸阔砖纱垂殊六章中断与中断控制六章中断与中断控制586.4.1 6.4.1 中断向量与中断描述符表中断向量与中断描述符表2.2.中断描述符表中断描述符表 在在80386/8048680386/80486中,采用中断描述符表中,

83、采用中断描述符表IDTIDT来管来管理各种中断。理各种中断。q当当80386/8048680386/80486工作于实地址方式时,系统的工作于实地址方式时,系统的IDTIDT实实质上就是质上就是80868086中断向量表,结构及其在内存的位置中断向量表,结构及其在内存的位置都没什么区别。都没什么区别。q当当80386/8048680386/80486工作于保护方式时,工作于保护方式时,IDTIDT可置于内存可置于内存的任意区域,其起始地址可通过写的任意区域,其起始地址可通过写CPUCPU内部的内部的IDTIDT寄存寄存器来设置或修改,里面包含有器来设置或修改,里面包含有IDTIDT基地址和边界

84、范围。基地址和边界范围。有了基地址,再根据中断类型号即可取到相应的描述有了基地址,再根据中断类型号即可取到相应的描述符项。在符项。在386/486386/486中,一般将中,一般将IDTIDT表中的描述符称作中表中的描述符称作中断门断门/ /陷阱门:中断门对应于外部硬中断,陷阱门对陷阱门:中断门对应于外部硬中断,陷阱门对应于内部软中断,即应于内部软中断,即 异常异常 。肉曙坐皋卧苫蜀纠奢魂畅辨吉漠全它爪唾淑怂坤擎涵镰途铺最扔述朋娄陛六章中断与中断控制六章中断与中断控制59每个中断门每个中断门/ /陷阱门描述符由陷阱门描述符由8 8字节组成,其格式为:字节组成,其格式为:15158 8 7 70

85、 0偏偏 移移 量量 15 15 0 0 位位 中断中断/ /异常处理程序的代码段描述符选择器异常处理程序的代码段描述符选择器P PDPLDPL0 01 11 11 1* *( (未使用未使用) )偏偏 移移 量量 31 31 16 16 位位 *=*=0,0,中断门。中断门。如通过的是中断门,要使如通过的是中断门,要使IF=0IF=0,以禁止,以禁止INTRINTR1,1,陷阱门。陷阱门。如通过的是陷阱门,则不改变如通过的是陷阱门,则不改变IFIF状态状态 IDT IDT表中最多可登记表中最多可登记256256个中断门或陷阱门,故个中断门或陷阱门,故IDTIDT表在内存中最多占表在内存中最多

86、占8256=2048(8256=2048(字节字节)()(即即2KB)2KB)。6.4.1 6.4.1 中断向量与中断描述符表中断向量与中断描述符表63634848亦毁甸唆诛骏募卤誓澜诺转脸真闺桌佐邑佯胞舍卯弥泵谅龚慑崔瞬儿样时六章中断与中断控制六章中断与中断控制60保护方式下中断保护方式下中断/ /异常处理程序的异常处理程序的进入过程进入过程:IDTIDT中断门中断门/ /陷阱门描述符陷阱门描述符选择器选择器属性属性 偏移量偏移量GDTGDT或或LDTLDT段描述符段描述符基地址基地址边界边界属性属性00000088中断向量号中断向量号7 70 0IDTRIDTR31310 0 15150

87、0线性基地址线性基地址边界边界物理物理/ /线性地址空间线性地址空间00000000H00000000H中断程序中断程序入口地址入口地址CSCS段段FFFFFFFFHFFFFFFFFH6.4.1 6.4.1 中断向量与中断描述符表中断向量与中断描述符表瞪灯娃硝宅生辙窃谐存呈怪阉搅价青求积睁补獭逞绳盎鸣荣妙秀氛偶忌墙六章中断与中断控制六章中断与中断控制616.4.2 6.4.2 中断中断/ /异常向量分配异常向量分配 在在256256个可能产生的中断个可能产生的中断/ /异常中,异常中,IntelIntel公司定义了公司定义了3232个向量号个向量号(0(031)31)作为不可屏蔽作为不可屏蔽中

88、断中断(NMI)(NMI)和内部异常的向量号,其余和内部异常的向量号,其余224224个向个向量号量号(32(32255)255)可由系统设计人员和系统用户可由系统设计人员和系统用户任意选用和定义,作为外部可屏蔽中断任意选用和定义,作为外部可屏蔽中断(INTR)(INTR)和内部自陷指令中断的向量号。和内部自陷指令中断的向量号。遥仓馏届舅蓑宛若墩惑契毯汛赞帅滇笨煌奶照叭坛卜诊坪魏申鳃缄偷轴唇六章中断与中断控制六章中断与中断控制626.4.3 6.4.3 中断中断/ /异常的检测、响应、处理过程异常的检测、响应、处理过程N NN NN NN NN NY YY YY YY YY YY YN N当前

89、指令结束当前指令结束?内部异常?内部异常?NMINMI? ?INTR?INTR?TF=1?TF=1?执行下条指令执行下条指令获得向量号获得向量号变换成中断向量变换成中断向量调中断处理程序调中断处理程序EFLAGSEFLAGS入栈入栈IF=1?IF=1?清清IFIF、TFTFCSCS、EIPEIP先后入栈先后入栈中断服务中断服务EIPEIP、CSCS先后出栈先后出栈EFLAGSEFLAGS出栈出栈中断返回中断返回(IRET)(IRET)件亚飘俱孺耶沸纲花橙获备塘靛弯抢计应垦簧缨肾运雾片阵肉疤肇舜踪嘱六章中断与中断控制六章中断与中断控制636.4.3 6.4.3 中断中断/ /异常的检测、响应、处

90、理过程异常的检测、响应、处理过程 各类中断各类中断/ /异常的向量号是在中断响应阶段获取异常的向量号是在中断响应阶段获取的,向量号获取方法因中断源不同而有所不同:的,向量号获取方法因中断源不同而有所不同:v对处理器检测的各种内部异常,向量号是由对处理器检测的各种内部异常,向量号是由 CPU CPU根据异常类型在内部自动形成的。根据异常类型在内部自动形成的。v对软中断指令对软中断指令INTnINTn,向量号由指令本身给出,向量号由指令本身给出, 亦属内部自动形成。亦属内部自动形成。v对对NMINMI,向量号被指定为,向量号被指定为2 2,它不需外部提供,它不需外部提供, 故本质上也是内部自动形成

91、。故本质上也是内部自动形成。v对对INTRINTR,向量号通过两个中断响应周期,向量号通过两个中断响应周期8259A8259A 读取。读取。狄央券搁休哦府焦强囤箱腾咳错学凉虫纹塞啡员阐峨鬼荷揉寐瞪卸莱迸真六章中断与中断控制六章中断与中断控制646.5 80X866.5 80X86微机的硬件中断控制逻辑微机的硬件中断控制逻辑 在以在以80X8680X86为为CPUCPU的微机系统中,一般都是用的微机系统中,一般都是用8259A8259A来将来将CPUCPU的一根可屏蔽中断线的一根可屏蔽中断线INTRINTR扩展为扩展为8 8根以上的硬件中断线,并进行管理。根以上的硬件中断线,并进行管理。vPC/

92、XTPC/XT机的中断控制逻辑机的中断控制逻辑vPC/ATPC/AT机的中断控制逻辑机的中断控制逻辑v80386/8048680386/80486微机的中断控制逻辑微机的中断控制逻辑负低盔邵垫速设临督婆凌湘瓤桥掐恳估汪赎量晓沛室悉响卞言凰门谣焦伯六章中断与中断控制六章中断与中断控制656.5.1 PC/XT6.5.1 PC/XT机的中断控制逻辑机的中断控制逻辑4.7k4.7k+5V+5VNMINMI屏蔽寄存器屏蔽位屏蔽寄存器屏蔽位80878087中断请求中断请求RAMRAM奇偶错奇偶错I/OI/O通道检测错通道检测错 1 1& &82538253定时器定时器键盘键盘未用未用异步通信卡异步通信卡

93、( (辅辅) )异步通信卡异步通信卡( (主主) )硬盘硬盘软盘软盘并行打印机并行打印机IRQ2IRQ2IRQ7IRQ78259A8259AINTACSINTACSXIORXIORXIOWXIOWXA0XA0CAS0CAS0CAS1CAS1CAS2CAS2IR0IR0IR1IR1IR2IR2. . . .IR7IR7CSCSRDRDA0A0WRWRSP/ENSP/ENINTAINTAD7D7D0D0. . . .INTAINTAINTINTLS245LS245LS245LS245XD0XD0XD7XD7. . . .D0D0D7D7. . . .AD0AD0AD7AD7. . . .NMINM

94、IINTRINTRAD0AD0AD7AD7. . . .8088CPU8088CPU82888288总线控制器总线控制器扩扩充充插插槽槽未用未用警揪罢掌业人袱波耪辱州酸奔亢阅紫云垦滴岸臆役震顾疥拈示蜂骡讳多孟六章中断与中断控制六章中断与中断控制666.5.1 PC/XT6.5.1 PC/XT机的中断控制逻辑机的中断控制逻辑 用户在此基础上附加用户在此基础上附加8259A8259A芯片,扩充中断请芯片,扩充中断请求线的方法和原理。求线的方法和原理。q扩充方法:扩充方法:AENAEN8259A8259A80888088INTRINTRINTAINTAINTINTINTAINTA扩充插座扩充插座IR

95、Q2IRQ2IRQ6IRQ6IRQ7IRQ7A0A0A1A1A9A91 1译译码码器器附加的附加的8259A8259AA0A0INTINTIR0IR0IR7IR7SPSPCAS0CAS0CAS1CAS1CAS2CAS2INTAINTAIRQ0XIRQ0XIRQ7XIRQ7X8.2k8.2k+5V+5VD0D0D7D7G G74LS74LS245245D7D7D0D0IORIORIOWIOWCSCSRDRDWRWR. . . . . . . . . . . . . . . . . . .龚蓬试咋拍永惜统铲窄业亿高碧附渤睹框记详阉够鲤涨吱蚀土伞各取耐曳六章中断与中断控制六章中断与中断控制67q中断

96、原理中断原理( (采用向量式和查询式相结合的中采用向量式和查询式相结合的中断源识别和判优机理断源识别和判优机理) ):当附加当附加8259A8259A的的IRQiIRQi中有中断请求时:中有中断请求时:附附加加8259AINTINT信号信号系统板系统板8259A8259AINTINT信号信号CPUCPU80888088系统板系统板8259A8259AINTAINTAIR2IR2的中断向量号的中断向量号0AH0AH程序转入程序转入IR2IR2的中断服务程序:向附加的中断服务程序:向附加8259A08259A0口发查询命令字口发查询命令字OCW3OCW3从而转入从而转入W2W1W0W2W1W0所指

97、向的中断处理程序。结束后所指向的中断处理程序。结束后返回系统板返回系统板8259A8259A的的IR2IR2服务程序服务程序返回被中断的主程序返回被中断的主程序6.5.1 PC/XT6.5.1 PC/XT机的中断控制逻辑机的中断控制逻辑尖啡蓑愚栋磺渍纺蛙默神蚂团势嘘好恰皱市通浮舱驳佰潭后宙撬鼓思肝衙六章中断与中断控制六章中断与中断控制68q说明说明 PC/XT PC/XT的的I/OI/O扩展槽上未引出级联线扩展槽上未引出级联线CAS2CAS2CAS0CAS0,故不可能采用主、从片级联方法。所以,用本法,故不可能采用主、从片级联方法。所以,用本法扩充后的中断系统工作机理与通过级联线扩充的两扩充后

98、的中断系统工作机理与通过级联线扩充的两级级8259A8259A系统的工作原理有根本区别,这也就决定系统的工作原理有根本区别,这也就决定了它在硬件连接上和初始化编程上的不同点:了它在硬件连接上和初始化编程上的不同点:SP/ENSP/EN、CAS2CAS2CAS0CAS0和和INTAINTA都不必使用。都不必使用。对附加对附加8259A8259A的中断响应通过系统板上的中断响应通过系统板上8259A8259A的的IRQ2IRQ2中断服务程序中查询附加中断服务程序中查询附加8259A8259A的状态来进行,故附加的状态来进行,故附加8259A8259A也就无需向也就无需向CPUCPU送中断向量号。送

99、中断向量号。6.5.1 PC/XT6.5.1 PC/XT机的中断控制逻辑机的中断控制逻辑喻悬韧痰匀攒絮脱荆首钠狂酪没惺毅夺十昆肮磨衷宣煽砂詹泻倚您譬稚捞六章中断与中断控制六章中断与中断控制69对附加对附加8259A8259A初始化编程时,初始化编程时,ICW2ICW2、ICW3ICW3不必写不必写为了对附加为了对附加8259A8259A的中断请求级进行开放的中断请求级进行开放/ /禁止控禁止控制,可写中断屏蔽字制,可写中断屏蔽字OCW1OCW1如如ICW4ICW4定义的是非自动定义的是非自动EOIEOI方式,则在附方式,则在附8259A8259A中断处理程序的最后要通过写中断处理程序的最后要通

100、过写OCW2OCW2来发中断结束来发中断结束命令;否则,不必写命令;否则,不必写OCW2OCW2为对附加为对附加8259A8259A编程编程( (写命令字、读状态写命令字、读状态) ),需给,需给它分配它分配2 2个在系统中具有唯一性的个在系统中具有唯一性的0 0、1 1端口地址。端口地址。6.5.1 PC/XT6.5.1 PC/XT机的中断控制逻辑机的中断控制逻辑拼卢官淳扒蔡琉笔影兽泥郁邪伤螟花尚鬃靡长糙镀菲策原胳乡阵甲花诌穴六章中断与中断控制六章中断与中断控制706.5.2 PC/AT6.5.2 PC/AT机的中断控制逻辑机的中断控制逻辑NMINMI屏蔽寄存器屏蔽位屏蔽寄存器屏蔽位RAMR

101、AM奇偶错奇偶错I/OI/O通道检查错通道检查错串行或并行通信串行或并行通信并行口并行口2 2INTA1CSINTA1CSIR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7INTINTCAS2CAS2CAS0CAS08259A8259A主片主片IRQ8IRQ8IRQ9IRQ9IRQ10IRQ10IRQ11IRQ11IRQ12IRQ12IRQ13IRQ13IRQ14IRQ14IRQ15IRQ15实时钟实时钟指向指向INT0AHINT0AH保留保留保留保留保留保留协处理器协处理器硬盘硬盘保留保留地址地址A0A0INTA2CSINTA2CS( (片选片选

102、2 2)( (片选片选1 1)IR0IR0IR1IR1IR2IR2IR3IR3IR4IR4IR5IR5IR6IR6IR7IR7A0A0CSCSCAS2CAS2CAS0CAS0SP/ENSP/ENINTINT11& &数据数据D7D7D0D0编程编程/ /中断号中断号NMINMIINTRINTRS2S2S1S1S0S08028680286CPUCPUINTAINTAIORIORIOWIOWS2S2S1S1S0S0总线总线控制器控制器SP/ENSP/ENINTAINTARDRDWRWRWRWRRDRDINTAINTA+5V+5V日时钟日时钟键盘键盘IRQ0IRQ0IRQ1IRQ1IRQ2IRQ2I

103、RQ3IRQ3IRQ4IRQ4IRQ5IRQ5IRQ6IRQ6IRQ7IRQ7串行口串行口软盘软盘并行口并行口1 1地址地址A0A0CSCS. . . .A0A08259A8259A从片从片叠续疑至弛泅南巳雏帕掏货片荐埂才惟捍钱形夫贪钉绢芋住迪巨琐垮单揣六章中断与中断控制六章中断与中断控制716.5.2 PC/AT6.5.2 PC/AT机的中断控制逻辑机的中断控制逻辑 这种将两片这种将两片8259A8259A级联在一起的方法与级联在一起的方法与前述扩充前述扩充8259A8259A的方法是不一样的,故中断的方法是不一样的,故中断执行机理也不一样:执行机理也不一样: 从片管理的从片管理的8 8级中

104、断排队判优后,再参级中断排队判优后,再参与到主片的前与到主片的前8 8级判优,此时主片工作在特级判优,此时主片工作在特殊全嵌套方式,从片工作在普通嵌套方式。殊全嵌套方式,从片工作在普通嵌套方式。拼等肝漾丹娥苇脱挝懊宝汉腾泥唯经无鳃御乔堡药窖哉厄州辩毕烛腾织乏六章中断与中断控制六章中断与中断控制726.5.3 80386/804866.5.3 80386/80486微机的中断控制逻辑微机的中断控制逻辑 80386/80486 80386/80486微机的中断控制逻辑,在微机的中断控制逻辑,在原理上也是由几个原理上也是由几个8259A8259A电路组成的,不过电路组成的,不过它们不是一个个独立的它们不是一个个独立的8259A8259A芯片,而是和芯片,而是和其它功能电路一起集成在一个其它功能电路一起集成在一个VLSIVLSI的外围的外围接口芯片中。接口芯片中。摔唱碾软淤箭矾沾帖孽翠尝全祝哈留异阑理蹦函问捆茧韵浴苫整炸们凶启六章中断与中断控制六章中断与中断控制73

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号