第7章_中断控制器8259

合集下载

第7章_中断系统和中断控制器8259A

第7章_中断系统和中断控制器8259A

2021/8/14
微机原理及应用
5
广东工业大学 自动化学院 自动控制系 陈玮
中断分类
根据中断与CPU的相对关系,中断分为内部中 断和外部中断。
内部中断可以是中断指令设置的中断,调试程 序时设置的中断,或是程序运行过程中发生的非预 期情况而产生的中断;
外部中断则是由直接连到CPU引脚上的信号引 起的中断,如外部设备请求服务中断,实时时钟定 时到中断,电源掉电等等。
当有一中断源提出中断请求时,CPU首先判断 是否响应该中断?
* 如果CPU正在执行的是重要的程序,可以暂不 响应,即关中断;
*当CPU完成了当前的重要程序后,开中断予以 响应,同时,保存断点,转入中断处理;
* 当中断处理完后,恢复断点从而回到被中断运 行的原程序继续执行;
2021/8/14
微机原理及应用
2021/8/14
微机原理及应用
19
广东工业大学 自动化学院 自动控制系 陈玮
3、中断优先权管理
(1)软件确定中断优先权 软件法是在CPU响应中断后,用软件查询确定
哪个中断源申请中断,先被查询的先响应。 查询次序决定了中断优先权次序,最先被查询
的中断源具有最高的优先权。
2021/8/14
微机原理及应用
2021/8/14
微机原理及应用
3
广东工业大学 自动化学院 自动控制系 陈玮
1、中断及中断源
中断是一种让CPU挂起正在执行的程序而转去 处理特殊事件的操作。
CPU暂时停止执行原来的程序而转去中断处理, 处理好中断服务后再返回继续执行原来的程序,这 样一个过程就是一个中断过程 。
能够引起CPU中断的事件称为中断源 。 CPU中断系统的基本功能 。

总结介绍8259中断控制器

总结介绍8259中断控制器

总结介绍8259中断控制器8259中断控制器Overview前言8259A芯片是一个中断管理芯片,中断的来源除了来自于硬件自身的NMI中和来自于软件的INT n指令造成的软件中断之外,还有来自于外部硬件设备的中断,这些中断的可屏蔽的。

这些中断也都通过PIC(Programmable Interrupt Controller)进行控制,并传递给CPU。

一个8259A芯片最多可接收8个中断源,但由于可以将2个或多个8259A芯片进行级连(cascade),并且最多可以级链到9个,所以最多可以接64个中断源。

如今绝大多数的PC 都拥有2个8259A,这样最多可以接收15个中断源。

通过8259A可以对单个中断源进行屏蔽。

在一个8259A芯片上有如下几个内部的寄存器:1.Interrupt Mask Register(IMR)。

2.Interrupt Request Register(IRR)。

3.In Service Register(ISR)。

IMR被用作过滤被屏蔽的中断,IRR被用作暂时放置未被进一步处理的Interrupt,当一个Interrupt正在被CPU处理时,此中断被放置在ISR中。

除了这几个寄存器之外,8259A还有一个单元叫做Priority Resolver,当多个中断同时发生时,Priority Resolver根据它们的优先级,将最高优先级的优先传递给CPU。

工作原理当一个中断请求从IR0到IR7中的某根线到达IMR时,IMR首先判断IR是否被屏蔽,如果被屏蔽,则此中断请求被丢弃;否则,则将放入IRR中。

在此中断请求不能进行下一步处理之前,它一直被放置在IRR中。

一旦发现处理中断的时机已到,Priority Resolver将从所有被放置于IRR中的中断中挑选出一个优先级最高的中断,将其传递给CPU去处理。

IR号越低的中断优先级级别越高,比如IR0的优先级是最高的。

8259A通过发送一个INTR(Interrupt Request)信号给CPU,通知CPU有一个中断到达。

《8259中断控制器实验》的实验报告

《8259中断控制器实验》的实验报告

实验六8259中断控制器实验实验目的(1)学习中断控制器8259的工作原理。

(2)掌握可编程控制器8259的应用编程方法。

实验设备PC微机一台、TD-PIT+实验系统一套。

