微机原理与接口技术-08中断系统与可编程中断控制器8259A_第1页
微机原理与接口技术-08中断系统与可编程中断控制器8259A_第2页
微机原理与接口技术-08中断系统与可编程中断控制器8259A_第3页
微机原理与接口技术-08中断系统与可编程中断控制器8259A_第4页
微机原理与接口技术-08中断系统与可编程中断控制器8259A_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

中断的基本概念

8086的中断系统可编程中断控制器8259A及其应用

第8章中断系统与可编程中断控制器8259A一、中断系统中的名词概念

中断是指CPU暂停正在执行的程序,转去执行处理中断事件的中断服务程序,待执行完中断服务程序再返回到原被中断的程序继续执行。1、中断8.1 中断的基本概念

2、中断源及分类内部中断源:中断源位于微处理器内部,如程序异常、陷阱中断、软件中断等外部中断源:中断源在微处理器的外部,如外部故障、外部事件、I/O事件等通常称引起中断的事件为中断源。8.1 中断的基本概念

3、中断类型号

为了能使CPU识别中断源,从而能正确地转向该中断源对应的中断服务程序入口,通常用若干位二进制编码来给中断源编号,该编号称为中断类型号。4、中断断点

由于中断的发生,某个程序被暂停执行。该程序中即将执行,但由于中断而没有被执行的那条指令(即中断发生时CPU正在执行指令的下一条指令)的地址称为中断断点,简称断点。8.1 中断的基本概念

5、中断服务程序

中断服务程序:处理中断事件的程序段。如除法错中断服务程序、输入输出中断服务程序等。中断服务程序与一般的子程序对比:子程序的调用是由程序设定,因此是确定的而中断服务程序由某个事件引发,它的发生往往是随机的、不确定的。6、中断系统

为实现计算机的中断功能而配置的相关硬件、软件的集合称为中断系统。二、中断工作方式的特点●并行处理能力

●实时处理能力

●故障处理能力

●多道程序或多重任务的运行

8.1 中断的基本概念

三、中断管理1、对中断全过程的控制

中断源发出中断请求时,微处理器能决定是否响应这一中断。若允许响应这个中断请求,微处理器能在保护断点后,将控制转移到相应的中断服务程序去,中断处理完后,微处理器又能返回到断点处继续执行被中断的程序。8.1 中断的基本概念

2、中断源的识别

在多个中断源共存的系统中,当有中断发生时,CPU需要识别是那个中断源发出的请求。软件方法:软件查询中断源的状态来识别。硬件方法:需硬件提供中断类型号来识别。8.1 中断的基本概念

3、中断的优先权

对于系统中的所有中断源,必须根据中断的性质及处理的轻重缓急对中断源进行排队,并给予优先权。所谓优先权,是指有多个中断源同时提出中断请求时,微处理器响应中断的优先次序。8.1 中断的基本概念

4、中断嵌套

微处理器在处理级别低的中断过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去处理高优先级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式为中断嵌套。四、中断过程

对于不同类型的中断源,微处理器的响应及处理过程不完全一样,大致过程为:中断源请求中断中断响应中断服务8.1 中断的基本概念

1、中断源请求中断①外部中断源。由外部硬件产生可屏蔽或不可屏蔽中断的请求信号。②内部中断源。在程序运行过程中发生了指令异常或其他情况。8.1 中断的基本概念

2、中断响应

(1)响应可屏蔽中断条件:

①微处理器处于中断允许状态(IF=1)。

②没有不可屏蔽中断请求和总线请求。

③当前指令执行结束。(2)响应不可屏蔽中断条件:

①没有总线请求。

②当前指令执行结束。(3)响应内部中断条件:当前指令执行结束识别中断源FLAGS,CS,IP进栈清TF,IF标志读中断向量,转入中断服务程序开中断中断处理关中断恢复现场中断返回主程序保护现场断点中断响应周期中断服务程序中断响应过程如下:8.1 中断的基本概念

