《微机原理第8章-中断.ppt》由会员分享,可在线阅读,更多相关《微机原理第8章-中断.ppt(119页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 有关中断的基本概念有关中断的基本概念 8259A可编程中断控制器可编程中断控制器 8086中断系统中断系统 8086CPU中断响应流程中断响应流程本章内容本章内容本章内容本章内容 掌握中断技术的基本概念 了解8086中断系统及其对各种类型中断的响应流程 了解8259A中涉及到的有关概念 掌握8259A的编程应用学习目的学习目的学习目的学习目的 8.1 中断系统的基本概念中断系统的基本概念一、什么叫中断?一、什么叫中断?一、什么叫中断?一、什么叫中断?中断申请主程序中断服中断服务程序务程序返回中断示意图所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突突然然事件的发生,暂暂时时
2、中中止止正在执行的程序,转去处理突然发生的事件(执行中断服务程序),处理完毕,再再返返回回原来被中止的程序继续运行。日常生活中类似日常生活中类似“中断中断”的例子:的例子:例例1:门铃响时,放下手中正在做的事情,跑去开门,招待客人;客人走后,接着做原来的事情。例例2:教师讲课过程中,同学遇有疑问,不同理解之处,随时向老师提问。问题:请同学们列举类似问题:请同学们列举类似“中断中断”的例子。的例子。二、应用中断技术的优点二、应用中断技术的优点二、应用中断技术的优点二、应用中断技术的优点1.1.实实实实现现现现CPU CPU 与与与与外外外外设设设设的的的的并并并并行行行行工工工工作作作作,提提提
3、提高高高高了了了了 CPU CPU 的效率。的效率。的效率。的效率。NYREADY?输入状态信息输入数据查询方式的数据输入中断方式的数据输入外设请求中断 INTR有效主程序中断服务程序输入 数据外设准备数据二、应用中断技术的优点二、应用中断技术的优点二、应用中断技术的优点二、应用中断技术的优点1.实现实现CPU 与外设的并行工作,提与外设的并行工作,提高了高了 CPU 的效率。的效率。2.实现实时处理。实现实时处理。3.实现故障处理。实现故障处理。三、中断源三、中断源三、中断源三、中断源引起中断的原因,产生中断请求的来源。通常有以下几种:通常有以下几种:1.一般的一般的I/O 设备,如键盘、打
4、印机等。设备,如键盘、打印机等。2.实时时钟。实时时钟。3.故障源。故障源。4.为了调试程序而设置的中断。为了调试程序而设置的中断。(例如设置断点,单步运行等例如设置断点,单步运行等)四、中断系统的功能四、中断系统的功能四、中断系统的功能四、中断系统的功能计算机系统中,用于实现中断功能的硬件和软件的集合,称为中断系统。中断系统应解决如下问题:中断系统应解决如下问题:1.中断请求信号的产生(中断源如何申请中断?)2.CPU如何响应?(如何知道有中断请求?是否有求必应?响应后的处理过程?)3.中断优先权问题4.中断的具体服务5.中断服务完毕,如何返回原程序?五、实现中断优先权的方法五、实现中断优先
5、权的方法五、实现中断优先权的方法五、实现中断优先权的方法 判判断断和和确确定定中中断断源源的的中中断断优优先先权权,可可以以采采用用软件软件和和硬件硬件两种方法。两种方法。当系统中有多个中断源存在时,若有几个中断源同时提出申请,CPU先响应谁先响应谁?当CPU正响应某一中断过程中,又有另外的中断源提出中断请求,CPU是否响应是否响应?为此提出了中断优先权的概念。为此提出了中断优先权的概念。1.1.1.1.用用用用软软件确定中断件确定中断件确定中断件确定中断优优先先先先权权优先权管理电路三态 缓冲器 译 码锁 存 器INTRD7 D0A15A0中 断 源 A 中 断 源 B 中 断 源 CM/I
6、O1.用软件确定中断优先权用软件确定中断优先权软件查询流程图优先权管理电路三态 缓冲器 译 码锁 存 器INTRD7 D0A15A0中 断 源 A 中 断 源 B 中 断 源 CIOM在 中 断 服 务 中 读 入 请 求 状 态A 申 请?B 申 请?中 断 返 回为中断源A 服务的程序段YC 申 请?为中断源B 服务的程序段为中断源C 服务的程序段YY 采用软件查询方式的特点:采用软件查询方式的特点:询问的次序,即为优先权的次序。询问的次序,即为优先权的次序。硬件简单。硬件简单。由查询转至相应的服务程序的时间长,由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。尤其在中断源较多的情
7、况。2.2.硬件方式硬件方式硬件方式硬件方式(1)若CPU 未处理任何中断,则“优先权失 效”信号为高,当任一中断源请求中断时,通过门2发出INTR 信号。128-3 优先权 编码器优先权 寄存器A B 比较器A2 A1 A0 B2B1B0比较失效 中断请求0 中断请求1 中断请求2 7D7 D0INTR 编码器和比较器的优先权排队电路(2)若CPU 正在进行中断处理,当某一中断源请求中断时,能否向CPU 发出INTR信号,受比较器的控制。2.硬件方式硬件方式128-3 优先权 编码器优先权 寄存器A B 比较器A2 A1 A0 B2B1B0比较失效 中断请求0 中断请求1 中断请求2 7D7
8、 D0INTR 编码器和比较器的优先权排队电路 1六、六、六、六、80868086CPU CPU 响应外部中断的过程响应外部中断的过程响应外部中断的过程响应外部中断的过程 CPU 在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR 或NMI 信号线。下面以INTR 为例,说明8086 CPU 响应中断的过程。执行一条指令最后一个总线周期的最后一个T状态?有INTR?中断开放?(FR中的IF=1?)关中断(置FR中IF=0)断点地址(CS.IP)入栈FR 入栈识别中断源,转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI(置FR中IF=1)中断返回IRET取下一条指令NoN
9、oNoYesYesYes讨论:讨论:1.为什么要在中断服务程序中执行STI 指令?2.STI 指令在中断服务程序中的不同位置时,对CPU 处理中断有何影响?七、小结七、小结1.实现断点地址的保护与恢复。实现断点地址的保护与恢复。2.实现现状信息的保护。实现现状信息的保护。3.实现中断优先权的排队。实现中断优先权的排队。4.实现中断的嵌套。实现中断的嵌套。中断服务2(高优先级)主程序中断服务1中断过程由计算机的中断系统,配合用户设计的中断服务程序来实现。中断应具备以下功能:INT n 指令 中断逻辑非屏蔽中断请求中断 控制系统(8259A)INT 3 指令INTO 指令单步 中断除数为 0中断
10、可屏蔽 中断请求NMI INTR硬件中断软件中断 8.2 8086CPU的中断系统的中断系统一、中断类型一、中断类型一、中断类型一、中断类型8086能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如右图8086的中断分类1.1.外部中断外部中断外部中断外部中断 (硬件中断硬件中断硬件中断硬件中断)(1)非屏蔽中断非屏蔽中断 NMI (类型号为类型号为2)有效,不受FR 中IF 的影响,常用于处理系统的重大故障。(2)可屏蔽的中断可屏蔽的中断INTR 高有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外设的中断。2.2.内部中断内部中断内部中断内部中断 (软件中断软
11、件中断软件中断软件中断)通常由三种情况引起:(1)INT n 指令中断指令中断(n 为中断类型号为中断类型号)(2)处理处理CPU 某些错误的中断某些错误的中断 除法错中断 (中断类型号为0)溢出中断(INTO)(中断类型号为4)(3)为调试程序设置的中断为调试程序设置的中断a 单步中断当FR 中TF=1时,每执行一条指令,CPU 产生类型为1 的单步中断。b 断点中断设置断点实际上是把指令“INT 3”插入到程序中,CPU 每执行到断点处的“INT 3”指令,便产生类型为3 的中断。二、中断优先级二、中断优先级二、中断优先级二、中断优先级8086 系统中,中断优先级的次序为:系统中,中断优先
12、级的次序为:高低内部中断(除法错、INTO、INT n)NMIINTR单步中断三、中断向量表三、中断向量表三、中断向量表三、中断向量表 CPU 响应中断后,如何得到中断服务程序的入入口口地地址址(中中断断向向量量),转入到中断服务程序?8086CPU 通过建立中断向量表的方法解决。中中 断断 向向量量(中中断断服服务务程程序序入入口口地地址址)在在表表中中的的地地址址=中中断断类型号类型号 4中断向量表溢出中断0000 :0014 H 0000 :0013 H0000 :0010 H 0000 :000F H0000 :000C H 0000 :000B H0000 :0008 H 0000
13、:0007 H0000 :0004 H 0000 :0003 H0000 :0000 H类型5类型255供用户定义的中断(共224个)0000 :007 FH 0000 :007 EH0000 :03 FFHCS IPCS IPCS IPCS IPCS IPCS IPCS IP专用的中断(共5个)保留的中断(共27个)类型32 类型31类型0类型4类型3类型2类型1除数为 0 中断非屏蔽中断单步中断断点中断四、中断向量的装入四、中断向量的装入四、中断向量的装入四、中断向量的装入 BIOS 负责01FH 共32个中断向量的装入。用户若想装入自己的中断向量到向量表中的,可用以下方法:1.1.用用用
14、用STOS STOS 指令填空中断向量表指令填空中断向量表指令填空中断向量表指令填空中断向量表假设类型号为假设类型号为60H 的中断向量为的中断向量为CLICLDMOVAX,0MOVES,AXMOV DI,4 60H;DI 指向表中对应位置指向表中对应位置MOVAX,OFFSET_INTR;取偏移地址取偏移地址STOSW;ALDI,AHDI+1 ;DI+2DI MOV AX,SEG_INTR;取段基址取段基址STOSWSTISEG_INTR:OFFSET_INTR。2.2.利用利用利用利用MOV MOV 指令写入中断向量指令写入中断向量指令写入中断向量指令写入中断向量CLIMOVAX,00HM
15、OVES,AXMOVBX,4 60H;BX 指向表中对应位置指向表中对应位置MOVAX,OFFSET_INTRMOVES:BX,AX;装入编程地址装入编程地址MOVAX,SEG_INTRMOVES:BX+2,AX;装入段基址装入段基址 方方法法1,2由由用用户户直直接接操操作作中中断断向向量量表表,因此,要熟悉中断向量表的具体组织。因此,要熟悉中断向量表的具体组织。3.3.利用利用利用利用DOS DOS 功能调用功能调用功能调用功能调用“INT 21H”INT 21H”的的的的AH=25 H AH=25 H 装入中断向量装入中断向量装入中断向量装入中断向量MOVAL,60H;类型号类型号ALM
16、OVAH,25H;功能号功能号25HAHMOVDX,SEG_INTRMOVDS,DXMOVDX,OFFSET_INTR;DS:DX=中断向量中断向量INT21H 方方法法3由由DOS功功能能调调用用具具体体实实现现,中中断断向量表对用户是透明的。向量表对用户是透明的。1.取类型号;取类型号;2.计算向量地址;计算向量地址;3.根据向量地址查表,将偏移地址送根据向量地址查表,将偏移地址送IP,段基段基址送址送CS;4.转入中断服务程序,进行中断处理。转入中断服务程序,进行中断处理。五、五、五、五、80868086CPU CPU 转入中断服务程序的过程转入中断服务程序的过程转入中断服务程序的过程转
17、入中断服务程序的过程8086转入中断处理程序的过程1800HF000H00H 18H 00H F0HPUSH IRET例:执行INT21H 向量地址 21H 4 84H CPU IP CSMEM(4)(1)(2)(3)0 :0000H 0 :0084H 0 :0087H 0 :03FFH F000 :1800H中断向量表2.计算向量地址;计算向量地址;向量地址 21H 4 84H3.根据向量地址查表,将偏移地址送根据向量地址查表,将偏移地址送IP,段基址送段基址送CS;4.转入中断服务程序,进行中断处理。转入中断服务程序,进行中断处理。1.取类型号;取类型号;21H 六、六、8086CPU中断
18、响应流程中断响应流程内部中断?NMI?INTR?TF0?执行下条指令完成当前指令IF1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回 中断响应流程第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码YYYYNNNNYN内部中断?NMI?INTR?TF0?执行下条指令完成当前指令 IF1?第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码AYYYYYNNNNNY标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回A1.8086CPU各种
19、类型中断的优先级;各种类型中断的优先级;2.CPU响应响应INTR的条件;的条件;3.INTR与其它类型中断响应过程的异同。与其它类型中断响应过程的异同。请同学们总结:请同学们总结:内部中断?NMI?INTR?TF0?执行下条指令完成当前指令IF1?标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回 中断响应流程第一个中断响应周期 AD7 AD0 浮空 第二个响应周期,取中断类型码YNYNYYNNYN 8.3 8259A 可编程中断控制器可编程中断控制器 在在微微机机系系统统中中,可可以以使使用用8259A 扩扩展展外外部部中中断断,
20、Intel 8259A 可可编编程程中中断断控控制制器器,主要有以下功能:主要有以下功能:3.在在中中断断响响应应周周期期,8259A 可可提提供供相相应应的的中中断类型号。断类型号。1.1片片8259A 能能管管理理8级级中中断断,通通过过级级联联用用9片片8259A可以构成可以构成64 级主从式中断系统。级主从式中断系统。2.每一级中断可以屏蔽或允许。每一级中断可以屏蔽或允许。4.可编程使可编程使8259A 工作在多种不同的方式。工作在多种不同的方式。一、一、一、一、82598259A A 的内部结构与引脚信号的内部结构与引脚信号的内部结构与引脚信号的内部结构与引脚信号 控制逻辑中断服务
21、寄存器 ISR优先权 电路 PR中断请求 寄存器 IRR中断屏蔽寄存器IMR读写控制 逻辑级联缓冲 比较器数据总线 缓冲器D0D7A0CAS0 CAS1 CAS2INTIR0 IR1 IR78259A内部逻辑框图1.数据总线缓冲器数据总线缓冲器 8位、双向、三态,是8259A与 CPU 之间的数据接口。D0D7直接与CPU 数据总线的低8位连结。2.读读/写控制逻辑写控制逻辑A0:常常与地址信号线A0相连。8259A的两个端口地址CPU 通常利用:OUT 指令,IN 指令,3.中断请求寄存器中断请求寄存器 IRR 8 位,若IRi 有效(“1”,),对应位置“1”,直到IRi 得到响应。因此,
22、因此,IRRIRR记录外中断源记录外中断源IRIRi i的请求信息。的请求信息。4.中断服务寄存器中断服务寄存器 ISR8位,当IRi得到响应时,对应位置“1”。ISR 记录正在处理的IRi,当中断嵌套中断嵌套时,可能多位置“1”。因此,因此,ISR记录记录CPU对对IRi的响应情况。的响应情况。5.中断屏蔽寄存器中断屏蔽寄存器 IMR8位,某位置“1”,对应IRi 禁止产生中断。因此,因此,IMR控制是否对控制是否对IRi进行屏蔽操作进行屏蔽操作。6.优先权电路优先权电路实现优先权的判断与处理,采用编码器和比较器电路,如下图所示。8259A中的中断优先权电路7.控制逻辑控制逻辑(1)由IRR
23、等情况,向8259A 其它部件发出控制信息。(2)向CPU 发出INT 信号,接收CPU 信号。8.级联缓冲级联缓冲/比较器比较器可以实现8259A的级联,扩展外中断。(1)CAS2、CAS1、CAS0 引脚 主主8259A:CAS2CAS0 输出,输出被输出,输出被 响应的从片的标志码。响应的从片的标志码。问问题题:8259A级级联联时时,如如何何确确定定主主8259A的的IRi接接有有从从片片,从从片片接接入入主主8259A的的IRi?8259A 从片 A 8259A 主片8259A 从片 B INT CAS0 CAS1 CAS2 IR0INT CAS0 CAS1 CAS2 IR0 INT
24、 CAS0 CAS1 CAS2 IR7 IR6 IR3 IR0 SP/EN SP/ENIR7CS A0 INTACS A0 INTACS A0 INTAIR7SP/ENIR7AB CB DBGND GND Vcc 从从8259A:CAS2CAS0 输输入入,接接收收主主片片发发出出的的标标志志码码,与与自自己己的的标标志志码码比比较较。若若相相等等,下下一一个个INTA信信号号到到来来时,将中断类型号送至数据总线。时,将中断类型号送至数据总线。从片A标志码:011,从片B标志码:110(2)SP/EN引脚 当当8259A 工作于非缓冲方式工作于非缓冲方式(直接与直接与CPU 的的DB 相连相连
25、)为输入,是主从芯片定义引脚。当当8259A 工作于缓冲方式工作于缓冲方式(通过总线缓冲器与通过总线缓冲器与 CPU 的的DB 相连相连)EN为输出,用于CPU与8259A传送数据信息时启动数据总线驱动器。DBDBCPU数据总线驱动器8259A此时,主从芯片的定义由ICW4中的M/S实现。8259A 的引脚图二、二、二、二、82598259A A 的中断处理过程的中断处理过程的中断处理过程的中断处理过程下面以8259A单片使用为例,说明其中断处理过程。1、当一条或多条中断请求线IR0 IR7变变高高时,设置相应的IRR位。2、PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最
26、高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。3、CPU响应中断时,送回应答信号 INTA。4、8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。5、在8259A发送中断类型号的后一个INTA 脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个 INTA 脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。三、三、三、三、82598259A A 的工作方式的工作方式的工作方式的工作方式 8259A有多种
27、工作方式,这些工作方式可以通过初始化命令字(ICW1ICW4)和操作命令字(OCW1OCW3)来设置。1.引入中断请求的方式引入中断请求的方式 边边沿沿触触发发方方式式。以上跳沿向8259A请求中断,上跳沿后可一直维持高电平,不会再产生中断。电电平平触触发发方方式式。以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断。中中断断查查询询方方式式。外设通过8259A申请中断,但8259A却不使用INT信号向CPU申请中断,CPU用软件查询确定中断源,并为其服务。2.连接系统总线的方式连接系统总线的方式 在大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总
28、线连接的方式称缓冲器方式缓冲器方式。在小系统中,则8259A不需要总线缓冲器而是将其直接接至数据总线。8259A与这种不需总线缓冲器而直接连到系统总线的方式称非缓冲器方式非缓冲器方式。3.屏蔽中断源的方式屏蔽中断源的方式 普普通通屏屏蔽蔽方方式式。利用操作命令字OCW1,使屏蔽寄存器IMR中的一位或几位置1来屏蔽一个或几个中断源的中断请求。若要开放某一个中断源的中断请求,则将IMR中相应的位置0。特特殊殊屏屏蔽蔽方方式式。在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应,此时可采用特殊屏蔽方式。它可通过OCW3的D6D511来设定。4.优先级排队的方式优先级排
29、队的方式 全全嵌嵌套套方方式式。在此种方式下中断优先级按0 7顺序进行排队,只允许中断级别高的中断源去中断中断级别低的中断服务程序。特特殊殊全全嵌嵌套套方方式式。它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同同级级中中断断请求的特殊嵌套(8259A级级联联使使用用时时,某某从从片片的的8个个中中断断源源对对主主片片来来说说,可可以以认认为为是是同同级级的的)。特殊全嵌套方式用于多片级联。固固定定优优先先级级方方式式。在这种方式下,优先级顺序是固定不变的。其优先级顺序规定为IR0,IR1,IR7。该方式在大多数系统中得到应用。
30、优优先先级级自自动动循循环环方方式式。在这种方式下,优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低。其初始的优先级顺序规定为IR0,IR1,IR7。该方式用在系统中多个中断源优先级相等的场合。优优先先级级特特殊殊循循环环方方式式。这种方式与优先级自动循环方式唯一的区别是,其初始的优先级顺序不是固定IR0为最高,然后开始循环,而是由程序指定IR0 IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。5.结束中断的处理方式结束中断的处理方式 自自动动中中断断结结束束方方式式。在中断服务程序中,中断返回之前,不需发中断结束命令就会自动清除该中断源所对应的ISR位(
31、实际上在CPU发第二个信号时,8259即自动消除ISR中的对应位)。这种方式用在多个中断不会嵌套的系统中。非非自自动动中中断断结结束束方方式式。在中断服务程序返回之前,必须发中断结束命令才能使ISR中的当前服务位清除。四、四、四、四、82598259A A 的初始化命令字的初始化命令字的初始化命令字的初始化命令字 8259A 初始化编程时,有四个初始化命令字 ICW(Initialiation Command Word),即ICW1ICW4;8259A工作期间,有三个操作命令 字 OCW(Operation Command Word),即OCW1OCW3。8259A 只有两个端口地址A0=0
32、偶地址端口1 奇地址端口因此,对8259A读/写操作时,要注意控制字写入的端口地址写入的顺序有关的标志位1.ICW1(IRi 触发方式,是否单片使用,是否写入ICW4)01LTIM SNGL IC4A0D7D6D5D4D3D2D1D0标志位标志位 LTIM:规定IRi的触发方式1高电平触发0 触发=SNGL:是否单片使用1单片使用0级联使用=IC4:是否写入ICW41后面写入ICW40不写入ICW4=例例:某 8086微 机 系 统 中,使 用 单 片8259A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H,21H,则其初始化命令字ICW1应为:0001001113H,设置IC
33、W1的指令为:MOVAL,13HOUT20H,AL2.ICW2(中断类型号的高5位)(中断类型号的低3位由8259A 自动编码产生)1T7T6T5T4T3A0D7D6D5D4D3D2D1D0IRi 对应中断类型号的高5位T7 T6 T5 T4 T3 T2 T1 T0由ICW2规定0 0 00 0 10 1 01 1 1IR0IR1IR2IR7例例:某PC机中8个可屏蔽中断(IR0 IR7)的类型号为08H 0FH,A01,端口地址为21H,则ICW2为:08H,设置ICW2的指令为:MOVAL,08H OUT21H,AL3.ICW3(级联时,主从芯片的级联引脚)若ICW1 中SNGL=1不写入
34、ICW30写入ICW3(1)(1)写给主片的写给主片的写给主片的写给主片的ICWICW3 3Si=1,表示主片IRi上接有从片。1S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0(2)(2)写给从片的写给从片的写给从片的写给从片的ICWICW3 3ID2 ID1 ID0该从片 0 0 0接入主片的IR0 0 0 1接入主片的IR1 1 1 1接入主片的IR7100000ID2ID1ID0A0D7D6D5D4D3D2D1D0从片的标志码 例例:某某8086微微机机系系统统中中,主主片片8259A的的IR2,IR6引引脚脚上上分分别别接接有有从从片片8259A,则则主主、从从片
35、片的的ICW3初初始始化命令字设置如下:化命令字设置如下:主片初始化命令字:主片初始化命令字:(口地址设为口地址设为20H,21H)MOVAL,44H;44H为主片的为主片的ICW3,表示其表示其IR6,IR2上接有从片上接有从片OUT21H,AL;将将ICW3写入奇地址端口写入奇地址端口从片从片1的初始化命令:的初始化命令:(口地址为口地址为30H,31H)MOVAL,02H OUT31H,AL从片从片2的初始化命令:的初始化命令:(口地址为口地址为40H,41H)MOVAL,06H OUT41H,AL4.ICW4100SFNM BUFM/SAEOI1A0D7D6D5D4D3D2D1D00标
36、志位用于8088/8086系统0 正常的完全嵌套方式1 特殊的完全嵌套方式(1)SFNM:规定规定8259A中断的嵌套方式中断的嵌套方式(单片使用时,两种方式一样。)SFNM=正常的完全嵌套方式正常的完全嵌套方式高级的中断 特殊的完全嵌套方式特殊的完全嵌套方式同级的或高级的中断注意:级联使用时,某一从片的注意:级联使用时,某一从片的IRIRi i对对主片来说是同级的主片来说是同级的(同级中断同级中断)。此处,要理解同级中断的概念此处,要理解同级中断的概念!(to CPU)INTAINT从8259AIR7IR6IR0IR7IR6IR0INTAINTCAS0CAS1CAS2CAS0CAS1CAS2
37、主8259AINTA(from CPU)INTR例如:例如:若若主主、从从8259A工工作作于于固固定定优优先先权权方方式式,从从片片的的优优先先级级为为IR0IR1 IR7。但但对对主主片片来来说说,从从片片的的IR0 IR7 是同级的。是同级的。1缓冲方式0非缓冲方式(2)(2)BUFBUF=(3)(3)M/SM/S 当8259A 工作于缓冲方式时(BUF=1),M/S用于定义主、从芯片。1主8259A0从8259AM/S=当8259A工作于非缓冲方式时(BUF=0),SP引脚为输入,用于定义主从芯片,此时 M/S 不起作用。(4)AEOI:规定中断的结束方式规定中断的结束方式(如何使如何
38、使ISR中对应位清中对应位清0)AEOI=1 自动中断结束方式 当CPU 发出第二个 后,ISR 中的相应位复位,此时,不适宜实现中断嵌套。AEOI=0 非自动中断结束方式 由程序发出EOI 命令(由8259A 的OCW 实现),使ISR 中相应位复位。五、五、五、五、82598259A A 的初始化编程逻辑的初始化编程逻辑的初始化编程逻辑的初始化编程逻辑用ICW1设置:是否级联?请求信号的触发方式 后面是否用ICW4用ICW2设中断类型码是否为级联方式?本片为主片吗?设ICW3各位对应 IR0IR 7 的连接状况设ICW3 高5位为0;低3位为标识码用ICW4 吗?用 ICW4 设:为特殊全
39、嵌套方式?为缓冲方式?为自动EOI方式?为8086/8088系统?ENDNYNNY8259A的初始化流程注注意意:级级联联使使用用时时,主主、从从 8259A都都要要作作初初始始化化操作。操作。例:例:例:例:PC/XT PC/XT 系统中系统中系统中系统中82598259A A的初始化编程的初始化编程的初始化编程的初始化编程2020HH、21H21H为为为为82598259A A的端口地址,的端口地址,的端口地址,的端口地址,在在在在BIOS BIOS 中,中,中,中,82598259A A的初始化程序段如下:的初始化程序段如下:的初始化程序段如下:的初始化程序段如下:MOVAL,13H;I
40、CW1=0001,0011B,边沿触发边沿触发,单片使用单片使用,;要要 ICW4.OUT20H,ALMOVAL,08H;ICW2=08H,IR0IR7对应的中断类型号对应的中断类型号;为为08H0FHOUT21H,ALMOVAL,09H;ICW4=09H,正常的嵌套方式正常的嵌套方式,;非自动中断结束方式非自动中断结束方式OUT 21H,AL六、六、六、六、82598259A A 的操作命令字的操作命令字的操作命令字的操作命令字 对8259A 进行初始化编程后,8259A作好了接收中断请求输入的准备,在8259A 工作期间可由操作命令字OCW1OCW3 规定其各种工作方式。1.OCW1(中断
41、屏蔽操作命令字)中断屏蔽操作命令字)设置或清除IMR 的各个位。1A0D7D0M7M0 Mi=1 表示IRi被屏蔽 例例:设OCW106H,则表示IR1,IR2 两 个引脚上的中断申请被屏蔽,其他的中断申请(IR0,IR3IR7)则得到允许。8259A编程指令为:MOV AL,00000110B;OCW1屏蔽字OUT 21H,AL ;屏蔽字写入奇地址口 ;的 OCW1寄存器2.OCW2(优先权循环方式和中断结束方式优先权循环方式和中断结束方式操作命令字操作命令字)0RSL EOI00L2L1L0A0D7D6D5D4D3D2D1D0标志位有两个作用:(1)8259(1)8259A A 工作于非自
42、动中断结束方式时,如工作于非自动中断结束方式时,如工作于非自动中断结束方式时,如工作于非自动中断结束方式时,如何复位何复位何复位何复位ISR ISR 中的对应位?有两种方法:中的对应位?有两种方法:中的对应位?有两种方法:中的对应位?有两种方法:SFNM 一般方法:令SL=0,EOI=1 将OCW2写入8259A后,将刚刚被服务的IRi对应位复位。特殊方法:令 SL=1,EOI=1写入OCW2后,使L2L1L0指定的位复位。L2 L1 L00 0 00 0 11 1 1D0D1D7ISR中的DiIR0IR1IR7对应的IRi(2)(2)定义定义定义定义82598259A A 的优先权工作方法的
43、优先权工作方法的优先权工作方法的优先权工作方法 R=0 固定优先权方式IR0 IR1 IR7 R=1,SL=0 优先权自动循环方式例:IR7IR6IR5IR4IR3IR2IR1IR0初始优先权为:76543210若ISR=01010000则 当 IR4 服务完毕后,优先权为:21076543 R=1,SL=1 优先权特殊循环方式此时,L2L1L0 规定循环开始时的最低优先权例:1 1 0 0 1 0 1IR5优先权最低此时,优先权为:IR7IR6IR5IR4IR3IR2IR1IR010765432 例例例例例例:若若若若若若使使使使使使808680868086系系系系系系统统统统统统中中中中中
44、中825982598259A A A的的的的的的优优优优优优先先先先先先级级级级级级顺顺顺顺顺顺序序序序序序为为为为为为IRIRIR33,IRIRIR4,4,IRIRIR55,IRIRIR66 IRIRIR77,IRIRIR00 IRIRIR1,1,IRIRIR22,试试试试试试编编编编编编写写写写写写一一一一一一段段段段段段程程程程程程序序序序序序实实实实实实现现现现现现该该该该该该优优优优优优先先先先先先顺顺顺顺顺顺序序序序序序,设设设设设设825982598259A A A的的的的的的偶偶偶偶偶偶地地地地地地址址址址址址为为为为为为202020H HH。根根根根根根据据据据据据题题题题题
45、题意意意意意意要要要要要要求求求求求求,为为为为为为实实实实实实现现现现现现上上上上上上述述述述述述优优优优优优先先先先先先级级级级级级顺顺顺顺顺顺序序序序序序,应应应应应应先先先先先先确确确确确确定定定定定定OCWOCWOCW22,然然然然然然后后后后后后将将将将将将它它它它它它写写写写写写入入入入入入825982598259A A A的的的的的的偶偶偶偶偶偶地地地地地地址端口:址端口:址端口:址端口:址端口:址端口:MOVAL,0C2H ;OCW2 OUT20H,AL;把把OCW2写写入入8259A的的偶偶地址端口。地址端口。OCW2:R SL EOI 0 0 L2 L1L01 1 0 0
46、 0 0 1 0例例:试编一段程序,用以清除8086系统中8259A的ISR第6位(ISR6),8259A的偶地址为20H。为实现题意要求,应先确定OCW2的内容,然后将OCW2写入8259A的偶地址端口。OCW2:MOVAL,66H ;OCW2OUT20H,AL ;把OCW2写入8259A的偶地址端口。R SL EOI 0 0 L2 L1 L00 1 1 0 0 1 1 03.OCW300ESMM SMM01PRR RISA0D7D0标志位(特殊屏蔽方式和中断查询方式操作命令字特殊屏蔽方式和中断查询方式操作命令字)有三个作用:有三个作用:(1)(1)设置和撤消特殊屏蔽工作方式设置和撤消特殊屏
47、蔽工作方式设置和撤消特殊屏蔽工作方式设置和撤消特殊屏蔽工作方式 正常的屏蔽方式由OCW1 设置IMR 实现 特殊的屏蔽工作方式因因此此,可可以以通通过过设设置置或或撤撤消消特特殊殊的的屏屏蔽蔽工工作作方方式,动态改变优先权的结构。式,动态改变优先权的结构。正常的屏蔽方式设置特殊的屏蔽方式只要IMR中的对应位没有置“1”,8259A就可以接受其中断请求。撤消特殊的屏蔽方式正常的屏蔽方式=1SMM1ESMM令=0SMM1ESMM令(2)(2)为为为为CPU CPU 读取读取读取读取82598259A A内部寄存器提供选择内部寄存器提供选择内部寄存器提供选择内部寄存器提供选择INAL,INTA1;I
48、MR AL8259A 中的IMR由OCW1设置,对应奇地址端口,可以写入,也可以读出。8259A 中中IRR、ISR 只只能能读读出出,不不能能写写入入,都都对对应应偶偶地地址址端端口口。此此时时,可可先先写写入入OCW3,OCW3中中的的RR、RIS 规规定定从从偶偶地地址址端口读出的是端口读出的是IRR 或或ISR 的值。的值。MOV AL,OCW3OUT INTA0,ALIN AL,INTA0 ;若若OCW3中中RR RIS 则读出的是则读出的是1 1 ISR1 0 IRR 例例例例:试试试试编编编编写写写写一一一一段段段段程程程程序序序序,以以以以实实实实现现现现将将将将8086808
49、6系系系系统统统统中中中中82598259A A的的的的IRRIRR,ISRISR,IMRIMR三三三三寄寄寄寄存存存存器器器器的的的的内内内内容容容容读读读读出出出出并并并并送送送送入入入入存存存存储储储储器器器器从从从从00800080HH开开开开始始始始的的的的数数数数组组组组中中中中,设设设设82598259A A的偶地址为的偶地址为的偶地址为的偶地址为2020HH,奇地址为奇地址为奇地址为奇地址为2121HH。MOVAL,0AH;OCW3=0AH,指出要读指出要读IRR OUT20H,AL;OCW3写入写入8259A的偶地址端口的偶地址端口 INAL,20H;读回读回IRR的内容的内
50、容 MOV080H,AL ;将将IRR的内容存入从的内容存入从080H开始的单元中开始的单元中 MOVAL,0BH ;OCW30BH,指出要读指出要读ISR OUT20H,ALINAL,20H ;读回读回ISR的内容的内容 MOV 081H,AL ;将将ISR的内容存入内容的内容存入内容 INAL,21H ;读回读回IMR MOV082H,AL;IMR内容存入内存内容存入内存(3)(3)使使使使82598259A A 和和和和CPU CPU 的通信方式由中断方式的通信方式由中断方式的通信方式由中断方式的通信方式由中断方式 查询方式查询方式查询方式查询方式 某些情况下,当IF设置为0时,用查询方