第 中断技术PPT课件_第1页
第 中断技术PPT课件_第2页
第 中断技术PPT课件_第3页
第 中断技术PPT课件_第4页
第 中断技术PPT课件_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、 1.中断请求 外设先(通过接口)发送“中断请求”信号 给CPU。 CPU检查“中断请求”输入线。 CPU有权决定是否响应中断(中断允许中断允许):若允许请求,、则中断允许触发器IF置“1”, (使用STI指令开中断)。 第1页/共66页 不允许中断请求的情况: 如:在实时控制时,需采集一段连续数据为防上数据 丢失,不允许其他中断请求; 又:执行管理程序中某些重要程序,CLI指令进行屏蔽。 若不允许申请,(用CLI指令)关中,触发器IF=0。 没有获得允许向CPU发出中断请求,则称为 中断被屏蔽(中断屏蔽)。第2页/共66页 CPU在当前指令执行结束时,响应中断,进入中断的响应周期; 发出二个

2、中断回答信号INTA完成一个中断响应周期 进行断点及标志保存 如:段地址(CS),偏移地址(IP)标志FR以及压入堆栈。 读取中断类型号,找到中断源; 装入中断服务程序的入口地址(CS,IP)第3页/共66页 3.中断服务 转入中断服务程序后,其服务程序的内容有: a.与CPU交换数据,进行I/O操作; b.外部期望CPU给以控制,进行参数修改。 在程序开头,将可能使用的寄存器内容进栈,即保护现场。 在服务程序的未尾,将入栈的寄存器内容弹出,即恢复现场。第4页/共66页 4.中断返回 中断服务程序结束,执行中断返回。 自动将保存在堆栈中的标志PSW,断点(IP,CS)依次弹出并装入。 返回到中

3、断前的地址(断点地址)开始继续执行主程序。第5页/共66页v三、中断源、中断识别、优先级 中断源:发出中断请求的外设或引起中断的内部原因称为中断源。 中断识别:CPU响应中断后,只知道有中断请求但不知道是哪一个中断源,寻找中断源的操作过程称为中断识别。 中断识别的目的:形成该中断服务程序的入口地址。第6页/共66页v CPUCPU识别中断的方法:识别中断的方法:v 二种: 向量中断v 程序查询中断v 向量中断:在CPU响应中断后,由中断控v 制器将服务程序入口地址送到CPU。v 查询中断:采用软件查询技术来确定发出v 中断请求。第7页/共66页四、多重中断(中断嵌套)响应1响应2服务 器返回返

4、回主程序第8页/共66页五、中断处理的隐操作及堆栈技术的使用 CPU执行中断服务程序前后,其状态标志和程序断点的进栈和出栈,都是硬件自动完成,这些操作称隐操作。 堆栈的使用1.建栈操作 MOV AX,1050H MOV SS,AX ;将当前堆栈基址送入SS MOV SP,0008H ;将堆栈段偏移地址送入SP 此时,栈顶指向1058H处。第9页/共66页 2.进栈操作(堆栈的深度:最大64KB空间) PUSH AX (SS:堆栈寄存器 SP:栈 偏移地址) 3.退栈操作 POP AX ;先送AX, POP BX ;后送BX第10页/共66页v上图中操作的指令序列如下:v MOV AX,1050

5、H ;建栈v MOV SS,AX v MOV SP,0008Hv PUSH BX ;进栈v PUSH AXv POP AX ;退栈v POP BX第11页/共66页TOS(1)建栈(2)进栈(3)退栈EFCDAB8967451234BBAA998877665544332211005010501010621060105E105C105A1058105610541052105010621060105E105C105A10581056105410521050EFCDAB8967452301BBAA9988776655443322110008005010存在的堆栈3412EFCDAB896745123