实验内容1.单中断应用实验(1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。

(2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello ”,中断5次后退出。

2 •扩展多中断源实验利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。

编写程序对8259控制器的IR0和IR1中断请求进行处理。

实验原理1.8259控制器的介绍中断控制器8259A 是Intel 公司专为控制优先级中断而设计开发的芯片。

它将中断源 优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A 进行编程,就可以管理 8级中断,并选择优先模式和中断请求方式,即中断 结构可以由用户编程来设定。

同时,在不需增加其他电路的情况下,通过多片 8259A 的级连,能构成多达64级的矢量中断系统。

它的管理功能包括: 1 )记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向 CPU 专送中断类型号。

8259A 的内部结构和引脚如图 6-1所示。

8259A 的命令共有7个,一类是初始化命令字,另一类是操作命令。

8259A 的编程就是根据应用需要将初始化命令字 ICW1-ICW4和操作命令字0CW1-0CW3别写入初始化命令 寄存器组和操作命令寄存器组。

ICW1-ICW4各命令字格式如图 6-2所示,0CW1-0CW 各命令字格式如图6-3所示,其中OCW 用于设置中断屏蔽操作字, OCW 用于设置优先级循环方式和中断结束方式的操作命令字,OCW 用于设置和撤销特殊屏蔽方式、 设置中断查询方式以及设置对8259内部寄存器的读出命令。

《微机原理与接口》知识点第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的各个模块的官方描述如下:。

第七章--中断系统和中断控制器8259APPT课件

第七章--中断系统和中断控制器8259APPT课件
中断源随机发出中断请求信号,CPU 在现行指令周期结束时,才检测有 无中断请求。
发出中断请求的条件:外部设备已准 备好,且该外设的中断请求没有被 系统评屏蔽。
-
5
2. 中断排队和中断响应
概念:CPU接收到中断请求后,从 中止现行程序到转向中断服务程序 入口的过程,称为中断响应。
条件:
1)中断是开放的;
中断类型号×4——该中断向量在表中 起始单元的地址。
寻找4个连续存储单元,获得IP及CS
-
25
17H*4=90H IP
46 00H
CS 3B A4H
例 n=24H
00H 46H A4H 3BH
0000:0090H 0000:0091H 0000:0092H 0000:0093H
中断处理子程序
3BA4:4600H
1) AH中预置功能号25H;
2) AL中预置中断类型码; 3 ) DS:DX中预置中断服务程序的人口地址 (段地址和偏移地址分别置人DS和DX)。 预置完以上参数后,执行INT21H指令就可把 中断服务程序的人口地址置人中断向量表 中适当的位置。
-
29
例7-2 设中断服务程序的人口地址为INTSUB,
1)AL中预置入中断类型码;
2)AH中预置入功能号35H。
执行INT21H指令,ES和BX中分别是中断 服务程序入口地址的段地址和偏移地址。
-
31
7.2.4 8086/8088的中断处理过程
中断处理过程包含:中断请求、中断 排队、中断响应、中断服务和中断返 回。
1. 中断响应条件,有内部中断发生或 NMI /INTR引脚上有效中断请求信号 且IF=1时,待CPU执行完当前指令后 方能响应中断。

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脚在中断响应序列执行期间变为低电平。

第7章 中断控制器

第7章 中断控制器

全嵌套方式
8259A在初始化工作完成后若未设定其它的工作方式, 在初始化工作完成后若未设定其它的工作方式, 在初始化工作完成后若未设定其它的工作方式 就自动进入全嵌套方式 全嵌套方式特点 特点: 全嵌套方式特点: 1、中断请求的优先级固定,其顺序是 优先级固定, 最高,逐 、中断请求的优先级固定 其顺序是IR0最高 逐 最高 次减小, 次减小,IR7最低 最低 2、中断服务寄存器 、中断服务寄存器ISR保存优先权电路确定的优先 保存优先权电路确定的优先 级状态,相应位置“ ,并且一直保持这个服务“记录” 级状态,相应位置“1”,并且一直保持这个服务“记录” 状态,直到CPU发出中断结束命令为止 状态,直到 发出中断结束命令为止 3、在ISR置位期间,不再响应同级及较低级的中断 置位期间, 、 置位期间 请求,而高级的中断请求如果CPU开放中断的话仍能够得 开放中断的话仍能够得 请求,而高级的中断请求如果 到中断服务 4、IR7~IR0的中断请求输入可分别由中断屏蔽寄存 、 的中断请求输入可分别由中断屏蔽寄存 的相应位屏蔽与允许, 器IMR的D7~D6的相应位屏蔽与允许,对某一位的屏蔽 的 的相应位屏蔽与允许 与允许, 与允许,操作不影响其它位的中断请求操作 全嵌套工作方式由ICW4的D4=0来确定 全嵌套工作方式由 的 来确定 17
10
可编程中断控制器8259A 第二节 可编程中断控制器 1. 8259A的引脚 的引脚 2. 8259A的中断顺序 的中断顺序 3. 8259A的编程 的编程 4. 8259A的工作过程 的工作过程
11
8259A中断控制器 中断控制器
Intel 8259A是可编程中断控制器 是可编程中断控制器PIC 是可编程中断控制器 可用于管理Intel 8080/8085、 可用于管理 、 8086/8088、80286/80386的可屏蔽中 、 的可屏蔽中 断 8259A的基本功能 的基本功能

