8259a n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
中断系统与可编程中断控制器 8259A PowerPoint Presentation
Download Presentation
中断系统与可编程中断控制器 8259A

Loading in 2 Seconds...

play fullscreen
1 / 106

中断系统与可编程中断控制器 8259A - PowerPoint PPT Presentation


  • 181 Views
  • Uploaded on

中断系统与可编程中断控制器 8259A. 1. 2. 3. 4. Contents. 中断概念及处理过程. 8086 的中断系统. 可编程中断控制器 8259A 及其应用. 总结. 主要学习内容. §8.1 概念及处理过程 1 、中断概念 2 、中断源 3 、中断处理过程 ( 1 )中断请求 ( 2 )中断判优 ( 3 )中断响应 ( 4 )中断服务 ①②③④⑤ ( 5 )中断返回. §8.3 中断控制器 Intel8259A 1 、性能 2 、结构和工作原理 3 、外部引脚和工作过程 4 、工作方式

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '中断系统与可编程中断控制器 8259A' - kacy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
contents

1

2

3

4

Contents

中断概念及处理过程

8086的中断系统

可编程中断控制器8259A及其应用

总结

slide3
主要学习内容

§8.1概念及处理过程

1、中断概念

2、中断源

3、中断处理过程

(1)中断请求

(2)中断判优

(3)中断响应

(4)中断服务

①②③④⑤

(5)中断返回

§8.3 中断控制器Intel8259A

1、性能

2、结构和工作原理

3、外部引脚和工作过程

4、工作方式

(1)中断优先权管理方式①②③④

(2)中断源屏蔽方式①②

(3)结束中断方式①②③④

(4)与系统总线的连接方式①②

(5)引入中断请求的方式①②③

5、8259A的编程

(1)端口地址

(2)初始化编程ICW1-ICW4

(3)操作编程OCW1-OCW3

6、级联

§8.2 8086中断系统

1、中断源与中断类型号

2、中断向量表

3、中断响应过程

4、中断时序

slide4

主程序

中断申请

中断服务程序

返回

8.1 中断概念及处理过程

一、中断系统中的名词概念

  • 一、中断的概念

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

slide5
8.1 中断概念及处理过程

一、中断系统中的名词概念

  • 中断源

引起中断的原因,或产生中断请求的来源

8086用8位二进制码表示一个中断类型,共有256个中断,可分为两大类:

可屏蔽中断 INTR

外部中断源 非可屏蔽中断 NMI

中断源 除法错中断

单步中断

内部中断源 断点中断

运算溢出中断

软中断

slide6
8.1 中断概念及处理过程

一、中断系统中的名词概念

●中断类型号

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

●中断向量表

存储器从00000H开始的最低地址区的1024个单元,存放256个中断服务程序的入口地址。

已知中断类型号,可以直接找到该中断服务子程序的入口地址

slide7
8.1 中断概念及处理过程

一、中断系统中的名词概念

●中断断点

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

slide8
8.1 中断概念及处理过程

一、中断系统中的名词概念

●中断服务程序

中断服务程序:处理中断事件的程序段。如除法错中断服务程序、输入输出中断服务程序等。

中断服务程序与一般的子程序对比:子程序的调用是由程序设定,因此是确定的而中断服务程序由某个事件引发,它的发生往往是随机的、不确定的。

slide9
8.1 中断概念及处理过程

一、中断系统中的名词概念

●中断系统

为实现计算机的中断功能而配置的相关硬件、软件的集合称为中断系统。

slide10
8.1 中断概念及处理过程

一、中断系统的硬件结构

●中断源及分类

通常称引起中断的事件为中断源。

  • 硬件中断(外部中断):即通过外部的硬件产生的中断
  • 不可屏蔽中断:每个系统中仅允许有一个,都是用来处理紧急情况的,由NMI引脚引入,不受IF标志的影响,一旦发生,系统会立即响应;
  • 可屏蔽中断:由INTR引脚引入,IF=1时可屏蔽中断才能进入,反之则不允许进入。可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。
  • (2) 软件中断(内部中断):即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为0,或用INT n指令产生

内部中断源

外部中断源

内部中断源

slide11
8.1 中断概念及处理过程

二、中断工作方式的优点

●并行处理能力

●实时处理能力

●故障处理能力

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

slide12
8.1 中断概念及处理过程

三、中断管理

  • 中断系统需要实现对中断过程的控制,解决中断源识别,中断优先权和中断嵌套等一系列问题
  • 实现中断与返回;
  • 识别中断源
  •  能进行中断优先权排队;
  •  实现中断嵌套(响应A的过程中可以被比A优先级更高的中断再次中断);
