可编程控制器8259A知识点总结

合集下载

《微机原理与接口》知识点第7章中断控制器8259

《微机原理与接口》知识点第7章中断控制器8259

五、引入中断请求的方式
1、边沿触发方式
特点:将中断请求输入端出现的上升沿作为中断请求信号。
2、电平触发方式 特点:将中断请求输入端出现的高电平作为中断请求信号。
3、中断查询方式 特点: 1.外设通过向8259A发中断请求信号要求CPU服务。
2.CPU内部的中断允许触发器复位。
3.CPU使用软件查询来确认中断源。
第7章 中断控制器
7.1 8259A概述
7.2 8259A的引脚信号、编程结构和工作原理 7.3 8259A的工作方式 7.4 8259A的初始化命令字和操作命令字
7.5 8259A使用举例
第7章 中断控制器8259A 重点: 1、8259A的编程结构和工作原理 2、8259A的初始化命令字、操作命令字 3、8259A的初始化流程和初始化编程 4、8259A的应用
;×××10×11B ;设置ICW1 ;00011000B~ 00011111B ;设置ICW2 ;00000001B ;设置ICW4
三、8259A的操作命令字
1、OCW1 :中断屏蔽操作命令字
D7 M7 D6 M6 D5 M5 D4 M4 D3 M3 D2 M2 D1 M1 D0 M0 A0 1
中断 触发 方式
A0
0
是否设 置ICW4 规定单片或 级连方式
1:设置ICW4 0:不设ICW4
1:单片方式 0:级连方式
2、ICW2 :设置中断类型码初始化命令字
ICW2高五位与中断类型码的高五位相同。 注:该命令字必须写入“奇地址”端口,即A0=1。
3、ICW3 :标志主/从片初始化命令字
D7 D6 D5 D4 D3 D2 D1 D0
特点:发结束命令时,指令内不指定清除ISR中的哪一位, 由8259A自动将最高优先级对应的ISR中非零位复位,结 束当前正在处理的中断。 用于全嵌套方式。

可编程中断控制器8259详解

可编程中断控制器8259详解

可编程中断控制器8259详解
中断系统的使用极大的提高了CPU的利用率。

 中断是一种机制,这种机制实现的过程可分为请求-->响应-->服务-->返回。

 可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片。

其内部结构及引脚图如下:
 中断申请的过程可大概描述为:中断源发生-----》(此中断未被屏蔽)中断优先级判定(高于正在服务的中断则打断)------》向cpu发送中断请求-----》cpu 回复一个inta告诉中断申请成功------》中断服务寄存器相应的位置位,表示这个中断正在被执行---------》当收到cpu的第二个inta的时候,中断逻辑单元把中断号发给cpu,cpu调用相应的中断程序执行------》发送中断号时,将ISR的相应位复位(利用完了就复位,主要是把中断号拿出来。

如果不复位,则每次逻辑电路放在总线上的中断号就会出错),表示执行完毕。

 其内部涉及的关键型寄存器有:中断请求寄存器,中断屏蔽寄存器,中断优先级判别寄存器,中断服务寄存器。

 对于8259A的各个模块的官方描述如下:。

可编程中断控制器8259A

可编程中断控制器8259A
IMR对应位为 0,允许中断申请进入优先级裁决器, 对应位为 ,允许中断申请进入优先级裁决器, 屏蔽。 为 1,不允许进入,中断申请被 ,不允许进入,中断申请被IMR屏蔽。 屏蔽
③ 当前中断服务寄存器 ISR 记录 记录CPU正在响应的中断。 正在响应的中断。 正在响应的中断
ISR中的某位为 ,表示 中的某位为1,表示CPU正在响应此级中断, 正在响应此级中断, 中的某位为 正在响应此级中断 ISR中的某位为 0,表示 没有或已响应完此级中断, 中的某位为 ,表示CPU没有或已响应完此级中断, 没有或已响应完此级中断
0 0
OCW2 优先级、 OCW2 优先级、发EOI OCW3 OCW3 特殊屏蔽设置
8
方式控制
③ 当前中断服务寄存器 ISR 记录CPU正在响应的中断。 记录CPU正在响应的中断。 CPU正在响应的中断
ISR中的某位为 表示CPU正在响应此级中断 CPU正在响应此级中断, ISR中的某位为1,表示CPU正在响应此级中断, 中的某位 即正在执行此中断源的中 断子程; 断子程; 表示CPU没有或已响应完此级中断 CPU没有或已响应完此级中断, ISR中的某位 中的某位为 ISR中的某位为 0,表示CPU没有或已响应完此级中断, 即不在执行此中断源的中 1 IR0 IR0 ISR 0 IRR 数 据 线 断子程 IR1 IR1 当前 0 中断 0 D0 IR2 IR2 ~ 申请 0 中断 1 0 0 IR3 IR3 D7 寄存器 0 服务 0 PR A0 IR4 IR4 0 寄存器 0 IR5 IR5 优先级 0 0 IR6 IR6 片 裁决器 1 0 IR7 IR7 选 CS 译 1 0 0 1 0 1 0 0 ICW1 ICW1 芯片控制 码 RD OCW1 OCW1 中断屏蔽寄存器 IMR ICW2 ICW2 中断类型号 WR 0 0 ICW3 ICW3 主从片关系 OCW2 优先级、 OCW2 优先级、发EOI INTA ICW4 ICW4 方式控制 OCW3 OCW3 特殊屏蔽设置 INT

8259可编程的中断控制器

8259可编程的中断控制器

82598259A是一个可编程的中断控制器,应用在实时的、以中断方式进行监控的计算机系统中。

用一片8259A可以管理8个等级的中断申请。

