54
1 微微微微微微微微微微微 ——微 8 微 微微微 微微微微微微 8259A

微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

  • Upload
    ling

  • View
    197

  • Download
    0

Embed Size (px)

DESCRIPTION

微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A. 第 8 章:中断系统与中断控制器 8259A. 8.1 中断的概念及处理过程 8.2 8086 中断系统 8.3 中断控制器 8259A. 第 8 章:中断系统与中断控制器 8259A. 中断的概念及处理过程 8086 中断系统 中断控制器 8259A. 第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程. 什么是中断? - PowerPoint PPT Presentation

Citation preview

Page 1: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

1

微型计算机原理及其应用——第 8 章:中断系统与中断控制器 8259A

Page 2: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

2

第 8 章:中断系统与中断控制器 8259A

8.1 中断的概念及处理过程8.2 8086 中断系统8.3 中断控制器 8259A

Page 3: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

3

第 8 章:中断系统与中断控制器 8259A

1. 中断的概念及处理过程2. 8086 中断系统3. 中断控制器 8259A

Page 4: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

4

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

什么是中断? 在 CPU 执行程序的过程中,由于某种突发事件的发生,强迫

CPU 暂时停止正在执行的程序,转向对该突发事件进行处理,对这个事件处理结束后又能回到原中止的程序 , 接着中止前的状态继续执行原来的程序,这一个过程就称为中断。把引起中断的原因或触发中断请求的来源称为中断源。

Page 5: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

5

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断请求信号的产生 中断方式提高了 CPU 的工作效率,但是它同时也提高了系统的

硬件开销。因为系统需增加含有中断功能接口电路,用来产生中断请求信号。以输入方式为例,接口电路如图所示。

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

Page 6: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

6

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断优先级中断优先级 ( 1 )如果有多个不同优先级的中断源同时提出中断请求时, CPU 应

当先响应最高优先级的中断源。 ( 2 )如果 CPU 正在对某一中断源服务时,比它优先级更高的中断源

提出中断请求时, CPU 能够暂停正在执行的中断服务程序转向对优先级高的中断源进行服务,当服务结束后再返回原优先级较低的中断服务程序继续执行。

中断嵌套 正在运行的中断处理程序,被优先级高的中断源中断,从而转入

新的中断处理程序,当新的中断处理程序执行完再回到原来的中断处理程序,这一现象称为中断嵌套。

Page 7: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

7

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断优先级 当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,

也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。

软件查询方法 只需有简单的硬件电路,如将 A 、

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

Page 8: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

8

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断优先级——简单硬件方法 将所有的设备连成一条链,靠近 CPU 的设备优先级最高,越远

的设备优先级别越低,则发出中断响应信号,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。

Page 9: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

9

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断优先级——专用硬件方法 采用可编程的中断控制器芯片,如 Intel8259A 。

Page 10: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

10

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断过程 是指中断请求、中断响应、中断处理、中断返回这四个过程。中

段请求、中断响应由硬件完成,中断处理、中断返回由软件完成。 中断请求 1 )外部设备发中断请求的条件:当外设准备就绪或本身工作已经完

成时,才向 CPU 提出中断请求。 2 )外部设备中断请求的标志:当外设要求和 CPU 进行数据交换时,

将中断请求信号送往中断请求触发器或中断控制器,经它们处理后,向 CPU 发出中断请求。

中断响应 如果 CPU 处于开中断状态,经判优后响应其中最高优先级的中

断请求,关中断,将断点压入堆栈中(有的微机还将程序状态字和相关寄存器的内容压入堆栈)保存,以备返回原程序,紧接着将相应的中断处理程序入口地址或中断向量送 CPU ,转入中断服务程序。

Page 11: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

11

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断过程 中断处理 保护现场。将在中断处理程序中使用的有关寄存器的内容压入堆栈保护起来。在现场保护的过程中,绝对不允许被中断 ( 应禁止中断 ),否则现场将被破坏。当现场保护好后应开中断。

中断服务。即该中断所要执行的具体指令内容。 恢复现场。当中断服务结束后,应用中断结束命令清除中断标志,立即关中断,以保证恢复现场的过程不受干扰。恢复现场就是把原来压入堆栈的有关寄存器的内容弹出。现场恢复后应开中断,以便 CPU响应更高级的中断请求。

中断返回 将压入的断点地址弹出,保证被中断的程序按原来状态执行下去。