slide14
8.1 中断概念及处理过程
  • Step 1: 中断源请求中断
  • 外部中断源:由外部硬件产生可屏蔽或不可屏蔽中断的请求信号。
  • 内部中断源:在程序运行过程中发生了指令异常或其他情况。

某些中断源可以被禁止(CLI)、被屏蔽(MASK)、可以嵌套

NMI

  • STI
  • CLI

中断检测

不可屏蔽中断

INTR

可屏蔽中断

中断逻辑

IF

slide15
8.1 中断概念及处理过程
  • Step 2: CPU进行中断响应

(一)判断响应中断的条件

A. 内部中断

当前指令执行结束

B. 非可屏蔽中断响应条件 (NMI)

没有总线请求

当前指令执行结束

C.可屏蔽中断响应条件 (INTR)

CPU处于中断允许状态(即开中断), IF=1

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

当前指令执行结束

slide16

中断响应周期

中断服务程序

主程序

识别中断源,获得中断类型号

保护现场

开中断

CS

进栈

IP

FLAGS

中断处理

IF

标志 ,关中断

清除

TF

关中断

读中断向量

转入中断

服务程序

恢复现场

中断返回

断点

8.1 中断概念及处理过程
  • Step 2: CPU进行中断响应
  • (二)CPU的中断响应周期

向中断源发出中断响应信号

slide17
8.1 中断概念及处理过程
  • Step3. 中断服务程序

由一系列的PUSH指令完成,保护那些与主程序中有冲突的寄存器。

由STI实现,为了能进行中断的嵌套。

提供具体的数据传输和处理。

CLI IF=0。

与保护现场对应,注意恢复次序。

使用中断返回指令IRET,不能用子程序返回指令RET。恢复断点地址外和标志寄存器的值 。

slide18
8.1 中断概念及处理过程

入口地址:PUSH AX;

PUSH BX;

PUSH CX;

PUSH DX;

PUSH SI;

PUSH DI;

PUSH SP;

PUSH BP;

STI;

CLI;

POP BP;

POP SP;

POP DI;

POP DX;

POP SI;

POP CX;

POP BX;

POP AX;

STI ;

IRET

保护现场,将有可能用到的寄存器入栈

开中断

关中断

恢复现场

开中断

slide19
8.1 中断概念及处理过程
  • Step 4. 中断返回
    • 无论内部中断或者外部中断,都是由中断服务程序的末尾设置 IRET指令实现的。
    • IRET指令的操作是:恢复断点处的地址CS IP和PSW,使被中断的程序继续执行
contents1

1

2

3

4

Contents

中断概念及处理过程

8086的中断系统

可编程中断控制器8259A及其应用

总结

8 2 8086
8.2 8086 的中断系统

一、8086微处理器的中断类型

8086用8位二进制码表示一个中断类型,共有256个中断,可分为两大类:

可屏蔽中断

外部中断 非可屏蔽中断

中断 除法错中断

单步中断

内部中断 断点中断

溢出中断

软中断

8 2 80861

内部中断 (除法错、INTO、INT n)

NMI

INTR

单步中断

8.2 8086 的中断系统

一、8086微处理器的中断类型

8086中断结构

中断优先级

8086 系统中,中断优先级的次序为:

优先级各有高低

8 2 80862
8.2 8086 的中断系统

一、8086微处理器的中断类型

1. 外部可屏蔽中断

可屏蔽中断由INTR引入,受标志寄存器中的中断允许标志位IF的控制。IF=0时,微处理器不响应INTR的中断请求,IF=1时,微处理器响应INTR的中断请求。

8086的可屏蔽中断源由可编程中断控制器8259A统一管理,INTR中断的类型码可以是8~255 。

8 2 80863
8.2 8086 的中断系统

一、8086微处理器的中断类型

2. 外部不可屏蔽中断

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

8 2 80864
8.2 8086 的中断系统

一、8086微处理器的中断类型

3. 内部中断

除法操作时,除数为0或商溢出

陷阱标志TF=1,单步操作,INT 1

设置断点,INT 3

若上一步指令使OF=1,则INTO引起4号中断

用户使用INT指令产生一个中断,如INT 21 H

8 2 80865
8.2 8086 的中断系统

二、8086微处理器的中断向量表

中断向量:也称为中断指针,就是中断服务程序的入口地址

中断向量表:它是中断类型号与它对应的中断服务程序入口地址之间的换算表。8086的中断向量表占用存储器从00000H开始的最低地址区的1024个单元,每个中断向量占用4B,故可存256个中断向量。

8 2 80866
8.2 8086 的中断系统

中断向量表结构

8 2 80867
8.2 8086 的中断系统

三、8086微处理器的中断响应及返回

GND

Vcc

1

40

AD14

AD15

2

39

屏蔽的中断 INTR—电平触发信号

AD13

A16/S3

3

38

AD12

A17/S4

4

37

AD11

A18/S5

