文档库 最新最全的文档下载
当前位置:文档库 › 第五章中断系统1

第五章中断系统1

第五章中断系统1
第五章中断系统1

第五章 中断系统

5. 1 输入/输出数据的传输控制方式

一、输入/输出的一般概念

1.引言

输入/输出是微机系统与外部设备进行信息交换的过程。输入/输出设备称为外部设备,与存储器相比,外部设备有其本身的特点,存储器较为标准,而外部设备则比较复杂,性能的离散性比较大,不同的外部设备,其结构方式不同,有机械式、电动式、电子式等;输入/输出的信号类型也不相同,有数字信号,也有模拟信号;有电信号,也有非电信号;输入/输出信息的速率也相差很大。因此,CPU与外部设备之间的信息交换技术比较复杂。

CPU与外设之间的信息交换,是通过它们之间接口电路中的I/O端口来进行的,由于同一个外部设备与CPU之间所要传送的信息类型不同,方向不同,作用也不一样(例如数据信息、状态信息、控制信息、输入/输出等),所以接口电路中可以设置多个端口来分别处理这些不同的信息。

2.输入/输出端口的寻址方式

微机系统采用总线结构形式,即通过一组总线来连接组成系统的各个功能部件(包括CPU、内存、I/O端口),CPU、内存、I/O端口之间的信息交换都是通过总线来进行的,如何区分不同的内存单元和I/O 端口,是输入/输出寻址方式所要讨论解决的问题。

根据微机系统的不同,输入/输出的寻址方式通常有两种形式:(1).存储器对应的输入、输出寻址方式

这种方式又称为存储器统一编址寻址方式或存储器映象寻址方式。方法:把外设的一个端口与存储器的一个单元作同等对待,每一个I/O 端口都有一个确定的端口地址,CPU与I/O端口之间的信息交换,与存储单元的读写过程一样,内存单元与I/O端口的不同,只在于它们具有不同的的地址。

优点:

①CPU对I/O端口的读/写操作可以使用全部存储器的读/写操作指

令,也可以用对存储器的不同寻址方式来对I/O端口中的信息,直接进行算术、逻辑运算及循环、移位等操作。

②内存与外设地址的分配,可以用统一的分布图。

③不需要专门的输入、输出操作指令。

缺点:

1 内存与I/O端口统一编址时,在地址总线根数一定的情况下,使

系统中实际可以直

2 接寻址的内存单元数减少。

②一般情况下,系统中I/O端口数远小于内存单元数,所以在用直接

寻址方式来寻址这些端口时,要表示一个端口地址,必须用与表示内存单元地址相同的字节数,使得指令代码较长,相应地读/写执行时间也较长,这对提高系统的运行速度是不利的。

3. CPU与外设之间所传送的信息类型

CPU与I/O端口之间所交换的信息,可以有下列几种类型:

①数据信息:包括数字量、模拟量、开关量等,可以输入、也可以

输出

3 状态信息:这是I/O端口送给CPU的有关本端口所对应的外设当

前状态的信息。供CPU进行分析、判断、决策。

③控制信息:这是CPU送给I/O端口的控制命令,使相应的外部设备

完成特定的操作。

数据信息、状态信息和控制信息是不同类型的信息,它们所起的作用也不一样。但在8086/8088微机系统中,这三种不同类型的信息的输入、输出过程是相同的。为了加以区分,可以使它们具有不同的端口地址,在端口地址相同的情况下,可以规定操作的顺序,或者在输入/输出的数据中设置特征位。

二、 CPU与外设之间输入/输出数据的传输控制方式

CPU与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和DMA方式。

1.程序方式

指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式。根

据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。

1 无条件传送方式

条件:利用程控方式与外设交换信息时,如果输入/输出的时刻,都可以保证外设总是处于“准备好”状态,则可以直接利用输入/输出指令进

行信息的输入/输出操作。

图5-1

如图5-1,从硬件电路上来看:

输入:加三态缓冲器(控制端由地址译码信号和信号选中,CPU用IN指令)输出:加锁存器(控制端由地址译码信号和信号选中,CPU用OUT 指令)这种方式下的硬、软件设计都比较简单,但应用的局限性较大,因为很难保证外设在每次信息传送时都处于“准备好”状态,一般只用在诸如开关控制、七段数码管的显示控制等场合。

2 条件传送方式

又称查询方式,即通过程序查询相应设备的状态,若状态不符合,则CPU不能进行输入/输出操作,需要等待;只有当状态信号符合要求时,CPU才能进行相应的输入/输出操作。

一般外设均可以提供一些反映其状态的信号,如对输入设备来说,

它能够提供“准备好”(“READY”)信号,“READY” =1 表示输入数据已准备好。输出设备则提供“忙”(“BUSY”)信号,“BUSY”=1表示当前时刻不能接收CPU来的数据,只有当“BUSY”=0时,才表明它可以接受来自于CPU的输出数据。

