




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章重点:掌握中断的基本概念、中断的识别与中断源优先级的判定了解8259A可编程控制器的结构及工作过程掌握8259A初始化编程。3.1 中断概述3.1.13.1.1基本概念基本概念1、中断:、中断:在程序运行时,系统外部、内部或现行程序本身若出在程序运行时,系统外部、内部或现行程序本身若出现紧急事件,处理器必须立即强行中止现行程序的运现紧急事件,处理器必须立即强行中止现行程序的运行,改变机器的工作状态并启动相应的程序来处理这行,改变机器的工作状态并启动相应的程序来处理这些事件,然后再恢复原来的程序运行,这一过程称为些事件,然后再恢复原来的程序运行,这一过程称为中断。中断。2、中断系统:、中断系
2、统:为了实现中断功能而设置的各种硬件和软件统称为中断为了实现中断功能而设置的各种硬件和软件统称为中断系统。系统。3、中断源:、中断源:引起中断的原因或发出中断申请的来源,称为中断引起中断的原因或发出中断申请的来源,称为中断源。有以下几种:源。有以下几种:(1)一般的输入)一般的输入/输出设备,如键盘,打印机输出设备,如键盘,打印机(2)数据通道中断源,如磁盘)数据通道中断源,如磁盘(3)软件设置的中断源,如程序中的中断指令)软件设置的中断源,如程序中的中断指令INT n(4)故障请求中断源,如电源掉电、运算溢出)故障请求中断源,如电源掉电、运算溢出(5)为调试程序而设置的中断源,如断点或单步执
3、)为调试程序而设置的中断源,如断点或单步执行方式行方式.4.中断分类中断分类中断分外部中断和内部中断两大类;中断分外部中断和内部中断两大类;其中外部中断分为两类:其中外部中断分为两类: 可屏蔽中断可屏蔽中断INTR,由标志寄存器中的,由标志寄存器中的IF位控制;位控制; 不可屏蔽中断不可屏蔽中断NMI,不受,不受IF位控制位控制3.1.2 中断及中断的处理过程 微机系统引入中断机微机系统引入中断机制后,使制后,使CPU与外设与外设(甚甚至多个外设至多个外设)处于处于并行工并行工作状态作状态,便于实现信息,便于实现信息的实时处理和系统的故的实时处理和系统的故障处理。中断方式的原障处理。中断方式的
4、原理示意图如图理示意图如图4-1所示。所示。 虽然不同的微机中断系统有所不同,但实现中断虽然不同的微机中断系统有所不同,但实现中断时都有一个相同的时都有一个相同的中断过程中断过程,包括中断请求、中包括中断请求、中断判优排队、中断响应、中断服务、中断返回共断判优排队、中断响应、中断服务、中断返回共5个阶段个阶段。1. 1. 中断的处理过程中断的处理过程1) 1) 中断请求中断请求中断请求是由中断源向中断请求是由中断源向CPUCPU发出中断请求信号。外发出中断请求信号。外部设备发出中断请求信号要具备以下两个条件:部设备发出中断请求信号要具备以下两个条件: 外部设备的工作已经告一段落外部设备的工作已
5、经告一段落。例如输入设。例如输入设备只有在启动后,在将要输入的数据送到接口电备只有在启动后,在将要输入的数据送到接口电路的数据寄存器之后,才可以向路的数据寄存器之后,才可以向CPUCPU发出中断请求。发出中断请求。 系统允许该外设发出中断请求系统允许该外设发出中断请求。如果系统不允。如果系统不允许该外设发出中断请求,可以将这个外设的请求许该外设发出中断请求,可以将这个外设的请求屏蔽。如果这个外设的中断请求被屏蔽,那么即屏蔽。如果这个外设的中断请求被屏蔽,那么即使这个外设的准备工作已经完成,也不能发出中使这个外设的准备工作已经完成,也不能发出中断请求。断请求。2) 2) 中断判优排队中断判优排队
6、当多个中断源同时申请中断时,按此优先级顺序当多个中断源同时申请中断时,按此优先级顺序进行排队,等候进行排队,等候CPUCPU处理。一般是把最紧迫和速度处理。一般是把最紧迫和速度最高的设备的优先级设为较高。最高的设备的优先级设为较高。CPUCPU首先响应优先首先响应优先级别最高的中断源。当中断处理完毕时,再响应级别最高的中断源。当中断处理完毕时,再响应低级别的中断申请。低级别的中断申请。中断判优排队可以采用中断判优排队可以采用硬件硬件的方法,也可以采用的方法,也可以采用软件软件的方法。前者速度快,但需要增加硬件设备;的方法。前者速度快,但需要增加硬件设备;后者无须增加硬件设备,但速度慢,特别是中
7、断后者无须增加硬件设备,但速度慢,特别是中断源很多时尤为突出。源很多时尤为突出。3) 3) 中断响应中断响应经中断排队后,经中断排队后,CPUCPU收到一个优先级别最高的中断收到一个优先级别最高的中断请求信号,如果允许请求信号,如果允许CPUCPU响应中断响应中断(IF(IF1)1),就在,就在执行完一条指令后,中止执行现行程序,响应中执行完一条指令后,中止执行现行程序,响应中断申请。断申请。 首先由硬件电路保护断点首先由硬件电路保护断点( (即将当前正在执行的程即将当前正在执行的程序的段地址序的段地址(CS)(CS)和偏移地址和偏移地址(IP)(IP)以及标志寄存器以及标志寄存器(FR)(F
8、R)压入堆栈压入堆栈) ),然后关闭,然后关闭CPUCPU内的允许中断触发内的允许中断触发器器IF(IF(可屏蔽中断时可屏蔽中断时) ),接下来就是寻找中断服务,接下来就是寻找中断服务程序的入口地址。程序的入口地址。寻找中断服务程序入口地址的方法有软件方法和寻找中断服务程序入口地址的方法有软件方法和硬件方法两种。硬件方法两种。软件方法也就是查询方式。软件方法也就是查询方式。硬件方式目前均采用矢量中断方式。所谓矢量中硬件方式目前均采用矢量中断方式。所谓矢量中断,即当断,即当CPUCPU响应中断后,由提出中断请求的中断响应中断后,由提出中断请求的中断源向源向CPUCPU发出一个中断矢量,发出一个中
9、断矢量,CPUCPU根据这个中断矢根据这个中断矢量找到中断程序的入口地址,转到相应的中断服量找到中断程序的入口地址,转到相应的中断服务程序。使用务程序。使用Intel CPUIntel CPU的的PCPC系列微机系统采用的系列微机系统采用的就是矢量中断方式。就是矢量中断方式。概括来说,概括来说,CPUCPU响应中断的整个过程中要自动完成响应中断的整个过程中要自动完成三项任务:三项任务: 关闭中断关闭中断( (禁止禁止CPUCPU响应其他中断申请响应其他中断申请) )。 保护断点现场信息保护断点现场信息( (将断点和标志寄存器的内将断点和标志寄存器的内容入栈容入栈) )。 获得中断服务入口地址,
10、转到中断服务程序。获得中断服务入口地址,转到中断服务程序。一旦一旦CPU响应中断,就可转入中断服务程序,中断响应中断,就可转入中断服务程序,中断处理要做好如图处理要做好如图4-2所示的所示的6件事。件事。 保护现场保护现场把断点处的指令指针把断点处的指令指针IP值和值和CS值压入堆栈,以使中断值压入堆栈,以使中断处理完后能正确地返回主程序断点。处理完后能正确地返回主程序断点。实质上是实质上是执行执行PUSH指令指令,将需要保护的寄存器的内容,将需要保护的寄存器的内容推入堆栈。推入堆栈。 开中断开中断CPU接收并响应一个中断后会接收并响应一个中断后会自动关闭中断自动关闭中断,以防止,以防止其他的
11、中断打断它。但在某些情况下,有比该中断更其他的中断打断它。但在某些情况下,有比该中断更优先的情况要处理,此时,应停止对该中断的服务而优先的情况要处理,此时,应停止对该中断的服务而转入优先级更高的中断处理,故需要再开中断。转入优先级更高的中断处理,故需要再开中断。 提供中断服务提供中断服务中断服务的核心就是对某些中断的处理,比如传中断服务的核心就是对某些中断的处理,比如传送数据、处理掉电紧急保护、各种报警状态的控送数据、处理掉电紧急保护、各种报警状态的控制处理等。制处理等。 关中断关中断由于开中断,因此这里对应一个关中断过程,以由于开中断,因此这里对应一个关中断过程,以便恢复现场的工作能顺利进行
12、而不被中断。便恢复现场的工作能顺利进行而不被中断。 恢复现场恢复现场在返回主程序前,要将用户保护的寄存器内容从堆栈在返回主程序前,要将用户保护的寄存器内容从堆栈中弹出,以便返回主程序后继续正确执行主程序,恢中弹出,以便返回主程序后继续正确执行主程序,恢复现场用复现场用POP指令。恢复现场是与保护现场对应的。指令。恢复现场是与保护现场对应的。 返回返回(使用中断返回指令使用中断返回指令IRET)。不能使用一般的子程序返回指令不能使用一般的子程序返回指令RET,因为因为IRET指令指令除了能恢复断点地址外,还能恢复中断响应时标志寄除了能恢复断点地址外,还能恢复中断响应时标志寄存器的值,存器的值,而
13、这后一个动作是而这后一个动作是RET指令不能完成的。指令不能完成的。2. 中断优先级的管理中断优先级的管理1) 中断源的识别中断源的识别确定中断源,找到该中断服务程序的首地址。确定中断源,找到该中断服务程序的首地址。识别中断源通常有两种方法:识别中断源通常有两种方法: 查询中断查询中断查询中断利用一段查询程序,不查询中断利用一段查询程序,不但可以确定请求服务的设备,同时还可以转至相但可以确定请求服务的设备,同时还可以转至相应的服务程序。服务程序是预先编好存放在内存应的服务程序。服务程序是预先编好存放在内存区的,可以存放在内存的任意区域中。区的,可以存放在内存的任意区域中。 矢量中断矢量中断矢量
14、中断就是矢量中断就是CPU通过外设提通过外设提供的中断申请信号和中断矢量标志,获得中断服供的中断申请信号和中断矢量标志,获得中断服务程序的入口地址。务程序的入口地址。当当CPU响应某个外设的中断请求时,中断源提供响应某个外设的中断请求时,中断源提供一个地址信息,由该地址信息对程序的执行进行一个地址信息,由该地址信息对程序的执行进行导向,将程序引导至中断服务程序。该地址信息导向,将程序引导至中断服务程序。该地址信息称为称为中断矢量中断矢量。2) 2) 中断优先级待解决的问题中断优先级待解决的问题第一,多个中断源同时请求中断,系统先响应优第一,多个中断源同时请求中断,系统先响应优先级高的中断源。先
15、级高的中断源。第二,当系统正在为某个中断源服务时,有新的第二,当系统正在为某个中断源服务时,有新的中断源提出中断请求,只有优先级高的中断源的中断源提出中断请求,只有优先级高的中断源的中断请求才能打断优先级低的中断源的服务。中断请求才能打断优先级低的中断源的服务。3) CPU3) CPU实现中断优先级排队的方法实现中断优先级排队的方法分为软件查询法和硬件中断法。分为软件查询法和硬件中断法。(1) 软件查寻法确定中断优先级软件查寻法确定中断优先级采用软件查询法解决中断优先级只需要少量硬件采用软件查询法解决中断优先级只需要少量硬件电路。如下图所示电路。如下图所示:磁磁盘盘磁磁带带CRT显显示示键键盘
16、盘输输入入打打印印输输出出电电源源故故障障纸纸带带输输入入保保留留INTR当当CPU响应中断请求进入中断处理程序后,响应中断请求进入中断处理程序后,必须在中断处理程序的开始部分安排一段带优必须在中断处理程序的开始部分安排一段带优先级的查询程序,先级的查询程序,查询的先后顺序就体现了不查询的先后顺序就体现了不同设备的中断优先级,同设备的中断优先级,即先查的设备具有较高即先查的设备具有较高的优先级,后查的设备具有较低的优先级。的优先级,后查的设备具有较低的优先级。 一般来说总是先查速度较快或是实时性较高一般来说总是先查速度较快或是实时性较高的设备。的设备。 软件查询的流程如图所示。软件查询的流程如
17、图所示。保护现场保护现场恢复现场恢复现场A申请服务?申请服务?B申请服务?申请服务?C申请服务?申请服务?外设外设A中断服务程序中断服务程序NNN外设外设B中断服务程序中断服务程序外设外设C中断服务程序中断服务程序YYY图图2 软件查询流程图软件查询流程图(2) 菊花链优先级排队电路菊花链优先级排队电路菊花链菊花链(Daisy Chain)优先级排队电路是一种优先级排队电路是一种优先级管理的简单硬件方案。优先级管理的简单硬件方案。这种方法利用这种方法利用外设在系统中的物理位置来决定中断优先级,外设在系统中的物理位置来决定中断优先级,主要是利用硬件排队电路主要是利用硬件排队电路(菊花链电路菊花链
18、电路)对中断对中断源进行优先级排队,并将程序引导到相关中源进行优先级排队,并将程序引导到相关中断服务程序的入口。断服务程序的入口。典型的菊花链优先级结构如图所示。典型的菊花链优先级结构如图所示。图3 菊花链中断优先级排队电路位置决位置决定中断定中断优先级优先级2. 中断嵌套中断嵌套当当CPU正在执行优先级较低的中断服务程序时,正在执行优先级较低的中断服务程序时,允许响应比它优先级高的中断请求,而将正在处允许响应比它优先级高的中断请求,而将正在处理的中断暂时挂起,这就是理的中断暂时挂起,这就是中断嵌套中断嵌套。如图如图4所示所示图图4 中断嵌套示意图中断嵌套示意图STIIRETSTIIRET.3
19、.2 8086中断系统3.2.1 中断的分类中断的分类中断分类的方式很多。中断分类的方式很多。根据根据进入中断进入中断的方式可分为的方式可分为自愿中断和强迫中自愿中断和强迫中断断。根据其重要性可分为根据其重要性可分为可屏蔽中断和不可屏蔽中断。可屏蔽中断和不可屏蔽中断。根据中断源的位置可分为根据中断源的位置可分为内部中断和外部中断内部中断和外部中断等等等等。3.2.28086中断类型中断类型8086 CPU有一个简单而灵活的中断处理系统,能有一个简单而灵活的中断处理系统,能够处理够处理256种不同种不同的中断类型,而且处理方法简便的中断类型,而且处理方法简便灵活。根据中断源类型的不同,中断类型如
20、图所示。灵活。根据中断源类型的不同,中断类型如图所示。1. 外部中断外部中断由外部硬件产生的。可分为由外部硬件产生的。可分为非屏蔽中断和可屏蔽中非屏蔽中断和可屏蔽中断两种断两种,由,由CPU外部中断请求引脚外部中断请求引脚(两条引线两条引线)NMI和和INTR输入,如图输入,如图4-7所示。所示。 不可屏蔽中断不可屏蔽中断(中断类型号中断类型号2)主要用于对外部紧急事件的处理,如电源掉电、主要用于对外部紧急事件的处理,如电源掉电、存储器故障等,因而不受中断允许标志存储器故障等,因而不受中断允许标志(IF)的控制的控制,也不能用软件进行屏蔽。即使在关中断,也不能用软件进行屏蔽。即使在关中断(IF
21、=0)的的情况下,只要有中断请求,情况下,只要有中断请求, CPU就必须在当前指就必须在当前指令执行完后立即响应。令执行完后立即响应。 可屏蔽中断可屏蔽中断(中断类型中断类型08H0FH)可屏蔽中断可屏蔽中断是可受软件屏蔽的外部硬件中断,有中断请求时,是可受软件屏蔽的外部硬件中断,有中断请求时,CPU是否响应由用户软件决定。当一个高电平信号是否响应由用户软件决定。当一个高电平信号加到加到CPU的的INTR引脚,并且中断允许标志引脚,并且中断允许标志IF=1时时,产生一次可屏蔽中断。当,产生一次可屏蔽中断。当IF=0时,时,INTR的中断的中断请求被屏蔽。请求被屏蔽。 2.内部(软件)中断内部(
22、软件)中断内部中断是指通过内部中断是指通过指令来调用中断服务子程序指令来调用中断服务子程序。软件中断主要包括以下情况:软件中断主要包括以下情况: 除法出错中断(除法出错中断(中断类型号为中断类型号为0)除法出错中断是指当除法出错中断是指当CPU做除法运算时,如果除做除法运算时,如果除数为零或者商超出了有关寄存器所能表示值的范数为零或者商超出了有关寄存器所能表示值的范围,就产生除法出错中断。围,就产生除法出错中断。 单步中断单步中断(单步中断的类型号是单步中断的类型号是1)单步中断是指当标志寄存器单步中断是指当标志寄存器FLAGE中的跟踪标志中的跟踪标志TF=1并且中断允许标志并且中断允许标志I
23、F=1时,每执行一条指令就时,每执行一条指令就引起一次中断。引起一次中断。CPU响应中断后,自动把状态标志响应中断后,自动把状态标志位压入堆栈,然后清位压入堆栈,然后清TF和和IF。中断返回时出栈,。中断返回时出栈,TF=1,因而在单步调试程序时可连续执行。,因而在单步调试程序时可连续执行。 溢出中断溢出中断(INTO)(中断类型号为(中断类型号为4的中断)的中断)溢出中断是通过溢出中断是通过INTO中断指令实现的。该指令跟中断指令实现的。该指令跟在有符号数的算术运算指令之后,在程序执行过程在有符号数的算术运算指令之后,在程序执行过程中,当遇到中,当遇到INTO指令并且此时溢出标志指令并且此时
24、溢出标志OF=1时,时,将产生一个溢出中断,并转入溢出中断处理。将产生一个溢出中断,并转入溢出中断处理。 软中断软中断INT nn为中断类型号为中断类型号0255。PC机中机中0H7H被定义为处理器内部中断的类型号,被定义为处理器内部中断的类型号,08H0FH被定义为可屏蔽中断,所以被定义为可屏蔽中断,所以n的取值可为的取值可为10H0FFH。(5) 断点中断断点中断 (类型号类型号3)与单步中断类似,断点中断也是一种调试程与单步中断类似,断点中断也是一种调试程序的手段,并且常常和单步中断结合使用。序的手段,并且常常和单步中断结合使用。对一个大的程序,不可能对整个程序全部用对一个大的程序,不可
25、能对整个程序全部用单步方式来调试,而只能先将程序中的某一错单步方式来调试,而只能先将程序中的某一错误确定在程序中的一小段中,再对这一小段程误确定在程序中的一小段中,再对这一小段程序用单步方式跟踪调试。序用单步方式跟踪调试。断点中断就是用来达到这个目的的。断点中断就是用来达到这个目的的。3.2.2 中断向量表中断向量表所谓所谓中断向量中断向量(interrupt vector),实际上就是),实际上就是中中断服务程序的入口地址断服务程序的入口地址,每个中断类型对应一个中,每个中断类型对应一个中断向量。断向量。每个中断向量占每个中断向量占4字节字节的存储单元。的存储单元。其中其中:前两个字节单元存
26、放中断服务程序入口地址的偏移前两个字节单元存放中断服务程序入口地址的偏移量量(IP),低字节在前,高字节在后;低字节在前,高字节在后;后两个字节单元存放中断服务程序入口地址的段基后两个字节单元存放中断服务程序入口地址的段基值值(CS),也是,也是低字节在前,高字节在后低字节在前,高字节在后。003FF8086为每个中断源分配了一个中断类型码,取值范围为为每个中断源分配了一个中断类型码,取值范围为0255,即可处理,即可处理256种中断。其中包括软件中断、系统占用的种中断。其中包括软件中断、系统占用的中断以及开放给用户使用的中断。中断以及开放给用户使用的中断。第第1部分是类型部分是类型0到类型到
27、类型4,共,共5种类型,定义为专用中断,它种类型,定义为专用中断,它们占据表中的们占据表中的000013H,共,共20个字节。这个字节。这5种中断类型的种中断类型的入口已由系统定义,不允许用户做任何修改。它们分别是:入口已由系统定义,不允许用户做任何修改。它们分别是:INT 0除法出错中断除法出错中断INT 1单步中断单步中断INT 2外部引入不可屏蔽中断外部引入不可屏蔽中断INT 3断点中断断点中断INT 4/INT 0溢出中断溢出中断PC 机系统中产生的中断类型号为机系统中产生的中断类型号为n,则该中断服务程序的入则该中断服务程序的入口地址为口地址为4 n。例:例: 中断类型码为中断类型码
28、为20H,则中断服务程序的,则中断服务程序的入口地址存放在中断向量表从入口地址存放在中断向量表从0000:0080H开开始的始的4个字节单元中。若这个字节单元中。若这4个字节单元的内容个字节单元的内容分别为:分别为:(0000:0080H)= 10H(0000:0081H)= 20H(0000:0082H)= 30H(0000:0083H)= 40H试指出相应的中断服务程序的入口地址。试指出相应的中断服务程序的入口地址。解解: 中断服务程序的入口地址为中断服务程序的入口地址为 4030:2010 。8086/8088中断的响应过程中断中断优先级优先级除法错,除法错,INT n,INTO最高最高
29、NMIINTR单步单步最低最低80 x86实模式中断优先级实模式中断优先级结束当前指令结束当前指令除法错,除法错,INTO,INT n?NMIINTR?TF=1?执行下一条指令执行下一条指令NNNNIF=1?NYYYYY内部自动形成中断类型码内部自动形成中断类型码N读中断类型码读中断类型码N标志压入堆栈标志压入堆栈令令TEMPTF清除清除IF和和TFCS和和IP压入堆栈压入堆栈(4N,4N+1)IP(4N+2,4N+3)CS执行中断处理程序执行中断处理程序IP、CS出栈出栈标志寄存器出栈返回被中断的主程序有有NMI?TEMP=1?YYNN执行执行IRET指令指令3.3 8259A中断控制器中断
30、控制器就是在有多个中断源的系统中,当中断中断控制器就是在有多个中断源的系统中,当中断源发出中断请求时接收它们,并对这些中断请求进行源发出中断请求时接收它们,并对这些中断请求进行判断,选中当前优先级最高的中断请求,再将此请求判断,选中当前优先级最高的中断请求,再将此请求送到送到CPUCPU的的INTRINTR端,在端,在CPUCPU响应中断并进入中断子程序响应中断并进入中断子程序之后,中断控制器依旧负责对外部中断请求的管理。之后,中断控制器依旧负责对外部中断请求的管理。8259A8259A是是IntelIntel公司设计的可编程的中断控制逻辑芯片,公司设计的可编程的中断控制逻辑芯片,具有对外设中
31、断源进行管理并向具有对外设中断源进行管理并向CPUCPU转达中断请求的转达中断请求的能力。能力。3.3.1 8259A的内部结构和引脚信号1.8259A1.8259A的内部结构的内部结构数据总线数据总线缓冲器缓冲器读读/写写逻辑逻辑级级 连连缓冲器缓冲器/比较器比较器中断服务中断服务寄存器寄存器(ISR)中断请求中断请求寄存器寄存器(IRR)优先权优先权判别器判别器(PR)中断屏蔽寄存器中断屏蔽寄存器(IMR)控制逻辑控制逻辑 SP/EN。IR0IR1IR2IR6IR7内部总线内部总线CAS0CAS1CAS2_ INTA INT WR RDCSA0D7D01) 中断请求寄存器(IRR)中断请求
32、寄存器(IRR)是一个具有锁存功能的8位寄存器,该寄存器用来存放由外部输入的中断请求信号 IR7IR0,可边沿触发,也可电平触发。2) 中断服务寄存器(ISR)中断服务寄存器(ISR)是一个8位寄存器,与8 级中断IR7IR0相对应,用来记录正在处理的中断请求,包括正在被服务的以及被更高级中断申请打断的中断请求。3) 优先权分析器(PR)优先权分析器(PR)也叫优先级判别器,用来管理和识别各中断申请信号的优先级别。它主要由优先级编码器和比较器组成,可对输入的中断按优先级进行排队,当输入端IR7IR0中有多个中断请求信号同时产生时,由PR判定哪个中断请求具有最高优先级,并在INTA脉冲期间把它置
33、入中断服务寄存器(ISR)的相应位。4) 中断屏蔽寄存器(IMR)中断屏蔽寄存器(IMR)是一个8位寄存器,与8259A处理的8级中断IR7IR0相对应,该寄存器可对各个中断源进行屏蔽或开放。当某位置为1时,表示相应中断源被屏蔽,为0则表示允许中断。屏蔽操作由写命令字OCW1到IMR执行,IMR也可以读回备查并保护某些屏蔽位。5) 级联缓冲器/比较器级联缓冲器/比较器用于存储并比较系统中所用的全部8259A的输入信号,以实现多达8片的8259A级联。6) 控制电路8259A内部的控制电路,根据中断请求寄存器IRR的位置情况和优先级判别器PR 的判定结果,向8259A内部的其他部件发出控制信号,
34、并向CPU发出中断请求信号INT和接收来自CPU的中断响应信号INTA,控制8259A进入中断服务状态。 2. 8259A2. 8259A引脚分配引脚分配8259A是一个采用NMOS工艺制造、使用单一5V电源、具有28个引脚的双列直插式芯片,具体引脚如图4-14所示。D7D0:双向数据输入双向数据输入/ /输出引脚输出引脚,用于与CPU进行信息交换。(2) IR7IR0:8级中断请求信号输入引脚,规定的优先级为优先级为IRIR0 0IRIR1 1IRIR7 7。当有多片8259A形成级联时,从片的INT与主片的IRi相连。(3) INT:中断请求信号输出引脚,高电平有效。当8259A收到从外设
35、经IR引脚送来的中断请求时,由它输出高电平,向CPU发出中断请求,应接在CPU的INTR输入端。123456789101112131428272625242322212019181716158259ACS WR RDD7D6D4D5D2D3D0D1CAS0CAS1GNDINTAIR7IR6IR4IR5IR2IR3IR0IR1INTCAS2 SP/ENVCCA0INTAINTAINTARDWRCS(4) :中断响应应答信号输入引脚,低电平有效。在CPU发出第二个 时,8259A将其中级别最高的中断请求的中断类型码送出;接在CPU的 中断应答信号输出端。(5) :读控制信号输入引脚,低电平有效,用
36、来实现对8259A内部有关寄存器内容的读操作。(6) :写控制信号输入引脚,低电平有效,用来实现对8259A内部有关寄存器的写操作。(7) :片选信号输入引脚,低电平有效。一般由系统地址总线的高位、经译码后形成,决定了8259A的端口地址范围。(8) A0:地址选择信号,用于对8259A内部的两个可编程寄存器进行选择。 (9) CAS2CAS0:级联信号引脚,当8259A为主片时,为输出;否则为输入,与 信号配合,实现芯片的级联,这三个引脚信号的不同组合000111,刚好对应于8个从片。(10) : 为级联管理信号输入引脚,在非缓冲方式下,若8259A在系统中作从片使用,则 =1;否则 =0。
37、在缓冲方式下, 用作8259A外部数据总线缓冲器的启动信号。(11) +5V、GND:电源和接地引脚。EN/SPEN/SPSPSPSPEN3. 8259A3. 8259A的工作过程的工作过程第第1 1步步:当中断请求线:当中断请求线(IR(IR0 0IRIR7 7) )上有信号输入时,上有信号输入时,就把中断请求寄存器就把中断请求寄存器(IRR)(IRR)相应的位置相应的位置1 1。第第2 2步步:当:当IRRIRR的一位置的一位置1 1后,就与后,就与IMRIMR中相应的屏蔽中相应的屏蔽位进行比较,如果该屏蔽位为位进行比较,如果该屏蔽位为0 0,就请求发送给优先,就请求发送给优先权分析器;如
38、果该屏蔽位为权分析器;如果该屏蔽位为1 1,就封锁此请求。,就封锁此请求。第第3 3步步:当一个中断请求被输入优先权分析器后,将:当一个中断请求被输入优先权分析器后,将由优先权分析器判定其优先级,然后向由优先权分析器判定其优先级,然后向CPUCPU发出中断发出中断申请,申请,INTINT引脚变高引脚变高(INT(INT连接到连接到80868086的的INTR)INTR)。INTAINTAINTA第第4 4步步:CPUCPU的的INTRINTR引脚为引脚为异步状态接收异步状态接收,也就是可以在,也就是可以在任何任何时间时间接收中断。在接收中断。在 软件控制下,利用软件控制下,利用STISTI指令
39、指令( (中断置位中断置位) )或或CLI(CLI(中断复位中断复位) )指令可分别将指令可分别将CPUCPU的的“中断开放标志位中断开放标志位”IFIF置置位或复位,可以做到接收或不理睬位或复位,可以做到接收或不理睬INTRINTR上的中断申请。上的中断申请。第第5 5步步:假定:假定CPUCPU中的中的IFIF标志为标志为1 1,那么,那么CPUCPU在完成当前指令的在完成当前指令的执行后进入中断响应周期,这个中断响应周期将标志寄存器执行后进入中断响应周期,这个中断响应周期将标志寄存器入栈,然后清除入栈,然后清除IFIF标志,关闭中断。再将代码段寄存器和指标志,关闭中断。再将代码段寄存器和
40、指令指针也入栈令指针也入栈( (这是为了从中断服务程序返回这是为了从中断服务程序返回) ),然后,然后CPUCPU发发出第二个出第二个 脉冲以通知脉冲以通知8259A8259A,说明,说明80868086已经允许了它的已经允许了它的中断请求。如果中断请求。如果80868086工作于工作于“最小方式最小方式”,那么,那么 脉冲信脉冲信号为号为8086 8086 引脚上的信号。引脚上的信号。第第6 6步步:8259A8259A收到第一个收到第一个 负脉冲后,将禁止负脉冲后,将禁止IRRIRR锁存器,使锁存器,使IRRIRR不受不受IRIR7 7IRIR0 0进一步变化的影响,这进一步变化的影响,这
41、种状态一直保持到第二个种状态一直保持到第二个 脉冲结束。第一个脉冲结束。第一个 脉冲还使脉冲还使ISRISR的某一位置位,并清除相应的的某一位置位,并清除相应的IRRIRR位。位。第二个第二个 脉冲使脉冲使ICWICW2 2的当前内容被放到的当前内容被放到D D7 7D D0 0上,上,CPUCPU用该字节确定中断类型号。此后,用该字节确定中断类型号。此后,CPUCPU将按照这将按照这个指定中断类型号中的内容去执行相应的中断程序。个指定中断类型号中的内容去执行相应的中断程序。注意:如果注意:如果ICWICW4 4的中断自动结束位的中断自动结束位(AEOI)(AEOI)为为1 1,那么,那么第二
42、个第二个 脉冲结束时,脉冲结束时,ISRISR中被第一个中被第一个 脉冲置脉冲置位的位被清除,否则要等到发送内含中断结束位的位被清除,否则要等到发送内含中断结束(EOI)(EOI)命令的命令的OCWOCW2 2后方能清除后方能清除ISRISR中的这个位。中的这个位。INTAINTAINTAINTAINTAINTA第7步:当进入中断服务程序时,主程序和子程序都要用到的那些寄存器应当保存入栈,最好的方法是立刻“PUSH”每个用到的寄存器入栈。当中断服务程序完成后,再以相反的次序“POP”每个寄存器出栈。第8步:一旦中断服务程序完成,就应用IRET(中断返回)指令使CPU再次回到主程序。IRET指令
43、就会自动弹出中断前的指令指针,使主程序恢复到被中断之处,并且恢复中断前与中断服务变化无关的标志状态(包括IF标志的状态)。而中断也将自动放开T1 T2 T3 T4 TI TI TI T1 T2 T3 T4第一个总线周期第一个总线周期第二个总线周期第二个总线周期三个空闲状态三个空闲状态中断类型码中断类型码CLK_INTAAD7AD04.2.2 8259A4.2.2 8259A的工作方式的工作方式1. 1. 中断优先级的设置方式中断优先级的设置方式8259A8259A对中断优先级的管理可分为对中断优先级的管理可分为4 4种情况:种情况:全嵌套方式、自全嵌套方式、自动循环方式、特殊自动循环方式和特殊
44、全嵌套方式。动循环方式、特殊自动循环方式和特殊全嵌套方式。(1) (1) 全嵌套方式全嵌套方式也称固定优先级方式。在这种方式下,由也称固定优先级方式。在这种方式下,由IRi引入的中断引入的中断请求具有固定的优先级请求具有固定的优先级IR0(最高最高)IR7(最低最低).当一个中断请求被响应时,当一个中断请求被响应时,ISR中的对应位中的对应位ISn被置被置“1”,8259A把中断类型码放到数据总线上,然后,进入中断服把中断类型码放到数据总线上,然后,进入中断服务程序。务程序。一般情况下一般情况下(除了除了“中断自动结束中断自动结束”方式方式外外),在,在CPU发发出中断结束命令出中断结束命令(
45、EOI)前,此对应位一直保持为前,此对应位一直保持为“1”封封锁同级或低级锁同级或低级的中断响应,但并不禁止比本级优先级高的中断响应,但并不禁止比本级优先级高的中断响应的中断响应实现中断实现中断“嵌套嵌套”。(2) 特殊全嵌套方式特殊全嵌套方式 在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许同级的中断请求进入。同级的中断请求进入。用于主从结构的用于主从结构的8259系统中,将主片设置为系统中,将主片设置为“特殊全嵌套方式特殊全嵌套方式”. 通过通过ICW4的的“SFNM”位可以设置此种方式。位可以设置此种方式。CPUIR
46、0IR1IR7IR0IR1IR78259(主片主片)8259(从片从片) (3) 优先级自动循环方式优先级自动循环方式 优先级是循环变化的优先级是循环变化的(不希望有固定的优先级差别不希望有固定的优先级差别)一个设备的中断一个设备的中断服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低一级的中断请求。一级的中断请求。开始时,优先级队列还是:开始时,优先级队列还是:IR0-IR7,若此时出现了,若此时出现了IR0请求,响应请求,响应IR0并处理完成后,队列变为:并处理完成后,队列变为:IR1,IR2,IR3,IR4 ,IR
47、5 ,IR6 ,IR7,IR0。若又出现了若又出现了IR4请求,处理完请求,处理完IR4后,队列变为:后,队列变为:_系统中是否采用系统中是否采用“自动循环优先级自动循环优先级”,由,由操作命令字操作命令字OCW2来设定。来设定。(4)优先级特殊循环方式优先级特殊循环方式与与“优先级自动循环方式优先级自动循环方式”相比,只有一点不同,即可以相比,只有一点不同,即可以设置开始的最低优先级。设置开始的最低优先级。例如,设定例如,设定IR4为最低优先级,那么为最低优先级,那么IR5就是最高优先级,就是最高优先级,其余各级按循环方法类推。其余各级按循环方法类推。2.8259A2.8259A结束方式结束
48、方式(1) 中断自动结束方式中断自动结束方式(AEOI方式方式)在第二个在第二个 后沿,即完成把对应的后沿,即完成把对应的ISR位复位复位。位。注意:注意:AEOI方式是在中断响应后,而不是在方式是在中断响应后,而不是在中断处理程序结束后将中断处理程序结束后将ISR位清位清0。这样,在中断处理过程中,这样,在中断处理过程中,8259A中就没有中就没有“正在处理正在处理”的标识。此时,若有中断请求的标识。此时,若有中断请求出现,且出现,且IF1,则无论其优先级如何,则无论其优先级如何(比本比本级高、低或相同级高、低或相同),都将得到响应。,都将得到响应。尤其是当某一中断请求信号被尤其是当某一中断
49、请求信号被CPU响应后,响应后,如不及时撤销,就会再次被响应如不及时撤销,就会再次被响应“二次中二次中断断”。INTA 所以,所以,AEOI方式方式适合于中断请求信号的持续适合于中断请求信号的持续时间有一定限制以及不出现中断嵌套的场合。时间有一定限制以及不出现中断嵌套的场合。通过通过ICW4可以设置可以设置AEOI方式方式(AEOI=1)。(2)一般一般(常规常规)中断结束方式(中断结束方式(EOI)适合于适合于全嵌套方式全嵌套方式。实现:在中断服务程序结束时,向实现:在中断服务程序结束时,向8259A发常规中断发常规中断结束命令结束命令(OCW2:EOI=1,SL=0,R=0)例:例:MOV
50、 AL , 20H ;OCW2=20H OUT 20H , AL ; 端口地址端口地址=20H(偶地址偶地址)在全嵌套方式下,在全嵌套方式下,ISR中最高优先级的置中最高优先级的置“1”位,正位,正对应于当前正在处理的中断,将其清对应于当前正在处理的中断,将其清“0”,就完成,就完成了当前正在处理中断的结束操作。了当前正在处理中断的结束操作。(3)特殊中断结束方式特殊中断结束方式(SPECIFIC EOISEOI)在非全嵌套方式下,无固定的优先级序列在非全嵌套方式下,无固定的优先级序列(使用使用设置优先权命令或特殊屏蔽方式设置优先权命令或特殊屏蔽方式),此时,根据,此时,根据ISR的内容的内容
51、就无法确定刚刚所响应就无法确定刚刚所响应(处理处理)的中断。的中断。这种情况下,就不能用上述的这种情况下,就不能用上述的EOI方式方式进行中断进行中断结束处理,而必须用特殊的中断结束命令结束处理,而必须用特殊的中断结束命令SEOI用用OCW2:EOI=1,SL=1,R=0,L2L0.由由L2L0指定清除指定清除ISR中的哪一位。中的哪一位。3. 3. 屏蔽中断源的方式屏蔽中断源的方式CPUCPU可用可用CLICLI指令将指令将IFIF清清“0 0”,禁止所有可屏蔽,禁止所有可屏蔽中断的进入。但是要想屏蔽某个或某几个中断中断的进入。但是要想屏蔽某个或某几个中断源,就得用源,就得用8259A825
52、9A的中断优先级管理的屏蔽方的中断优先级管理的屏蔽方式来实现。式来实现。8259A8259A对中断源的屏蔽方式有以下对中断源的屏蔽方式有以下两种:两种:普通屏蔽方式普通屏蔽方式通过对中断屏蔽寄存器通过对中断屏蔽寄存器(IMR)(IMR)的设定,实现对相的设定,实现对相应位为应位为“1”1”的中断请求的屏蔽。的中断请求的屏蔽。可通过可通过OCW1OCW1使使IMRIMR的一位或几位置的一位或几位置“1”1”。2) 2) 特殊屏蔽方式特殊屏蔽方式 特殊屏蔽方式允许低优先级中断请求中断正在服务的特殊屏蔽方式允许低优先级中断请求中断正在服务的高优先级中断。这种屏蔽方式通常用于级联方式中的主片,高优先级
53、中断。这种屏蔽方式通常用于级联方式中的主片,对于同一个请求对于同一个请求IRi上连接有多个中断源的场合,可以通过上连接有多个中断源的场合,可以通过编程写入操作命令字编程写入操作命令字OCW3来设置或取消。来设置或取消。 在特殊屏蔽方式中可在中断服务子程序中用中断屏蔽在特殊屏蔽方式中可在中断服务子程序中用中断屏蔽命令来屏蔽当前正在处理的中断,同时可使命令来屏蔽当前正在处理的中断,同时可使ISR中的对应中的对应当前中断的相应位清当前中断的相应位清.这样一来不仅屏蔽了当前正在处理的这样一来不仅屏蔽了当前正在处理的中断,而且也真正开放了较低级别的中断请求。中断,而且也真正开放了较低级别的中断请求。在这
54、种情况下,虽然在这种情况下,虽然CPU仍然继续执行较高级别的中仍然继续执行较高级别的中断服务子程序,但由于断服务子程序,但由于ISR中对应当前中断的相应位已经中对应当前中断的相应位已经清清0,如同没有响应该中断一样。所以,此时对于较低级,如同没有响应该中断一样。所以,此时对于较低级别的中断请求,别的中断请求,8259A仍然能产生仍然能产生INT中断请求,中断请求,CPU也也会响应较低级别的中断请求。会响应较低级别的中断请求。 4. 4. 系统总线的连接方式系统总线的连接方式8259A8259A与系统总线的连接方式有下列两种:与系统总线的连接方式有下列两种:1) 1) 缓冲方式缓冲方式缓冲方式是
55、指在多片缓冲方式是指在多片8259A8259A级联的大系统中,级联的大系统中,8259A8259A通过外部总线驱动器和数据总线相连。在缓冲方式通过外部总线驱动器和数据总线相连。在缓冲方式下,下,8259A8259A的的 输出信号作为缓冲器的启动信号,用输出信号作为缓冲器的启动信号,用来启动总线驱动器,在来启动总线驱动器,在8259A8259A与与CPUCPU之间进行信息交之间进行信息交换。换。2) 2) 非缓冲方式非缓冲方式当系统中只有一片或几片8259A芯片时,可以将数据总线直接与系统数据总线相连,这时8259A处于非缓冲方式。在这种方式下,8259A的 SP/EN的SP作为输入端设置,主片
56、应接高电平,从片应接低电平。 5. 5. 引入中断请求的方式引入中断请求的方式8259A引入中断请求的方式有下列几种:1) 1) 边沿触发方式边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号,上升沿之后,相应引脚可以一直保持高电平2) 2) 电平触发方式电平触发方式 8259A将中断请求输入端出现的高电平作为中断请求信号,在这种方式下,中断响应之后,高电平必须及时撤除。否则,在CPU响应中断、开中断之后,会引起第二次不应该有的中断。3) 3) 中断查询方式中断查询方式特点:a.既有中断的特点,又有查询(Polling)的特点。b.外设仍然向8259A发中断请求信号,要求CPU
57、服务。 c. CPU的IF=0,不响应外部的中断请求(对CPU的中断请求信号不起作用)此时,CPU需要用软件查询方法来确认中断源,从而实现对设备的服务,先向8259A发查询命令OCW3:0 0 0 0 110 0P紧接着执行一条读指令紧接着执行一条读指令(IN(IN指令指令) ),读出专门,读出专门的的“中断状态字中断状态字”:当当8259A8259A收到收到P=1P=1的查询命令后,在下一个的查询命令后,在下一个RDRD信号将使信号将使ISRISR的相应位置的相应位置“1”1”,就像收,就像收到了到了INTAINTA一样,并把上述的一样,并把上述的“中断状态字中断状态字”送到数据总线上,由送
58、到数据总线上,由CPUCPU读入读入ALAL。0A0IR W2 W1 W0D7D01:有设备请求服务;0:无设备请求服务。当前最高优先级的中断请求4.2.3 8259A的初始化编程8259A的控制寄存器可分为两组,一组是的控制寄存器可分为两组,一组是初始化命令字初始化命令字ICWICW4,另一组是,另一组是操作命令字操作命令字OCWOCW3。每片每片8259A具有两个内部端口地址,一个具有两个内部端口地址,一个偶地址端口偶地址端口(A0 = 0),一个奇地址端口,一个奇地址端口(A0 = 1),其他高位地址码由用户定义,用来,其他高位地址码由用户定义,用来产生产生8259A的片选信号。的片选信
59、号。1. 初始化命令字初始化命令字初始化命令字用来对初始化命令字用来对8259A初始化,包括初始化,包括ICWICW4 4个初始化命令字。个初始化命令字。(1) ICW1ICW1 使用偶地址端口使用偶地址端口(A0 = 0),其中,其中D4 位位为特征位(标志位),此时该位固定为为特征位(标志位),此时该位固定为1,表示当前写入的是表示当前写入的是ICW (OCW1 也用偶也用偶地址端口写入,但地址端口写入,但OCW1 的的D4 位为位为0)。)。ICW 的格式如下:的格式如下:(2) ICW(设定中断类型号设定中断类型号)ICW2 使用奇地址端口使用奇地址端口(A0 = 1),紧跟在,紧跟在
60、ICW之后设置。之后设置。ICW 的格式如下:的格式如下:低三位的值由低三位的值由中断请求输中断请求输入引脚决定入引脚决定3) ICWICW 只在级联方式中使用,端口地址为奇地址,只在级联方式中使用,端口地址为奇地址,其格式如下:其格式如下:从片的中断请求线在主片的哪个IRi引进(4) ICW4在在80 x86系统中必须设置系统中必须设置ICW4,端口地址为奇地址,端口地址为奇地址,其格式如下:其格式如下:2.8259A的初始化流程的初始化流程8259A的初始化命令字(的初始化命令字(ICW)是在加电之后由)是在加电之后由CPU按特定的顺序写入的。也就是说,各初始化命令字的按特定的顺序写入的。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 排水沟穿越道路施工方案
- 水污染治理工程施工方案
- 濮阳拉森钢板桩施工方案
- 辽宁民宿文旅施工方案
- 幼儿园获奖公开课:小班数学《草裙舞》教学设计
- 灯箱广告改造施工方案
- 正安建筑打桩施工方案
- 数控加工工艺与编程技术基础 教案 模块三 项目二 综合件的加工(3-4)
- 水稻种植中多发病虫害的发生特点及针对性绿色防控技术具体分析
- 【专精特新】折叠屏手机行业市场份额证明材料(智研咨询发布)
- GB/T 775.1-2006绝缘子试验方法第1部分:一般试验方法
- GB/T 39965-2021节能量前评估计算方法
- 最新《工会基础知识》试题库及答案1000题【完美打印版】
- 化学核心素养的课堂教学-基于核心素养的高中化学教学 课件
- GA/T 2000.19-2014公安信息代码第19部分:现役军人和人民武装警察申领居民身份证申请号
- 体育竞赛的组织与编排
- 动静脉内瘘的围手术期护理-课件
- 办公家具项目实施方案、供货方案
- 初中数学人教八年级下册第十九章一次函数-一次函数的图象与性质
- 模电数电面试知识
- 化工原理-第三版-陈敏恒-课件-华东理工内部1
评论
0/150
提交评论