并可再经级联扩展多至8片8259A,使得中断等级可扩展多至64级。

8259A可以作为一个I/O外围器件,用系统软件编程,它所具有的多种优先权方式可以通过主程序在任何时候进行改变或重新组织。

这意味着可以按照全系统的外围情况和要求,设计出一个完整的中断结构,用来实现优先管理、中断屏蔽以及自动中断矢量转移。

它几乎可以适合于任何一种中断控制的结构,因而得到了广泛的应用。

1 引脚图8259A为28脚双列直插式封装的器件。

2 内部结构其工作过程如下:第一步:当中断请求线(IR0~IR7)上有信号输入时,就把中断请求寄存器IRR相应的位置1。

第二步:当IRR的一位置1后,就会与IMR中相应的屏蔽位进行比较,如该屏蔽位为0,则请求被发送给优先级分析器;如该屏蔽位为1,则封锁该请求。

第三步:当一个中断请求被输入优先级分析器后,将由优先权分析器判定其优先权,然后向CPU 发中断申请,INT脚变高(INT联到8086的INTR)。

第四步:CPU的INTR引脚为异步状态接收,也就是它可以在任何时间(与时钟无关)接收中断。

在软件控制下利用STI指令(中断置位)或CLI(中断复位)指令可分别将CPU的“中断开放标志位”IF置位或复位,可以做到接受或不理睬在INTR上的中断申请。

第五步:假定CPU中的IF标志为1,则CPU在完成当前指令的即进入中断响应周期,这个中断响应周期将标志寄存器入栈,然后清除IF标志,关闭了中断。

再将代码段寄存器和指令指针也入栈(这是为了从中断服务程序返回),然后CPU发出第二个 INTA脉冲通知8259A,说明8086已经允许了它的中断请求。

若8086用于“最小方式”,则INTA脉冲信号为8086 INTA引脚上的信号;若8086用于“最大方式”时,则8086 LOCK脚在中断响应序列执行期间变为低电平。

中断控制器8259A

中断控制器8259A

在第二个中断响应周期,8259A将向 CPU输送如表8-2所示的中断向量,其中 T7~T3是用户在8259A初始化编程中规定 的,而低3位则由8259A自动插入。
8259A 的 编程
8259A的编程可以分为两种: (1)初始化编程:由CPU向8259A送2~4个字节的 初始化命令字ICW(Initialization Command Word)。在8259A开始正常工作之前,必须由初始 化命令字,使其处在开始点。

(2)工作方式编程:由8259A送三个字节的工作命 令字OCW(Operatioon Command Word), 以规定 8259A的工作方式。工作命令字可在8259A已经初 始化以后的任何时间写入。
(1)8259A 初始化编程
对8259A初始化编程就是向它输送2~4个 字节的初始化命令字。
(2)工作方式编程
(4)8259A在接收到CPU的/INTA信号后, 使最高优先权的ISR位置位,而响应的IRR 位复位。(但在此周期中,8259A不向系 统总线发任何内容) (5)8086CPU将启动另外一个中断响应 周期,输出另一个INTA脉冲。在这个周期, 8259A向数据总线输送一个8位的指针(向 量)。 (6)这样中断响应周期就完成了,CPU就 可以至中断服务程序。
中断控制器8259A
在学习中断控制器之前,先回顾中断技术在微机系统 的一些用途。
8259A 的中断顺序(应用于8086系统) (1)当一条或若干条中断请求输入线 (IR7~IR0)变高,则使中断请求寄存器 IRR的相应位置位。 (2)若中断请求线中至少有一条中断允 许,则8259A由INT引脚向CPU发送出中 断请求信号。 (3)若CPU是在开中断状态,则在当前 指令执行完以后,用/INTA作为响应。

8259a芯片详解

8259a芯片详解

8259A:可编程中断控制器芯片(PIC),它是可以用程序控制的中断控制芯片。

单个的8259A能管理8级向量优先级中断。

在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。

8259A内部结构由8个部分组成:(1)数据总线缓冲器(DA TA BUS BUFFER):将8259A连接到系统数据总线上,控制字和状态信息通过此传送。

(2)读/写控制逻辑(READ/WRITE LOGIC):主要是接收CPU的各种命令字,此外也可将8259A的状态信息传到数据总线上。

(3)级联缓冲器/比较器(CASCADE BUFFER/COMPARA TOR):本功能模块储存和比较系统中的所有8259A的ID号。

主片将请求中断的从片的ID号发送到CAS0-2上,被选的从片就会在下一个或第二个INTA脉冲到来时将其中断程序地址发送到系统数据线上。

(4)中断请求寄存器IRR:保存8条外界中断请求信号IR0-IR7的请求状态。

Di位为1表示IRi引脚有中断请求,为0则无。

(5)中断屏蔽寄存器IMR:保存对中断请求信号IR的屏蔽状态。

Di位为1表示IRi中断被屏蔽,为0表示允许该中断。

(6)正在服务寄存器ISR:保存正在被8259A服务着的中断状态。

Di位为1表示IRi中断正在被服务中。

(7)优先权分析器PR:本逻辑模块决定IRR中中断请求的优先级,当INTA脉冲到来时将相应的位存入ISR中(8)控制逻辑(CONTROL LOGIC) 8259A共有28个引脚:符号引脚号输入/输出功能描述Vcc 28 I 电源+5V GND 14 I 接地C----S---- 1 I 片选:低电平有效,来自地址译码器的输出,当其有效时,CPU才能对8259A进行读写操作W----R---- 2 I 写信号:低电平有效,来自CPU的输出;当该有效且CS有效时,使8259A接受CPU送来的命令字。