过程:

输入操作的程序流程如图5-2所示:

对READY的状态查询,是通过读状态端口的相应位来实现的,输出

的情况亦大致相同,这种传送控制方式的最大优点是,能够保证输入/

输出数据的正确性。

输入接口

以输入设备将数据送入锁存,发选通信号开始,→READY=1→CPU

查询(读READY)→读数据→清除READY。见图5-3。 图5-2输入操作程序流程如图

输出接口

CPU送数据至锁存器,发选通信号,→a。通知外设取数据;→b。

BUSY→输出设备取完数据→ACK→清BUSY→CPU查询。见图5-4

图5-3

图5-4

图5-5

优先级问题

当CPU需对多个设备进行查询时,就出现了所谓的优先级问题,即究竟先为哪个设备服务,一般来讲,在这种情况下都是采用轮流查询的方式来解决,如图5-5所示,这时的优先级是很明显的,即先查询的设备具有较高的优先级。但这种优先级管理方式,也存在着一个问题,即某设备的优先级是变化的,如当为设备B服务以后,这时即使A已准备好,它也不理睬,而是继续查询C,也就是说A的优先地位并不巩固(即不能保证随时处于优先)。为了保证A随时具有较高的优先级,可采用加标志的方法,当CPU为B服务完以后,先查询A是否准备好,若此时发现A已准备好,立即转向对A的查询服务,而不是为C设备服务。

2. 中断传送方式

(1)为什么要采用中断传送方式

从查询式的传输过程可以看出,它的优点是硬件开销小,使用起来比

较简单。但在此方式下,CPU要不断地查询外设的状态,当外设未准备

好时,CPU就只能循环等待,不能执行其它程序,这样就浪费了CPU的大

量时间,降低了主机的利用率。

为了解决这个矛盾,我们提出了中断传送方式:即当CPU进行主程

序操作时,外设的数据已存入输入端口的数据寄存器;或端口的数据输

出寄存器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在满

足一定的条件下,暂停执行当前正在执行的主程序,转入执行相应能够

进行输入/输出操作的子程序,待输入/输出操作执行完毕之后CPU即返

回继续执行原来被中断的主程序。这样CPU就避免了把大量时间耗费在

等待、查询状态信号的操作上,使其工作效率得以大大地提高。

能够向CPU发出中断请求的设备或事件称为中断源。

微机系统引入中断机制后,使CPU与外设(甚至多个外设)处于并

行工作状态,便于实现信息的实时处理和系统的故障处理。

中断方式的原理示意图如图5-6所示。

(2)中断方式下的接口电路图5-6

中断方式提高了CPU的工作效率,但是它同时也提高了系统的硬件

开销。因为系统需增加含有中断功能接口电路,用来产生中断请求信

号。以输入方式为例,接口电路如图5-7所示。

图5-7

数据输入的过程:当外设发STB→数据入锁存器,中断请求触发器置1→若没有屏蔽则产生INTR→CPU满足条件(允许中断;指令执行完)发→(进入中断服务子程序)读数据,发,和地址→清中断请求触发器,数据送D0~D7。

(3)中断优先级

问题的提出:

当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。下面分别介绍:

①软件查询法

只需有简单的硬件电路,如将A、B、C三台设备的中断请求信

号“或”后作为系统INTR,这时,A、B、C三台设备中只要至少有一台设备提出中断请求,都可以向CPU发中断请求。进入中断服务子程序后,再用软件查询的方式分别对不同的设备的服务,查询程序的设计思想同查询式,查询的前后顺序就给出了设备的优先级,框图如图所示。

②简单硬件方法

以链式中断优先权排队电路为例,

基本设计思想:将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,则发出中断响应信号,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。

如图所示。

③专用硬件方式

采用可编程的中断控制器芯片,如Intel8259A。

图5-11 中断控制器的系统连接

有了中断控制器以后,CPU的INTR和引脚不再与接口直接相连,而是与中断控制器相连,外设的中断请求信号通过IR0~IR7进入中断控制器,经优先级管理逻辑确认为级别最高的那个请求的类型号会经过中断类型寄存器在当前中断服务寄存器的某位上置1,并向CPU发INTR请求,CPU发出信号后,中断控制器将中断类型码送出。在整个过程中,优先级较低的中断请求都受到阻塞,直到较高级的中断服务完毕之后,当前服务寄存器的对应位清0,较低级的中断请求才有可能被响应。电路如图图5-11所示。

利用中断控制器可以通过编程来设置或改变其工作方式,使用起来方便灵活。

(4).中断响应

中断源向CPU发出中断请求,若优先级别最高,CPU在满足一定的条件下,可以中断当前程序的运行,保护好被中断的主程序的断点及现场信息。然后,根据中断源提供的信息,找到中断服务子程序的入口地址,转去执行新的程序段,这就是中断响应。