Page 12: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

12

第 8 章:中断系统与中断控制器 8259A—— 概念及处理过程

中断过程 中断处理和中断返回中的所有内容,也叫做中断服务程序。即:

Page 13: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

13

第 8 章:中断系统与中断控制器 8259A

1. 中断的概念及处理过程2. 8086 中断系统3. 中断控制器 8259A

Page 14: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

14

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统

中断分类及中断类型码 中断源可以分为两大类,即外部 ( 硬件 ) 中断和内部 ( 软件 ) 中断。 硬件中断:即通过外部的硬件产生的中断,如打印机、键盘等。硬件

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

可屏蔽中断:由 INTR 引脚引入,它受中断允许标志的影响,也就是说,只有当 IF= 1 时,可屏蔽中断才能进入,反之则不允许进入,可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。

软件中断:即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为 0 ,或用 INT n 指令产生。

Page 15: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

15

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断分类及中断类型码 8086/8088 系统最多可处理 256 级不同类型的中断。

中断分类

外部中断(硬件中断)

内部中断(软件中断)

可屏蔽中断(INTR)

非屏蔽中断(NMI,中断类型码2)

单步中断(中断类型码1)

断点中断(中断类型码3)

溢出中断(中断类型码4)

Int n 中断

Page 16: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

16

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断分类及中断类型码

I NT¡¡ nÖ¸Áî

ÖС¡ ¶Ï ¡¡ Âß¡¡ ¼­

I NTOÖ¸Áî

µ¥²½ÖжÏ

I NT­ 3Ö¸Áî

³ý ÊýΪ 0ÖжÏ

·ÇÆÁ±ÎÖÐ¶Ï ÇëÇó

ÖжϿØÖÆϵͳ

£¨ 8 2 5 9 A £©¡£¡£¡£

¿ÉÆÁ±ÎÖжÏÇëÇó

NMI

I NTR

Èí ¼þÖÐ¶Ï Ó²¼þÖжÏ

Page 17: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

17

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断分类及中断类型码 中断类型码: 8086 为每个中断源分配了一个中断类型码,其取值范围为 0 ~

255 ,即可处理 256 种中断。其中包括软件中断,系统占用的中断以及开放给用户使用的中断。

中断类型码或者包含在指令中,或者预先规定;所有内部中断和 NMI 中断都不执行 INTA总线周期;除单步中断外,任何内部中断都无法禁止且都比外部中断优先级高;

中 断 优 先 级

内中断(除法错, INTO, INT) 最 高

最 低

非屏蔽中断 NMI

可屏蔽中断 INTR

单步中断

Page 18: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

18

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断向量和中断向量表 中断向量:把各个中断服务子程序的入口都称为一个中断向量; 中断向量表:将这些中断向量按一定的规律排列成一个表,就是所谓的中断向量表,当中断源发出中断请求时,即可查找该表,找出其中断向量,就可转入相应的中断服务子程序。

向量表地址:中断向量在中断向量表中的位置。

8086 中断系统中的中断向量表是位于 0 段的 0 ~ 3FFFH 的存贮区内,每个中断向量占四个单元,其中前两个单元存放中断处理子程序的入口地址的偏移量 (IP) ,低位在前,高位在后;后两个单元存放中断处理子程序入口地址的段地址 (CS) ,也是低位在前,高位在后,整个中断向量的排列是按中断类型号进行的。

Page 19: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

19

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断向量和中断向量表

000H

004H

008H

00CH

014H

080H

3FFH

IP 偏移地址CS 段基地址IP 偏移地址CS 段基地址IP 偏移地址CS 段基地址

···

···

中断类型码 0 (除法错)

中断类型码 1 (单步中断)

中断类型码 2 ( NMI 中断)中断类型码 3 (断点中断)中断类型码 4 (溢出中断)中断类型码 5 (保留)

系统保留中断

用户自定义中断

Page 20: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

20

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断向量和中断向量表 00H~ 04H---- 系统专用 10H~ 1FH----BIOS 用 40H~ FFH---- 用户用 08H~ 0FH---- 硬件中断 20H~ 3FH----DOS 用

Page 21: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

21

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断响应过程与时序

Page 22: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

22

第 8 章:中断系统与中断控制器 8259A——8086 的中断系统中断响应过程与时序

Page 23: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

23

第 8 章:中断系统与中断控制器 8259A