R----D---- 3 I 读信号:低电平有效,来自CPU的输出;当CS有效且RD 有效时,使8259A将状态信息放到数据总路线上,供CPU检测D7-D0 4-11 I/O 数据线CAS0-CAS2 12,13,15I/O 单片工作时不用,级联时与从片相连S----P----/E----N----16 I/O 当工作在在缓冲器方式下控制缓冲器收发(EN),是输出信号,EN=1,数据方向由CPU→8259A;EN=0,方向相反;工作在非缓冲器方式时用来指定是主片(sp=1)还是从片(sp=0),是输入信号INT 17 O 向CPU发出的中断请求信号IR0-IR7 18-25 I 中断请求信号输入,来自外部接口电路I----N----T----A----26 I 中断响应信号,由此接收CPU发来的中断响应脉冲A0 27 I 和CS,WR,RD结合使用,用于内部寄存器选择,通常连接到CPU的A0地址线上在MCS-80/85系统上中断响应过程如下:(1)当IR7~IR0中有一个或几个中断源变成高电平时,使相应的IRR位置位。

第8章 中断和可编程中断控制器8259A

第8章 中断和可编程中断控制器8259A
占4个单元存储空间)。
■ 中断向量表:在 软件中断
8086系统中,位于内存 中断类型号:指令中 0~3FFH的1KB存储区
外部可屏蔽中断
域,共可存储256个中 中断类型号:中断源或硬 断向量 ,这一地址连续
件通过DB提供 的空间称为中断向量表
专 用 中 断 (5个)
000 004 008 00C 010
■ 中断优先级排队
软件查询中断优先级 中断优先级排队 硬件查询中断优先级 矢量中断优先级
§8.1 中断


一.中断的概念和分类
4. 中断优先级和中断嵌套
若响应后,优先权放到最低, 如何编制程序?
MOV BL,01H IN AL,20H TEST AL,BL JZ L1 JMP IR0_SRV L1: ROL BL,1 TEST AL,BL JZ L2 JMP IR1_SRV L2: ……
1. 中断的定义和功能
■ 中断系统的基本功能:
◇ 能够提出中断请求。当中断源要求CPU为其服务时,必须 先向CPU提出申请,这是通过发出中断请求信号实现的。 INTR、NMI、INT n、INTO ◇ 能够进行中断响应、中断服务、中断返回。 ◇ 能够进行中断屏蔽与开放(IF)。系统中大部分中断源是 可屏蔽的,称为可屏蔽中断,而个别的中断请求是不能被屏蔽的, 称为非屏蔽中断。 ◇ 能够识别中断源。8086通过中断类型号识别。 ◇ 能够进行中断优先级排队。
软件中断(INT n)
② 内部中断
由CPU的某些运算错误引起的中断 溢出中断、除法错 为调试程序设置的中断 单步中断、断点中断
不受 IF 影响,CPU对这些中断永远开放!
§8.1 中断


一.中断的概念和分类

第9章-可编程中断控制器8259

第9章-可编程中断控制器8259
12
8259A的主要功能 9.1 82TA
8位的双向三态缓冲器,用作8259A 与系统数据总线的接口。用来传输 初始化命令字、操作命令字、状态 字和中断类型码。
RD
WR
CS
SP / EN
13
8259A的主要功能 9.1 8259A的主要功能
8259A的内部结构
A0
INTA INT
8259A
SP / EN IR7
SP / EN IR7
SP / EN IR7
IR0
GND INT7
INT0
GND INT7
21
INT0
VCC 7 6 5 4 3 2 1 0 INT
8259A的工作过程 9.2 8259A的工作过程
多片级联的工作过程 级联时,从片上中断源的请求与响应过程: ●从片上的中断源通过IR0~IR7向从8259A发中断请求 , 使得IRR 的相应位置位。 ●若此时IMR中的相应位为0,即该中断请求没有被屏 蔽,则进入优先级排队。8259A分析这些请求,若条 件满足,则通过INT向主8259A发中断请求。
多片级联的工作过程
主IR0~ IR2 > 从A的IR0~ IR7 > 主IR4~ IR7 > 从B的IR0~ IR7
CS
A0
INTA INT CAS0 8259A CAS1 A CAS2
IR0
CS
INTA INT CAS0 8259A CAS1 B CAS2
IR0
A0
CS CAS0 CAS1 CAS2
CS
SP / EN
15
可编程中断控制器8259A 第9章 可编程中断控制器8259A
1
8259A的主要功能结构

计算机组成之.8259A详细说明资料

计算机组成之.8259A详细说明资料
当 CPU 允许可屏蔽中断,即 IF = 1 ,发回 INTA 信号, 8259A使ISR相应位置位,同时将IRR相应位清0,然 后送出中断类型码;
若为AEOI方式,直接清除ISR相应位;否则需要在中 断服务结束时,由CPU送出普通或特殊中断结束命
-9-
中断系统和中断控制器8259A
9.4.4 8259A的工作方式
- 11 -
中断系统和中断控制器8259A
3. 中断优先权设置方式
普通全嵌套方式:最基本、最常用的工作方式,也是默认工作方式。 此方式下, 8259A的 8 个中断请求按照 IR0优先权最高、 IR7 优先权最 低的固定优先权顺序,所以对于单片8259A最大中断嵌套深度为8级; 特殊全嵌套方式:与普通全嵌套方式基本相同,优先权按照 IR0 优先 权最高、 IR7优先权最低的固定顺序。不同的是允许同级中断请求产 生 INTR 信号给 CPU ,即可以实现同级中断嵌套。该方式一般用在 8259A级联系统中,将主片设定为特殊全嵌套方式,当从片的某一中 断请求被处理时,保证从片较高优先权中断源能够得到响应;
- 16 -
中断系统和中断控制器8259A
8259A缓冲方式级联
系统数据总线
B7 ~B0 T 74LS 245 OE A7 ~A0
- 15 -
中断系统和中断控制器8259A
7. 级联方式
一个主8259A可以带至多8个从8259A,将中断源扩展到64级; 从片的 INT 接至主片的 IRi 端,从片上的中断请求通过主片的 INT 送至 CPU; CPU的中断响应信号INTA分别送至主、从片上; 主片在级联线CAS2~CAS0上送出标识符编码,对应编码相同的从片 可以获得INTA信号; 在第二个INTA负脉冲时,主片不动作,由从片送上中断类型码; 通常主片的优先权控制采用特殊全嵌套方式,允许同级中断产生嵌套。

