微机接口技术8259A中断控制器
8259A中断控制器
CAS0 CAS1 CAS3
级 联 缓 冲 比较器
内 部 总 线
中 断 服 务 寄 存 器
ISR
优 先 权 处 理 器
中 断 请 求 寄 存 器
IRR
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
SP / EN
中断屏蔽寄存器 IMR
IRR,IMR
1.中断请求寄存器IRR
IRi(i=07)上有中断请求时,IRR相应位置1。
AEOI=1自动中断结束方式AEOI=0:非自动中断结束(EOI) µ PM=1:86系列CPU; µ PM=0:非86系列CPU 。
普通全嵌套方式
普通全嵌套方式也叫固定优先权方式。 优先权从IR0到IR7依次递降。 级别高的中断请求可以中断级别低的中断服 务子程序。 一中断被响应的过程中,自动屏蔽同级和更 低级别的中断。
8259A在PC机中的I/O端口地址
PC机中相当有两片8259A级联,一个主片,一个从片。
ICW1 ICW2 ICW3 ICW4 OCW1 OCW2 OCW3
主片 0x20 从片 0xa0
0x21 0xa1
0x21 0xa1
0x21 0xa1
0x21 0xa1
0x20 0xa0
0x20 0xa0
主片初始化程序
0
X
ESMM SMM 0
1
P
RR
RIS
A0=0 , D4=0 , D3=1 是OCW3的特征。 ESMM=1,SMM=0: 设置特殊屏蔽
ESMM=1,SMM=1: 清除特殊屏蔽
P=1:发查询命令 ; P=0:不发查询命令 RR=1,RIS=0: 读IRR寄存器 RR=1,RIS=1: 读ISR寄存器
微机接口技术课件 8 中断控制器8259
溢出中断指令INTO
– INTO指令首先检查溢出标志OF位 • 如果OF=1,则启动一个中断号为4的中断过程 • 如果OF=0,不做任何操作
– INTO指令一般安排在有符号数算术运算指令后面,用于进行运 算结果的溢出检查
IMUL BX
;乘法指令
INTO
;若溢出,则启动中断服务处理
MOV RESULT, AX
中断向量表的设置
当中断到来时,CPU就会根据其中断类型码,确定中断向
量地址指针,设然置后中到中断断向向量量表表中的,作取用出中和断意向义量,形成入口
地址IP和CS,转入中断服务程序
系统提供的中断服务程序的设置由系统自动完成;程序员自
中断向量表的设置方法
定义的中断服务程序的中断向量应由程序员设置
中断向量表的设置方法 – 用传送指令直接设置 – 调用DOS的系统功能,并使用软中断指令INT 2lH 设 置
类型码为0 类型码为1 类型码为3 类型码为4
软件中断和硬件中断
软件中断特点: ➢ 用一条指令进入中断处理子程序,类型号由指令给出 ➢ 进入中断时,不需要执行中断响应总线周期 ➢ 不受IF位的影响 ➢ 正在执行软件中断时,如有外部硬件中断请求,则执行完当前指 令后,根据条件允许否给以响应 ➢ 软件中断没有随机性
使用中断返回指令,结束中断服务, 返回中断前的原程序
更详细的程序框架
入口地址:PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH SP PUSH BP STI
ZDFWCX∶ … …
CLI POP BP POP SP POP DI POP SI POP DX POP CX POP BX POP AX STI IRET
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的单级中断控制实验一、实验目的1.掌握中断控制器8259A与微机接口的原理和方法。
2.掌握中断控制器8259A的应用编程。
二、实验内容编制程序,利用开关作为8259芯片IR7的中断源,人工控制产生单一中断。
中断的功能是驱动发光二极管,使其亮灭,不停地闪动。
三、实验提示8259中断控制器是专为控制优先级中断设计的芯片。
它将中断源优先级排队,辩别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优行模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259的级联,能构成多达64级的矢量中断系统。
实验箱中采用一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表所示。
表1 8259中断矢量对应关系务程序程序,使系统每次响应外部中断IR7时发光二极管闪烁。
四、实验电路五、实验软件清单Port0 EQU 0FFE0HPort1 EQU 0FFE1HCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 3400HP8259: CLIMOV AX,OFFSET INT8259MOV BX,003CHMOV [BX],AXMOV BX,003EHMOV AX,0000HMOV [BX],AXCALL FOR8259MOV AL,0FEHMOV DX,0FFE4HSTIJMP $;============================== FOR8259:MOV AL,13HMOV DX,Port0OUT DX,ALMOV AL,08HMOV DX,Port1OUT DX,ALMOV AL,09HOUT DX,ALMOV AL,7FH ;IRQ7OUT DX,ALRET;--------------------------- INT8259:cliPush dxPush axMOV AL,20HMOV DX,Port0OUT DX,ALPop axPop dxOut dx,almov cx,0loop $Rol al,1STIIRETCODE ENDSEND P8259六、实验软件框图七、实验步骤(1)按实验电路图连接线路:①开关Ki 和8259 7号中断IR7插孔相连。
实验-8259A单级中断 微机原理与接口技术
DATA0
DATA2 DATA1 DATA3 DATA4
EQU 0580H
EQU 0508H EQU 0500H EQU 0518H EQU 0520H
;指向显示 8259Good 显示模区 ; ;指向显示 Err 显示模区 ;指向 8259-1显示模区
程序分析
1、显示部分 FORMAT 建立显示缓冲区
0580H
INTRE1:
MOV MOV RET MOV MOV OUT STI IRET
BX, DATA0 ; 指向 8259 Good 模区 DS: [BX], AL AL,20H ;送结束命令 DX,INTPORT1 DX,AL
INTRUPUT7: CLI MOV CALL MOV MOV OUT IRET
CODE
ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR ADD BX,2 MOV WORD PTR RET ENDS END START
;建显示模型库, 调用中用 SI 指示显示模区 LEDDISP ; 显示 8259-1 WRINTVER ;将IRQ3、IRQ7中断矢量装入矢量表 CONVERS ;
INTRE1 ;送结束命令
2、编程
CODE SEGMENT ASSUME CS:CODE INTPORT1 EQU 0020H ;8259A 端口地址 INTPORT2 EQU 0021H INTQ3 EQU INTREEUP3 ;IRQ3 服务程序 INTQ7 EQU INTREEUP7 ;IRQ7 服务程序 CONTPORT EQU 00DFH ;8255A 控制口 DATAPORT EQU 00DEH ;数据口(PC口) DATA0 EQU 0580H ;指向显示 8259Good 显示模区 DATA1 EQU 0500H ;指向显示 Err 显示模区 DATA2 EQU 0508H ; DATA3 EQU 0518H ;指向显示 DISP 8259-1显示模区 DATA4 EQU 0520H ; 6000H ;显示位数(0~7) 0601H ;IRQ3 的申请次数记录
微机原理与接口技术_07可编程中断控制器8259A.概要
2019/1/3
15
7.4 8259A的编程
2019/1/3
16
7.4.1 初始化编程
• 8259A是可编程的中断控制器,8259A是按照事先设置好 的命令字进行工作的。8259A的命令字分为两部分,一部 分是初始化命令字(Initialization Command Word, ICW )ICW1~ICW4,另一部分是操作命令字(Operation Command Word, OCW)OCW1~OCW3。8259A有2 个内部端口地址,一个偶地址(A0=0),另一个是奇地 址(A0),用来选择不同的寄存器。
2019/1/3
9
7.3 8259A的工作方式
2019/1/3
10
7.3.1 中断优先级管理方式
• 1.固定优先级方式(完全嵌套排序方式) • 固定优先级方式是 8259A最常用的一种工作方式。优先 级的次序固定:IR0>IR1>…> IR7。 • 2.自动循环优先级方式(等优先级方式) • 在自动循环优先级方式下,任何一级中断处理完后, CPU都会向8259A发送EOI命令,使ISR中最高优先级位 复位,并且使它变为最低优先级,比它低一级的中断请 求设为最高级,就这样依次循环下去。
第
7章 可编程中断控制器
8259A
1
2019/1/3
本章主要内容
7.1 8259A的基本结构 7.2 8259A芯片的工作过程 7.3 8259A的工作方式 7.4 8259A的编程 7.5 8259A的应用
2019/1/3
2
7.1 8259A的基本结构
2019/1/3
3
7.1.1 内部结构
2019/1/3
中断系统与可编程中断控制器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中断控制器实验班级学号姓名同组人员无实验日期 2016/12/17一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。
)1、了解8259A的内部结构,工作原理;2、了解8259A和8088的接口逻辑;3、熟悉8259A的控制寄存器和初始化编程方法,了解8088是如何响应中断,退出中断的。
二、实验内容(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、算法原理、实验仪器、设备选型及连线图、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他)内容:1、编制程序,拨动单脉冲开关,脉冲信号送给8259A的IR0,触发中断,8088计数中断次数,显示在G5区的数码管上。
原理:1. 8259控制器的介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。
8259A的内部结构和引脚如图6-1所示。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
接口技术实验-8259中断控制器
接口技术实验报告实验四:8259中断控制器实验一、实验目的1、掌握8259中断控制器的接口方法。
2、掌握8259中断控制器的应用编程。
二、实验设备微机原理实验箱、8086CPU模块。
三、实验内容用脉冲发生器作为中断源,每按一次脉冲发生器的按键即产生一次中断。
在中断服务程序中,通过74LS273输出一个数据,以点亮与中断源相对应位置的LED。
四、实验原理介绍8259中断控制器电路本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。
电平开关电路、简单I/O口扩展电路参看实验一。
8259中断控制器电路:如上图所示,其中:CS是8259芯片的片选插孔,IR0~IR7是8259的中断申请输入插孔。
DBUS是系统8位数据总线。
INT插孔是8259向8086CPU的中断申请线,INTA是8086的中断应答信号。
五、实验步骤1.断电连接导线,连好实验线路图。
1)8259的INT连8088的INTR;2)8259的INTA连8088的INTA;3)“”插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;4)8259的CS端接FF80H孔,74LS273的CS端接FF90H孔。
5)Q0~Q7 L1~L82.编译调试程序3.全速运行,观察实验现象六、实验提示1、8259芯片介绍中断控制器8259A是专为控制优先级中断而设计的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。
因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。
即中断结构可以由用户编程来设定。
同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。
2、8086的中断系统是向量中断方式。
内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。
不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。
8259A中断控制器
8259A是一个中断控制器。
在一个8259A芯片有如下几个内部寄存器:Interrupt Mask Register (IMR)Interrupt Request Register (IRR)In Sevice 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有一个中断到达。
CPU 收到这个信号后,会暂停执行下一条指令,然后发送一个INTA(Interrupt Acknowledge)信号给8259A。
8259A收到这个信号之后,马上将ISR中对应此中断请求的Bit设置,同时IRR 中相应的bit会被reset。
比如,如果当前的中断请求是IR3的话,那么ISR中的bit-3就会被设置,IRR中IR3对应的bit就会被reset。
这表示此中断请求正在被CPU处理,而不是正在等待CPU处理。
随后,CPU会再次发送一个INTA信号给8259A,要求它告诉CPU此中断请求的中断向量是什么,这是一个从0到255的一个数。
第七章 中断控制器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
中断向量的设置
微机接口技术8259A中断控制器
D7D0 :双向、三态数据线,接系统数据总线的 D7D0 , 用来传送控制字、状态字和中断类型号等。 IR7IR0 : 中 断 请 求 信 号 , 输 入 , 从 I/O 接 口 或 其 他 8259A( 从控制器) 上接收中断请求信号。在边沿触发方式中, IR输入应由低到高,此后保持为高,直到被响应。在电平触发
︽︾
保留的中断 (共27个) 类型号5~31
︽︾
0000:0014H 0000:0013H
CS IP
CS IP CS IP CS IP CS IP
溢出中断 断点中断
0000:0010H
0000:000FH 0000:000CH 0000:000BH
非屏蔽中断
单步中断 除数为0中断
0000:0008H
2)特殊全嵌套方式(SPECIAL FULLY NESTED MODE-SFNM)
和全嵌套方式基本相同。唯一不同在于可以响应同级 的中断请求,实现同级的中断嵌套。通过ICW4的 “SFNM”位可以设置此种方式。
特殊全嵌套方式的使用场合:级联方式中主片
8259A被设置为特殊全嵌套方式。
特殊全嵌套方式的使用场合:
ICW3 主从片关系 ICW4 方式控制
OCW2 0 1 OCW3
控制部分
yangruioot@
20
8259工作示意图
Go ahead
•
•
•
•
•
IR0~IR7上出现某一中断请求信号 IRR对应位被置“1” 由IMR的相应位决定是否将其屏蔽(屏蔽位=1,不通过; 屏蔽位=0,通过) 未被屏蔽的中断请求进PR,当只有一个中断时,则该中 断源向CPU发出中断请求INTR。当同时有两个以上中断 时,根据编程设定的优先级确定中断优先级最高的中断 向CPU发出中断请求INTR。若CPU正在执行中断服务程序, PR把新进入的中断请求和当前正在处理的中断进行优先 级比较。若新进入的中断优先级高,该中断请求被送到 CPU。 若CPU的IF=1,CPU完成当前指令后,响应中断,在 引脚上发出两个负脉冲(执行两个中断响应总线周期):
微机系统与接口技术详解外部可屏蔽中断管理器8259A
微机系统与接⼝技术详解外部可屏蔽中断管理器8259A命令字编程状态初始化命令寄存器组CPU使⽤IN/OUT指令对8259A芯⽚进⾏初始化编程。
完成后即进⼊操作态。
ICW1 当D4=1并且A0=0时,表⽰是对ICW1进⾏设置。
ICW2 当A0=1时,表⽰对ICW2进⾏设置。
ICW2⽤于设置芯⽚送出中断号的⾼5位。
ICW3 当ICW1的D1位为1,表⽰需要ICW3,才会对ICW3进⾏设置。
ICW4 若ICW1的D0位为1,表⽰需要ICW4,才会对ICW4进⾏设置。
操作状态操作命令寄存器组OCW1 ⽤来设置中断屏蔽寄存器。
OCW2 ⽤来管理中断优先级。
OCW3 ⽤于设置或清除特殊屏蔽⽅式和读取寄存器状态。
当D4D3=01且地址线A0=0时,表⽰对OCW3进⾏编程。
命令字总结8259A⼯作逻辑⾸先CPU使⽤IN/OUT指令对8259A芯⽚进⾏初始化编程,为其设定好⼯作⽅式,然后8259A进⼊操作模式可以处理外部中断,此时CPU可以通过IN/OUT指令实时对8259A的⼯作机制进⾏刷新。
这也是CPU命令对8259A就是这样编程的。
具体到⼀条CPU命令如 OUT 21H, AL⼯作周期1.当有外部中断通过IR0~IR7输⼊时,根据IMR状态将其存⼊IRR寄存器。
2.然后8259A通过INT引脚对CPU提出外部中断请求,若CPU同意中断,则连续向INTR* 输出两个脉冲信号,若未应答则等待。
3.获取到第⼀个INTR* 信号后,置位最⾼优先级的ISR位,并将相应的IRR位复位。
4.在第⼆个INTR*脉冲信号时,8259A向数据总线输出8位中断向量号供CPU读取。
⾄此⼀个⼯作周期完成。
8259A涉及到的编程例1、8259A的IRQ0的中断请求来⾃定时器8253,每隔55ms产⽣⼀次。
DOS系统利⽤它实现⽇时钟计时功能。
这⾥我们修改了原08H号中断服务程序的部分内容,使得每次中断都显⽰⼀串信息,即下⾯的NEW08H⼦程序。
微机原理8259a的应用
微机原理8259A的应用1. 8259A简介•8259A是一种多功能可编程中断控制器,广泛用于微机系统中;•8259A可以管理和处理系统中的各种硬件和软件中断请求;•8259A具有级联功能,可以通过级联多个8259A来扩展中断处理能力。
2. 8259A的工作原理•8259A通过两个级联的寄存器ICW1和ICW2来初始化;•ICW3用于配置8259A多片级联的中断控制器;•ICW4用于设置工作模式和中断请求优先级;•8259A通过两个状态寄存器ISR和IRR来管理中断。
3. 8259A的应用场景•中断处理:8259A能够管理和处理系统的硬件和软件中断请求,提高系统可靠性和响应速度;•外设控制:通过8259A的控制和管理,可以实现对系统中各种外设(如键盘、鼠标、打印机等)的控制和驱动;•系统扩展:8259A支持级联功能,可以通过级联多个8259A来扩展系统的中断处理能力;•实时控制:8259A可以对实时控制系统中的各种事件和任务进行调度和管理。
4. 8259A的编程方法•8259A的编程方法主要包括初始化、中断屏蔽、中断响应等;•编程接口包括写ICW1、ICW2、ICW3和ICW4寄存器,读写中断屏蔽寄存器IMR等;•编程方法需要结合具体的应用场景和系统需求来进行。
5. 8259A的应用实例•实例1:使用8259A实现对键盘的输入控制和中断处理;•实例2:使用8259A实现对鼠标的输入控制和中断处理;•实例3:使用8259A实现对实时控制系统中各种事件和任务的调度和管理;•实例4:使用8259A实现对并行计算的任务分配和调度。
6. 8259A的应用优势•提高系统可靠性:通过集中管理和处理中断请求,可以提高系统的可靠性和稳定性;•提高系统响应速度:8259A能够快速响应和处理各种中断请求,提高系统的响应速度;•简化系统设计:通过集成多个外设的中断控制和管理功能,可以简化系统的设计和开发。
7. 总结•8259A作为一种多功能可编程中断控制器,在微机系统中有着广泛应用;•通过8259A的控制和管理,可以实现对系统中各种外设的控制和驱动;•8259A的编程方法需要根据具体的应用场景和系统需求进行选择和设计;•8259A的应用优势包括提高系统可靠性、提高系统响应速度、简化系统设计等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
——中断响应
3. 响应中断请求,如何服务即如何找到中断服务程序去执行?
——中断向量
4. 执行完中断服务程序,如何返回主程序 ——IRET 5. 当多个中断同时请求服务时,如何处理? ——中断优先级 6. CPU是否一定会响应中断?——中断屏蔽
以下均以8086/8088CPU的中断系统为例来说明。
8086/8088的中断分类——外部中断和内部中断
2)特殊全嵌套方式(SPECIAL FULLY NESTED MODE-SFNM)
和全嵌套方式基本相同。唯一不同在于可以响应同级 的中断请求,实现同级的中断嵌套。通过ICW4的 “SFNM”位可以设置此种方式。
特殊全嵌套方式的使用场合:级联方式中主片
8259A被设置为特殊全嵌套方式。
特殊全嵌套方式的使用场合:
INT n指令
NMI 中 断 逻 辑 INTR IRQ0
非屏蔽中断请求
断点中断 溢出中断 单步中断 (INT 3) (INTO, OF=1) (TF=1)
除法错 中断
软件中断
中 断 控 制 器 (8259A)
IRQ7
. . . .
可 屏 蔽 中 断
硬件中断
2 中断类型号、中断向量、中断向量表
8086/8088系统允许引入256个中断,系 统为每一个中断源编号,依次为0~255, 即为中断类型号。
ICW3 主从片关系 ICW4 方式控制
OCW2 0 1 OCW3
控制部分
yangruioot@
20
8259工作示意图
Go ahead
•
•
•
•
•
IR0~IR7上出现某一中断请求信号 IRR对应位被置“1” 由IMR的相应位决定是否将其屏蔽(屏蔽位=1,不通过; 屏蔽位=0,通过) 未被屏蔽的中断请求进PR,当只有一个中断时,则该中 断源向CPU发出中断请求INTR。当同时有两个以上中断 时,根据编程设定的优先级确定中断优先级最高的中断 向CPU发出中断请求INTR。若CPU正在执行中断服务程序, PR把新进入的中断请求和当前正在处理的中断进行优先 级比较。若新进入的中断优先级高,该中断请求被送到 CPU。 若CPU的IF=1,CPU完成当前指令后,响应中断,在 引脚上发出两个负脉冲(执行两个中断响应总线周期):
级联方式中主片8259A被设置为特殊全嵌套方式。
8259(主片) IR0 IR1 8259(从片) IR0 IR1 … IR7 IR7 …
CPU
3) 优先级自动循环方式(AUTOMATIC ROTATION) 优先级是循环变化的(不希望有固定的优先级差别)-一 个设备的中断服务完成后,其优先级自动降为最低,而将最 高优先级赋给原来比它低一级的中断请求。 开始时,优先级队列还是:IR0->IR7 ,若此时出现 了IR0请求,响应IR0并处理完成后,队列变为: IR0 IR1,IR2,IR3,IR4 ,IR5 ,IR6 ,IR7,IR0。 IR 7 若又出现了IR4请求,处理完IR4后,队列变为: IR6 __________________________________
0000:0007H 0000:0004H 0000:0003H
0000:0000H
可见中断向量对于中断服务实现是至关重要的
中断向量如何在中断向量表中正确放置?
2 可编程中断控制器8259A
1、8259A内部结构与引脚功能 2、8259A的工作原理 3、8259A工作方式 4、8259A的编程
功能: 在有多个中断源系统中,协助 CPU实现对外部中断的管理,对它们 进行优先级排队后向CPU发出中断请 求信号
D7D0 :双向、三态数据线,接系统数据总线的 D7D0 , 用来传送控制字、状态字和中断类型号等。 IR7IR0 : 中 断 请 求 信 号 , 输 入 , 从 I/O 接 口 或 其 他 8259A( 从控制器) 上接收中断请求信号。在边沿触发方式中, IR输入应由低到高,此后保持为高,直到被响应。在电平触发
特点: 单片8259A能管理8级中断。若采用级联工作方式,可 以用9片8259A构成64级主从式中断系统 具有中断判优逻辑功能,且对每一级中断都可以屏蔽 或允许 中断响应后,能将预置的中断类型码自动提供给CPU 8259A通过编程可以工作在多种不同的方式,从而能 方便的满足多种类型微机中断系统的需要
服务
请求
程 序
程序断点
程序 中断返回
中断:在程序运行时,系统外部、内部或现行程序本身 若出现紧急事件,处理器必须立即强行中止现行程序的 运行,改变机器的工作状态并启动相应的程序来处理这 些事件,然后再恢复原来的程序运行。这一过程称为中 断。
中断的相关概念
1. 究竟是什么引起中断? ——中断源
2. 中断产生如何服务?
A0接地址线的A1或A0,对端口进行寻址,以给奇端口,一个
偶端口。在IBM PC/XT机中,译码来自产生CS信号,组合为
001*****,范围是20H~3FH, IBM PC/XT机取8259端口地址为 20H、21H。
4.2.1 8259A内部结构和引脚功能 读 / 写控制逻辑功能是确 定数据总线缓冲器中数据的 SP/EN 在缓冲方式和非 控制电路 D ~D 数据总线 传输方向,选择内部的各命 缓冲器 缓冲方式下有不同的作 内部总线 令字寄存器。当 CPU 发写信 用。级联缓冲/比较器 RD CPU写入控制字、读入状 读 /写 号时,CPU给8259A送初始化 WR 控制电路 用来存放和比较在系统 态信息、中断响应的类 A 存放中断屏蔽字,某位 表 命 令 字 ( ICW ) 和 操=1 作 字 IR CS 型号均经其传送 IR 中断服务 中用到的所有 优先权 IRi输入被屏蔽,若 中断请求 8259A 的 。 示对应的 IR 寄存器 判别器 寄存器 。 ( OCW )。当 CPU 发读信号 CAS (IRR) (ISR) (PR) 为零,则允许该位进入中断 CAS 级联地址。主控 8259A 。 IR 级 连 CAS IR 缓冲器/比较器 时 读 入 8259A 的 状 态 信 息 , 优先级判别器 通 过 CAS0 、 CAS1 和 保存从 IR0~IR7来的中断请求信 包括中断服务寄存器、中断 保存正在处理中的中断请求信号, 对优先级进行识别,选出最高优 CAS2 送 级 联地 址有中断 , 号,某位 =1发 表示对应的 IRi 当响应某位中断请求时,第一个响 先级请求送往 ISR ,出现多重中 屏蔽寄存器、中断请求寄存 中断屏蔽寄存器 根据IRR和IMR通过PR判定优先级,向芯片内部和其他部件 应 INTA 请求。可允许 时相应位置 88259A 个请求同时进入, 1,直到中断结 (IMR) SP/EN 选中从控 。 断,由 PR 来判断是否打断正在 发出控制信号。发中断请求信号,接收响应信号,将 ISR相 器、中断查询字等。 此时则全置 1 ,当中断请求被响应 束命令发出。允许多重中断时,多 处理的中断 应位置1,IRR相应位置0,并送中断类型号给 CPU。若为中 个位将同时置 时,相应位复位 1 图4-4 0 8259A内部结构 断自动结束方式,负责将ISR相应位清
第六章 中断控制接口
1 8086/8088的中断系统
1 中断的概念
2 8086/8088中断系统
1 中断的概念
1、为什么要引入中断?---Interrupt
一种非常重要的基本输入输出方式
广泛的用在故障处理和系统调用等方面
2 什么是中断?---Interrupt
当 前 中 断 源 中断
中断响应 中断
1. 8259A的引脚
总线 D0 ~ D7 IOR IOW A0 A5 ~ A9 INTA INTR 数据线 D0 ~ D7
双列直插式芯片,28个引脚
8259A
Vcc IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 SP/EN CA0 CA1 CA2 GND
(参看教材图6-24)
+ 5V 定时器 18.2Hz 方波 键盘 保留 串 口2 串 口1 硬盘 软盘 打印机 用于多片 8259A 级连情况
RD WR A0
片 选 20~3FH 译 码
CS
INTA INT
8259A的引脚
CS:片选信号,输入,低电平有效,来自地址 译码器的输出。只有该信号有效时,CPU才能对 8259A进行读/写操作。 WR:写信号,输入,低电平有效,通知 8259A接收CPU从数据总线上送来的命令字。 RD:读信号,输入,低电平有效,用于读取 8259A中某些寄存器的内容(如IMR、ISR或 IRR)
4.2.3 8259A的工作方式
优先级设置方式 中断源屏蔽方式
中断结束方式
引入中断请求方式
1 优先级的设置方式 1)全嵌套方式(FULLY NESTED MODE)
也称固定优先级方式。IR0(最高)->IR7(最低). 当一个中断请求被响应时,ISR中的对应位ISn被 置“1”,8259A把中断类型码放到数据总线上, 然后,进入中断服务程序。同级和低级的中断请 求不能中断当前的中断服务,但并不禁止比本级 优先级高的中断响应实现中断“嵌套”。在对 8259A初始化后若没有设置其他优先级方式,则 默认为全嵌套方式。中断嵌套的实现:通过PR判 别IRR中的对应位和ISR中的对应位。
优先级 裁决器
OCW1
0 0 0 0 0
3个操作命令寄存器
OCW1(IMR) OCW2、OCW3 当前中断服务寄存器 ISR 中断申请寄存器 IRR
计算机学院系统结构教研室
2016/12/10
ICW1 芯片控制 1 × I3 I4 ICW2 中断类型号
1 0 0 1 0 1 0 0
中断屏蔽寄存器 IMR 0 0
根据中断类型码68H取得中断服务程序入口 地址 00000H 低地址