注意:CPU响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。

(5)中断服务子程序

CPU响应中断以后,就会中止当前的程序,转去执行一个中断服务子程序,以完成为相应设备的服务。中断服务子程序的一般结构如图5-

12所示。

①保护现场(由一系列的PUSH指令完成)。目的是为了保护那些与主程序中有冲突的寄存器,(如AX,BX,CX等),如果中断服务子程序中所使用的寄存器与主程序中所使用的寄存器等没有冲突的话,这一步骤可以省略。

3 开中断(由STI指令实现)。目的是为了能实现中断的嵌套。

4 中断服务图5-12中断服务子程序的流程

5 恢复现场(由一系列的POP指令完成)。是与保护现场对应的,但

要注意数据恢复的次序,以免混乱。

6 返回(使用中断返回指令IRET)。不能使用一般的子程序返回指令

RET,因为IRET指令除了能恢复断点地址外,还能恢复中断响应时的标志寄存器的值,而这后一个动作是RET指令不能完成的。

中断的工作过程可分为五大步骤:

即中断请求、中断判优、中断响应、中断服务和中断返回。

3. DMA传送方式

利用中断进行信息传送,可以大大提高CPU的利用率,但是其传送过程必须由CPU进行监控。每次中断,CPU都必须进行断点及现场信息的保护和恢复操作,这些都是一些额外的操作,会占用一定的CPU时间。如果需要在内存的不同区域之间,或者在内存与外设端口之间进行大量信息快速传送的话,用查询或中断方式均不能满足速度上的要求,这时应采用直接数据通道传送,即DMA数据传送方式。

DMA(Direct Memory Access)意为直接数据传送,它是在内存的不同区域之间,或者在内存与外设端口之间直接进行数据传送,而不经过CPU中转的一种数据传送方式,可以大大提高信息的传送速度。

DMA方式传送的主要步骤(见图5-13的流程图)

①外设准备就绪时,向DMA控制器发DMA请求,DMA控制器接到此信号后,向CPU发DMA请求;

②CPU接到HOLD请求后,如果条件允许(一个总线操作结束),则发出HLDA信号作为响应,同时,放弃对总线的控制;

③DMA控制器取得总线控制权后,往地址总线发送地址信号,每传送1个字节,就会自动修改地址寄存器的内容,以指向下一个要传送的字节;

④每传送一个字节,字节计数器的值减1,当减到0时,DMA过程结束;图5-13DMA的工作流程图

⑤DMA控制器向CPU发结束信号,将总线控制权交回CPU。

DMA传送控制方式,解决了在内存的不同区域之间,或者内存与外设之间大量数据的快速传送问题,代价是需要增加专门的硬件控制电路,称为DMA控制器,其复杂程度与CPU相当。

5. 2 8086/8088中断系统

一、中断分类及中断类型码

中断源:引起中断的原因或发出中断请求的设备称为中断源。

1.中断的分类

共分为两类:硬件中断和软件中断

①硬件中断:即通过外部的硬件产生的中断,如打印机、键盘等,有时也称为外部中断。硬件中断又可分为两类:可屏蔽中断和不可屏蔽中断。

不可屏蔽中断:由NMI引脚引入,它不受中断允许标志的影响,每个系统中仅允许有一个,都是用来处理紧急情况的,如掉电处理。这种中断

一旦发生,系统会立即响应;

可屏蔽中断:由INTR引脚引入,它受中断允许标志的影响,也就是

说,只有当IF=1时,可屏蔽中断才能进入,反之则不允许进入,可屏

蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进

行处理。

②软件中断(内部中断):即根据某条指令或者对标志寄存器中某

个标志的设置而产生,它与硬件电路无关,常见的如除数为0,或用INT

n指令产生。

溢出中断由INT0指令引起

断点中断由INT3指令引起

单步由标志TF引起↘不对应指令

除0由计算结果引起↙不对应指令

2.中断类型码:

8086/8088为每个中断源分配了一个中断类型码,其取值范围为0~

255,即可处理56种中断。其中包括软件中断,系统占用的中断以及开

放给用户使用的中断。

二、中断向量和中断向量表

系统处理中断的方法很多,处理中断的步骤中最主要的一步就是如

何根据不同的中断源进入相应的中断服务子程序,目前用的最多的就是

向量式中断。

中断向量:把各个中断服务子程序的入口都称为一个中断向量;

中断向量表:将这些中断向量按一定的规律排列成一个表,就是所谓的

中断向量表,当中断源发出中断请求时,即可查找该表,找出其中断向

量,就可转入相应的中断服务子程序。

8086/8088中断系统中的中断向量表是位于0段的0~3FFFH的存贮区