7.5 可编程中断控制器 8259A知识讲解

7.5  可编程中断控制器  8259A知识讲解
操作命令字写入寄存器OCW1~OCW3,由应 用程序设定,用来对中断处理过程进行控制,在 系统运行过程中,操作命令字可以重新设置。
2、 初始 化命 令字
ICW
见下页
8259A芯片的初始化流程
写ICW1 A0=0,D4=1
写ICW2 A0=1
是 SNGL=1 否 写ICW3 A0=1
否 IC4=1 是 写ICW4 A0=1
按顺序对A0=1端 口写入命令字
ICW3 10 0 0 0 0 1 1
IR0 IR1 INT IR6
IC1
IR7
IR0
INT
IR1
IC2
IR0
INT
IR1
IC3
第一个INTA主片向 从片发 ID编码,从片经 过比较自己的ID确认, 则在第二个INTA时将类 型号发至数据总线。
– 中断优先权的管理 – 中断屏蔽的管理 – 中断结束的管理
二、 8259的引脚与内部功能结构
INTA
INT
D7~D0
数据 总线 缓冲器
控制电路
RD WR
A0 CS
CAS0 CSA1 CAS2 SP/EN
读/写 控制 电路
级联 缓冲器/ 比较器
中断 服务 寄存器
(ISR)

中断
IR0
先 权 判
请求 寄存
7. 读/写控制逻辑 – 完成来自CPU的读写命令,及与片选信号CS与A0(0或1)决定 访问片内某个Reg。 通过OUT指令WR有效,把命令字写入ICW 和OCW. 通过IN指令RD有效,将IRR、ISR或IMR内容通过数据 总线读入CPU。
8. 级联缓冲器/比较器(用于多片8259之间的连接) – CAS2~CAS0主—从结构中,作为主片的8259A,是输出线,作 为从片的8259A,CAS2~CAS0是输入线,两者互连。 – SP/EN——从片编程/允许缓冲信号线,是个双功能引脚。 ①缓冲方式,输出信号EN,控制缓冲器传送方向。 ②非缓冲器方式,它是输入信号,用于规定8259A是主 (SP=1) 还是从(SP=0)。在只有一片8259A的系统中, SP/EN接高电平。

可编程终端芯片8259A

可编程终端芯片8259A
31
实例系统连接图
D7 ~D0 A0 INTA INTR
数据总线
11 10 9 8 7 6 5 4 17 26 8 1 U3 A 2 3 1 3 2 27 U4 D0 D1 D2 D3 D4 D5 D6 D7 INT INTA CS RD WR A0 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 18 19 20 21 22 23 24 25
VCC
SP/EN
16
地址20H,21H
CAS0 CAS1 CAS2 12 13 15
11 10 9 8 7 6 5 4
D0 D1 D2 D3 D4 D5 D6 D7
从片
U2 8 25 9 A
CAS2 CAS1 CAS0 INT IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
15 13 12 17 18 19 20 21 22 23 24 25
D7~D0为8位双向的数据线 A0:端口选择信号(两个端口地 址) IRi:8个中断源中断请求端 INT:中断请求输出信号


INTA:中断响应输入信号
RD和WR:读/写控制信号 CS:片选信号 SP/EN:级联/缓冲控制 (1)级联时输入:SP:1=主片, 0 =从片 (2)缓冲时输出:EN:1=CPU写,0=CPU读

19
结束中断处理的方式
自动结束方式:系统一旦进入中断服务 程序,8259A就自动将当前中断服务寄存 器相应位清0。(在第二个中断响应脉冲) 非自动结束方式:在中断服务程序结束, 返回主程序之前发一条中断结束命令, 使8259A的当前最高优先级的中断对应的 ISR复位。

20
连接系统总线的方式

5第五章 可编程中断控制器8259A

5第五章 可编程中断控制器8259A