5

36

AD10

A19/S6

6

35

BHE/S7

AD9

7

34

INTEL

AD8

MN/MX

8

33

AD7

9

RD

8086

32

AD6

10

HOLD

31

CPU

AD5

HLDA

11

30

WR

AD4

12

29

AD3

13

M /IO

28

注意:INTR线上的请求信号的出现是异步的,但在CPU内部要由CLK的上升沿同步,在INTR上的中断请求信号必须保持直到当前指令结束。

AD2

DT/R

14

27

AD1

15

DEN

26

AD0

16

ALE

25

NMI

17

INTA

24

INTR

18

TEST

23

CLK

19

READY

22

GND

RESET

20

21

8 2 80868
8.2 8086 的中断系统

8086响应中断,到转入中断处理,要经过两个连续中断响应周期。

第二个中断响应周期

第一个中断响应周期

T1 T2 T3 T4 T1 T2 T3 T4

INTR

要持续至少两个以上中断响应周期

CLK

ALE

INTA

INTR

AD7~AD0

向量类型码

第一个INTA信号:将在第一个响应周期的T2状态发出;同时将中断请求触发器复位。

第二个INTA信号:在第二个中断响应周期再次发出,要求8259A在第二个响应周期的T3结束之前输入中断向量类型码到CPU。

8 2 80869
8.2 8086 的中断系统

(2) 非屏蔽中断 NMI

不受FR中IF的影响,CPU在当前指令执行完后响应,8086要求NMI上的请求信号的有效宽度要大于两个时钟周期。

非屏蔽中断常用于处理系统的电源故障。

非屏蔽中断的优先权高于可屏蔽中断,CPU采样到NMI就自动给出中断向量号,而不需要经过像可屏蔽中断那样的中断响应周期。

8 2 808610
8.2 8086 的中断系统

(3) 内部中断

内部中断响应操作有以下共同点:

▲中断类型号要么是指令码给定的,要么是处理器硬件决定的,都不需要从外部逻辑输入。

▲没有信号的响应周期。

▲不受IF位的控制,但单步中断受TF位控制。

▲除单步中断之外,其它内部中断都比外部中断优先响应。

除上述特点外,内部中断响应也要执行可屏蔽中断响应的③、④和⑤项操作。

8 2 808611
8.2 8086 的中断系统

四、中断概念的再讨论

1、中断与调子程序之间的关系

(1)中断过程实际上是CPU从执行当前主程序转到执行为外设服务的子程序,因此从这个角度来看,中断过程是一个调用子程序的过程。

(2)中断过程与子程序调用还是有很大差别的,首先调用子程序的过程是一个无条件过程,但中断过程的中断服务程序的调用一般是有条件的。其次,子程序调用在整个程序执行中的位置是固定的。但对于硬件中断过程,只要条件满足,在整个程序执行的任意一时间点都有可能发生从主程序向中断服务子程序的转移事件,也就是说硬件中断产生的调用过程是随机的,不可预测的。

8 2 808612
8.2 8086 的中断系统

四、中断概念的再讨论--中断与程序调用的区别

子程序的执行是由程序员事先安排好的(由一条调用子程序指令转入),而中断服务程序的执行则是由随机的中断事件引起的;

子程序的执行受到主程序或上层子程序的控制,而中断服务程序一般与被中断的现行程序毫无关系;

不存在同时调用多个子程序的情况,而有可能发生多个外设同时请求CPU为自己服务的情况。

8 2 808613
8.2 8086 的中断系统

四、中断概念的再讨论

2、外部中断和 INT n 之间的关系

结合中断指令INT n,我们可以这样理解外部中断:当外部中断源发中断给CPU时,如果CPU满足一定的条件,处于开中断状态,CPU就可以响应中断,这时外设在CPU正在执行指令与其下一个指令之间,等效“插入”了一个INT n指令,这里的n就是外设提供的中断类型号。注意这里用“等效”两字表示实际过程中是不存在插入INT n指令的操作,但CPU确实完成了类似INT n指令的功能,实现了主程序向中断程序的转移。

slide36

偶地址 A0=0,EG,20H

  • 8259A两个端口地址

奇地址 A0=1,EG,21H

写操作:ICW1,OCW2,OCW3,

共用偶地址的寄存器

读操作:IRR,ISR

写操作:ICW2,ICW3,ICW4,OCW1

共用奇地址的寄存器

读操作:IMR

slide38
回顾上节内容
  • 名词概念:
    • 中断源,中断类型,中断类型号,中断断点,中断服务程序,中断系统,中断优先权,中断嵌套
  • 中断过程
    • 1. 中断请求
    • 2. 中断响应
      • ①判断条件 ②获取中断类型号 ③CS,IP,FLAG入栈 ④清除TF,IF ⑤获得中断向量,转入中断服务
    • 3. 中断服务
      • ①保护现场 ②开中断 ③中断处理 ④关中断 ⑤ 恢复现场