3、中断服务(1)保护现场保护中断服务时要使用的寄存器的内容。(2)开中断(3)中断处理执行输入输出或非常事件的处理。(4)关中断保证在恢复现场时不被新的中断打扰。(5)恢复现场(6)返回

在中断服务程序的最后,需要安排一条中断返回指令,使程序回到被中断的地址。一、8086微处理器的中断类型

外部中断中断

内部中断

8.2 8086的中断系统

8086用8位二进制码表示一个中断类型,共有256个中断,可分为两大类:可屏蔽中断非可屏蔽中断除法错中断单步中断断点中断溢出中断软中断8086中断结构

除法出错中断、INTn和INTO指令的优先级最高,其次为不可屏蔽中断NMI,再者为可屏蔽中断INTR,单步中断的优先级最低。8.2 8086的中断系统1、外部可屏蔽中断

可屏蔽中断由INTR引入,受标志寄存器中的中断允许标志位IF的控制。IF=0时,微处理器不响应INTR的中断请求,IF=1时,微处理器响应INTR的中断请求。8086的可屏蔽中断源由中断控制器8259A统一管理,INTR中断的类型码可以是8~255。8.2 8086的中断系统2、外部不可屏蔽中断

不可屏蔽中断由NMI引脚引入,微处理器对NMI中断请求的响应,不受中断允许标志位IF控制。不管IF的状态如何,只要NMI信号有效,8086现行指令执行结束,没有DMA请求,都会立即响应NMI中断请求。NMI中断类型码固定为2。8.2 8086的中断系统(1)除法错中断

在执行DIV(无符号数除法)或IDIV(有符号数除法)指令时,若发现除数为零或商超过寄存器所能表达的范围(商溢出),8086微处理器立即执行中断类型码为0的内部中断。3、内部中断8.2 8086的中断系统(2)单步中断8086标志寄存器中有一个陷阱标志位TF,若TF=1,则微处理器每执行完一条指令就引起一个中断类型码为1的内部中断。它用于实现单步操作,是一种强有力的调试手段。(3)断点中断INT3指令产生一个中断码为3的内部中断,称为断点中断。在程序调试过程中,需要跟踪程序走向、了解程序执行过程的中间结果时,可以用INT3指令临时替换原有的指令,称为设置断点。4、溢出中断8086标志寄存器中有一个溢出标志位OF,若上一条指令的执行结果使OF=1,则INTO指令引起中断类型码为4的内部中断;否则此指令不起作用,程序顺序执行下一条指令。5、软中断

用户可以用INTn指令产生一个中断,n为中断类型码。如DOS系统功能调用INT21H指令的中断类型码为21H。8.2 8086的中断系统二、8086微处理器的中断向量表中断向量:也称为中断指针,就是中断服务程序的入口地址中断向量表:它是中断类型号与它对应的中断服务程序入口地址之间的换算表。8086的中断向量表占用存储器从00000H开始的最低地址区的1024个单元,每个中断向量占用4B,故可存256个中断向量。8.2 8086的中断系统中断向量表的结构三、8086微处理器的中断响应及返回1、可屏蔽中断的响应操作①等待当前指令结束,然后进入中断响应周期;②从微处理器外部的中断控制逻辑获得中断类型号;③当前的PSW、CS和IP的内容依次压入堆栈;④清除PSW中的IF位和TF位;⑤把中断服务程序的入口地址置入IP和CS,即把地址为4n和4n+1两个单元的16位数作为中断服务程序入口的偏移地址置入IP,

把地址为4n+2和4n+3两个单元的16位数作为服务程序的段地址置入CS。2、非可屏蔽中断的响应操作CPU对它的响应不受IF位的控制,也要等待当前指令执行结束。若非可屏蔽中断请求和可屏蔽中断请求同时出现,CPU将优先响应非可屏蔽中断。非可屏蔽中断的中断类型号固定为2,无需从外部取回一个字节的中断类型号操作。非可屏蔽中断响应的其它操作和可屏蔽中断相同。8.2 8086的中断系统3、内部中断的响应过程