6、4BBAA998877665544332211005010501010621060105E105C105A105810561054105210503412AABB不是存入栈中的随机数TOSTOSSS图5.1 8088/8086堆栈操作示意图(a)(b)(c)第12页/共66页5。2 80X86的中断系统的中断系统一一. 80X86的中断分类(的中断分类(256级)级)分类第13页/共66页 1. 1.中断服务程序的入口地址-中断向量 CPU响应中断后,中断源提供地址信息,由此地址信息对程序的执行进行导向,引导到中断服务程序中去,故把这个地址信息称为中断向量。 中断向量包括中断服务程序的段基址C

7、S,偏址IP共4个字节。 中断向量表:所有的中断向量集中存放到存储器的某一区域,这一区域称之为中断向量表。二二.80X86的中断类型码及的中断类型码及中断向量表中断向量表第14页/共66页中断向量表0BA90125000003FF1024个单元000003FF共1024个字节存放256个向量第15页/共66页2.中断向量,中断向量指针与中断类型号 中断向量:中断服务程序入口地址 中断向量指针: 指出中断向量存放在中断矢量表中的位置(或地址)。 在在PCPC系列中中断向量指针由中断类型号提供系列中中断向量指针由中断类型号提供的,即的,即 向量地址向量地址=0000=0000:类型号:类型号4 4

8、第16页/共66页如:硬盘“1NT13H”它的向量地址=0000:13H4 =0000:004CHn004CH开始连续4个单元中用来存放“INT 13H”的中断向量:中断向量寄存器中断向量指针00700FC9CSHCSLIPHIPL004FH004EH004DH004CH图5.2 中断向量指针示意图中断号向量地址中断向量硬盘13H13H4=4CH0070:0FC9第17页/共66页5。2 80X86的中断系统的中断系统一一. 80X86的中断分类的中断分类分类第18页/共66页二、硬中断(见下表)1.不可屏蔽中断NMI-通常用于处理紧急/灾难性事件 RAM奇偶校验错PCK I/O通道校验错I/

9、O CHCK 协处理器8087运算错INT 响应时间响应时间:在当前机器周期之后立即响应。在当前机器周期之后立即响应。 第19页/共66页INTRINTR中断可以被中断可以被CPUCPU用指令用指令CLICLI来禁止,来禁止,由由STISTI允许允许。中断响应条件:I F=1 INTR=1中断响应时间:当前指令执行完以后,所以,INTR高电平信号需要一定的保持时间高电平信号需要一定的保持时间。INTR中断响应过程如下:2.2.可屏蔽中断可屏蔽中断INTRINTR第20页/共66页M80X86I PCSPSWINTR 1 INTA 2 类型码N 3 中断矢量表零页地址空间4个字节TYPE 0TY

10、PE 1IPCS6 N*4SS9PA(20位.入口)中断服务程序STI CLI 10.IRET 11IF .TF清零57断点.现场恢复12 4 断点.现场进堆栈8中断响应过程INTR第21页/共66页三.80X86的中断响应总线周期:当: CPU收到INTR中断请求 当前一条指令执行完,且中断允许标志位IF=1 那么:CPU进入中断响应周期,它通过总线控制器发出 二个连续中断应答信号完成一个中断响应周期INTA周期周期第22页/共66页 在中断响应周期的两个工作: 1.第一个INTA脉冲时,通知中断源,其中断请求已被响应,准备发送类型码。此时,CPU产生LOCK信号,使总线处于封锁状态,防止D

11、MA占用总线。 2.在第二个INTA,CPU通过数据总线低8位读取类型码。同时,LOCK信号撤除,总线解封 。第23页/共66页 中断响应总线周期时序波形图T1T2T3T4T1T2T3T4中断号CLK(时钟)ALE(地址允许)LOCK(总线锁存)INTA(中断应答)D0D7(数据)图5.8 中断响应周期返回返回幻灯片幻灯片 25第24页/共66页3. 8259A3. 8259A可编程中断控制器可编程中断控制器一、一、8259A8259A中断控制器的功能。(中断控制器的功能。(82598259是一个可编程的中断是一个可编程的中断控制器芯片)控制器芯片) 1.一片8259芯片可响应8级INTR中断