内,每个中断向量占四个单元,其中前两个单元存放中断处理子程序的

入口地址的偏移量(IP),低位在前,高位在后;后两个单元存放中断

处理子程序入口地址的段地址(CS),也是低位在前,高位在后,整

个中断向量的排列是按中断类型号进行的。见P图5-14。

图示给出了中断类型码与中断向量所在位置之间的对应关系。其中

00H~04H为专用中断,05H~3FH为系统保留中断,用户一般是不能对

它们定义的(这里面有一些为固定的用途,如INT 21H即为MS-DOS 图5-14

的系统调用),40~FF为用户定义的中断。

00H~04H――系统专用10H~1FH――BIOS用40H~FFH――用户用

08H~0FH――硬件中断20H~3FH――DOS用

中断类型号*4即可计算某个中断类型的中断向量在整个中断向量表中的位置。如类型号为20H,则中断向量的存放位置为20H*4=80H,(设中断服务子程序的入口地址为4030:2010,则在0000:0080H~0000:0083H中就应顺序放入10H、20H、30H、40H。当系统响应20H 号中断时,会自动查找中断向量,找出对应的中断向量装入CS、IP,即转入该中断服务子程序。

三、中断响应过程与时序

8086/8088对软件中断和硬件中断响应的过程是不同的,这是由于软件中断和硬件中断所产生的原因不同,下面主要讨论硬件中断的情况。

1.硬件中断的响应过程

硬件中断指的是由NMI引脚进入的非屏蔽中断或由INTR引脚进入的可屏蔽中断。下面以可屏蔽中断为例。

CPU在INTR引脚上接到一个中断请求信号,如果此时IF=1,CPU 就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU在引脚连续发两个负脉冲,外设在接到第二个负脉冲以后,在数据线上发送中断类型码,接到这个中断类型码后,CPU做如下动作:

①将中断类型码放入暂存器保存;

②将标志寄存器内容压入堆栈,以保护中断时的状态;

③将IF和TF标志清0,目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF;

④保护断点,断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。因此保护断点的动作就是将当前的IP和CS的内容入栈,保护断点是为了以后正确地返回主程序;

⑤根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。

对NMI进入的中断请求,由于其类型码固定为2,因此CPU不用从外设读取类型码,也不需计算中断向量表的地址,只要将中断向量表中0000:0008H~0000:000BH单元内容分别装入IP和CS即可。

图5-15给出了8086/8088中断响应过程的流程图,对这个图我们做几点说明:

①8086/8088除软件中断外,内部“非屏蔽中断”、“可屏蔽中断”均设立有优先级,其中内中(除

单步外)――即0、1、3、4号中断的优先级高于非屏蔽中断,非屏蔽中断高于可屏蔽中断,单步中断优先级最低;

②只有在可屏蔽中断的情况下才判IF=1?,才取中断类型码,其余的没有这个动作。

③关于单步中断,它是每执行一条指令中断一次,显示出当时各寄存器的内容,供用户参考,

当进入单步中断响应时,CPU自动清除了TF,在中断返回后,由于恢复了响应时的标志寄存器的值,因此TF=1,执行完一条指令后又进入单步中断,直到程序将TF改为0为止。

④关于中断的嵌套,NMI总是可以响应的,若在中断处理子程序中设立了开中断指令,INTR的

请求也能响应。

⑤弹出IP、CS、标志,返回断点的动作由IRET指令完成。

⑥有些情况下,即使条件满足,CPU也不能马上响应中断,必须执行完下一条指令(而不是当

前指令)才行。

正好执行LOCK指令;

执行往SS寄存器赋值的传送指令,因为一般要求连续用两条指令对SS和SP寄存

器赋值,以保证堆栈指针的正确性。

⑦当遇到等待指令或串操作指令时,允许在指令执行的过程中进入中断。这时需注意在中断处

理子程序中保护现场,以保证中断返回后能继续正确地执行这些指令。

图5-15 中断响应流程图

2.硬件中断的时序

图5-16 8086/8088中断响应总线周期

①要求INTR信号是一个高电平信号,并且维持2个T,因为CPU是在一条指令的最后一个T采样INTR,进入中断响应后,它在第一个总线周期的T1仍需采样INTR。

②当8086工作在最小模式时,从发出中断响应信号,而在最大模式进,则是通过、、的组合完成。

③第一个总线周期用来通知外设,CPU准备响应中断,第二个总线周期,接收外设发回的中断类型码,该类型码必须通过16位数据总线的低8位传送。

④在中断响应总线周期,为低,数据/地址线浮空,和地址/状态线均浮空,中间的三个空闲周期也可为两个或没有(8088)。

3.软件中断

即通过中断指令来使CPU执行中断处理子程序的方法,特点如下:①中断类型码由指令提供,不需执行中断响应总线周期,也不受IF标志的影响。

②正在执行软件中断时,若来NMI,则立即响应,若来可屏蔽中断,只要条件允许(如IF=1,当前指令执行完)也可响应。

③软件中断,由于其处理程序是定位装配的(中断向量表),又可方便地用INT n指令调用,因此在使用中和一般的子程序没有两样,并且原则上是0~255种类型均可使用。

5.3 中断控制器Intel8259A

5.3 中断控制器Intel8259A

Intel 8259A是8088/8086微机系统的中断控制器件,它具有对外设中断源进行管理,并向CPU转达中断请求的能力。

一、8259A的性能概述

1.具有8级中断优先控制,通过级连可以扩展至64级优先权控制

2.每一级中断都可以通过初始设置为允许或屏蔽状态

3.8259A的工作方式,可以通过变成设置,因此,使用非常灵活

4.8259A采用NMOS制造工艺,只需要单一的+5V电源

二、8259A的内部结构和工作原理

下面,我们来讨论8259A的内部结构,并进而分析它的工作原

理,8259A的内部结构如图5-18所示,它主要由下列主要部分组成:

图5-18 8259A的内部结构

1.数据总线缓冲器:它是8259A与系统数据总线的接口,是8位双向三态缓冲器。CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过该缓冲器传送的。

2.读/写控制逻辑:CPU通过它实现对8259A的读/写操作。

3.级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。

4.控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。

5.中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当相应的中

断请求输入引脚有中断请求时,该寄存器的相应位置1。

6.中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行

屏蔽控制。当其中某位置”0”时,则相应的中断请求可以向CPU提出;否则,相

应的中断请求被屏蔽,即不允许向CPU提出中断请求。该寄存器的内容为8259A

的操作命令字OCW1,可以由程序设置或改变。

7.中断服务寄存器ISR:8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。

8.优先级比较器:用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。

三、8259A的外部引脚

8259A是具有28个引脚的集成电路芯片,这28个引脚分别是:

1.D7-D0:双向数据输入/输出引脚,用以与CPU进行信息交换。

2.IR7-IR0:8级中断请求信号输入引脚,规定的优先级为IR0>IR1>…>IR7,

当有多片8259A形成级连时,从片的INT与主片的IR i相连。

3.INT:中断请求信号输出引脚,高电平有效,用以向CPU发中断请求,应接

在CPU的INTR输入端。

4.:中断响应应答信号输入引脚,低电平有效,在CPU发出第二个

时,8259A将其中最高级别的中断请求的中断类型码送出;应接在CPU 的中断应答信号输出端。

5.:读控制信号输入引脚,低电平有效,实现对8259A内部有关寄存器内

容的读操作。

6.:写控制信号输入引脚,低电平有效,实现对8259A内部有关寄存器的

写操作。

7. :片选信号输入引脚,低电平有效,一般由系统地址总线的高位,经译

码后形成,决定了8259A的端口地址范围。

8. A0:8259A两组内部寄存器的选择信号输入引脚,决定8259A的端口地址。

A0=0 ICW1、OCW2、OCW3;

A0=1 ICW2~ICW4、OCW1

9. CAS2-CAS0:级连信号引脚,当8259A为主片时,为输出;否则为输入,与

信号配合,实现芯片的级连,这三个引脚信号的不同组合000~

111,刚好对应于8个从片。

10. :为级连管理信号输入引脚,在非缓冲方式下,若8259A在系

统中作从片使用,则;否则;在缓冲方式下,用作8259A

外部数据总线缓冲器的启动信号。

11. +5V、GND:电源和接地引脚

四、8259A的工作过程

1.当有一条或若干条中断请求输入(IR7-IR0)有效时,则使中断请求寄存器的

IRR的相应位置位。

2.若CPU处于开中断状态,则在当前指令执行完之后,响应中断,并且从

发应答信号(两个连续的负脉冲)。

3.第一个负脉冲到达时,IRR的锁存功能失效,对于IR7-IR0上发来的中 断请求信号不予理睬。

4.使正服务寄存器ISR的相应位置1,以便为中断优先级比较器的工作做好准

备。

5.使寄存器的相应位复位,即清除中断请求。

6.第二个负脉冲到达时,将中断类型寄存器中的内容ICW2,送到数据总线

的D7-D0上,CPU以此作为相应中断的类型码。

7.若ICW4中的中断结束位为1,那么,第二个负脉冲结束时,8259A将ISR

寄存器的相应位清零。否则,直至中断服务程序执行完毕,才能通过输出操

作命令字EOI,使该位复位。

五、8259A的工作方式

8259A有多种工作方式,这些工作方式,可以通过编程设置或改变。下面,

我们进行分类介绍。

1.优先权的管理方式

(1).全嵌套方式

这是8259A默认的优先权设置方式,在全嵌套方式下,8259A所管理的8

级中断优先权是固定不变的,其中IR0的中断优先级最高,IR7的中断优先级最

低。

CPU响应中断后,请求中断的中断源中,优先级最高的中断源,在中断服

务寄存器ISR中的相应位置位,而且把它的中断矢量送至系统数据总线,在此

中断源的中断服务完成之前,与它同级或优先级低的中断源的中断请求被屏蔽,

只有优先级比它高的中断源的中断请求才是运算的,从而出现中断嵌套。

(2).特殊全嵌套方式

特殊全嵌套方式与全嵌套方式基本相同,所不同的是,当CPU处理某一级

中断时,如果有同级中断请求,那么CPU也会作出响应,从而形成了对同一级

中断的特殊嵌套。

特殊全嵌套方式通常应用在有8259A级连的系统中,在这种情况下,对主

8259A编程时,通常使它工作在特殊全嵌套方式下。这样,一方面,CPU 对于优

先级别较高的主片的中断输入是允许的,另一方面,CPU对于来自同一从片的

优先级别较高(但对于主片来讲,优先级别是相同的)的中断也是允许、能够

响应的。

(3).优先级自动循环方式

在实际应用中,中断源优先级的情况是比较复杂的,要求8级中断的优先

级在系统工作过程中,可以动态改变。即一个中断源的中断请求被响应之后,

其优先级自动降为最低。系统启动时,8级中断优先级默认为IR0—

IR7,这时,

刚好IR4发出了中断请求,CPU响应之后,若8259A工作在优先级自动循环方式

下,则中断优先级自动变为IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4。

(4).优先级特殊循环方式

优先级特殊循环方式与自动循环方式相比,只有一点不同,即初始化的优

先级是由程序控制的,而不是默认的IR0—IR7。

2.中断源的屏蔽方式

CPU对于8259A提出的中断请求,都可以加以屏蔽控制,屏蔽控制有下列

几种方式:

(1).普通屏蔽方式:

8259A的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。若相

应位为“1”,则中断请求不能送CPU。屏蔽是通过对屏蔽寄存器IMR的编程(操

作命令字OCW1),来加以设置和改变的。

(2).特殊屏蔽方式:

有些场合下,希望一个中断服务程序的运行过程中,能动态地改变系统中

的中断优先级结构,即在中断处理的一部分,禁止低级中断,而在中断处理的

另一部分,又能够允许低级中断,于是引入了对中断的特殊屏蔽方式。

设置了特殊屏蔽方式后,用OCW1对屏蔽寄存器中的某一位复位时,同时也

会是中断服务寄存器ISR中的相应位复位,这样就不只屏蔽了正在处理的等级

中断,而且真正开放了其它优先级别叫低的中断请求。

特殊屏蔽是在中断处理程序中使用的,用了这种方式之后,尽管系统正在处理高级中断,但对外界来讲,只有同级中断被屏蔽,而允许其它任何级别的中断请求。

3.结束中断处理的方式

按照对中断结束(复位中断响应寄存器ISR中相应位)的不同处理,8259A

有两种工作方式,即自动结束方式(AEI)和非自动结束方式。而非自动结束方式又可进一步分为一般的中断结束方式和特殊的中断结束方式。

(1).中断自动结束方式

这种方式仅适用于只有单片8259A的场合,在这种方式下,系统一旦响应

中断,那么CPU在发第二个INTA脉冲时,就会使中断响应寄存器ISR中相应位

第5章中断系统课后习题答案

第5章中断系统 1)作业题 1.8051微控制器中,有几个中断源?几个中断优先级?中断优先级是如何控制的?在出 现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)? 各个中断源的入口地址是多少? 答:8051微控制器中有五个中断源,两个中断优先级。通过IP进行优先级控制。IP为中断优先级寄存器,物理地址为B8H,其中的后五位PS PT1 PX1 PT0 PX0分别控制串行口、定时器/计数器1、外部中断1、定时器/计数器0、外部中断0的优先级。在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串行口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。 2.8051微控制器中,各中断标志是如何产生的,又如何清0的? 答:每个中断源请求中断时会在SFR的某些寄存器中产生响应的标志位,表示该中断源请求了中断。INT0、INT1、T0和T1的中断标志存放在TCON(定时器/计数器控制寄存器)中,占4位;串行口的中断标志存放在SCON(串行口控制寄存器)中,占2位。 TF0:T0溢出标志,溢出时由硬件置1,并且请求中断,CPU响应后,由硬件自动将TF0清0;不用中断方式时,要用软件清0。 TF1:T1溢出标志,溢出时由硬件置1,并且请求中断,CPU响应后,由硬件自动将TF1清0;不用中断方式时,要用软件清0。 IE0:INT0中断标志,发生INT0中断时,硬件置IE0为1,并向CPU请求中断。 IE1:INT1中断标志,发生INT1中断时,硬件置IE1为1,并向CPU请求中断。SCON:串行口控制寄存器。 TI:串行口发送中断标志,发送完一帧数据时由硬件置位,并请求中断。 RI:串行口接受中断标志,接收到一帧数据时,由硬件置位,并且请求中断。 TI、RI标志,必须用软件清0。 3.简述8051微控制器中中断响应的过程。 答:单片机响应中断的条件:中断源有请求(响应的中断标志位置1),CPU允许所有中断(CPU中断允许位EA=1),中断允许寄存器IE中,相应中断源允许位置1;没有同级或者高级中断正在服务,现行指令已经执行完毕,若执行指令为RETI或者读/写IE或者IP指令时则该指令的下一条指令也执行完毕。 中断响应的过程: 1)CPU在每个机器周期的S5P2检测中断源。在下一个机器周期的S6按照优先次序查询各个中断标志。若查询到有中断标志为1时,按照优先级别进行处理,即响应中断;2)置相应的“优先级状态”触发器为1,即指出CPU当前正在处理的中断优先级,以阻断同级或者低级中断请求; 3)自动保护断点,即将现行PC内容(即断点地址)压入堆栈,并且根据中断源把相应的