内部中断响应操作有以下共同点:①中断类型号要么是指令码给定的,要么是处理器硬件决定的,都不需要从外部逻辑输入。②没有INTA信号的响应周期。③不受IF位的控制,但单步中断受TF位控制。④除单步中断之外,其它内部中断都比外部中断优先响应。除上述特点外,内部中断响应也要执行可屏蔽中断响应的③、④和⑤项操作。8.2 8086的中断系统作业

P264-265:

8.1、8.4中断控制器的功能:接收外部中断请求,向微处理器发送中断请求;进行优先权级别的判断,把当前优先权最高的中断源的中断类型号送往微处理器;处理器响应中断,进入中断服务后,当优先权更高的外部中断请求产生时,中断控制器能够实现中断的嵌套;对于优先权较低的中断请求则予以屏蔽。8.3 可编程中断控制器8259A及其应用一、8259A的引脚功能CAS2~CAS0:级联线IR7~IR0:外设向8259A发出的中断请求信号。SP/EN:主从设备设定/缓冲器读写控制。A0:用于选择内部端口。8.3 可编程中断控制器8259A及其应用二、8259A的内部结构及功能模块8259A内部结构图8.3 可编程中断控制器8259A及其应用1、中断请求寄存器(IRR)IRR是一个8位的锁存器,用来锁存外部设备送来的IR7~IR0中断请求信号。当外部中断请求线IRi有中断请求时,IRR中与之对应的第i位被置1。这个寄存器的内容可以被微处理器读出。8.3 可编程中断控制器8259A及其应用2、中断屏蔽寄存器(IMR)IMR是一个8位的寄存器,用于设置中断请求的屏蔽信号。此寄存器的第i位被置1时,与之对应的外部中断请求线IRi被屏蔽,不能向微处理器发出INT信号。可通过软件设置IMR内容,确定每一个中断请求的屏蔽状态。设置IMR也可以起到改变中断请求的优先级的效果。8.3 可编程中断控制器8259A及其应用3、中断服务状态寄存器(ISR)ISR是一个8位的寄存器,用于记录当前正在被服务的所有中断级,包括尚未服务完而中途被更高优先级打断的中断级。若微处理器响应了IRi中断请求,则ISR中与之对应的第i位置1。该中断处理结束前,要使用指令清除这一位。此寄存器的内容可以被微处理器读出。8.3 可编程中断控制器8259A及其应用4、优先权处理器

优先权处理器用于识别和管理各中断请求信号的优先级别。当几个中断请求信号同时出现时,微处理器响应中断请求时,把优先权最高的IRR中的“1”送入ISR。当8259A正在为某一级中断服务时,若又出现新的中断请求,由优先权处理器判断新出现的中断请求的优先级别并决定是否进入多重中断处理。8.3 可编程中断控制器8259A及其应用5、控制逻辑

在8259A的控制逻辑电路中,有一组初始化命令字寄存器ICW1~ICW4和一组操作命令字寄存器OCW1~OCW3。初始化命令字在系统初始化时置入,工作过程中一般保持不变。操作命令字在工作过程中根据需要设定。控制逻辑电路按照编程设定的工作方式管理8259A的全部工作。8.3 可编程中断控制器8259A及其应用6、数据总线缓冲器

这是一个8位的双向三态缓冲器,是8259A与系统数据总线的接口。8259A通过数据总线缓冲器接收微处理器发来的控制字,也通过数据总线缓冲器向微处理器发送中断类型码和状态信息。8.3 可编程中断控制器8259A及其应用7、读写控制逻辑D4D3读写操作0000000111110000001x01xx数据总线→OCW2数据总线→OCW3数据总线→ICW1数据总线→ICW2,ICW3,ICW4,OCW100010011IRR或ISR或中断级别编码→数据总线IMR→数据总线8.3 可编程中断控制器8259A及其应用

