您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 微机原理 第9章 微型计算机中断技术
第9章微型计算机中断技术9.1中断的基本概念9.1.1中断及中断源9.1.2中断系统的功能9.1.3中断工作过程9.1.1中断及中断源一、中断所谓中断,是指计算机在正常运行的过程中,由于种种原因,使CPU暂时停止当前程序的执行,而转去处理临时发生的事件,处理完毕后,再返回去继续执行暂停的程序。也就是说,在程序执行过程中,插入另外一段程序运行,这就是中断。外部设备与CPU并行工作,提高了计算机的效率。9.1.1中断及中断源二、中断源引起中断的原因或发出中断请求的来源,称为中断源。中断源有以下几种:1、外设中断源2、故障中断源3、软件中断源4、为调试而设置的中断源5、定时时钟。9.1.2中断系统的功能一、中断的实现与返回在当前的指令执行完后,将断点处CS和IP值保存起来,即保存下一条将要执行的指令地址,并将标志位的值压入堆栈,在中断服务程序执行前所进行的这些压栈工作被称为保护断点,然后转到需要处理的中断服务程序的入口。当中断服务程序执行完毕后,再恢复标志寄存器FLAGS及IP和CS值,即恢复到原程序运行的环境,使CPU继续执行断点处的程序。9.1.2中断系统的功能二、能实现优化级排队设计者事先根据轻重缓急,给每个中断源确定不同的级别,也就是在实际的计算机系统中,为不同的中断源设定不同的优先级。优先级管理可以使系统具备有序的事件处理能力。9.1.2中断系统的功能三、能实现中断的嵌套当CPU响应了某一个中断请求,正在执行该中断服务程序时,又有另一个中断源向CPU发出了中断请求CPU响应将会分为两种情况:1、但如果新来的请求的级别高于正在执行中断的级别,CPU则不得不打断正在执行的中断服务程序而去执行新的、更高一级的中断服务程序。2、新来中断的优先级等于或低于当前正在响应中断的优先级,CPU将新来的中断排到中断队列中,继续执行当前的中断服务程序,执行完毕后再去执行新的中断。图9.1中断系统嵌套示意图主程序中断请求B中断服务程序B中断请求A中断服务程序A中断返回中断返回9.1.3中断工作过程中断请求:中断源产生中断请求信号或内部产生某种异常中断判优:如果有两个或两个以上中断源同时发出中断请求,要根据中断优先级,找出最高级别的中断源9.1.3中断工作过程中断响应:CPU接到外部可屏蔽中断请求信号后,在满足一定条件下,就进入中断响应周期CPU响应外部可屏蔽中断的条件是:(1)接收到有效的中断请求信号;(2)CPU允许中断,即IF为1(3)CPU执行完当前指令。CPU响应中断后,将自动完成以下处理:(1)关中断,即IF清零。(2)断点保护。(3)形成中断入口地址。9.1.3中断工作过程中断处理:中断处理也叫中断服务,是由中断服务程序完成的。中断服务程序一般应由以下几部分按顺序组成:(1)保护现场(2)CPU开放中断(3)中断服务程序(4)CPU关中断(5)恢复现场中断返回:IRET指令自动返回到断点地址,继续执行被中断的程序。9.28086的中断结构9.2.18086中断类型9.2.2中断向量和中断向量表9.2.38086的中断响应过程9.2.18086中断类型8086中断属于向量中断,也叫矢量中断或类型中断。8086系统可处理256种不同类型的中断,每种中断对应一个中断类型号,256种中断对应的中断类型号为0~255。图9.28086中断结构图8086/8088CPU中断逻辑指令中断断点中断溢出中断除法错单步中断N43012NMI非屏蔽中断请求INTR中断控制器8259A可屏蔽中断请求9.2.18086中断类型一、外部中断外部中断是由外部硬件引起的中断,所以也叫硬件中断,分为非屏蔽中断和可屏蔽中断两种。1、非屏蔽中断:NMI引脚上出现有效高电平持续2个时钟周期以上的上升沿,中断类型号预先定义为2,不发送中断应答信号,不受IF标志位影响。用于处理存储器奇偶校验错、I/O通道奇偶校验错以及8087协处理器异常中断等。INTA9.2.18086中断类型2、可屏蔽中断中断请求信号来自INTR引脚,CPU对INTR信号是在每条指令的最后一个时钟周期采样的,因此外设的中断请求信号必须在其被接受前保持有效。CPU是否响应该中断请求,取决于中断允许标志位IF的状态。若IF=1,CPU开放中断,则响应,否则不响应。9.2.18086中断类型二、内部中断内部中断是由CPU内部事件引起的中断,内部中断也称软件中断。1、溢出中断2、除法出错中断3、单步中断4、断点中断5、指令中断内部中断向量号是已知的,因此不需要中断响应周期。内部不断不受IF标志位影响。8086的中断优先级由高到低依次为软件中断(单步中断除外)、非屏蔽中断NMI、可屏蔽中断INTR、单步中断。9.2.2中断向量和中断向量表8086/8088CPU是采用向量中断的方式来处理对可屏蔽中断的响应,向量中断是指连接外部中断源的接口电路提供中断类型号给CPU,使得CPU根据类型号找到该中断源的中断服务程序入口地址信息的中断方式,也称为矢量中断。9.2.2中断向量和中断向量表1、中断向量中断服务程序入口地址为中断向量,每个中断类型对应一个中断向量。每个中断向量为4字节(32位),用逻辑地址表示一个中断服务程序的入口地址,占用4个连续的存储单元,其中低16位(前2个单元)存放中断服务程序入口的偏移地址(IP),高16位(后2个单元)存放中断服务程序入口的段地址(CS)。9.2.2中断向量和中断向量表2、中断向量表256种中断类型所对应的中断向量,共需占用1K字节存储空间,地址为0-3FFH,称为中断向量表。9.2.2中断向量和中断向量表存储器地址(中断向量地址)存储器内容(中断向量)中断类型号00000H中断服务程序入口偏移地址低8位000001H中断服务程序入口偏移地址高8位000002H中断服务程序入口段地址低8位000003H中断服务程序入口段地址高8位0.........00024H中断服务程序入口偏移地址高8位900025H中断服务程序入口偏移地址高8位900026H中断服务程序入口段地址低8位900027H中断服务程序入口段地址高8位9.........表9.18086CPU中断向量表9.2.2中断向量和中断向量表对应每个中断向量在该表中的地址称为中断向量指针。中断向量指针可由下式计算得到:中断向量指针=中断类型号×4例9.1:00C0H、00C1H、00C2H、00C3H这4个单元中的值分别为10H、20H、30H、40H,求类型号为30H的中断所对应的中断向量?中断向量为4030H:2010H9.2.38086的中断响应过程一、内部中断响应过程1、将类型号乘4,计算中断向量指针;2、CPU的标志寄存器压栈,以保护各个标志位;3、清除IF和TF标志,屏蔽可屏蔽中断和单步中断;4、保存断点,即把断点处的IP和CS值压入堆栈,先压入CS值,再压入IP值;5、根据第一步计算出来的中断向量指针从中断向量表中取出中断服务程序的入口地址(段地址和偏移地址)即中断向量,分别送至CS和IP中;6、转入中断服务程序执行。9.2.38086的中断响应过程二、外部中断响应过程CPU在每条指令的最后一个时钟周期,都要检测中断请求输入引脚,看是否有外设的中断请求信号。根据优先级,CPU先检查NMI引脚再检查INTR引脚。1、非屏蔽中断响应特点:必须响应,不能被IF标志位禁止,中断类型号预定义为2,没有中断响应周期。9.2.38086的中断响应过程2、可屏蔽中断响应当CPU检测到外设有中断请求(即INTR为高电平)时,CPU又处于允许中断状态(IF=1),则CPU就进入中断响应周期。在中断响应周期中,CPU自动完成如下操作:1)处理器接到中断申请,处理完当前指令即进入中断响应周期;2)第二阶段即中断响应周期,在此期间CPU向外部中断控制器发送两个响应脉冲信号/INTA。第一个响应脉冲通知中断控制器,已经响应外部中断请求,让中断控制器提供中断类型号。第二个响应脉冲,CPU取走中断类型号。9.2.38086的中断响应过程3)将标志寄存器中的内容压入堆栈保护,然后清除IF和TF标志,以禁止INTR引脚以及陷阱和单步中断。4)将断点地址压入堆栈(CS:IP)。先压入段地址CS,后压入偏移地址IP。5)CPU通过得到的中断类型号计算其中断服务程序入口地址,分别送到CS和IP中,并按新的地址指针执行中断服务程序,完成中断响应任务。图9.38086对INTR的中断响应时序CLKT1T2T3T4T1T2T3T4ALELOCKINTAD0~D7中断类型号第一个INTA总线周期第一个INTA总线周期9.3可编程中断控制器8259A8086CPU可屏蔽中断请求引脚只有一条,而外部硬件中断源有多个,为了使多个外部中断源能共享这一条中断请求引脚,必须解决如下几个问题:(1)解决多个外部中断请求信号与INTR引脚的连接问题。(2)CPU如何识别是哪一个中断源发送的中断请求问题。(3)由于一次只能响应一个外设的中断请求,当多个中断源同时申请中断时,如何确定响应顺序问题。9.3.18259A的功能8259A有强大的中断管理功能,主要体现在:(1)具有8级优先级,并可通过级联最多扩展至64级;(2)可通过编程屏蔽或开放接于其上的任一中断源;(3)在中断响应周期能自动向CPU提供可编程的标识码,如8086的中断类型号;(4)可编程选择各种不同的工作方式。9.3.28259A的内部结构与引脚信号D7~D0数据总线缓冲器RDWRA0读写控制逻辑CSCAS0CAS1CAS2级联缓冲/比较器控制逻辑INTINTA中断屏蔽寄存器IMR中断服务寄存器ISR优先级比较器PR中断请求寄存器IRRSP/ENIR0IR1IR2IR3IR4IR5IR6IR7图9.48259A内部结构框图一、内部结构1、数据总线缓冲器数据总线缓冲器用于8259A内部总线和CPU数据总线之间的连接,它是一个三态8位双向缓冲器。它的主要功能有:1)微处理器向8259A发送命令;2)微处理器读取8259A的状态信息;3)在中断响应周期,微处理器从中获得中断类型号。一、内部结构2、读/写控制逻辑读/写控制逻辑接收CPU的读/写命令,完成读写操作3、级联缓冲/比较器该电路用于多片8259A的级联。4、中断请求寄存器(IRR)IRR用于存放从外设来的中断请求信号,有中断请求信号时,IRR对应位置1,当该中断请求被响应时,该位复位。一、内部结构5、中断服务寄存器(ISR)ISR用于保存所有正在被服务的中断源,是一个8位寄存器。接到第一个中断响应后置位,同时IRR复位,ISR的复位:中断自动结束方式时是自动实现,其他工作方式,是通过中断结束命令EOI实现的。一、内部结构6、中断屏蔽寄存器(IMR)IMR用于存放对应中断请求信号的屏蔽状态。对应位置1,屏蔽;清0,允许。7、优先级比较器(PR)优先级比较器用于识别和管理各中断请求信号的优先级别。8、控制逻辑二、引脚信号8259A是28脚DIP封装的芯片,引脚排列如图所示12822732642552462372282192010191118121713161415CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDCAS2SP/ENINTIR0IR1IR2IR4IR3IR5IR6IR7INTAA0VCC二、引脚信号1、与CPU总线相连的信号D7~D0:双向三态数据线,与CPU数据总线直接相连或与外部数据总线缓冲器相连。/RD、/WR:输入,读、写命令信号线,与CPU的读、写信号相连。/CS:输入,片选信号线,通常接CPU高位地址总线或地址译码器的输出。INT:输出,中断请求信号输出端,用于向CPU发出中断请求信号。/INTA:输入,中断响应输入信号,用于接收CPU发出的中断响应信号。A0:输入,地址线,通常接CPU低位地址总线。A0=0是偶地址,A0=1是奇地址,该地址线与、信号配合,可读写8259A内部相应的寄存器二、引脚信号CSRDWR/CSA0/RD/WR地址(奇、偶)功能0010偶地址写ICW1、OCW2、OC
本文标题:微机原理 第9章 微型计算机中断技术
链接地址:https://www.777doc.com/doc-3155503 .html