slide39
回顾上节课的内容
  • 中断类型号,中断向量和中断向量表的关系
  • EG. 中断类型号为1FH的中断向量为

2345H:1234H,画图说明它在中断向量表中的存放位置。

1FH*4 = 7CH

slide40
主要学习内容

§8.1概念及处理过程

1、中断概念

2、中断源

3、中断处理过程

(1)中断请求

(2)中断判优

(3)中断响应

(4)中断服务

①②③④⑤

(5)中断返回

§8.3 中断控制器Intel8259A

1、性能

2、结构和工作原理

3、外部引脚和工作过程

4、工作方式

(1)中断优先权管理方式①②③④

(2)中断源屏蔽方式①②

(3)结束中断方式①②③④

(4)与系统总线的连接方式①②

(5)引入中断请求的方式①②③

5、8259A的编程

(1)端口地址

(2)初始化编程ICW1-ICW4

(3)操作编程OCW1-OCW3

6、级联

§8.2 8086中断系统

1、中断源与中断类型号

2、中断向量表

3、中断响应过程

4、中断时序

slide41
主要学习重点
  • 8259A的内、外部结构
  • 8259A的工作过程
  • 8259A的工作方式
  • 8259A的初始化编程
  • 8259A的工作状态控制

编程实现

8 3 8259a
8.3 可编程中断控制器8259A

8086 CPU可屏蔽中断请求引脚只有一条,而外部硬件中断源有多个,为了使多个外部中断源能共享这一条中断请求引脚,必须解决如下几个问题:

(1)解决多个外部中断请求信号与INTR引脚的连接问题。

(2)CPU如何识别是哪一个中断源发送的中断请求问题。

(3) 当多个中断源同时申请中断时,确定响应顺序问题。

(4) 中断屏蔽与中断嵌套的管理问题

8 3 8259a1
8.3 可编程中断控制器8259A

1

2

3

4

8 3 8259a2
8.3 可编程中断控制器8259A

1

2

3

4

8 3 8259a3
8.3 可编程中断控制器8259A

二、8259A的内部结构及功能模块

8259A的引脚图

8259A的内部结构

8 3 8259a4
8.3 可编程中断控制器8259A

二、8259A的内部结构及功能模块

●中断请求寄存器(IRR)

IRR是一个8位的锁存器,用来锁存外部设备送来的IR7 ~ IR0中断请求信号。当外部中断请求线IRi有中断请求时,IRR中与之对应的第i位被置1。这个寄存器的内容可以被微处理器读出。

一个8259A可以管理8个中断源

8 3 8259a5
8.3 可编程中断控制器8259A

二、8259A的内部结构及功能模块

●中断屏蔽寄存器(IMR)

IMR是一个8位的寄存器,用于设置中断请求的屏蔽信号。此寄存器的第i位被置1时,与之对应的外部中断请求线IRi被屏蔽,不能向微处理器发出INT信号。可通过软件设置IMR内容,确定每一个中断请求的屏蔽状态。设置IMR也可以起到改变中断请求的优先级的效果。

8 3 8259a6
8.3 可编程中断控制器8259A

●优先权处理器

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

8 3 8259a7
8.3 可编程中断控制器8259A

●中断服务状态寄存器(ISR)

ISR是一个8位的寄存器,用于记录当前正在被服务的所有中断级,包括尚未服务完而中途被更高优先级打断的中断级。若微处理器响应了IRi中断请求,则ISR中与之对应的第i位置1。该中断处理结束前,要使用指令清除这一位。此寄存器的内容可以被微处理器读出。

8 3 8259a8
8.3 可编程中断控制器8259A

●控制逻辑

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

8 3 8259a9
8.3 可编程中断控制器8259A

●数据总线缓冲器

这是一个8位的双向三态缓冲器,是8259A与系统数据总线的接口。

1)微处理器向8259A发送命令;

2)微处理器读取8259A的状态信息;

3)在中断响应周期,微处理器从中获得中断类型号。

8 3 8259a11
8.3 可编程中断控制器8259A

●级联缓冲/比较器

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

8 3 8259a12
8.3 可编程中断控制器8259A

三、8259A的工作过程

Step 1:

中断源在中断请求输入端上产生请求

使中断请求寄存器的IRR的相应位置置1,信息锁存

IRR:00110100

8 3 8259a13
8.3 可编程中断控制器8259A

三、8259A的工作过程

Step 2:

中断屏蔽寄存器“屏蔽”

结果送优先权处理器判优

假设IMR为00000100,则IR2被屏蔽

8 3 8259a14
8.3 可编程中断控制器8259A

三、8259A的工作过程