7个寄存器被分为两组,第一组寄存器为4个,分别为ICW1~ICW4,它们用来 容纳初始化命令字;第二组寄存器为3个,分别为OCW1~OCW3,称为操作控 制字。
第五章 中断控制器8259A
(2)8259A的组成框图
8位数据总线缓冲器:它是8259A与系统数据总线的接口,为双向三态缓冲器。CPU 控制逻辑:按照编程设置的工作方式管理8259A的全部工作。在IRR中有未被屏蔽的中断请求 级连缓冲器/比较器:这个功能部件在级连方式的主从结构中,用来存放和比较系 读/写控制逻辑:该部件接收来自CPU的读/写命令,配合端的片选信号 中断屏蔽寄存器(IMR):它是对8级中断请求分别独立地加以禁止和允许 位时,控制逻辑输出高电平的INT信号,向CPU申请中断。在中断响应期间,它允许ISR的相 统中各8259A的从设备标志(ID)。与此相关的是三条级连线CAS0~CAS2和从片 对8259A的控制字是通过它写入的;8259A的状态信息通过它读入CPU;在中断响 和A。端的地址输入信号,完成规定的操作。 的寄存器。若某位置1,则与之对应的中断请求被禁止。 应位置位,并发出相应的中断类型号,通过数据总线缓冲器输出到系统总线上。在中断服务结 编程/允许缓冲器线。 应周期,8259A也是通过它送出中断矢量。
第五章 中断控制器8259A
第五章 中断控制器8259A
(5)8259A接受收第一个负脉冲后,8259A完成以下3个动作: ① 使中断请求寄存器IRR的锁存功能失效。这样,在IR7~IR0线上的 中断请求信号就不予接收,直到第二个负脉冲到达时,才又使IRR的锁存功 能有效。 ② 使当前中断服务寄存器ISR中的相应位置1,(即把允许中断的最高 优先级请求位置入ISR),以便为中断优先级栽决器以后的工作提供判断依 据。 ③ 使IRR寄存器中的相应位清零。 (6)8259A接收到第二个负脉冲后,8259A完成下列2个动作动作: ①将中断类型寄存器中的内容ICW2送到数据总线的D7~D0,CPU将 此作为中断类型码 。 ②如果ICW4(方式控制字)中的中断自动结束位为1(即,若ICW=1), 那么,在第二个脉冲结束时,8259A会将第一个脉冲到来时设置的当前中 断服务寄存器ISR的相应位清零。 (7)CPU接收到中断类型号,将它乘以4,就可以从中断矢量表中取出 中断服务程序的入口地址,转至中断服务程序。

第8章-可编程中断控制器8259A

第8章-可编程中断控制器8259A

12
17
13
16
14
15
VCC
A0
INTA
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT
SP/EN
CAS2
6
内部寄存器选择。 A0=0:ICW1,OCW2 OCW3 A0=1:ICW2~ICW4, OCW1
从设备编程/ 缓冲器允许 引脚
8.1 8259A 的主要功能
8259A的内部结构
缓冲
比较
CAS0 CAS1 CAS2
初始化命令 寄存器组
操作命令 寄存器组
中断 服务 寄存器
(ISR)
01001001
IR6中 优断 先IR3 010级 析0分 器1000
(PR)
中断 请求 寄存器
(IRR)
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
中断00屏0蔽00寄0存0器1 (IMR)
8
8.1 8259A 的主要功能
存放正在服82务5的9A中的断内源级部别结,构当某个
中断被响应后,CPU发出第一个INTA 信号,ISR中的8 相应数位据置“18”,一直 被保存D到7~该D0中断处理总结线束。当多重中 断时,ISR的多位同缓时冲被置1。
INT
控制电路 内部控制逻辑
INTA
RD WR
主要内容
1
8259A的主要功能结构
2
8259A的工作过程
3
8259A的中断管理
4
8259A的编程
5
8259A的应用举例
3
NUIST
8.1 8259A 的主要功能
8259A的主要功能 1片8259A可以管理8级中断,且可以多片级联,最多可以用9 片构成64级的主从式中断管理。 对任何一级中断都可以单独屏蔽。 可以通过编程,使8259A工作在不同方式下,使用灵活。 能根据编程提供中断源的中断类型码。

可编程中断控制器Intel 8259A

可编程中断控制器Intel 8259A

1.1 8259A 的基本结构
接口技术
1.内部结构
INTA
INT
D7~D0
数据总线 缓冲器
控制逻辑
RD WR
A0 CS CAS0 CAS1 CAS2
SP/EN
读/写 控制 逻辑
级联缓冲/ 比较器
正在 服务 寄存器 (ISR)
优先级 分析器
(PR)
中断请求 寄存器 (IRR)
中断屏蔽寄存器(IMR)
接口技术
3.初始化命令字
ICW1
ICW2
N
级联?
Y
ICW3
要ICW4?
Y
N
ICW4
芯片就绪 接受中断请求
图7.9 初始化命令字编程流程图
1.3 8259A的应用
接口技术
例7.3:设8259A的端口地址为80H和81H,系统正
在为IR4中断服务,若将8259A设置成特殊屏蔽方 式,并用OCW1屏蔽了IR4。此时IR7中断请求,且 中断屏蔽寄存器中的M7=0,于是造成IR4的中断 服务程序被IR7的中断服务程序嵌套。如果要从IR7 中断服务程序返回之后继续执行IR4的中断服务程 序,且撤销对IR4的屏蔽,撤销特殊屏蔽方法,使 8259A回到原有的优先级方式工作。试编写初始化
(4)8259A对响应的动作 ISR 的 对 应 位 置 “ 1 ” , 同 时 把 对 应 的 IRR 位 清 “0”;将其中断类型号送入数据总线
1.2 8259A的编程
接口技术
2.中断优先级管理方式 完全嵌套方式 有固定的优先级, IR0最高,IR7最低,依次排列 特殊全嵌套方式 在级联方式中的主片应采用此方式 自动循环方式 中断请求IR0~IR7轮流具有最高的优先级 特殊循环方式 程序指定某个中断源的优先级别为最低级 特殊屏蔽方式 根据软件的要求,动态地改变系统的优先结构

第9章 可编程中断控制器8259A

第9章  可编程中断控制器8259A