系统需要扩展而使用多个8259A时,要有一个8259A作为主器件而其他的作为从器件。级联缓冲/比较器在级联方式的主/从结构中,用来控制8259A的级联。与此部件相关的有3根级联线CAS2~CAS0和1根主从设备设定/缓冲器读写控制线/。8、级联缓冲/比较器

8.3 可编程中断控制器8259A及其应用三、8259A的工作方式1、8259A的工作过程①中断源在中断请求输入端IR0~IR7上产生中断请求;②中断请求被锁存在IRR中,并经IMR“屏蔽”,其结果送给优先权电路判断;③控制逻辑接收中断请求,向微处理器输出INT信号;④微处理器从INTR引脚接受8259A的INT信号,进入连续两个INTA周期;⑤优先权电路检出优先权最高的中断请求位,设置ISR中的对应位;⑦8086CPU读取该中断类型号,转移到相应的中断处理程序;⑧在中断处理结束前,中断处理程序向8259A发送一个EOI(中断结束)命令,使ISR相应位复位,本次中断到此结束。⑥若8259A作为主控中断控制器,则在第一个INTA周期将级联地址从CAS2~CAS0送出,若8259A是单独使用或是由CAS2~CAS0选择的从属控制器,就在第二个INTA周期将一个中断类型号输出到低8位数据总线上;2、8259A的优先权管理(1)固定优先级

这种方式下各个中断源的优先级由它所连接的引脚编号决定,一旦连接,其优先级就已确定。具体有全嵌套方式和特殊全嵌套方式两种。

全嵌套方式下,中断优先权的级别是固定的,IR0优先权最高,IR1~IR6逐级次之,IR7最低。8.3 可编程中断控制器8259A及其应用

特殊全嵌套方式一般用于8259A级联的情况。系统中有多片8259A,一片为主片,其他为从片。从片上的8个中断请求通过它的INT引脚连接到主片的某个中断请求输入端IRi上。从片上的8个中断请求有不同的优先级,但从主片看来,这些中断请求来自同一个引脚,属于同一级别。假设从片工作在全嵌套方式,先后收到了两次中断请求,而且第二次中断请求有较高的优先级,那么该从片就会两次通过INT引脚向上一级申请中断。如果主片采用全嵌套方式,则它不会响应来自同一个引脚的第二次中断请求。而采用特殊全嵌套方式后,就会响应该请求。(2)循环优先级

这种方式下,各个中断申请具有大体相同的优先级。它分为自动循环方式和优先权特殊循环方式。

在优先权自动循环方式下,某一个中断源受到中断服务后,它的优先权自动降为最低,而与之相邻的优先级升为最高。8259A在设置优先权自动循环方式之初,总是自动规定IR0具有最高优先权,IR7具有最低优先权。

优先权特殊循环方式与优先权自动循环方式仅有一处不同:在优先权自动循环方式下,一开始的最高优先权固定为IR0;而在优先权特殊循环方式下,由编程确定最初的最低优先权,从而也就确定了最高优先权。8.3 可编程中断控制器8259A及其应用3、8259A中断屏蔽方式

普通屏蔽方式和特殊屏蔽方式。

普通屏蔽方式是将中断屏蔽字写入IMR而实现的。某位为“1”,对应位中断请求被屏蔽;为“0”则开放。

特殊屏蔽方式是用于这样一种特殊要求的场合:在执行较高级的中断服务时,由于某种特殊原因,希望开放较低级别的中断请求。采用特殊屏蔽方式并用屏蔽字对IMR中某一位置“1”,会同时使ISR中对应位清“0”,这样不但屏蔽了当前正在服务的较高中断级,同时真正开放了其他优先权较低的中断级。4、8259A中断结束方式

