《微机原理与接口技术第7章节》由会员分享,可在线阅读,更多相关《微机原理与接口技术第7章节(51页珍藏版)》请在金锄头文库上搜索。
1、,第7章 中 断 系 统,7.1 中断的基本概念,7.1.1为什么要用中断 计算机和外设在进行信息交换时,高速工作的CPU和低速工作的外设存在较大的速度差异。若用无条件传送方式和状态查询传送方式,一方面CPU要浪费很多的时间去等待外设准备好,系统的效率低;另一方面,CPU也无法及时处理外设的随机性信息交换,系统的实时性差。,7.1 中断的基本概念,所谓中断,是指CPU在正常运行程序时,由于内部或外部事件,引起CPU暂停执行现行程序,跳转去执行与该事件有关的处理程序即中断服务程序。在执行完毕该中断服务程序后,再返回原来被暂停的程序的断点处继续执行。 中断过程示意图,图7.1 中断过程示意图,7.
2、1 中断的基本概念,使用中断方式有以下几大优点 1CPU和外设并行工作 2实时处理 3故障处理 4实现多道的分时操作,7.1 中断的基本概念,7.1.2中断源 引起中断的原因或发出中断申请的来源就是中断源。 中断源的类型有很多。 1外设中断源 2故障中断源 3控制对象中断源 4软件中断源 5时钟计数中断源,7.1 中断的基本概念,7.1.3中断系统的功能 为了满足各种中断源的中断请求,中断系统一般应具备的功能如下: 1中断请求 2中断优先权排队 3中断响应 4中断处理 5中断嵌套 6中断返回,7.1 中断的基本概念,7.1.4中断的优先权管理 当系统中有多个中断源时,就有一个中断优先级别的问题
3、。中断优先级别的确定,一般是根据系统中各个中断源的工作性质的轻重缓急事先定义好。系统对中断优先权进行管理,一般可用以下方法进行管理: 软件查询方式 简单硬件方法 专用芯片法,7.1 中断的基本概念,1.软件查询方式,图7.2 软件查询方式的硬件电路和中断服务程序流程图,7.1 中断的基本概念,2.简单硬件方式 以菊花链法中断优先权排队电路为例,其基本设计思想:将所有外设对应的接口与一个逻辑电路相连,以构成一条控制CPU向外设发出的中断应答信号的链,即菊花链。这种结构使越靠近CPU的外设其优先权就越高,靠得越远的外设其优先权就越低。对于发出了中断请求且优先权高的外设,则在它接到中断应答信号的同时
4、,通过逻辑电路可封锁其后的优先权较低的外设,使它们的中断请求不能响应,只有等到其中断服务结束以后才允许CPU为优先权低的外设提供中断服务。,7.1 中断的基本概念,3.专用芯片方式 中断控制器与CPU和外设连接电路的示意图,7.2 8086/8088的中断系统,8086/8088的中断系统结构简单而灵活,采用了向量型的结构。系统共设有256(0255)个中断类型号,即系统可以处理256个中断源的中断请求。8086/8088的中断源可以分为外部中断和内部中断两大类。,7.2 8086/8088的中断系统,7.2.1外部中断 外部中断也叫硬件中断,是通过外部的硬件产生的中断,如键盘和打印机等。 外
5、部中断又可分为: 非屏蔽中断 可屏蔽中断两类。,7.2 8086/8088的中断系统,7.2.2内部中断 内部中断也叫软件中断,是因CPU执行某条指令,或因8086/8088 CPU中的状态标志寄存器中某个标志位的设置而产生,与硬件电路无关。常见的如除数为0,或用INT n指令产生。 1除法出错中断 2单步(陷阱)中断 3断点中断 4溢出中断 5INT n 中断,7.2 8086/8088的中断系统,7.2.3中断的优先权 8086/8088系统有多个中断源,其优先权由高到低的顺序是:除法出错中断、INT n中断、INT0溢出中断、NMI非屏蔽中断、INTR可屏蔽中断和单步中断。,7.2 80
6、86/8088的中断系统,7.2.4中断向量表 所谓中断向量,就是中断服务子程序的入口地址(CS和IP的值)。 而所谓的中断向量表,就是将系统中所有的中断向量按一定的规律排列成一个表。 而中断向量表地址就是中断向量(即中断服务子程序的入口地址)在中断向量表中的地址。 当CPU响应中断源发出的中断请求时,CPU通过此中断源的中断类型号,算出中断向量表地址,再通过中断向量表地址,在中断向量表中找出中断向量(即中断服务子程序的入口地址),最后转入中断服务子程序运行。,7.2 8086/8088的中断系统,中断向量表示意图,图7.4 中断向量表示意图,7.2 8086/8088的中断系统,中断响应和处
7、理过程 图为对中断响应进行处理,图7.5 中断响应流程图,7.3 8259中断控制器,Intel 8259A是Intel公司设计的可编程的中断控制器芯片,具有对外设中断源进行按优先权排队、中断屏蔽以及向CPU提供中断类型号等管理功能,被广泛用于PC和其他微机系统中。8259A的主要性能如下。 (1) 具有8级中断优先权控制,通过级连最多可以扩展至 64级优先权控制。 (2) 通过初始设置,每一级中断都可以设为中断允许状态或中断屏蔽状态。 (3) 通过对其编程可设置8259A的工作方式。 (4) 8259A采用NMOS制造工艺,只需要单一的+5V电源。,7.3 8259中断控制器,7.3.1外部
8、引脚特性 从外部看,8259A是采用28个引脚的DIP(双列直插式)封装的集成电路芯片。 如图:,图7.6 8259A引脚示意图,7.3 8259中断控制器,其28个引脚的定义如下: (1) D7D0:双向数据输入/输出引脚,用于与CPU进行信息交换,一般和数据总线的D7D0相连。 (2) IR7IR0:中断请求信号输入引脚,共8根,均高电平有效,其优先权从大到小分别为IR0、IR1、IR2、IR3、IR4、IR5、IR6,IR7IR0一般与外设的中断请求输出信号相连。当有多片8259A形成级连时,从片的INT引脚与主片的IRi引脚相连。 (3) INT:中断请求信号输出引脚,高电平有效,用以
9、向CPU发出中断请求信号,一般与CPU的中断请求INTR输入引脚相连。 (4) :此引脚接收CPU发出的中断应答信号,输入,低电平有效。在CPU发出第二个时,8259A将其中断请求IR7IR0中优先权最高的中断类型号送出。一般与CPU的中断应答信号输出引脚相连。 (5) :读控制信号输入引脚,低电平有效,可通过此引脚对8259A发出读其内部寄存器内容的读操作控制信号。 (6) :写控制信号输入引脚,低电平有效,可通过此引脚对8259A发出写其内部寄存器的写操作控制信号。,7.3 8259中断控制器,(7) :片选信号输入引脚,低电平有效,一般由系统地址总线的高位经译码后形成,决定了8259A的
10、端口地址范围。 (8) A0:指定8259A内部两组寄存器的选择信号输入引脚,A0决定了8259A的内部寄存器的读、写端口地址。 A00 对应ICW1、OCW2、OCW3、IRR、ISR内部寄存器 A01 对应ICW2、ICW3、ICW4、OCW1、IMR内部寄存器 (9) CAS2CAS0:级连信号引脚。当8259A为主片时,CAS2CAS0为输出;否则其为输入。一般与信号配合使用,实现8259A芯片的级连,这3个引脚信号的不同组合000B111B,最多可对应8个从片。 (10) :为级连管理信号输入引脚,在非缓冲方式下,若8259A在系统中作从片使用,则;否则;在缓冲方式下,用作8259A
11、外部数据总线缓冲器的启动信号。 (11) GND:+5V、电源和接地引脚。,7.3 8259中断控制器,7.3.2内部结构 8259A的内部结构如图所示,图7.7 8259A的内部结构,7.3 8259中断控制器,8259A主要由下列几个主要部分组成 : (1) 数据总线缓冲器:8位双向三态缓冲器,是8259A与系统数据总线的接口,通过该缓冲器可传送CPU与8259A之间的控制信息、状态信息以及中断类型号等。 (2) 读/写控制逻辑:CPU通过读/写控制逻辑实现对8259A内部寄存器的读/写操作。 (3) 控制逻辑电路:协调和控制8259A芯片内部各部件的工作。 (4) 中断请求寄存器(IRR
12、):8位,用以分别保存8个中断源的中断请求信号。当某中断请求输入引脚有中断请求时,该寄存器与该中断的对应位置“1”。 (5) 优先权比较器:对于两个或两个以上同时产生的中段请求,判断它们之间的优先权高低,确定响应那一个中断请求。对于中断的嵌套响应,将对正在响应的中断和刚产生的中断请求,进行优先权判断,确定是否嵌套响应。 (6) 中断屏蔽寄存器(IMR):8位,可对8个中断请求信号进行屏蔽控制。当其中某位置“0”,则对应的中断请求可以发送给CPU;如置“1”,则该中断请求被屏蔽,即不允许发送给CPU。 (7) 中断服务寄存器(ISR):8位,当CPU正在处理某个中断请求时,该寄存器中的对应位置“
13、1”。 (8) 级连缓冲器:用以实现8259A芯片之间的级连,实现超过8个以上的中断源的扩展。,7.3 8259中断控制器,7.3.3引入中断请求的方式 按照引入中断请求的方式,8259A有下列几种工作方式。 1电平触发方式 2边沿触发方式 3中断查询方式,7.3 8259中断控制器,7.3.4优先权管理方式 8259A有多种优先权的管理方式 (这些方式也可以通过编程重新设置或改变) 1普通全嵌套方式 2特殊全嵌套方式 3优先级自动循环方式 4优先级特殊循环方式,7.3 8259中断控制器,7.3.5中断屏蔽方式 对于8259A提出的中断请求,都可以通过屏蔽寄存器进行屏蔽,屏蔽的方式有下列几种
14、: 1普通屏蔽方式 2特殊屏蔽方式,7.3 8259中断控制器,7.3.6中断结束方式 一个中断的结束,对于8259A来说,就是其内部中断响应寄存器ISR中对应位复位(清0)。 根据ISR中对应位的复位方式不同,8259A的中断结束方式可分为: 自动结束方式(AEOI) 非自动结束方式(EOI)。 非自动结束方式又可进一步分为: 普通中断结束方式 特殊中断结束方式。,7.3 8259中断控制器,7.3.7工作过程 当外设发出中断请求时,外设、8259A和CPU它们之间的工作过程如下。 (1) 当外设通过8259A的中断请求输入引脚(如IR0)发中断请求信号(高电平有时),则中断请求寄存器的IR
15、R的对应位置1(如IRR的D0=1)。 (2) 8259A对中断屏蔽寄存器IMR和优先权比较器的状态进行分析比较,若存在未被屏蔽的最高优先权的中断请求(如IR0未被屏蔽),就通过INT引脚向CPU的INT引脚发出高电平作为中断请求信号。 (3) 若CPU处于开中断状态,则在当前指令执行完后去响应中断,并且从CPU的引脚向8259A的引脚发出两个连续的负脉冲作为应答信号。 (4) 第一个负脉冲到达8259A时,使当前服务寄存器ISR的对应位置1(如ISR的D0=1),并使中断请求寄存器的IRR的对应位清0(如IRR的D0=0),即清除IR0中断请求。,7.3 8259中断控制器,(5) 第二个负
16、脉冲到达时,将对应外设的中断类型号送到数据总线的D7D0上,CPU从数据总线接收此数据作为对应中断请求的中断类型码,以此在中断向量表中去查找中断服务程序地址,并自动转向该中断服务程序的运行。 (6) 第二个负脉冲结束时,若采用的是中断自动结束方式,则8259A将当前服务寄存器ISR寄存器的对应位清0(如ISR的D0=0);其他中断结束方式,则要等到中断服务程序执行完毕,CPU向8259A发出命令字EOI,才能使当前服务寄存器ISR的对应位清0。此命令写在中断服务程序的后面,在恢复现场的指令的前面。在IBM PC中,用这样两条指令来实现,即: MOV AL,20H OUT 20H,AL,7.3 8259中断控制器,7.3.8系统总线的连接方式 按照8259A与系统总线的连接方式来分,有下列两种方式 : 1缓冲方式 在多片8259A级连的大系统中,8259A必须通过外部总线驱动器和数据总线相连,这就是缓冲方式。在此方式下,8259的输出信号作为缓冲器的启动信号,用来启动总线驱动器,在8259A与C