MOV AX,OFFSET“过程名” STOSW MOV AX,SEG“过程名” STOSW
例2: 8259A在IBM-PC/AT中的应用 采用二片级联,连接如图9-17,从片的 INT接主片的IR2,主片的SP=1,从片的 SP=0,INTA直连即可.采用完全嵌套方 式。 优先级别为: IR0>IR1>IR8>……>IR15>IR3>… …>IR7.
从片把n与ICW3中ID2~ID0比较,若 相同,则第二个INTA-时,从片送上中 断类型码ICW2到数据总线。
二、工作方式 1、中断优先权管理方式 有5种: (1)完全嵌套方式 固定优先级别,IR0最高,IR7最低,若 收到的中断级别比ISR中的高,则响应 较高级的中断请求,实现中断嵌套。 (2)自动循环方式(等优先权方式) 服务结束,优先权降为最低,下一级变 成最高。 例:一开始为IR0~IR7,若响应IR3后, 优先级为IR4、IR5~IR7、IR0~IR3。
(2)自动EOI方式 系统一进入中断,在第二个INTA的后沿,自 动清除。适用于单片系统,且不会嵌套的情况。 三、中断工作顺序(中断响应过程) (1)IR0~IR7有高电平,相应的IRR位置 “1”; (2)若IMR中对应位为0,则通过进入PR; (3)PR选中最高优先级且比当前更高的, 用INT向CPU发INTR; (4)若IF=1,CPU响应中断,发第一个 INTA-,最高优先级的ISRn=1,相应的 IRRn=0
(5)发第二个INTA时,ICW2向CPU送中 断类型号到数据总线。 注:若是自动结束中断(AEOI),则第二个 INTA时,清ISR对应位,否则要保持到中断 服务程序结束,CPU发EOI时为止。
四、8259A的引脚信号 排列如图9-6和表9-2 (1)与CPU的连接 D7~D0:双向数据总线,写命令字和读寄存 器。 CS:芯片选通信号,由地址A15~A2译码。 A0:片内端口选址。8088系统,接CPU的A0, 8086系统接CPU的A1,而A0=0。 RD、WR:读写/信号。 INT:中断请求,接CPU的INTR。 INTA:中断响应信号,第一个负脉冲通知外设 中断被响应,第二个负脉冲CPU读取中断类型号。

第十章8259A可编程中断控制器

第十章8259A可编程中断控制器
第四节 8259A可编程中断控制器
• 基本功能:
– 单片8259A可以连接8个中断源,多片8259连接 后,可以控制多达64个中断源; – 可以设置中断源的中断类型号;在CPU应答后, 能自动地向CPU发送中断类型号; – 能管理中断源的优先级,并有固定优先级(自 动嵌套方式)和循环优先级(相等优先级)两 种管理方式; – 通过编程初始化,使8259A工作在不同工作方式
三、8259的工作方式
1. 中断优先权管理方式 1)完全嵌套方式 IR0~IR7的中断优先级都是固定的:IR0最高;IR7最低。在 CPU是开中断状态下,可以实现中断嵌套,即在处理低级别 中断时还可申请高级中断。 8259默认的优先级控制方式就是完成嵌套方式。 2)循环优先级方式。 即非固定优先级。初始时优先级仍然由IR0到IR7从高到低 排列。 某个中断输入被响应后,这个输入的优先级降为最低,原 来比它低一级的输入的优先级上升为最高。其余的仍然依 次排列。 如IR4的中断被响应后,优先级由高到低的顺序为: IR5 IR6 IR7 IR0 IR1 IR2 IR3 IR4。
3)特殊完全嵌套方式 在级联方式连接中,8259A的工作方式同单片,因对从片而言, 高级中断不能中断低级中断,从片不能实现完全嵌套方式,因此 主片可采用特殊完全嵌套方式.
特殊完全嵌套方式使得主片能识别从片的内部优先级.具 体如下:
1)就主片而言,在中断处理过程中,CPU允许响应同级或与更 高级别中断请求.从片的INT端连入主片的某一IR,则从片的各 级请求均处于同一优先级.当从片的某一请求正被处理时,若该 片内有更高优先级的请求提出,则主片能够开放来自同一从片 的新请求. 2 )在非自动结束方式,CPU每处理完从片的一个中断请求, 向从片发出中断结束命令EOI,处理完一个从片所有等待处理的 中断请求后,才向主片发中断结束命令.所以在从片的中断服务 结束时,除向从片发EOI命令外,还需检测其ISR各位是否为全0, 若全为0,才向主片发EOI命令.

8259a工作原理

8259a工作原理

8259a工作原理
8259a是一种程序可编程中断控制器,用于管理和控制计算机
系统中的中断请求。

它可以与主机处理器进行通信,并根据不同的中断请求向处理器发送适当的中断信号。

该芯片的工作原理可以简要概括为以下几个步骤:
1. 初始化:在系统启动时,主机处理器将会对8259a进行初始化设置。

这些设置包括中断请求级别的优先级、中断控制方式以及中断向量的基地址等。

2. 中断请求检测:一旦系统中有设备发出中断请求,8259a会
检测到该请求。

这些中断请求可以来自于各种外部设备,如键盘、鼠标、硬盘等。

3. 中断请求优先级判断:8259a会根据中断请求的优先级进行
判断,并选择最高优先级的请求进行处理。

这一过程是基于主、从8259a之间的级联配置来完成的。

4. 中断信号发送:一旦确定了中断请求的优先级,8259a会向
主机处理器发送中断信号。

该信号将中断处理器的当前操作,将控制权转移到相应的中断服务程序,以处理中断请求。

5. 中断服务程序的执行:一旦中断信号被接收,主机处理器将会执行相应的中断服务程序。

这个程序会根据中断的类型和来源进行特定的操作,例如读取键盘输入、响应硬件故障等。

总的来说,8259a的工作原理是通过中断请求的检测、优先级判断和中断信号发送来进行中断控制和处理。