中断结束的方式:自动中断结束方式(AEOI)和非自动中断结束方式(EOI)。

中断服务完成时,必须给8259A一个命令,使这个中断级在ISR中的相应位清“0”,表示该中断处理已经结束。8.3 可编程中断控制器8259A及其应用

自动中断结束方式(AEOI):

在这种方式下,系统一旦进入中断响应,8259A就在第二个中断响应周期INTA信号的后沿,自动将ISR中被响应中断级的对应位清“0”。这是一种最简单的中断结束处理方式,可以通过初始化命令来设定。这种方式只能用在系统中只有一个8259A,且多个中断不会嵌套的情况。8.3 可编程中断控制器8259A及其应用

非自动中断结束方式(EOI):

在这种工作方式下,从中断服务程序返回前,必须在程序里向8259A输出一个中断结束命令(EOI),把ISR对应位清“0”。具体有两种:

一般的中断结束方式。指令内不指定清除ISR中的哪一位,由8259A自动选择优先权最高的位。

特殊的中断结束EOI命令。在指令内指明要清除ISR中某一位。8.3 可编程中断控制器8259A及其应用5、8259A的查询工作方式8259A工作在程序查询方式时,8259A不向微处理器发INT信号,微处理器通过查询8259A了解有无中断。查询字格式为:

I××××W2W1W0I=1表示有中断请求,I=0表示没有中断请求。W2W1W0表示8259A请求服务的最高优先级编码。若有,根据W2W1W0的值转移到对应的中断服务程序去。8.3 可编程中断控制器8259A及其应用6、读8259A的状态8259A内部的IRR、ISR和IMR的状态可以通过适当的读命令读到微处理器中,以了解8259A的工作情况。上述的各种工作方式,都是通过8259A的初始化命令字(ICW1~ICW4)和操作命令字(OCW1~OCW3)来设定的。8.3 可编程中断控制器8259A及其应用四、8259A的编程8259的编程分为两个阶段:初始化阶段和操作阶段。初始化阶段应该在系统加电或复位后由初始化程序完成。用输出指令向8259置入初始化命令。操作阶段,用输出指令向8259发适当的操作命令字,实现对8259的状态、中断方式和过程的控制。8.3 可编程中断控制器8259A及其应用初始化编程的任务:第一、设定中断请求信号的有效形式,即高电平有效,还是低电平向高电平跳变的上升沿有效;第二、是单片工作方式还是级联工作方式;第三、设定8259管理的中断类型号基值,即0级中断IR0对应的中断类型号,当中断请求响应时,得到中断向量表中相应的地址;第四、设定各级的优先排序规则;第五、设定一次中断处理结束时的结束操作规则。通过向8259发初始化命令字ICW实现。1、初始化命令字ICW8259A有4个初始化命令字寄存器ICW1~ICW4。8259A开始工作时,必须对它写入初始化命令字,使它按预定的工作方式工作。8.3 可编程中断控制器8259A及其应用(1)初始化命令字ICW1:格式:设置ICW1需要I/O地址为A0=0。

D7D6D5D4D3D2D1D0×××1LTIM0SNGLIC4其中:×表示无关位,可以是任意值;

LTIM=1:表示有效的中断请求信号是高电平,为0是低电平向高电平跳变的上升沿;

SNGL=1:表示单片工作,为0多片级联;IC4=1:表示在后面程序还要设置初始化命令ICW4,为0不再设置ICW4;D4=1:是ICW1的特征标志(2)初始化命令字ICW2

用于设置中断类型号基值。格式为:

D7D6D5D4D3D2D1D0T7T6T5T4T3000其中:低3位必须为0;若两片8259A的中断类型号基值分别为08H和70H,ICW2的高5位T7~T3分别为00001和01110。