Step 3:

控制逻辑向CPU发送的INTR引脚发送INT中断请求信号

8 3 8259a15
8.3 可编程中断控制器8259A

三、8259A的工作过程

Step 4:

CPU接受请求,在第一个中断响应周期内,从INTA发回第一个负脉冲,实现握手

8 3 8259a16
8.3 可编程中断控制器8259A

三、8259A的工作过程

Step 5:

  • 优先权电路检出优先级最高的中断请求位
  • 根据检测结果设置ISR:00010000
  • 将IRR的相应位置复位
8 3 8259a17
8.3 可编程中断控制器8259A

三、8259A的工作过程

Step 6:

  • 第二个INTA负脉冲到达时,中断类型号送到CPU的数据总线的D7-D0上
8 3 8259a18
8.3 可编程中断控制器8259A

三、8259A的工作过程

  • Step 7:8086CPU读取中断类型号,转移到相应的中断处理程序;
  • Step 8:在中断处理结束之前,中断处理程序向8259A发送一个EOI(中断结束)命令,使ISR相应位复位,本次中断响应到此结束。
8 3 8259a19
8.3 可编程中断控制器8259A

INTA

CAS0 IR0

CAS1 IR1

CAS2 IR2

IR3

INTA IR4

IR5

INT IR6

IR7

SP/EN

???

管理64个中断源需要多少个8259

3片8259最多可以管理多少个中断源

CAS0

INTA CAS1

CAS2

INTIR0

IR1

SP/EN IR7

8259A

INTR

输出得到响应

的从片编号

CAS0 IR0

CAS1 IR1

CAS2 IR2

IR3

INTA IR4

IR5

INT IR6

IR7

SP/EN

+5V

8259 a
8259A的工作方式
  • 优先权管理方式
    • 固定优先级
    • 循环优先级
  • 中断屏蔽方式
    • 普通屏蔽方式
    • 特殊屏蔽方式
  • 中断结束方式
    • 自动结束
    • 非自动结束
  • 8259A的工作方式
    • 中断方式
    • 程序查询式
  • CPU读8259A的状态

CPU通过编程对 ICW1~ICW4 和 OCW1~OCW3进行读写操作

来实现工作方式的选择和工作状态的读取

8 3 8259a20
8.3 可编程中断控制器8259A

四、8259A的工作方式

●8259A的优先权管理

全嵌套方式

固定优先权

特殊嵌套方式

自动循环方式

循环优先权

特殊循环方式

8 3 8259a21
8.3 可编程中断控制器8259A
  • 1.完全嵌套方式(单片8259A常用)

8259A的中断请求输入端引入的中断具有固定的优先权排队顺序,IR0为最高优先级,IR1为次高优先级,依次类推,IR7为最低优先级。

同一优先级遵循先来后到原则,不能嵌套

  • 2.特殊全嵌套方式(级联情况下的常用)

特殊全嵌套方式和全嵌套方式基本相同,只有一点不同,就是在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,那么,也会给予响应,从而实现一种对同级中断请求的特殊嵌套。

同一优先级可以实现嵌套

8 3 8259a22
8.3 可编程中断控制器8259A
  • 3.自动循环方式

从IR0—IR7引入的中断轮流具有最高优先权。

初始优先级队列规定为

IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7

如果IR0端正好有中断请求,处理完后

IR1>IR2>IR3>IR4>IR5>IR6>IR7>IR0

如果IR4端正好有中断请求,处理完后

IR5>IR6>IR7>IR0>IR1>IR2>IR3>IR4

  • 4.优先级特殊循环方式

最低优先级是由编程确定的,从而最高优先级也由此而定。

8 3 8259a23
8.3 可编程中断控制器8259A

8259A的工作方式

●8259A中断屏蔽方式

  • 普通屏蔽方式

由IMR实现,IMR中对应位置“1”实现屏蔽

  • 特殊屏蔽方式

在一些特殊场合下,在执行某较高优先级的中断时,还希望开放较低级别的中断请求。

将IMR中的某一位置“1”时,会同时将ISR中的对应位置“0”

slide70

●8259A中断结束方式

自动中断结束方式(AEOI)

8259A自动的在中断响应第二个周期的INTA的后沿上,将ISR对应位置“0”

注意:仅在单片8259A,无中断嵌套的情况下可用

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

中断服务成都结束返回之前,在程序里向8259A发送一条 “EOI”指令,把ISR对应位清零

一般中断结束方式:清除哪一位ISR由8259A自动选择

特殊中断结束方式:清除哪一位ISR由人为指定

slide71

8.3 中断控制器8259A及其应用

四、8259A的工作方式

●8259A的查询工作方式

8259A工作在程序查询方式时,8259A不向微处理器发INT信号,微处理器通过查询8259A了解有无中断。

