2014/06第3章微型计算机中断技术《新编微机原理与应用》—中国电力出版社《新编微机原理与应用》—中国电力出版社2014/063.1计算机中断基本概念§3.1.1中断的定义所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突然事件的发生,暂时中止正在执行的程序,转去处理突然发生的事件(执行中断服务程序),处理完毕,再返回原来被中止的程序继续运行。中断服务程序中断返回中断响应断点中断入口地址主程序中断优点:只有服务时才能得到CPU的响应,不需要CPU不断的查询。这样,CPU就可以空出时间去做其他事情,直到接口需要它服务时为止。《新编微机原理与应用》—中国电力出版社2014/06§3.1.2中断源中断源---引起中断的原因或产生中断请求的来源。1)外部设备中断2)定时时钟中断3)故障中断4)软件(人为)设置中断1、中断源的分类2、中断源发出请求信号的条件1)中断请求触发器接收中断源2)中断屏蔽触发器开放《新编微机原理与应用》—中国电力出版社2014/06§3.1.3中断的响应1)CPU开放中断,否则禁止响应中断。2)中断源优先级别最高。3)当前没有发生诸如复位(RESET)、保持(HOLD)。4)等到CPU将当前指令运行结束后,才能响应中断。5)若当前执行的指令是开中断和中断返回指令时,则不仅需要执行完当前指令,还需紧接着再执行其它一条指令,CPU才能响应中断请求。1、中断响应的条件2、中断的响应过程1)关中断2)保存断点3)形成中断入口地址《新编微机原理与应用》—中国电力出版社2014/06对于中断的优先权问题,主要有三种解决方法:1、软件方案图7.2软件查询接口示意图三态缓冲器………INTRD0D1Dn端口选通(中断源A)(中断源B)(中断源H)…在中断服务中读入请求状态A申请?B申请?中断返回为中断源A服务的程序段YC申请?为中断源B服务的程序段为中断源C服务的程序段……YY§3.1.4中断优先权《新编微机原理与应用》—中国电力出版社2014/06通过硬件电路的设计有目的的将某个中断设定为高级别或低级别。硬件电路有链形电路和编码电路。2、硬件方案1)链形电路0#中断请求1#中断请求2#中断请求3#中断请求中断响应(来自CPU)中断响应输出0中断响应输出1中断响应输出2中断响应输出310中断优先级自上而下,上面端口的中断请求可以屏蔽下面的中断请求。硬件电路自然完成了中断判优。《新编微机原理与应用》—中国电力出版社2014/062)编码电路74LS148编码器管脚图及真值表74LSl48是一个8-3优先级编码器,它是一个16引脚双列直插式TTL器件。《新编微机原理与应用》—中国电力出版社2014/06优先控制失效控制中断屏蔽寄存器0-开中断请求触发器1-有请求中断优先级编码电路《新编微机原理与应用》—中国电力出版社2014/063)软硬件方案中断优先级的管理常通过软硬件结合的方案实现,即通过可编程中断控制器(如8259A)实现对中断优先级的管理。这种方式既有硬件方案的逻辑简单、响应中断快速等优点,又可以通过软件控制命令字和操作命令字对中断优先级进行灵活设置,因此被广泛采用。《新编微机原理与应用》—中国电力出版社2014/06CPU执行某中断服务程序时,可以响应中断优先级别更高的中断请求,这就是中断嵌套。根据事情的轻重缓急,中断级别可以由软件或硬件设置。§3.1.5中断嵌套《新编微机原理与应用》—中国电力出版社2014/06中断服务程序要做保护现场、开中断、中断服务、关中断、恢复现场、开中断并返回等6件事。PUSHAX;保护现场……..PUSHBXSTI;开中断………;中断处理CLI;关中断POPBX;恢复现场……….POPAX;STI;开中断IRET;中断返回中断返回中断服务程序入口起始部分结尾部分CPU响应中断后自动关中断保护现场主体部分开中断中断服务关中断恢复现场开中断§3.1.6中断处理《新编微机原理与应用》—中国电力出版社2014/06(1)保护现场CPU响应中断时自动完成寄存器CS和IP以及标志寄存器FR的保护,但主程序使用的寄存器的保护则由用户根据使用情况而定。由用户保护寄存器的这段程序称为保护现场,实质上是执行PUSH指令将需要保护的寄存器内容推入堆栈。CPU接收并响应一个中断后自动关闭中断。但在CPU正在处理当前中断源时,有可能出现更优先的中断源发出中断请求信号给CPU的情况。此时,应停止对该中断的服务而转入优先级更高的中断处理,故需要开中断。中断的嵌套。(2)开中断《新编微机原理与应用》—中国电力出版社2014/06(3)中断服务中断服务程序的核心就是对某些情况进行处理,如传输数据、处理掉电紧急保护和各种报警状态等。由于上述的开中断,因而在此应对应一个关中断过程,以便下面的恢复现场的工作顺利而不被打断。(4)关中断在返回主程序前要将用户保护的寄存器内容从堆栈中弹出,以便返回主程序后继续正确执行主程序。恢复现场用POP指令。(5)恢复现场(6)开中断并返回在返回主程序前(中断服务程序的第二条指令)是开中断指令,最后一条是返回主程序指令IRET。《新编微机原理与应用》—中国电力出版社2014/06中断系统的特点:矢量中断,中断矢量表。3.2中断系统1、矢量中断(中断向量)8086系统共有256个中断源,将这些中断源都编上号,依次是00H~FFH号,这个号就称为中断类型号。每个中断都对应着相应的中断服务程序,这些中断服务程序可以存放在存储器的任何位置。每个中服程序的入口地址称为一个中断向量。将这些中断类型号对应的中服入口地址集中起来列成一个表,放到存储器的固定区域内,这个按顺序存放中服入口地址的表就称为中断向量表。《新编微机原理与应用》—中国电力出版社2014/062、中断矢量表中断向量表存放在存储器的底部,每个中服地址(中断向量)占用4个单元(CS:IP),8086一共有256个中断源,因此中断向量表占用4×256=1024个存储单元,地址为:00000H~003FFH。