单片机第五章习题答案

第五章习题答案 5-1 什么是中断系统?中断系统的功能是什么? 实现中断功能的硬件和软件称为中断系统. 中断系统功能包括进行中断优先排队、实现中断嵌套、自动响应中断和实现中断返回。 5-2 什么是中断嵌套? CPU在响应某一个中断源中断请求而进行中断处理时,若有中断优先级更高的中断源发出中断请求,CPU会暂停正在执行的中断服务程序,转向执行中断优先级更高的中断源的中断服务程序,等处理完后,再返回继续执行被暂停的中断服务程序,这个过程称为中断嵌套。 5-3 什么是中断源?MCS-51有哪些中断源?各有什么特点? ①实现中断功能的硬件和软件称为中断系统,产生中断请求的请求源称为中断源. ②5个中断源中共有两个外部中断、两个定时中断和一个串行中断。 (1)外部中断源 外部中断是由外部原因(如打印机、键盘、控制开关、外部故障)引起的,可以通过两 个固定引脚来输入到单片机内的信号,即外部中断0(INT0)和外部中断1(INT1)。 (2)定时中断类 定时中断是由内部定时(或计数)溢出或外部定时(或计数)溢出引起的,即T0和T1 中断。 (3)串行口中断类 串行口中断是为接收或发送一帧串行数据,硬件自动使RI和TI置1,并申请中断 5-4 MCS-51单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推迟对外部中断请求的响应? (1)MCS-51单片机的最短响应时间为3个机器周期,最长响应时间8个机器周期。 (2)有下列任何一种情况存在,则中断响应会受到阻断。 ①CPU正在执行一个同级或高一级的中断服务程序; ②当前的机器周期不是正在执行的指令的最后一个周期,即正在执行的指令还未完成前,任何中断请求都得不到响应; ③正在执行的指令是返回指令或者对专业寄存器IE、IP进行读/写的指令,此时。在 执行RETI或者读写IE或IP之后,不会马上响应中断请求,至少在执行一条其他之后才会 响应。若存在上述任何一种情况,中断查询结果就被取消,否则,在紧接着的下一个机器周期,就会响应中断。 5-5 MCS-51有哪几种扩展外部中断源的方法?各有什么特点? 扩展外部中断源的方法有定时扩展法和中断加查询扩展法两种。定时扩展法用于外部 中断源个数不太多并且定时器有空余的场合。中断加查询扩展法用于外部中断源个数较多的 场合,但因查询时间较长,在实时控制中要注意能否满足实时控制要求。 5-6 MCS-51单片机各中断源发出的中断请求信号,标记那些寄存器中? 外部中断0(INT0)和外部中断1(INT1)中断请求信号标记在TCON中IE1和IE0。 T0和T1中断中断请求信号标记在TCON中TF1和TF0 串行口中断类中断请求信号标记在SCON中TI和RI 5-7 编写出外部中断1为跳沿触发的中断初始化程序。 SETB EA SETB EX1 SETB IT1