查询字格式为:

I × × × × W2 W1 W0

I=1表示有中断请求,I=0表示没有中断请求。W2 W1 W0表示8259A请求服务的最高优先级编码。

slide72

8.3 中断控制器8259A及其应用

四、8259A的工作方式

●读8259A的状态

8259A内部的IRR、ISR和IMR的状态可以通过适当的读命令读到微处理器中,以了解8259A的工作情况。

上述的各种工作方式,都是通过8259A的初始化命令字(ICW1~ICW4)和操作命令字(OCW1~OCW3)来设定的。

slide74

8.3 中断控制器8259A及其应用

  • 8259的编程分为两个阶段:初始化阶段和操作阶段。
  • 初始化阶段应该在系统加电或复位后由初始化程序完成。用输出指令向8259置入初始化命令。

ICW1~ICW4

  • 操作阶段,用输出指令向8259发适当的操作命令字,实现对8259的状态、中断方式和过程的控制。

OCW1~OCW3

五、8259A的编程

初始化命令字在系统初始化的时候写入

操作命令字在开始工作后的任何时候进行读写,随时动态操作8259A的工作

slide75

8.3 中断控制器8259A及其应用

初始化编程的任务:

第一、设定中断请求信号的有效形式,即高电平有效,还是低电平向高电平跳变的上升沿有效;

第二、是单片工作方式还是级联工作方式;

第三、设定8259管理的中断类型号基值,即0级中断IR0对应的中断类型号,当中断请求响应时,得到中断向量表中相应的地址;

第四、级联方式的主从片连接关系确定

第五、设定各级的优先排序规则;

第六、设定一次中断处理结束时的结束操作规则。

通过向8259发初始化命令字ICW实现。

五、8259A的编程

●初始化编程

ICW1

ICW2

ICW3

ICW4

slide76
初始化命令字ICW1(设定工作方式,级联方式,嵌套方式和优先权排序方式)初始化命令字ICW1(设定工作方式,级联方式,嵌套方式和优先权排序方式)

格式:设置ICW1需要I/O地址为A0=0。

D7 D6 D5 D4 D3 D2 D1 D0

8.3 中断控制器8259A及其应用

五、8259A的编程

●初始化编程

其中:×表示无关位,可以是任意值,通常置“0”;

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

SNGL=1: 单片工作,为0多片级联;

IC4=1: 表示在后面程序还要设置初始化命令字ICW4,为0

不再设置ICW4; 80X86系统中全都要设置ICW4,所以此位默认为1

D4=1: 是ICW1的特征标志

slide77

8.3 中断控制器8259A及其应用

五、8259A的编程

●初始化编程

设置ICW2的地址为A0=1

初始化命令字ICW2:用于设置中断类型号基值。

格式:

D7 D6 D5 D4 D3 D2 D1 D0

其中:

低3位必须为0;

若两片8259A的中断类型号基值分别为08H和70H,ICW2的高5位T7~T3分别为00001和01110。

slide78

8.3 中断控制器8259A及其应用

初始化命令字ICW2说明:

▲外中断的中断类型号是在中断需要期间由8259提供的;

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

▲IR0对应的中断类型号是中断类型号基值,一定能被8整除的正整数。

五、8259A的编程

●初始化编程

slide79
初始化命令字ICW3:专为级联而设置的。

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

ICW3(主片)

8.3 中断控制器8259A及其应用

五、8259A的编程

●初始化编程

1:相应的IR接从属的8259

0:相应的IR接外部中断源

slide80

8.3 中断控制器8259A及其应用

五、8259A的编程

ICW3(从片)

●初始化编程

D7 D6 D5 D4 D3 D2 D1 D0

该3位的编码对应从属8259接主控IR的编号

例如:

从属芯片接到主控芯片的IR2上,则从属芯片的ICW3对应的是02H;

主片中设置的ICW3为00000100。

slide81
初始化命令字ICW4(设定工作方式)

D7 D6 D5 D4 D3 D2 D1 D0

8.3 中断控制器8259A及其应用

五、8259A的编程

●初始化编程

0 ×非缓冲方式

1 0 缓冲方式/从片

1 1缓冲方式/主片

1-8086/8088方式

0-8080/8085方式

1-特殊全嵌套方法

0-正常全嵌套方法

1-中断自动结束

0-中断正常结束

slide82

8.3 中断控制器8259A及其应用

8259初始化命令字设置次序:

五、8259A的编程

●初始化编程

级联工作

Step1: 写主片ICW1

(A0=0,D4=1)

Step2: 写主片ICW2

Step3: 写主片 ICW3

Step4: 写主片ICW4

Step5: 写从片ICW1

(A0=0,D4=1)

Step6: 写从片ICW2

Step7: 写从片ICW3