12、请求,通过级连INTR可扩展至64级。 2.可对各级INTR请求进行优先权管理,8259具有完全嵌套,循环优先级,特定屏蔽等多种优先权管理方式。 3.对每一级中断请求进行均可依需要给予屏蔽或开放。 4.当CPU响应INTR中断请求后,8259可提供相应的中断类型码,从而使CPU迅速转入中断服务程序入口。 5.可通过编程手段,设置8259的8种不同工作方式。第25页/共66页INT数据总线缓冲器读/写逻辑级联缓冲/比较器控制逻辑正在服务寄存器ISR优先级分析器PR中断屏蔽寄存器 IMR中断请求寄存器IRRIR0IR1IR2IR3IR4IR5IR6IR7D0D7A0CAS0CAS1CAS2SP/E

13、NCSWRRD图5.6 8259A内部逻辑框图INTA二、二、8259A的内部结构的内部结构第26页/共66页 CPU数据总线缓冲器读/写控制逻辑内部控制逻辑DB8位CSWRRDA0所有与CPU交换信息通过它进出CPU8259中断控制器由8个主要部分组成,根据8259是一专用接口芯片,可将它的8个部分按下面三个部分划分: 1。与。与CPU接口部分:接口部分: CPU通过它实现 8259 的读/写操作控制以及对 8259进行初始化操作 对8259芯片内部实现控制操作,使8259按初始化编程操作作第27页/共66页 2。与外部硬件(中断源)连接部分:。与外部硬件(中断源)连接部分: 中断请求寄存器

14、(IRR)一片8259有8条INTR中断请求线 IR0IR7,每一条请求线有一个对应的触发器来存放 中断请求信号。 中断请求寄存器IRRIR0IR1IR2IR3IR4IR5IR6IR7第28页/共66页 (3)中断屏蔽寄存器IMR的每一位可对IRR中相应的中断源进行屏蔽,如果禁止某IR提出中断请求,就将其中在IMR中的相应位量“1”。 IMR对于较高优先权的IR实行屏蔽并不影响较低优先权的IR的输入 3。内部工作寄存器:。内部工作寄存器: (1)正在服务寄存器ISR,用于记录已被获准的中断请求(即将与IR对应的IS位置位) (注意:注意:ISR除存放正在被服务的中断源外,还包括尚未除存放正在被

15、服务的中断源外,还包括尚未服务完而中途被别的中断源暂时中止的中断)服务完而中途被别的中断源暂时中止的中断) ( 2)优先权分析器 对保存在IRR的各个中断请求经过判断 确定其中一个为最高优先权,然后在中断响应周期时间将它选通到中断服务寄存器 中。分析器分析器第29页/共66页中断屏蔽寄存器IMRD0D1D2D3D4D5D6D7中断请求寄存器IRR & & 中断请求优先级编码器1ISR编码器 AB比较器B0B1B2A0A1A2 &INTIR0IR1IR2IR3IR4IR5IR6IR7图5.7 中断优先级分析器的工作原理返回第30页/共66页 CAS0 CAS1 CAS2

16、SP/EN8259AWRRDCSINTINTAIR0IR1IR2IR7外部中断源。WRRD。地址译码A71A0。INTRINTAVCCC GNDCPU三、8259的引脚及其功能 ( 见书P87,表58 ) 8259有28个引脚,具体如下:第31页/共66页 8259的中断响应过程:的中断响应过程: 1。当有一条或多条中断请求引脚信号有效时(即IR70相应引脚为“1”)。 中断请求寄存器IRR的相应位被置为“1”。 2。若中断请求IR1线中至少有一个中断请求被允许,则8259通过INT引脚向CPU的INTR送出中断请求信号。 3。若CPU处于开中状态(IF=1),则在当前指令执行完后,向8259