(完整版)第五章中断系统及定时计数器

第五章中断系统及定时/计数器参考答案 1、80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU 响应各中断时,其中断地址入口是多少? 答:80C51有5个中断源,具体的名称、产生方式、复位方式和中断入口地址如下: (1)INT0(P302), 外部中断0请求信号输入引脚。当CPU检测到P3.2引脚出现有效的中断信号时,中断标志IE0(TCON.1)置一,向CPU 申请中断,中断入口地址为0003H。可由IT0(TCON.0)选择其为低 电平有效还是下降沿有效。当IT0=0时,中断标志在CPU响应中断 时不能自动清零,只能撤除INT0引脚的低电平,IE0才清零;当ITO=1 时,由硬件自动清除IE0标志。 (2)INT1(P3.3), 外部中断1请求信号输入引脚。当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置一,向CPU 申请中断,入口地址为000BH。可由IT1(TCON.2)选择其为低电平 有效还是下降沿有效,中断标志复位清零与INTO类同。 (3)TF0(TCON.5), 片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断,入口地址为0013H。 CPU响应中断时,TF0自动清零。 (4)TF1(TCON.7), 片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断,入口地址为001 BH。CPU响应中断时,TF1自动清零。 (5)RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI, 向 CPU申请中断,入口地址为0023H。RI和TI必须由软件清除。 2、某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU 处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H,试编写主程序及中断服务程序(转至相应的入口即可)。 答:ORG 0000H LJMP BOOT ORG 0003H LJMP INT3 ORG 000BH LJMP INT2 ORG 0013H LJMP INT1 ORG 001BH RETI BOOT:ACALL INT0_0 ;中断启动程序 ACALL T0_0 ACALL INT1_0 SETB EA SJMP $