微机原理 第七章中断控制器

微机原理 第七章中断控制器

CAS2
3
2 . 8259A的编程结构和工作原理
4
编程结构 (1)上半部分:处理部件 中断请求寄存器IRR 中断优先级裁决器PR 当前中断服务寄存器ISR (2)下半部分:7个寄存器 ICW1~ICW4 OCW1~OCW3
5
中断请求寄存器IRR
保存8条外界中断请求信号IR0-IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求
1. 中断优先权管理方式: 可见,8259A (1) 全嵌套方式 (2)特殊全嵌套方式 有多中工作方式, (3)自动循环方式 (4)特殊循环方式 使用起来很灵活, 2. 屏蔽中断源的方式 不易掌握,所以介 (1)普通屏蔽方式 (2)特殊屏蔽方式 绍编程之前,先对 3. 中断结束方式 其工作方式分类进 (1) 自动结束(AEOI)方式 行简要的介绍。 (2) 非自动结束(EOI)方式: ① 普通EOI方式;② 特殊EOI方式 4. 系统总线的连接方式(8259A级连方式) (1) 缓冲方式 (2)非缓冲方式 5. 中断请求的引入方式 (1) 边沿触发 (2)电平触发 (3)中断查询
• 优先级特殊循环方式:初始优先级队列是由编程确定的。 也可由操作命令字OCW2来设定。
10
2、屏蔽中断源的方式
• 普通屏蔽方式:8259A的每个中断请求输入端都可以通过 对应屏蔽位的设置被屏蔽,通过设置操作命令字OCW1使 屏蔽器中任一位或几位置1(对中断的屏蔽总是暂时的, eg:计算机网络通信)
5.
6.
16
五、中断响应过程(CPU与8259A的操作过程)
1、申请中断 外设 对应IR0 ~ IR7为“1”, 为“1” CPU的INTR输入“1”,申请中断。 2、响应中断的条件 CLI 使 IF = 0,禁止中断。 STI 使 IF = 1,允许中断。 判优后使INT

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及中断服务

实验内容:中断控制器8259A及中断服务1、实验连线原理见图1所示:8259A连线:(1)单脉冲与时钟单元“”插孔和8259的3号中断IR3插孔相连作为中断源;(2)8259的INT连8088的INTR(Xl5);(3)8259的INTA连8088的INTA(Xl2);(4)8259的CS端接EX1(8259A端口地址是60H,61H);(5)A0→A0。

(6)IOWR→IOWR;(7)IORD→IORD;(8)连通CPU和8259A的数据总线,JX4→JX17。

8255连线:(1)将8255的A端口的PA7到PA0连接到灯L1~L8上。

图1:实验连线图2、实验原理:按动按键AN0后,单脉冲与时钟单元部件会产生“”信号,该信号的上升沿作为中断请求送8259A的IR3引脚,如果8259A没有屏蔽该级中断并且其优先级最高,8259A向CPU的INTR引脚送中断,CPU如果允许响应中断,则进入中断处理子程序,中断处理子程序向8255A的A端口送数据,将灯L1~L8点亮1秒。

3、实验要求:单片8259A以缓冲方式连接数据总线,以上升沿作为中断请求信号,中断源通过IR3引入,优先级采用一般全嵌套方式,非自动中断结束方式,引脚IR0~IR7的中断类型号为08F~0FH,编写一个汇编程序,主程序完成8255和8259A的初始化,循环等待中断请求;中断处理子程序将灯点亮1秒后熄灭。