它在计算机系统中起到了关键的作用,保证了系统的稳定运行和设备之间的协调工作。

中断系统与可编程中断控制器8259A

中断系统与可编程中断控制器8259A

8.1 中断概念及处理过程
一、中断系统中的名词概念-中断
中断:指CPU暂停正在执行的程序,转去执行处理中断事件 的中断服务程序,待执行完中断服务程序再返回到原被中断 的程序继续执行。

中断申请
程 序
中断服 务程序
返 回
5
8.1 中断概念及处理过程
一、中断系统中的名词概念-中断源及分类

8086用8位二进制码表示一个中断类型,共有256个中断,可 中分断为源两:大引类起:中断的原因,或产生中断请求的来源
可屏蔽中断 INTR(高电平)
外部中断源 非可屏蔽中断 NMI(上升沿)
中断源
除法错中断
分类
单步中断
内部中断源 断点中断
运算溢出中断
软中断
6
8.1 中断概念及处理过程
一、中断系统中的名词概念-中断源及分类
8086中断结构
外部不可屏蔽中断


NMI
INTR

8086 微处理器中断逻辑
INTA 8259A
中断服务程序:处理中断事件的程序段。如除法错中断服 务程序、输入输出中断服务程序等。
中断服务程序与一般的子程序对比:子程序的调用是由程 序设定,因此是确定的而中断服务程序由某个事件引发, 它的发生往往是随机的、不确定的。
屏 蔽

INT n INT 3 INTO 除法 单步

指令 断点 溢出 出错 中断


7
8.1 中断概念及处理过程
一、中断系统中的名词概念-中断类型号 为了能使CPU识别中断源,从而能正确地转向该中断源对应的 中断服务程序入口,8086用8位二进制编码来给中断源编号, 该编号称为中断类型号,共有256个中断。

第七章 中断控制器8259A

第七章 中断控制器8259A

引脚信号
INT:向CPU发出的中断请求信号,输出,与CPU的INTR端相连。
INTA:CPU给8259A的中断响应信号,输入。8259A要求两个负脉
冲的中断响应信号,第一个是CPU响应中断的信号,第二个INTA结束 后,CPU读取8259A送去的中断类型号。
CAS2~CAS0:双向级联信号线。8259A作主片时,为输出线,作从片 时,为输入线。与SP/EN配合实现8259A级联。
6/15/2019
共98页
4
开中断 关中断
可屏蔽中断的工作流程
6/15/2019
共98页
5
中断响应过程(以可屏蔽中断为例)
1、外设通过INTR向CPU发出中断请求; 2、CPU在执行完现行指令后,响应该中断请求(IF=1); 3、外设向CPU提供中断类型号; 4、CPU将PSW、CS、IP压入堆栈; 5、清除IF、TF(默认情况下为不允许中断嵌套); 6、从中断向量表中取出中断向量,置入IP、CS; 7、执行中断例程; 8、在中断例程中,如果允许中断嵌套,则开中断(STI); 9、执行IRET,从堆栈中弹出IP、CS、PSW。
MOV DX,INTOFF MOV AX,INTSEG MOV DS,AX MOV AX,2580H ;恢复系统原80H中断向量 ;注意:先设置DX,再设置DS。因为如果先改变DS, ;就不能准确获得INTOFF变量值。 INT 21H MOV AX,4C00H INT 21H
6/15/2019
共98页
INTR_PROG: PUSH STI …… CLI POP IRET
……
;中断服务子程序 AX
AX
6/15/2019
共98页
12
中断向量的设置
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可编程控制器8259A知识点总结
1、主要性能
(1)具有8级中断优先控制,通过级连可以扩展至64级优先权控制。

(2)每一级中断都可以通过初始设置为允许或屏蔽。

(3)工作方式可以通过编程设置,使用灵活。

(4)在中断响应周期可提供中断向量或CALL指令和地址。

2、结构功能
(1)中断请求寄存器IRR:保存来自IR0—IR7的请求信号。

(2)当前中断服务寄存器ISR:保存正在服务的中断。

(3)中断屏蔽寄存器IMR:每一位可对IRR相应中断源进行屏蔽,但对高优先权的输入线屏蔽不影响低优先权的输入。

(4)数据总线缓冲器:与系统总线的接口,三态。

(5)读/写控制逻辑:读出、写入控制。

(6)级连缓冲器:级连作用:使中断源最多扩展至64级。

(7)控制逻辑:片内控制,按编程工作。

3、引脚分析
(1)电源线(2条)
(2)数据总线(8条)
D7 ~ D0:双向数据线,接数据总线的低8位
(3)中断线(10条)
IR7 ~ IR0:外设中断请求输入端,可编程为脉冲或电平触发
INT:向CPU发出的中断请求信号
INTA:CPU向8259A发的INTA中断响应信号
(4)读写控制线(4条)
CS:片选信号,低电平有效
RD:读信号,低电平有效
WR:写信号,低电平有效
A0:8259A内部寄存器选择信号(0:偶地址,1:奇地址)
(5)级联线(4条)
CAS2 ~ CAS0:级联信号线,需与SP/EN配合
SP/EN:作输入时为SP(0:从片,1:主片)
作输出时为EN(控制总线驱动方向)
(SP: Slave Program / EN: Enable Buffer)
片选,读,写都是LO有效。

4、中断顺序
8080/8085
(1)至少一条中断请求输入线变高,IRR响应位置位。

(2)若请求中至少一条允许,由INT向CPU送中断请求信号。

(3)若CPU在开中断状态,则在当前指令执行完发出INTA作为响应。

(4)接受到中断响应信号后,中断请求源最高优先权的位的ISR相应位置位,在IRR中相应位复位,并送出CALL指令的操作码——11001101。