1. 中断的概念及处理过程2. 8086 中断系统3. 中断控制器 8259A

Page 24: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

24

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A性能概述1. 具有 8 级中断优先控制,通过级连可以扩展至 64 级优先权控制;2. 每一级中断都可以通过初始设置为允许或屏蔽状态;3. 8259A 的工作方式,可以通过编程进行设置,因此,使用非常灵活;4. 8259A 采用 NMOS 制造工艺,只需要单一的 +5V 电源。

Page 25: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

25

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

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

Page 26: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

26

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的内部结构和工作原理 数据总线缓冲器:它是 8259A 与系统数据总线的接口,是 8 位双向三态缓冲

器。 CPU与 8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过该缓冲器传送的。

读 / 写控制逻辑: CPU通过它实现对 8259A 的读 / 写操作。 级连缓冲器:用以实现 8259A 芯片之间的级连,使得中断源可以由 8 级扩展至 64 级。

控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。 中断请求寄存器 IRR: 8 位,用以分别保存 8 个中断请求信号,当相应的中断

请求输入引脚有中断请求时,该寄存器的相应位置 1 。 中断屏蔽寄存器 IMR: 8 位,相应位用以对 8 个中断源的中断请求信号进行

屏蔽控制。当其中某位置” 0” 时,则相应的中断请求可以向 CPU 提出;否则,相应的中断请求被屏蔽,即不允许向 CPU 提出中断请求。该寄存器的内容为8259A 的操作命令字OCW1 ,可以由程序设置或改变。

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

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

Page 27: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

27

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的外部引脚

Page 28: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

28

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的外部引脚 D7-D0 :双向数据输入 /输出引脚,用以与 CPU 进行信息交换。 IR7-IR0: 8 级中断请求信号输入引脚。 INT :中断请求信号输出引脚,高电平有效,用以向 CPU 发中断请求,应接在 CPU的 INTR 输入端。

INTA# :中断响应应答信号输入引脚,低电平有效,接在 CPU 的中断应答信号输出端。

RD#、WR# :读 / 写控制信号输入引脚,低电平有效,实现对 8259A内部有关寄存器内容的读操作。

CS# :片选信号输入引脚,低电平有效,决定了 8259A 的端口地址范围。 A0: 8259A两组内部寄存器的选择信号输入引脚,决定 8259A 的端口地址。 CAS2-CAS0 :级连信号引脚,当 8259A 为主片时,为输出;否则为输入,与

信号配合,实现芯片的级连,这三个引脚信号的不同组合 000~ 111 ,刚好对应于 8 个从片。

SP#/EN# :为级连管理信号输入引脚,在非缓冲方式下,若 8259A 在系统中作从片使用,则 SP=1 ;否则 SP=0 ;在缓冲方式下,用作 8259A 外部数据总线缓冲器的启动信号。

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

Page 29: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

29

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

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

IRR 的相应位置位。2. 若 CPU 处于开中断状态,则在当前指令执行完之后,响应中断,并且发应答信