设置ICW2的地址为A0=1。初始化命令字ICW2说明:①外中断的中断类型号是在中断需要期间由8259提供的;②

8259是根据初始化过程中用ICW2命令置入的中断类型号基值来提供中断类型号。③

IR0对应的中断类型号是中断类型号基值,一定能被8整除的正整数。8.3 可编程中断控制器8259A及其应用(3)初始化命令字ICW3

专为级联而设置的。当只有一片8259A(即设ICW1的D1位为1),则不设置ICW3;当多于一片时,将主片和从片的ICW1中D1位设置为0;且在设置ICW2之后向A0=1地址设置的才是ICW3。

D7D6D5D4D3D2D1D0S7S6S5S4S3S2S1S0Si=1,表示对应的IRi引脚输入来自从片8259A的INT输出(即该引脚被从片8259A级联);为0表示对应的IRi输入来自中断源。ICW3(从属)00000该3位的编码对应从属8259接主控IR的编号

例如:从属芯片接到主控芯片的IR2上,则从属芯片的ICW3对应的是02H;主片中设置的ICW3为00000100。

初始化命令字ICW4:只有ICW1的IC4位为1才能设置ICW4,格式为:

D7D6D5D4D3D2D1D0000SFNMBUFM/SAEOIμPM1-中断自动结束0-中断正常结束0×非缓冲方式10缓冲方式/从片11缓冲方式/主片1-特殊全嵌套方法0-正常全嵌套方法1-8086/8088方式0-8080/8085方式8.3 可编程中断控制器8259A及其应用8259初始化命令字设置次序:ICW1ICW2SNGL=1?ICW3NY地址A0=0(20H)A0=1(21H)A0=1(21H)A0=1(21H)IC4=1?YICW4N2、操作命令字OCW

系统运行中可以向8259发操作命令字,对8259A管理中断的方式进行修改和设定;8259A共有OCW1、OCW2和OCW3三个操作控制字。与初始化命令字ICW不同,OCW不是按照既定流程写入,而是按需要选择写入。(1)操作控制字OCW1

用于设置屏蔽状态。用输出指令把OCW1发送到IMR中断屏蔽寄存器IMR中为1的位对应的中断级的输入线IR处于被屏蔽状态。被屏蔽的中断级请求不能使8259的INT输出端产生有效的请求信号。设置OCW1的I/O地址是A0=1。OCW1格式为:D7D6D5D4D3D2D1D01:屏蔽响应的IR

0:允许相应的IR中断

例如:将42H写入OCW1,则IR6和IR1被屏蔽,而IR0、IR2、IR3、IR4、IR5和IR7允许中断。

向地址A0=1发的OCW1是屏蔽字,对同一地址的输入指令将读回OCW1设置的屏蔽字。(2)操作控制字OCW2

用来改变/设置中断优先级模式和发送中断结束命令。设置OCW2地址的是A0=0。格式为:RSLEOI00L2L1L0

指定中断级

0000

0011

...

1117

R=0固定优先权

R=1循环优先权

SL=0表明L2、L1、LO无意义

SL=1表明L2、L1、LO有意义

EOI=1向8259A发中断结束命令;EOI=0这位不起作用(3)操作控制字OCW3

用于管理特殊的屏蔽方式和查询方法。设置OCW3地址的是A0=0。

D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS

它的特征标识为D4D3=01ESMM:特殊屏蔽方式,为1允许特殊屏蔽方式SMM:特殊屏蔽方式标识,1表示特殊屏蔽方式,0表示非特殊屏蔽方式ESMM为1,SMM为才有意义,否则无意义。D7D6D5D4D3D2D1D00ESMMSMM01PRRRISP:管理查询方式,1表示向8259A发查询命令

0表示不发查询命令RR、RIS:控制读出8259内部寄存器IRR和ISR

的内容,10、11读寄存器IRR、ISR

的命令;00、01无意义,其中

温馨提示

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

评论

0/150

提交评论