(5)CPU接到CALL后,就引起CPU产生另两个中断响应周期。

(6)额外两个中断响应周期中,通过数据总线向CPU送对应终端服务程序入口地址,低八位在前一个中断响应周期送出。

(7)CPU接收完整的三字节的CALL指令后,执行中断服务程序。

结束过程:自动结束中断模式AE01,第三个INTA(中断响应信号)信号结束后,中断源的ISR复位。

其他,在中断服务程序结束后发出EOI命令,ISR中断的相应位才复位。

8088/8086
(1)至少一条中断请求输入线变高,IRR响应位置位。

(2)若请求中至少一条允许,由INT向CPU送中断请求信号。

(3)若CPU在开中断状态,则在当前指令执行完发出INTA作为响应。

(4)收到中断响应信号INTA后,最高优先权的ISR置位,相应的IRR复位。

在这个周期中,不向系统总线送出任何内容。

(5)CPU启动另一个中断响应周期,并输出INTA。

在这个周期内,向数据总线送一个8位中断向量。

向量进入CPU乘以4就可以从中断服务程序入口地址表中取出中断服务程序入口地址。

(6)结束中断:自动结束中断模式AE01:第二个INTA结束,使中断源在ISR中的相应位复位。

其他,在中断服务程序结束,发出EOI命令结束。

5、中断响应周期送出内容
(1)8080/8085
NO.1:CALL指令。

NO.2:入口地址低8位。

间隔为4则A7—A5由初始化决定,A4—A0自动插入。

间隔为8则A6、A7初始化决定,其他自动插入。

NO.3:入口地址高8位,由初始化规定。

(2)8088/8086
NO.1:无内容
NO.2:8位中断向量,T7—T3初始化规定,低三位自动插入。

6、8259A编程
(1)初始化编程
总过程:
CPU送给8259A2—4字节的初始化命令字,开始工作前必须用初始化命令字处在开始点。

流程图:
初始化字ICW1:
ICW4=1,需要ICW4,=0则不需要。

SNGL=1单片,=0级连。

ADI=1地址间隔为4,=0地址间隔为8。

LTIM=1,电平触发方式,=0边沿触发方式。

A7—A5,中断服务程序地址(8080/8085有效)。

初始化命令字ICW1写入后自动发生下列事件:
边沿敏感电路复位
中断屏蔽寄存器清零
IR7被赋予优先权7
从模式地址量为7
特殊屏蔽模式清除,状态读置位IRR
若IC4=0,则关于IC4的功能全置为0。

8088/8086:确定中断向量的T7—T3,此时D2—D0无用。

初始化字ICW3:
只在多片级连时需要,上主下从。

初始化字ICW4:
Upm=1,8088/8086模式,=0,8080/8085模式
AEOI=1,自动EOI,=0,正常EOI
BUF、M/S=0X,非缓冲方式,=10,缓冲方式/从,=11,缓冲方式.主
SFNM=1,特殊全嵌套方式,=0,非特殊的全嵌套方式
(2)工作方式编程
总过程:
CPU向芯片送3字节的工作命令字OCW,规定8259A的工作方式:
全嵌套,特殊全嵌套,结束中断,中断请求触法,数据缓冲,多片级连,查询。

可以在初始化后的任何时间写入。

操作命令字OCW1
中断屏蔽字
=1,相应的位屏蔽
=0,相应的位复位屏蔽
操作命令字OCW2
带*为需要L2—L0
P=1,查询指令,=0,非查询指令。

ESMM、SMM=10,复位特殊屏蔽,=11,置位特殊屏蔽。

在OCW3的D2位的P置1后的下一个读命令,8259A看作中断响应信号,使得最高优
I=1,有中断请求。

W2—W1:有中断请求的最高优先权编码。

优先权自动旋转示意图:
旋转前的ISR
7、8259A应用
与8051相连
51没有INTA信号线,必须通过RD信号进行转换产生,关系如下:
程序设定8259A为完全嵌套工作模式,中断间隔为4,IR0入口地址为1260H。

工作在8080模式。

(1)初始化程序
CLR EA 8051关中断
MOV DPTR,#7FFEH 准备送ICW1地址
MOV A,#7EH 设定ICW1命令字
MOVX @DPTR,A ICW1送入8259A
INC DPTR 准备送如ICW2地址
MOV A,@12H 12H为中断入口的高8位地址
MOVX @DPTR,A ICW2送入8259A
SETB EA 8051开中断
INT为负跳变触发
SETB IT0 选择0
INT中断
SETB EX0 允许0
(2)中断服务程序
ORG 003H 8051的INT0中断入口
CALL INT0
RETI
INT0:PUSH PSW 保护现场
PUSH A
MOVX A,@DPTR 发第一个INTA,CALL指令舍弃MOVX A,@DPTR 发第二个INTA取入口地址低8位MOV R2,A 入口地址低8位暂存在R2 MOVX A,@DPTR 发第三个INTA取入口地址高8位MOV DPH,A 高8位地址送DPH
MOV A,R2 取低8位地址
MOV DPL,A 低8位地址送DPL
CLR A
JMP @A+DPTR 转向IRn的服务程序
IRn的服务程序如下:
ORG 1260H
LJMP IR0 IR0F服务程序
NOP
……
IR0:……
JMP BACK
IR1:……
JMP BACK
……
……
IR7:……
JMP BACK
BACK:MOV DPTR,#7FFEH 准备地址
MOV A,#20H 设OCW2的EOI
MOVX @DPTR,A OCW2送8259A
POP A
POP PSW
RET 子程序返回。

相关文档
最新文档