号(两个连续的 INTA#负脉冲)。3. 第一个 INTA#负脉冲到达时, IRR 的锁存功能失效,对于 IR7-IR0上发来的

中断请求信号不予理睬。4. 使中断服务寄存器 ISR 的相应位置 1 ,以便为中断优先级比较器的工作做好准

备。5. 使中断请求寄存器的相应位复位,即清除中断请求。6. 第二个 INTA#负脉冲到达时,将中断类型寄存器中的内容 ICW2 ,送到数据总线的 D7-D0上, CPU 以此作为相应中断的类型码。

7. 若 ICW4 中的中断结束位为 1 ,那么,第二个 INTA#负脉冲结束时, 8259A将 ISR寄存器的相应位清零。否则,直至中断服务程序执行完毕,才能通过输出操作命令字 EOI ,使该位复位。

Page 30: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

30

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式1. 优先权的管理方式2. 中断源的屏蔽方式3. 结束中断处理的方式4. 系统总线的连接方式

5. 引入中断的请求方式

Page 31: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

31

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式1. 优先权的管理方式2. 中断源的屏蔽方式3. 结束中断处理的方式4. 系统总线的连接方式

5. 引入中断的请求方式

Page 32: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

32

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式——优先权的管理方式1. 全嵌套方式 这是 8259A默认的优先权设置方式,在全嵌套方式下, 8259A 所管理的

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

CPU 响应中断后,请求中断的中断源中,优先级最高的中断源,在中断服务寄存器 ISR 中的相应位置位,而且把它的中断矢量送至系统数据总线,在此中断源的中断服务完成之前,与它同级或优先级低的中断源的中断请求被屏蔽,只有优先级比它高的中断源的中断请求才是运算的,从而出现中断嵌套。

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

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

特殊全嵌套方式通常应用在有 8259A 级连的系统中,在这种情况下,对主8259A 编程时,通常使它工作在特殊全嵌套方式下。这样,一方面, CPU 对于优先级别较高的主片的中断输入是允许的,另一方面, CPU 对于来自同一从片的优先级别较高(但对于主片来讲,优先级别是相同的)的中断也是允许、能够响应的。

Page 33: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

33

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式——优先权的管理方式3. 优先级自动循环方式 在实际应用中,中断源优先级的情况是比较复杂的,要求 8 级中断的优先级

在系统工作过程中,可以动态改变。即一个中断源的中断请求被响应之后,其优先级自动降为最低。系统启动时, 8 级中断优先级默认为 IR0—IR7 ,这时,刚好 IR4 发出了中断请求, CPU 响应之后,若 8259A 工作在优先级自动循环方式下,则中断优先级自动变为 IR5、 IR6、 IR7、 IR0 、 IR1 、 IR2 、 IR3 、 IR4 。

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

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

Page 34: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

34

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式1. 优先权的管理方式2. 中断源的屏蔽方式3. 结束中断处理的方式4. 系统总线的连接方式

5. 引入中断的请求方式

Page 35: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

35

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式——中断源的屏蔽方式1. 普通屏蔽方式 8259A 的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。若相应位为“ 1” ,则中断请求不能送 CPU 。屏蔽是通过对屏蔽寄存器 IMR 的编程(操作命令字OCW1 ),来加以设置和改变的。

2. 特殊屏蔽方式 有些场合下,希望一个中断服务程序的运行过程中,能动态地改变系统中的

中断优先级结构,即在中断处理的一部分,禁止低级中断,而在中断处理的另一部分,又能够允许低级中断,于是引入了对中断的特殊屏蔽方式。

设置了特殊屏蔽方式后,用 OCW1 对屏蔽寄存器中的某一位复位时,同时也会使中断服务寄存器 ISR 中的相应位复位,这样就不只屏蔽了正在处理的等级中断,而且真正开放了其它优先级别较低的中断请求。

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

Page 36: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

36

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式1. 优先权的管理方式2. 中断源的屏蔽方式3. 结束中断处理的方式4. 系统总线的连接方式5. 引入中断的请求方式

Page 37: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

37

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式——结束中断的处理方式1. 中断自动结束方式 这种方式仅适用于只有单片 8259A 的场合,在这种方式下,系统一旦响应

中断,那么 CPU 在发第二个 INTA#脉冲时,就会使中断响应寄存器 ISR 中相应位复位,这样一来,虽然系统在进行中断处理,但对于 8259A 来讲, ISR 没有相应的指示,就象中断处理结束,返回主程序之后一样。 CPU可以再次响应任何级别的中断请求。

2. 一般的中断结束方式 一般的中断结束方式适用用在全嵌套的情况下,当 CPU 用输出指令向

8259A 发一般中断结束命令 OCW2 时, 8259A 才会使中断响应寄存器 ISR中优先级别最高的位复位。

3. 特殊的中断结束方式 在特殊全嵌套模式下,系统无法确定哪一级中断为最后相应和处理的中断,

也就是说, CPU无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束方式。

特殊的中断结束方式是指在 CPU 结束中断处理之后,向 8259A 发送一个特殊的 EOI 中断结束命令,这个特殊的中断结束 EOI命令,明确指出了中断响应寄存器 ISR 中需要复位的位。

Page 38: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

38

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式1. 优先权的管理方式2. 中断源的屏蔽方式3. 结束中断处理的方式4. 系统总线的连接方式

5. 引入中断的请求方式

Page 39: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

39

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式——系统总线的连接方式1. 缓冲方式 在多片 8259A 级连的大系统中, 8259A通过外部总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下, 8259 的输出信号作为缓冲器的启动信号,用来启动总线驱动器,在 8259A与 CPU之间进行信息交换。

2. 非缓冲方式 当系统中只有一片或几片 8259A 芯片时,可以将数据总线直接与系统数据总线相连,这时 8259A 处于非缓冲方式下。在这种方式下, 8259A 的作为输入端设置,主片应接高电平,从片应接低电平。

Page 40: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

40

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式1. 优先权的管理方式2. 中断源的屏蔽方式3. 结束中断处理的方式4. 系统总线的连接方式

5. 引入中断的请求方式

Page 41: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

41

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的工作方式——引入中断请求的方式1. 边沿触发方式 8259A 将中断请求输入端出现的上升沿,作为中断请求信号,上升沿后相应引脚,可以一直保持高电平。

2. 电平触发方式 8259A 将中断请求输入端出现的高电平作为中断请求信号,在这种方式下,必须注意:中断响应之后,高电平必须及时撤除,否则,在 CPU 响应中断,开中断之后,会引起第二次不应该有的中断。

3. 中断查询方式 当系统中的中断源很多,超过 64 个时,则可以使 8259A 工作在查询方式下,

中断查询方式的特点是:a. 中断源仍往 8259A 发中断请求,但 8259A却不使用 INT 信号向 CPU 发中断

请求信号。b. CPU内部的中断允许标志复位,所以 CPU对 INT 引脚上出现的中断请求呈禁止状态。

c. CPU 用软件查询的方法来确定中断源,从而实现对设备的中断服务,可见,中断查询方式,既有中断的特点,又有查询的特点,从外设的角度来看,是靠中断的方式来请求服务,但从 CPU 的角度来看,是用查询方式来确定发中断请求的中断源。

Page 42: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

42

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字 8259A 的命令字有两种。一种是初始化命令字 (ICW) ,在 8259A启动之前写入,使其处于预定的初始状态。另一种是操作命令字 (OCW) ,使处于初始状态的 8259去执行具体的某种操作方式。操作命令字可在 8259初始化后的任何时刻写入。

Page 43: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

43

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字1.初始化命令字1 ) ICW1 :芯片控制初始化命令字 ,在 A0=0,D4=1 时写入。