Step8: 写从片ICW4

单片工作

Step1: 写命令字ICW1

(偶地址,A0=0,D4=1)

Step2: 写命令字ICW2

(奇地址, A0=1)

Step3: 写ICW4

(奇地址,A0=1)

slide83

8.3 中断控制器8259A及其应用

五、8259A的编程

  • 单片8259初始化举例:
  • PC/XT 系统中,8259的工作方式为单片工作,边沿触发,中断类型号08H~0FH,非缓冲方式,非中断自动结束,非特殊全嵌套方式。端口地址为20H和21H,写初始化程序段:

多个8259的初始化就是根据级联方式,加入ICW3的初始化过程,如书上P255 例题 8.13

MOV AL, 00010011 B

OUT 20H, AL

MOV AL, 00001000 B

OUT 21H, AL

MOV AL, 00000001 B

OUT 21H, AL

分析: ICW1: 00010011 B

分析: ICW1: XXX10X11 B

分析: ICW2:00001000 B

分析: ICW4:00000001 B

slide84

8.3 中断控制器8259A及其应用

五、8259A的编程

●操作编程

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

slide85

8.3 中断控制器8259A及其应用

五、8259A的编程

●操作编程

操作命令字OCW1:

用于设置屏蔽状态。用输出指令把OCW1发送到IMR。

中断屏蔽寄存器IMR中为1 的位对应的中断级的输入线IR处于被屏蔽状态。

被屏蔽的中断级请求不能使8259的INT输出端产生有效的请求信号。

设置OCW1的I/O地址是A0=1

slide86

8.3 中断控制器8259A及其应用

五、8259A的编程

OCW1

●操作编程

1:屏蔽响应的IR0:允许相应的IR中断

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

开始工作后,向地址A0=1发的OCW1是屏蔽字,对同一地址的输入指令将读回OCW1设置的屏蔽字。(对应P248,表8.1)

slide87

EG. IBM PC微机系统中,8259A的端口地址为20H和21H,要实现屏蔽IR4的中断输入,但并不改变其他中断输入的状态,写出程序段.

IN AL, 21H; 读IMR内容

OR AL, 00010000H

OUT 21H, AL; 写OCW1,即改变IMR

slide88

8.3 中断控制器8259A及其应用

五、8259A的编程

OCW2(A0=0):

功能:改变/设置中断优先级,发送中断结束指令EOI

D7 D6 D5 D4 D3 D2 D1 D0

R=0 固定优先权R=1 循环优先权

指定中断级0 0 0 00 0 1 1...1 1 1 7

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

EOI=1 表示撤消中断

EOI=0 表示不撤消中断

slide89

8.3 中断控制器8259A及其应用

OCW2(A0=0):

D7 D6 D5 D4 D3 D2 D1 D0

(1) EOI=0 (优先权模式选择)

  • R=0, 固定优先级模式;
  • R=1,SL=0:一般循环优先级命令。自动设置IR0为优先级最高;
  • R=1,SL=1:特殊循环优先级命令,L2~L0指示优先级最低的中断位。

(1) EOI=1 (中断结束命令)

  • SL=0, 一般中断结束命令,正在执行的优先级最高的位中断结束。
  • SL=1,特殊中断结束命令,将L2~L0指示的对应位中断结束
slide90
OCW3:用于管理特殊的屏蔽方式和查询方法。设置OCW3地址的是A0=0

D7 D6 D5 D4 D3 D2 D1 D0

8.3 中断控制器8259A及其应用

五、8259A的编程

●操作编程

它的特征标识为D4D3=01

ESMM: 设置/保持屏蔽方式位。0:保持原有屏蔽方式

1:根据SMM的内容设定屏蔽方式

SMM: 特殊屏蔽方式标识, 1:设置为特殊屏蔽方式

0:设置为一般屏蔽方式

slide91
D7 D6 D5 D4 D3 D2 D1 D0

8.3 中断控制器8259A及其应用

五、8259A的编程

●操作编程

OCW3(续)

P:管理查询方式, 1 指明查询方式,即查询决定优先级次序

0 非查询方式。

RR、RIS:控制读出8259内部寄存器IRR和ISR的内容。

10 读寄存器IRR

11 读寄存器ISR

00、01 无意义,其中P=0

slide92

8.3 中断控制器8259A及其应用

五、8259A的编程

●操作编程

当P=1时的OCW3可用作查询指令。下一条对同一地址(A0=0)的读指令起中断识别作用,其操作是,如当时有中断请求,将识别出优先级最高的中断请求,把ISR的相应位置1,同时输入一个字节的信息到CPU(AL),这个字节信息的格式如下:

位7=1:表示有中断请求,W2-W0指明请求服务的各中断级中的最高优先级,否则无中断请求。

slide93