17、发回INTA信号,表示中断请求已被CPU响应。 4。8259接收到CPU发出的INTA信号后。将中断请求源(对应于各IRi) 中 优先权最高的对应的ISR位置位,然后将IRR中相应的IRi位复位。第32页/共66页 5。8086CPU继续启动另一个中断响应周期,发送第二个INTA信号,此时 8259向数据总线DB70送出8位的中断类型码。 返回Type码N用户在对8259初始 化编程时设定由中断请求线IRi的进制编码决定,由8259自动插入填写D7D3D2D1D0 该中断类型码的生成:该中断类型码的生成:第33页/共66页 非自动结束方式非自动结束方式:在中断服务程序结束处写一中断结束命 令(

18、置EIO为“1”),相应IS位 才会被复位。至此,至此,8259的一次中断响应过程完成。的一次中断响应过程完成。6、CPU读取中断类型码N后,用N*4查中断矢量表,获取服务程序入口地址有关信息(IP和CS值),转入服务程序入口执行程序。7、中断响应周期完成后,8259中断工作结束,被量位的ISR中的相应位复位,其中断方式有两种: 当8259工作于AEOI模式(自动结束方式自动结束方式):当CPU送出的INTA脉冲结束时,其后沿使在“4”中被量位的IS位复位(清零)。第34页/共66页v 从8259各I/O端口读状态字,中断类型码及查询字v 对8259各I/O端口写入初始化命令字,工作方式命令字

19、 操作是由RD、WR控制信号进行控制,而对各端口的寻址则是由CS和A0确定的。v 具体I/O端口寻址及操作情况如下: (一片8259只占两个端口地址,也就是说8259只有两个I/O端口-奇数口和偶数口 )四四 对对8259的端口寻址及其操作(读的端口寻址及其操作(读/写基本操作)写基本操作)第35页/共66页PIC1PIC2CS A0 WR RD TP86A输入操作(RD)20H 21H0A0H0A1H0 0 1 00 1 1 0 0FFDCH0FFDEHIRR ISR 查询字(OCW3)IMR(OCW1) CPU输出操作(WR)20H21H0A0H0A1H0 0 0 0 0 10 0 0 1

20、 0 10 0 1 X 0 10 1 X X 0 1 0FFDH0FFDH OCW2CPU写 OCW3 ICW1 写(IMR).OCW1.ICW2.3.4对对8259的端口寻址及其基本操作(读的端口寻址及其基本操作(读/写基本操作)写基本操作)注意注意:8259只有两个端口,由A0一位确定: 1:奇数口 0:偶数口 由奇/偶数端口及控制字中的某些特定 位来确定命令字往那个R中送。DB7-0DB7-0第36页/共66页B07TA078286OEB07TA078286OEB07TA078286OED07CAS02从片ASP/ENINTAINTD07CAS02从片BSP/ENTITAINTD07CA

21、S02主片SP/ENINTAIR5 IR6+5V1k+5V1k+5V1k数据总线数据总线局部数据总线DENDT/RINTRINT INTA图5.9 缓冲方式级联系统数据总线返回第37页/共66页 必须在8259始工作前设量 可在启动8259之后的 任何地方设置 五、对五、对8259的编程:的编程: (初始化编程)(初始化编程) 启动8259开始工作:向8259送入24个字节的初始化命令字 (ICW14)对8259工作方式进行设量:向8259送出3个字节的操作命令字 (OCW13) Initialigation CommandWordOperation Command Word第38页/共66页