4、端口地址:5、系统内存分配:5、程序结构:CODE SEGMENTASSUME CS:CODEMAIN PROCSTART: ;主过程;初始化8259;初始化8255;调用3号中断 MAIN ENDPINT3 PRCO……;中断处理子程序 INT3 ENDPDELAY PROC…… ;延时子过程DELAY ENDPCODE ENDSEND6、程序流程图主程序代码:PA EQU 0FF28H ;8255A端口地址标号定义 PB EQU 0FF29HPC EQU 0FF2AHPCTL EQU 0FF2BHINTPORT1 EQU 0060H ;8259控制口地址标号定义 INTPORT2 EQU 0061HCODE SEGMENTASSUME CS:CODEORG 1000HMAIN PROCSTART: CLI ;CPU关中断MOV AL,80H ;初始化8255MOV DX,0FF2BHOUT DX,ALPUSH DS ;保护DSMOV AX,0MOV DS,AXMOV DI,0B*4MOV DX,OFFSET INT3MOV WORD PTR[DI],DXMOV DX,SEG INT3MOV WORD PTR[DI+2],DXPOP DS ;恢复DSMOV AL,13H ;初始化8259AOUT 60H,ALMOV AL,08HOUT 61H,ALMOV AL,0DHout 61H,ALMOV AL,0F7HOUT DX,AL ;开放8259A中断STI ;CPU开中断HLTWATING: JMP WATING ;循环等待中断请求MAIN ENDPINT3 PROCPUSH DXPUSH AX ;保护现场STIMOV DX,PAMOV AL,00HOUT DX,AL ;灯全亮CALL DELAY1S ;延时子程序MOV AL,0FFHOUT DX,AL ;灯全灭MOV DX,INTPORT1MOV AL,20HOUT DX,AL ;送中断结束命令 CLIPOP AXPOP DX ;恢复现场MOV AL,20HOUT 60H,ALIRET ;中断返回INT3 ENDPDELAY1S PROCPUSH CXPUSH DXMOV DX,04AGAIN: MOV CX,0FFFFHDELAY: LOOP DELAYDEC DXJNZ AGAINPOP DXPOP CXRETDELAY1S ENDPCODE ENDSEND START。

计算机原理第七章8259

计算机原理第七章8259

8259的初始化命令字ICW2
ICW2是中断类型码初始化命令字,A0=1,跟在ICW1后表示对 ICW2编程。
ICW2设置中断类型码; 中断类型码高5位来自ICW2高5位,低3位对应IR0~IR7。
17
8259的初始化命令字ICW3
ICW3是标志主片/从片的初始化命令字,只有当SNGL=0时,跟 在ICW2后面出现,对其设置应使A0=1;
连接系统总线方式
缓冲方式 在多片8259级连的大系统中,8259通过总线驱动器和数据总线相 连; 使用8259的SP#/EN#作为总线驱动器的使能信号;
非缓冲方式 8259的SP#/EN#作为输入; 单片使用时, SP#/EN#接高电平;多片时,主片SP#/EN#接高电 平,从片SP#/EN#接低电平;
操作命令字可在任何时候写入8259A ,且无顺序。
OCW1为中断屏蔽操作命令字; A0=1 表示设置OCW1; Mi=1 表示屏蔽IRi输入中断请求;
28
8259的操作命令字OCW2
ቤተ መጻሕፍቲ ባይዱ
OCW2用来设置优先级循环方式和中断结束方式; A0=0,且D4D3 = 00,表示对OCW2编程; R,优先级循环状态 R=1优先级自动循环;R=0优先级不循环; EOI 中断结束命令位,非自动结束方式时清ISn; SL 设定标志。 SL=1,由L2、L1、L0指明中断号或最低优先权; SL=0,则L2、L1、L0无效;
29
设置优先级方式
优先级自动循环方式 一般用在系统中多个中断源优先级相等的场合; 优先级是变化的,一个设备收到中断服务后,它的优先级自 动降为最低; 初始优先级为IR0-IR7;
优先级特殊循环方式 最低优先级由初始编程设置;
30

第七章 中断控制器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
中断向量的设置

实验九 中断控制器8259实验

实验九 中断控制器8259实验
300H 8255B口 8255B口 301H 8255C口 8255C口 302H 8255控制寄存器 8255控制寄存器 303H
初始化
附录3 发送到LED的值 附录3 发送到LED的值