1 :需 ICW4 0 :不需 ICW4

1 :单 8259A0 :多片 8259A

1 :间隔为 40 :间隔为 8

1 :电平触发0 :边沿触发

任 意 值

X 1 LTIM AX SNGL IC4X

A0 D7 D6 D5 D4 D3 D2 D1 D0

0

ICW1标志

Page 44: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

44

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字1.初始化命令字

2 ) ICW2 :设置中断向量码初始化命令字。

T5 T4 T3 0T6 0 0T7

A0 D7 D6 D5 D4 D3 D2 D1 D0

1

Page 45: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

45

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字1.初始化命令字

3 ) ICW3 :主片 /从片初始化命令字。

0 0 0 ID20 ID1 ID00

A0­­­­­­­­D7­­­D6­­­D5­­­­D4­­­D3­­­­D2­­­­D1­­­D0

1

三位编码对应从片接主控片的 IR编号

从属片ICW3

A0­­­­­­D7­­­D6­­­D5­­­D4­­­D3­­­D2­­­D1­­­D0

1

1 :相应 IR端接从片0 :未接从片

主控片 ICW3

Page 46: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

46

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字1.初始化命令字

4 ) ICW4 :方式控制字初始化命令字。 ICW4 用来设定 8259A 的工作模式。

1 : 86/88模式0 : 80/85模式1 :自动 EOI0 :非自动结束0X:非缓冲方法10:缓冲方式 / 从属片11:缓冲方式 / 主控片1 :特殊完全嵌套方式0 :一般完全嵌套方式

0 SFNM

BUF M/S0 AEOI PM0

A0­­­­­­D7­­­D6­­­D5­­­­D4­­­D3­­­­D2­­­D1­­­­D0

1

ICW4标识码

Page 47: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

47

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字

Page 48: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

48

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字2.操作命令字

1 )OCW1 :中断屏蔽操作命令字,在 A0=1 时写入到中断屏蔽寄存器 IMR 中,当某一位为 1 时,就屏蔽与之相应的 IR 输入。

M5 M4 M3 M2 M6 M1 M0 M7

A0 D7 D6 D5 D4­­­­­ D3 D2­­­­ D1 D0

1

Page 49: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

49

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字2.操作命令字