单片机原理与应用课后习题答案第5章作业

第五章中断系统作业 1.外部中断1所对应的中断入口地址为()H。 2.对中断进行查询时,查询的中断标志位共有、__、、_和_、 __六个中断标志位。 3.在MCS-51中,需要外加电路实现中断撤除的是:() (A)定时中断(B)脉冲方式的外部中断 (C)外部串行中断(D)电平方式的外部中断 4.下列说法正确的是:() (A)同一级别的中断请求按时间的先后顺序顺序响应。() (B)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。() (C)低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求 能中断低优先级中断请求。() (D)同级中断不能嵌套。() 5.在一般情况下8051单片机允许同级中断嵌套。() 6.各中断源对应的中断服务程序的入口地址是否能任意设定?() 7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。() 8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的()中。 (A)TMOD(B)TCON/SCON(C)IE(D)IP 9.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器 IE的内容应是() (A)98H(B)84H(C)42(D)22H 10.编写出外部中断1为负跳沿触发的中断初始化程序。 11.什么是中断?其主要功能是什么? 12.什么是中断源?MCS-51有哪些中断源?各有什么特点? 13.什么是中断嵌套? 14.中断服务子程序与普通子程序有哪些相同和不同之处? 15.中断请求撤除的有哪三种方式? 16.特殊功能寄存器TCON有哪三大作用? 17.把教材的P82页的图4.24改为中断实现,用负跳变方式,中断0(INT0)显 18.示“L2”,中断1(INT1)显示“H3”。(可参考第四章的电子教案中的例子) 19.第5章课后作业第9题。