思考题
① 将A口改为B口,应如何修改程序 口改为B
和连线?
② 修改程序,使之向发光二极管输出的同 修改程序, 时,在显示器上同步输出.
附录1 几个DOS 附录1 几个DOS中断 DOS中断
功能01H,07H和 功能01H,07H和08H 功能描述:从标准输入设备(如:键盘) 功能描述:从标准输入设备(如:键盘)读入一个字 符.该中断在处理过程中将一直处于等待状态直 到有字符可读为止.该输入还可被重定向,如果 这样做,则无法判断文件是否已到文件尾 入口参数:AH=01H,过滤掉控制字符,并回显 入口参数:AH=01H,过滤掉控制字符,并回显 =07H,不过滤掉控制字符,不回显 =07H,不过滤掉控制字符,不回显 =08H,过滤掉控制字符,不回显 =08H,过滤掉控制字符,不回显 出口参数:AL=输入字符的ASCII码 出口参数:AL=输入字符的ASCII码
;LED灯熄灭
MOV AX,3572H INT 21H MOV INT0A_OFF,BX MOV BX,ES MOV INT0A_SEG,BX CLI MOV AX,2572H MOV DX,SEG LEDLIGHT PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI IN AL,0A1H AND AL,0FBH OUT 0A1H,AL IN AL,21H AND AL,0FBH OUT 21H,AL
8259主片和从片简图 8259主片和从片简图

第7章_中断控制器8259

第7章_中断控制器8259

结论:在多片8259A的级连系统中,在主片 看来,一个从片为一级,从片内部的优 先级要得到系统的确认,则主片必须工 作在特殊全嵌套方式。
2 . 屏蔽中断源的方式
(1) 普通屏蔽方式 (2) 特殊屏蔽方式
(1)普通屏蔽方式 可以通过OCW1使屏蔽寄存器的对应位 置1或置0来屏蔽或不屏蔽来自IR0- IR7的中断请求。 程序设计时,可以通过设置操作命令字 OCW1使屏蔽寄存器中的任一位或几位 为1,从而实现对某一个IR端的屏蔽。 为什么要屏蔽某些中断请求?
指出当 前的哪 个端口 被防问
当片选信号有效时,A0为0时,访问偶地址端 口; A0为1时,访问奇地址端口。
A B 8259A A0
CS
1、A0为0时,访问偶 地址端口; A0为1时, 访问奇地址端口。
地址译码
问:A0连接到 地址总线的A0吗?
地址总线
问:A0引脚是连接到地址总线的A0吗? 若是,则8259A被分配一个偶地址和一 个奇地址。 然而,8259A只有8条数据总线,或连 接8086系统中的高8位地址,或连接 8086系统中的低8位地址。
(2)特殊全嵌套方式 在此方式下,当处理某一级中断时, 如果有同级的中断请求,那么也给予响 应,从而实现一种对同级中断请求的特 殊嵌套。该方式一般用在8259A的级连 系统。此时,主片工作在特殊全嵌套方 式下,从片可以处于其他优先级方式。
主片
8259A
8259A IR5
8259A
从片
若主片正在处理来自 从片IR7的中断时, 从片的IR0上有中断 请求,主片是否接收 处理,并实现嵌套? (设IR0优先级比IR7 IR0 高) IR7
第7章 中断控制器、DMA控制器 和计数器/定时器
7.1 中断控制器8259A

第七章 中断控制器8259

第七章 中断控制器8259

8259A操作控制字12
操作控制字1 OCW1 A0 D7 D6 1
D5
D4
D3
D2
D1
D0
对应位=1,表示相应中断源的中断申请被屏蔽 (如: D2=1,表示IRQ2中断申请被屏蔽) 操作控制字2 OCW2 A0 D7 D6 0 R SL
D5 EOI
D4 0
D3 0
D2 L2
D1 L1
D0 L0 中断源编码
中断号 (低3位由IRQ0-IRQ7编码确定)
8259A初始化控制字34
初始化控制字3 ICW3 A0 1 1: 表示该位后连接从片 0: 表示该位后没有连接从片 初始化控制字3 ICW3 A0 1 D7 0 D6 0 (从片) D5 0 D4 0 D3 0 连到主片的第几位 (编码) 初始化控制字4 ICW4 A0 1 D7 0 D6 0 D5 0 D4 D3 D2 M/S D1 D0 1:8086/88 0:8085/80 1:自动复位ISR 0:用EOI命令复位ISR 缓冲方式: 1-主 0-从 1:缓冲方式 0:非缓冲方式 1:特殊全嵌套工作方式 0:非特殊全嵌套工作方式 SFNM BUF AEOI uPM D2 D1 D0 D7 D6 (主片) D5 D4 D3 D2 D1 D0
8259A的编程方法
8259A编程命令有初始化命令ICW1-ICW4,和操作控制命令OCW1-OCW3. 8259A有两个I/O端口A0=0,和A0=1. 开始 ICW1 ICW2
no
联级方式
yes
ICW3
no
有ICW4
yes
ICW4
结束
8259A初始化控制字12
初始化控制字1 ICW1 A0 0 D7 0 D6 0 D5 0 D4 1 D3 D2 D1 D0 LTIM ADI SNGL IC4 1: 有ICW4 0:无ICW4 1: 单片使用 0: 联接使用 8086不用 1.中断向量地址间隔4 0:中断向量地址间隔8 1: 电平触发 0: 边沿触发 标志位 8086不用 初始化控制字2 ICW2 A0 1 D7 T7 D6 T6 D5 T5 D4 T4 D3 T3 D2 0 D1 0 D0 0

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

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