EG:在8259A工作过程中,观察IRR的内容,发给DL,观察IMR的内容发给DH,观察ISR的内容发给CL,8259的地址为20H,21HEG:在8259A工作过程中,观察IRR的内容,发给DL,观察IMR的内容发给DH,观察ISR的内容发给CL,8259的地址为20H,21H

  • 分析:
  • IMR的读取,A0=1
  • IRR的读取,先写OCW3,置PR,RIS为10,再读取A0=0的内容
  • ISR的读取,先写OCW3,置PR,RIS为11,再读A0=0的内容

IN AL, 21H; 读入IMR

MOV DH, AL;

OUT 20H, 00001010B; 写OCW3

IN AL, 20H; 读入 IRR

MOV DL, AL;

OUT 20H, 00001011B; 写OCW3

IN AL, 20H; 读入ISR

MOV CL, 20H;

slide95

8.3 中断控制器8259A及其应用

六、中断方式输入输出程序设计

●主程序设计

1、微处理器初始化:设置堆栈,设置中断向量,开放中断。

2、中断控制器8259A的初始化:选择工作方式,设置优先级规则,清除相应的屏蔽位等。

3、接口的初始化:将接口恢复到初始状态,对于可编程的接口,要设置接口的工作方式,设置接口的中断开放位等。

slide96

8.3 中断控制器8259A及其应用

六、中断方式输入输出程序设计

●主程序设计

4、中断服务程序的初始化:设置中断服务程序使用的缓冲区指针、计数器、状态位等。

5、对于输出过程,应在主程序中启动第一次输出,否则不会发生输出中断。

slide97

8.3 中断控制器8259A及其应用

六、中断方式输入输出程序设计

●中断服务程序设计

1、保护现场:把所有中断服务程序里要使用、会改变值的寄存器压入堆栈。注意:中断服务程序所使用的指针、缓冲区等都存放在内存储器中。

2、开放中断:允许微处理器响应优先级更高、更紧急的中断。

3、输入输出处理

slide98

8.3 中断控制器8259A及其应用

六、中断方式输入输出程序设计

●中断服务程序设计

4、关闭中断:中断服务进入结束阶段,关闭中断可以避免不必要的中断嵌套。

5、恢复现场:按照“先进后出”的原则,恢复各寄存器的内容。

6、中断返回:用IRET指令返回被中断的程序

slide99

8.3 中断控制器8259A及其应用

七、中断方式应用举例

例8.1

在某微机系统中配置了一片8259A可编程中断控制器芯片,且初始化为完全(正常)嵌套方式,即中断优先权的级别是固定的,IR0优先权最高,IR1~IR6逐级次之,IR7最低。IR0~IR7均未屏蔽,CPU处于开中断状态,在每个中断服务程序开始均排有STI指令。若在CPU执行程序期间,IR2和 IR4同时有中断请求,在IR2服务期间(服务结束前),IR1有中断请求,在IR4服务期间,IR3有中断请求。试画出完全嵌套方式的中断响应过程示意图。

slide100

8.3 中断控制器8259A及其应用

七、中断方式应用举例

slide101

8.3 中断控制器8259A及其应用

七、中断方式应用举例

例8.2

若要开发一条INT 40H软件中断指令,该指令完成的功能为光标回车换行。设中断服务程序的入口地址为INTRUP,使编写完成此功能的主程序和中断服务程序。

回忆软件子程序调用

分析其与软件中断指令的异同

课本 P 67

slide102

8.3 中断控制器8259A及其应用

七、中断方式应用举例

例8.2

…..

PUSH DS ; 关中断,开始建立中断向量

MOV AX, 0

MOV DS, AX ; 使DS指向中断向量表的段地址

MOV BX, 40H*4

MOV AX, OFFSET INTRUP

MOV [BX], AX ; 将INTRUP的偏移地址放在IP位置上

MOV AX, SEG INTRUP

MOV [BX]+2, AX ; 将INTRUP的段地址放在ICS位置上

POP DS

…..

…..

INT 40H ;调用 40H号软件中断,使光标回车换行

…..

slide103

8.3 中断控制器8259A及其应用

七、中断方式应用举例

例8.2

中断服务程序

INTRUP:PUSH AX

PUSH DX ; 保护现场

MOV AH , 02H ; 显示回车

MOV DL , 0DH ;

INT 21H

MOV AH, 02H ; 显示换行

MOV DL, 0AH ;

INT 21H

POP DX ; 恢复现场

POP AX

IRET

slide104
回顾本章主要学习重点
  • 与中断相关的概念
  • 中断过程
  • 中断响应过程
  • 中断服务子程序过程
  • 8259A的内、外部结构
  • 8259A的工作过程
  • 8259A的工作方式
  • 8259A的初始化编程
  • 8259A的工作状态控制

编程实现