第五章中断系统1

第五章 中断系统 5. 1 输入/输出数据的传输控制方式 一、输入/输出的一般概念 1.引言 输入/输出是微机系统与外部设备进行信息交换的过程。输入/输出设备称为外部设备,与存储器相比,外部设备有其本身的特点,存储器较为标准,而外部设备则比较复杂,性能的离散性比较大,不同的外部设备,其结构方式不同,有机械式、电动式、电子式等;输入/输出的信号类型也不相同,有数字信号,也有模拟信号;有电信号,也有非电信号;输入/输出信息的速率也相差很大。因此,CPU与外部设备之间的信息交换技术比较复杂。 CPU与外设之间的信息交换,是通过它们之间接口电路中的I/O端口来进行的,由于同一个外部设备与CPU之间所要传送的信息类型不同,方向不同,作用也不一样(例如数据信息、状态信息、控制信息、输入/输出等),所以接口电路中可以设置多个端口来分别处理这些不同的信息。 2.输入/输出端口的寻址方式 微机系统采用总线结构形式,即通过一组总线来连接组成系统的各个功能部件(包括CPU、内存、I/O端口),CPU、内存、I/O端口之间的信息交换都是通过总线来进行的,如何区分不同的内存单元和I/O 端口,是输入/输出寻址方式所要讨论解决的问题。 根据微机系统的不同,输入/输出的寻址方式通常有两种形式:(1).存储器对应的输入、输出寻址方式 这种方式又称为存储器统一编址寻址方式或存储器映象寻址方式。方法:把外设的一个端口与存储器的一个单元作同等对待,每一个I/O 端口都有一个确定的端口地址,CPU与I/O端口之间的信息交换,与存储单元的读写过程一样,内存单元与I/O端口的不同,只在于它们具有不同的的地址。 优点: ①CPU对I/O端口的读/写操作可以使用全部存储器的读/写操作指 令,也可以用对存储器的不同寻址方式来对I/O端口中的信息,直接进行算术、逻辑运算及循环、移位等操作。

相关文档
相关文档 最新文档