7.3 可编程中断控制器 . 可编程中断控制器Intel 8259A 8259中断中断优先权管理方式及中断结束方式 中断中断优先权管理方式及中断结束方式
屏蔽方式 :
普通屏蔽方式 : IMR中的某一位或某几位置“1”,即可能将相应级的中断请求屏蔽掉。 中的某一位或某几位置“ ,即可能将相应级的中断请求屏蔽掉。 中的某一位或某几位置 程序运行的过程中,可以将中断优先级比正在响应的中断高的中断屏蔽掉。 程序运行的过程中,可以将中断优先级比正在响应的中断高的中断屏蔽掉。 特殊屏蔽方式 : 当处理中断的过程中,希望对本级进行屏蔽, 对本级进行屏蔽 当处理中断的过程中,希望对本级进行屏蔽,而允许优先级比它高 或低的中断申请中断。特殊屏蔽方式只能用特殊EOI结束。 结束。 或低的中断申请中断。特殊屏蔽方式只能用特殊 结束
屏蔽方式
中的置“ 的位 相应级的中断请求屏蔽掉。 的位, 普通屏蔽方式 :IMR中的置“1”的位,相应级的中断请求屏蔽掉。 中的置 本级进行屏蔽, 特殊屏蔽方式 :本级进行屏蔽,而允许优先级比它高或低的中断进入 系统,不管其优先权如何,在任何情况下都可以申请中断。 系统,不管其优先权如何,在任何情况下都可以申请中断。
INTR INTA
. . IR7 .
IR7
8259A 从
. . .
IR0 IR7
主片工作在特殊完全嵌套方式,而从片工作在完全嵌套方式。 主片工作在特殊完全嵌套方式,而从片工作在完全嵌套方式。
7.3 可编程中断控制器 . 可编程中断控制器Intel 8259A
8259中断中断优先权管理方式及中断结束方式 中断中断优先权管理方式及中断结束方式
查询排序方式 : 用软件查询响应中断, 不处于中断状态, 用软件查询响应中断,此时8259不处于中断状态,INT可不连接 INTR,而是程序查询 而是程序查询IRR决定的是否响应中断及中断的优先级。 决定的是否响应中断及中断的优先级。 决定的是否响应中断及中断的优先级
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高,向CPU 发出中断请 求
8259A处理部件的工作过程(工作原理) [1]中断请求寄存器IRR接收外部的中断请 求,并使相应位置1,即锁存该请求; [2]逻辑电路根据中断屏蔽寄存器IMR(即 OCW1)中的对应位的值决定是否让此请 求进入优先级裁决器。对应位为0,通过; 对应位为1,屏蔽。

[3]中断优先级裁决器把新进入的中断请求 和当前正在处理的中断(当前中断服务 寄存器ISR的内容说明了当前正处理的 中断)比较; [4]若新进入的中断请求具有足够高的优先 级,中断优先级裁决器会通过相应的逻 辑电路使8259A的INT端为1,从而向 CPU发出一个请求。
(2)特殊全嵌套方式 在此方式下,当处理某一级中断时, 如果有同级的中断请求,那么也给予响 应,从而实现一种对同级中断请求的特 殊嵌套。该方式一般用在8259A的级连 系统。此时,主片工作在特殊全嵌套方 式下,从片可以处于其他优先级方式。
主片
8259A
8259A IR5
8259A
从片
若主片正在处理来自 从片IR7的中断时, 从片的IR0上有中断 请求,主片是否接收 处理,并实现嵌套? (设IR0优先级比IR7 IR0 高) IR7
指出当 前的哪 个端口 被防问
当片选信号有效时,A0为0时,访问偶地址端 口; A0为1时,访问奇地址端口。
A B 8259A A0
CS
1、A0为0时,访问偶 地址端口; A0为1时, 访问奇地址端口。
地址译码
问:A0连接到 地址总线的A0吗?
地址总线
问:A0引脚是连接到地址总线的A0吗? 若是,则8259A被分配一个偶地址和一 个奇地址。 然而,8259A只有8条数据总线,或连 接8086系统中的高8位地址,或连接 8086系统中的低8位地址。
第7章 中断控制器、DMA控制器 和计数器/定时器
7.1 中断控制器8259A
7.1.1 8259A的引脚信号、编程结构 与工作原理 7.1.2 8259A工作方式 7.1.3 8259A初始化命令字、操作命 令字 7.1.4 8259A使用举例
什么是中断控制器,它的作用是什么? 中断控制器是用来管理多个中断源 的专用芯片。当有多个中断源向CPU提 出中断请求时,中断控制器可以接收外 部的中断请求,并进行优先级判断,选 中级别最高的中断请求,并送至CPU的 INTR端。