2 )OCW2 :优先循环方式和中断结束方式操作字。其中 R 是优先级循环控制位,R=1 为循环优先级, R=0 为固定优先级。

ISRi(IRi) 序号

0 不设 EIO 命令1 EIO 命令

EOI 0 0 L2SL L1 L0R

A0 D7 D6 D5 D4 D3 D2 D1 D0

0

OCW2 标志

SL=0 时, L2-L0 无效SL=1 时, L2-L0 有效

0 非设循环优先级方式1 循环优先级方式

Page 50: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

50

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的控制字2.操作命令字

3 )OCW3 :特殊屏蔽方式和查询方式操作字。 OCW3 的功能有三个方面:一是设置和撤消特殊屏蔽方式,二是设置中断查询方式,三是用来设置对 8259A内部的寄存器的读出命令。在 A0=0,D4D3=01 时写入 OCW3。

0× :无效10 :可读 IRR11 :可读 ISR

1 :允许查询0 :不查询

0× :无效10 :复位特殊屏蔽11 :设置特殊屏蔽

SMM 0 1 PESMM RR RIS0

A0 D7 D6 D5 D4 D3 D2 D1 D0

0

OCW3 标志

Page 51: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

51

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程—— 8259A 的级联

……

……

INTACAS0

CAS1

CAS2

I R0 I R3I R6I R7

I NT

I R4I R7 I R6 I R0 I R7 I R6I R0

D7D0~D7D0~D7D0~

D7D0~ D7D0~ D7D0~

INTACAS0CAS0

CAS1CAS1

CAS2CAS2I NTI NT

系统总线

+5v主控

SP /ENSP /EN

INTA

SP /EN

Page 52: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

52

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程 [ 例 7-1] IBMPC 机中,只有一片 8259A ,可接受外部 8 级中断。在 I/O

地址中,分配 8259A 的端口地址为 20H和 21H ,初始化为:边沿触发、缓冲连接、中断结束采用 EOI命令、中断优先级采用完全嵌套方式, 8 级中断源的中断类型分别为 08H—0FH ,初始化程序为:

MOV DX,20HMOV AL,00010011BOUT DX,AL ;写入 ICW1MOV DX,21HMOV AL,08HOUT DX,AL ;写入 ICW2MOV AL,00001101BOUT DX,AL ;写入 ICW4XOR AL,ALOUT DX,AL ;写入 OCW1 。。。。。。STI。。。。。。

Page 53: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

53

第 8 章:中断系统与中断控制器 8259A—— 中断控制器 8059A

8259A 的编程 [ 例 7-2] 读 8259A相关寄存器的内容。设 8259A 的端口地址为 20H、 21H ,请

读入 IRR、 ISR、 IMR寄存器的内容,并相继保存在数据段 2000H 开始的内存单元中;若该 8259A 为主片,请用查询方式,查询哪个从片有中断请求。

MOV AL, xxx01010B 发OCW3,欲读取 IRR 的内容OUT 20H, ALIN AL, 20H 读入并保存 IRR 的内容MOV (2000H), ALMOV AL,xxx01011B 发OCW3,欲读取 ISR 的内容OUT 20H, ALIN AL, 20H 读入并保存 ISR 的内容MOV (2001H), ALIN AL, 21H 读入并保存 ISR 的内容MOV (2002H), ALMOV AL, xxx0110xB 发OCW3,欲查询是否有中断请求OUT 20HIN AL, 20H 读入相应状态,并判断最高位是否为 1TEST AL, 80H JZ DONEAND AL,07H 判断中断源的编码…………DONE: HLT

Page 54: 微型计算机原理及其应用 —— 第 8 章:中断系统与中断控制器 8259A

54

第 8 章:中断系统与中断控制器 8259A——总结 中断的相关基本概念,要求达到“领会”的层次。 8086/8088 系统中的中断系统。

8086/8088 系统中的中断分类,要求达到“领会”层次。 中断向量表的定义和应用,要求达到“综合应用”层次。 可屏蔽中断的中断响应时序,要求达到“领会”层次。

编程中断控制器 8259A 。 具有中断控制功能的接口电路,要求达到“简单应用”层次。 中断控制器的基本要求和组成,要求达到“领会”层次。 8259A 可编程中断控制器的结构和功能,要求达到“领会”层次。 8259A 的中断优先级管理方式及中断结束方式,要求达到“识记”层次。 8259A 的中断顺序,要求达到“领会”层次。