22、 即向8259相应端口送入24个字节的初始化命令字。 初始化命令字输出顺序如下: (一(一 ).对对8259的初始化编程顺序:的初始化编程顺序:第39页/共66页ICW1ICW2单片?单片?ICW3N (SNGL=0)Y需要需要ICW4设定中断请求触发方式设定中断请求触发方式中断类型号的设定中断类型号的设定Y(ICW4=1)ICW4准备好进行中 断服务设定特定完全设定特定完全嵌套方式嵌套方式设定级联合方式第40页/共66页1 SNGL为“1”/“0”: 由ICW1中的D1位说明 ICW4 需 要 否: 由ICW1中的D0位决定2 4个命令字中, ICW1 ICW2是必须的, 而ICW3 ,IC

23、W4是由工作方式来确定是否需要。说明:说明:第41页/共66页 1LTIM XSNGLICW4D7D6D5D4D3D2D1D0只用于8位机一定为1(ICW1的特征位1 电平触发0 边沿触发只用8位机1 单片0 级联1 需要ICW40 不需要ICW4(二)、各初始化命令字的格式及其含义(二)、各初始化命令字的格式及其含义 1. ICW1:中断请求触发方式的设定中断请求触发方式的设定 格式如下:第42页/共66页 当某IRI中断请求被CPU响应后,在系统的第二个INTA周期8259须向CPU提供8位的TYPE码(其高5位由ICW2的D7D3位提供,其低3位由 IRI的二进制编码决定,在CPU读取T

24、YPE码前,由8259自动填入到DB7 0的D2 D1 D0三位数据总线上)vINTR中断源的TYPE码=(ICW2的)高5位+低3位(IRI的编码) 2. ICW2 : 用于中断类型码的提供用于中断类型码的提供TYPE码码 第43页/共66页v 编程举例:在PC机中,硬盘中断源的类型码的高5位由用户 或系统在ICW2中设定,ICW2内容为08H,其中断请求线与8259的IR5相连,类型 码的形成过程如下: TYPE码高5位已获得:D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 1 用户初始化编程: MOV AL, 08H; AL ICW2内容 OUT 21H, AL; AL

25、ICW2对应端口 (A0=1)第44页/共66页 CPU响应硬盘中断请求后,8259在INTA2送低3位至ICW2对应端口中,将IR5 对应101连同ICW2的高5位一齐送到DB70上:00001101IR5得到硬盘中断TYPE码为0DH第45页/共66页在PC/XT和PC/AT中,IRI的二进制编码也就是在系统中断优先级的编码。. PC/XT、PC/AT中断类型码的生成表见书P98第46页/共66页 3 . ICW3(中断级联方式的设定): ICW3初始化命令字用于8259的级联,若系统中只有一片8259A,则不需要设置命令字ICW3,若有多片若有多片8259级联,则主、从级联,则主、从82

26、59片都必须设置片都必须设置ICW3命令字,且主、从片的ICW3格式有所区别,具体如下:第47页/共66页主片ICW31S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0(2)ICW3的格式: a.主片ICW3S 7-0:1-8259主片的IRi引脚上连接有8259从片0-无从片连接第48页/共66页说明:说明:当由多片8259A构成级联中断控制器机构时,与中断请求线IRI相连的8259A叫做从8259,与CPU的INTR引脚相连的那一片8259A叫做主8259A,级联将中断源由8扩至64级。 编程举例:若主8259的IR3和IR5两 输入端分别连接了从 8259A片,则有主

27、主82598259的的ICW3ICW3的值为的值为00101000B=28H00101000B=28H。 MOV AL, 28H; 主ICW3 AL OUT 21H, AL; AL 主ICW3对应 端口A0=1第49页/共66页从片ICW3A0D7D6D5D4D3D2D1D01ID2 ID1 ID0 b.从片ICW3D7D3ID2 D2ID1 D1 ID0 D0 未用未用0 0 0 IR00 0 1 IR10 1 0 IR20 1 1 IR31 O O IR4 标明从标明从8259的的INT引脚引脚1 0 1 IR5 具体与主具体与主8259的哪一个的哪一个1 1 0 IR6 IRI引脚相连引

28、脚相连1 1 1 IR7第50页/共66页 .从从8259的从的从ICW3的设定过程与主的设定过程与主ICW3相同相同 例如 :有主8259的IR6和IR1分别连接了从片8259, 则 有: 从片A的ICW3=00000001B=01H-与主片IR1相连 从片B的ICW3=00000110B=06H-与主片IR6相连 编程如下: MOV AL, 01H; OUT 21H, AL; MOV AL, 06H; OUT 21H, AL; 第51页/共66页 级联方式下级联方式下CPU对从片中断请求的响应:对从片中断请求的响应: 1 . 从IRI 经判优,最终到达CPU的INTR引脚。 2 .CPU响

29、应INTR请求,发出INTA,给所有8259(主及从) 3 . 主8259通过级联线CAS20向所有从片送出优先权最高的 中断源所在的从8259的标识码符 4 . 各从片将CAS20上来的ID2-0码与自己的ID2-0码核对,进行 比较以后,相符的从8259就在INTA2周期送出中断类型码。 5 . 在CPU发出INTA2时,从DB70上读取TYPE码第52页/共66页CPU INTR INTA WR RD DB8 CS A0SP/EN IR0 8259从INT INTA IR7WRRD CAS20 CS A0SP/ENN IR0 8259从INTINTA IR7WRRD CAS20 8259

30、中断级联方式的连线中断级联方式的连线 CS A0SP/EN IR0 8259主 INT IR7INTAWRRD CAS20 返回返回49第53页/共66页 4.ICW 4.ICW4 4格式:格式: (嵌套和中断结束方式)1 16位CPU0 8位CPUD7 D6 D5 D4 D3 D2 D1 D00 0 0 SFNM BUF M/S AEOI MPM 1 特定的完全嵌套方式0 正常的完全嵌套方式 0 1 0 1 1 非缓冲方式缓冲方式/从缓冲方式/主主结束中断的方式, 1 自动EDI 由OCW2具体规定 0 非自动EDI 注:注:非缓冲方式(BUF=0时),则M/S无意义,此时主/从 由SP端决

31、定。主片:SP=+5V,从片:SP接地第54页/共66页 编程举例: 在TP-86单片机中,CPU8086为16位机,采用非自动结束中断方式, 使用1片8259,正常完全方式,8259与系统总线间采用缓冲器连接, 其对应其对应ICW4为为00001101B=0DH MOV DX, 0FFDEH; ICW4对应端口地址 DX MOV AL, 0DH; 设置ICW4 送 AL OUT DX, AL; ICW4送8259奇数口(A0=1) 第55页/共66页(三)(三).设置设置8259的工作方式的工作方式通过设置OCW1-OCW3实现第56页/共66页 .特定完全嵌套方式的设定(ICW4) 问题的

32、提出: 在级联方式中,当从控接收到比“正在服务”中的那一个优先等级更高的中断申请时,就不会被主控识别,就是说,从控的较高优先级的中断就不能被及时服务。 为了解决这个问题,8259提供了一种特定的完全嵌套方式。 如果在主控中采用这种方式,那么当从控收到一个更高的中断请求时,它是会被主控识别的。这种完全嵌套方式是在初始化时由ICW4指定的。返回第57页/共66页 8259的工作方式有:的工作方式有: 1 中断屏蔽方式: 正常 OCW1 IMR 特定 OCW3(D6 D5=1)设定 2 中断嵌套方式 : 完全固定,依IR0IRR7排优 特定的完全嵌套 ICW4(D4 SFNM)=1 (CPU可以响应所有与正在被响应的ISRI同 级以及更高优先权的中断请求) 3 中断优先权排队方式 :优先权固定 优先权轮转,由OCW2具体操作 4 中断结束方式 : 自动结束,在INTA2自动使ISRI置0, ICW4的D1=1 非自动结束,通过ICW4的D1=0 以及 OCW2 指定/不指定,轮转/不轮转第58页/共66页 5 级联 6 缓冲 7 读8259的状态 ,即 读IRR, ISR 。先设量OCW3(D1 D0) 再使用IN命令 读;对IMR进行读,可以直接通过IN指令对 奇数端口进行读操作即可。 8 读查询字

温馨提示

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

评论

0/150

提交评论