如何发出中断结束命令 在程序中向8259A的偶地址端口输出一 个操作命令字OCW2,并使得OCW2中 的EOI=1,SL=0,R=0即可。(具体在 实验程序中介绍)
(4)特殊的中断结束方式 在非全嵌套方式下,当前中断服务寄存器 是无法确定哪一级中断是最后响应的, 中断的结束处理必须要指出对当前中断 寄存器的哪一个ISn位。
5 . 引入中断请求的方式 (1) 边沿触发方式 (2) 电平触发方式 (3) 中断查询方式
(1)边沿触发方式: 8259A将中断请求输入端出现的上升沿 作为中断请求信号。中断请求输入端出 现上升沿触发信号以后,可以一直保持 高电平。
(2) 电平触发方式: 把中断请求输入端出现的高电平作为中 断请求信号。当中断请求输入端出现的 中断请求得到响应后,输入端必须及时 撤除高电平,避免引起不应该有的第二 次中断。
例,在计算机网络通信中,接收中断的优先级比 较高,当一个计算机站点进行发送时,一般对 接收中断要进行屏蔽,以免本站的发送过程被 其他站点的发送过程所打断,而在完成本站发 送后,要立即开放接收中断,以免其他站往本 站的发送过程迟迟得不到接收方的回答。这就 是在程序中通过对OCW1的某位置1和置0实现的。
OCW1~OCW3:用来容纳操作命令字 OCW(operation command word), 操作命令字由应用程序设定,来对中断 处理过程作动态控制,系统在运行过程 中,操作命令字可多次设置。
(2)上半部分(8259A的处理部件): 中断请求寄存器
IRR(interrupt request register)
结论:在多片8259A的级连系统中,在主片 看来,一个从片为一级,从片内部的优 先级要得到系统的确认,则主片必须工 作在特殊全嵌套方式。
2 . 屏蔽中断源的方式
(1) 普通屏蔽方式 (2) 特殊屏蔽方式
(1)普通屏蔽方式 可以通过OCW1使屏蔽寄存器的对应位 置1或置0来屏蔽或不屏蔽来自IR0- IR7的中断请求。 程序设计时,可以通过设置操作命令字 OCW1使屏蔽寄存器中的任一位或几位 为1,从而实现对某一个IR端的屏蔽。 为什么要屏蔽某些中断请求?
2 8259A的编程结构和工作原理
从编程结构上看,下半部分有7个寄存器 它们都是8位,每个寄存器都是可编程的, 即可以用指令来对它们的内容进行设置。
(1)下半部分: ICW1~ICW4:用来容纳初始化命令字 ICW (initialization command word), 一般在系统启动时由初始化程序来设定 的,用来确定工作方式等,一旦设定, 在系统工作过程中就不再改变。
从8259
在CPU发出第一个中断响应负脉冲时,主 片除完成例行工作外,还通过CAS2、 CAS1、CAS0发出一个编码ID2、ID1、 ID0 从片接收到编码后与本身的ICW3的D2、 D1、D0比较,若相等,则在第二个负 脉冲到来时,将自已的中断类型码送到 数据总线。
(注:从片ICW3的D2、D1、D0的值是 由该从片连接到主片的IR决定,若为 IR3,则D2、D1、D0的值为011) 结论: CAS2、CAS1、CAS0是主片和 从片的联络信号。
(2) 特殊屏蔽方式
在特殊屏蔽方式下,用OCW1对屏蔽寄存 器的某一位置1后,会同时使当前中断服 务寄存器中的对应位ISn自动清0,这就 不仅屏蔽了正在处理的这级中断,而且 开放了级别较低的中断。
应用场合: 若希望在一个中断服务程序的执行过程中 响应级别较低的中断请求,可以将 8259A工作在特殊屏蔽方式。 在该方式中,如将正在执行的中断请求 对应的OCW1置1,则同时将对应的ISn 清0,这使得从外界看来,8259A好像 不在处理任何中断。
在缓冲方式时,会在输出状态字或中断 类型码的同时,从该引脚输出一低电平, 此电平下好可作为总线数据总线驱动器 启动信号。
非缓冲方式: 8259A直接与数据总线相 连. 此时,该引脚作为输入端,(1)系统中 只有单片8259A时,SP/EN端必须接高 电平,当系统中有多片8259A时,主片 的SP/EN端接高电平,而从片的SP/EN 端接低电平。
中断优先级裁决器 PR(priority resolver) 当前中断服务寄存器ISR(in service register
8259A处理部件的工作过程(工作原理):
IRR接收来自IR0-IR7的中断请求,并锁存
为1封锁
中断屏蔽寄存器(OCW1)对应位是否为0 为0通过。进入优先 级裁决器 与当前中断服务寄存器ISR比较优先级 低、不响 应
7.1.2
8259A的工作方式
1. 设置优先级的方式 (1) 全嵌套方式 (2) 特殊全嵌套方式 (3) 优先级自动循环方式 (4) 优先级特殊循环方式
说明: (1) 全嵌套方式 IR0为优先级最高的中断请求,其次 为IR1、IR2等 当在执行中断处理程序时,可以响应 比正在执行的中断优先级高的中断请求。
A1 A0 地址信息 A0必须 为0
但对于8259A来说,要求A0为0时,访 问偶地址端口,A0为1时,访问奇地址 端口。若直接把A0接在地址总线的A0上, 显然不能满足要求,哪如何解决这个问 题?
问题解决办法: 1片8259对应2个端口地址,一个偶地 址、一个低地址。这就要求A0接数据总 线的A1便可实现。
当CPU从内存取数据时,偶地址单元的 数据通过低8位数据线传送至CPU,奇地 址单元的数据通过高8位数据线传送到 CPU,CPU与端口之间的16位数据交换 情况与此类似。 也就是说,8259A被分配的两地址或是 偶地址、或是奇地址,不会是一奇一偶。
一般情况下,8259A 的8位数据线连接 数据总线的低8位。这样从8086CPU的 角度来说,要给8259分配两个偶地址。 也就是说,A0必须为0。
当CPU响应中断并进入中断处理程序后, 中断控制器仍负责对外部中断请求的管 理。 本节讨论Intel 系列的可编程中断控制器 8259A的引脚信号、编程结构、工作原 理、工作方式与编程方法。
8259A的工作特点: ① 1 片8259A能管理8级中断,可以用9片 8259A来构成64级主从式中断系统。 ② 可编程,使用灵活。 ③ 只需一组5V电源
此时,即使有最低级的中断请求,也会 发通过INT发送给CPU,从而得到响应。
3.
结束中断处理的方式
(1) 中断自动结束方式 (2) 非自动结束方式 一般的中断结束方式 特殊的中断结束方式
(1)为什么要有中断结束处理? 一个中断被响应时,8259A就会在当前 中断服务寄存器设置相应位Isn 这为中 断裁决器的工作提供依据,中断结束后, 必须使Isn清0,否则中断控制器就不能 正常工作。 中断结束处理就是使当前中断服务寄存 器ISn位清0。
特殊中断结束命令实际上也是通过往 8259A的偶地址端口输出一个操作命令 字OCW2,并使得OCW2中的 EOI=1,SL=1,R=0,OCW2中的L2、 L1、L0三位指出到底对哪一个IS位进行 复位。
4 . 连接系统总线的方式
(1) 缓冲方式 (8259A通过总线驱动器和 数据总线相连,常用于多片8259A级连 的大系统) (2) 非缓冲方式 (8259A直接和数据总线 相连,常用于单片8259A的系统)
[5]如果中断允许标志IF=1,CPU在执行 完当前指令后响应中断,此时,CPU从 INTA引脚上往8259A回送两个负脉冲。 [6]第一个负脉冲到达时,8259A完成三 个动作:
①使IRR的锁存功能失效,直到第二个负脉冲 到达;
②ISR中的相应位置1; ③使IRR寄存器中的相应位清0。 [7] 第二个负脉冲到达时,8259A完成下 列动作:
相关文档
最新文档