8259A可编程中断控制器

合集下载

8259A中断控制器

8259A中断控制器
CS
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寄存器

8259A中断控制器和8253计数器

8259A中断控制器和8253计数器

8259A中断控制器和8253计数器·定时器实验浏览次数:1129次悬赏分:50|解决时间:2008-12-2 12:17 |提问者:liushang8811程序1参考流程图1:开始2:关中断3:初始化8253(设定定时器0和1的工作方式及技术初值)4:使用INT 21H的35H号功能获取0AH号中断向量并保存。

5:使用INT 21H的25H号功能设置0AH号中断的新中断向量。

6:设置IMR寄读器及允许IRQ2中断。

7:开中断8:循环等待中断。

程序2参考流程图:编写中断服务程序。

要求主机每响应一次IRQ2的中断时,就执行一次终端服务子程序。

中断服务子程序的核心就是显示字符串“THIS IS A 8259A INTERRUPT”1:开始2:显示字符串3:技术结束?终端结束并返回4:关中断5: 使用INT 21H的25H号功能恢复原OAH号中断的中断向量6: 恢复IMR寄存器的原值7: 开中断8: 结束,返回DOS用汇编,急用,跪谢1.MOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXMOV AL,00110110B ;假设定时器0设为方式3OUT 43H,ALMOV AL,XXH ;OUT 40H,ALMOV AL,XXHOUT 40H,AL ;定时器0初值MOV AL,01110110B ;假设定时器1设为方式3OUT 43H,ALMOV AL,XXH ;OUT 41H,ALMOV AL,XXHOUT 41H,AL ;定时器1初值MOV AH,35HMOV AL,0AHINT 21HPUSH ES ;保存原向量PUSH BXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,XXH ;新中断向量段地址MOV DX,XXH ;新中断向量偏移量MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSIN AL,21HMOV SAV_IR,AL ;保存原8259设置(必须事先在数据段中为SAV_IR开辟一个字节的空间)OR AL,00000100B ;开IR2OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXWAIT1:JMP WAIT12.MESSAGE DB 'THIS IS A 8259A INTERRUPT$'SAV_IR DB 0MOV AH,9MOV DX,SEG MESSAGEMOV DS,DXMOV DX,OFFSET MESSAGEINT 21HMOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,ESMOV DX,BX ;原0AH中断向量值MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSMOV AL,SAV_IR ;读回8259原设置值OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXIRET回答者:shinesnow_wy|三级| 2008-11-12 18:51 呵呵~~我们是同行啊~~~也许是对的吧~~顶~~顶~~~顶~~~~MOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXMOV AL,00110110B ;假设定时器0设为方式3OUT 43H,ALMOV AL,XXH ;OUT 40H,ALMOV AL,XXHOUT 40H,AL ;定时器0初值MOV AL,01110110B ;假设定时器1设为方式3 OUT 43H,ALMOV AL,XXH ;OUT 41H,ALMOV AL,XXHOUT 41H,AL ;定时器1初值MOV AH,35HMOV AL,0AHINT 21HPUSH ES ;保存原向量PUSH BXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,XXH ;新中断向量段地址MOV DX,XXH ;新中断向量偏移量MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSIN AL,21HMOV SAV_IR,AL ;保存原8259设置(必须事先在数据段中为SAV_IR开辟一个字节的空间)OR AL,00000100B ;开IR2OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXWAIT1:JMP WAIT12.MESSAGE DB 'THIS IS A 8259A INTERRUPT$'SAV_IR DB 0MOV AH,9MOV DX,SEG MESSAGEMOV DS,DXMOV DX,OFFSET MESSAGEINT 21HMOV AX,FLAGSAND AX,1111110111111111B ;关中断MOV FLAGS,AXPUSH DS ;借用DS和DX作中断入口,暂时保存原值PUSH DXMOV DS,ESMOV DX,BX ;原0AH中断向量值MOV AH,25HMOV AL,0AHINT 21HPOP DXPOP DSMOV AL,SAV_IR ;读回8259原设置值OUT 21H,ALMOV AX,FLAGSOR AX,0000001000000000B ;开中断MOV FLAGS,AXIRET。

可编程中断控制器8259详解

可编程中断控制器8259详解

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

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

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

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

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

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

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

第六章1-3讲 可编程中断控制器

第六章1-3讲 可编程中断控制器

天津工业大学

SP/EN:双功能信号。 缓冲方式时, EN 为输出,控制缓冲 器传输的方向。 EN=0,表示允许8259A通过缓冲器输出。 EN=1,表示CPU写8259A。 非缓冲方式时,SP为输入,表示主从 关系, SP=1,表示主片, SP=0,表示从片。
天津工业大学
④控制逻辑:
向CPU发送中断请求信号,处理CPU的中断应 答信号INTA,直接连接到CPU的中断请求输入端 INTR. INT:8259A向CPU发出的中断请求信号,高电平 有效。 INTA:CPU响应中断时,约两个总线周期,称为 响应周期。用来对8259A的中断申请进行响应, 在中断响应周期中产生两个INTA信号, 第一个用来使中断请求服务寄存器相应位置1, 第二个INTA信号,8259A向CPU提供中断矢量号。
天津工业大学
⑦ 中断服务寄存器(ISR) 记录优选后的中断申请标志(正在执行 的中断服务程序其ISR相应位置1),后来 的中断申请在优先排队电路的控制下与当 前正在执行的中断过程进行优先级排队, 以决定是否实现中断嵌套。
天津工业大学
⑧中断屏蔽寄存器IMR 由CPU设置,以决定某个中断源是否被屏 蔽,当该寄存器中某一位置“1”时,表示 禁止该中断请求进入系统。通过IMR寄存器 可实现对各级中断的有选择的屏蔽。
• ♣SP/EN在非缓冲方式下,规定(SP=1)时该
8259A是主片, (SP=0)时该8259A是从片。
天津工业大学
第一个周期 T1 T2 T3 T4
CLK ALE LOCK INTA D0~D7 SP/EN CAS0~CAS2 IR0~IR7 INT
第二个周期 T1 T2 T3 T4
CPU响应周期
天津工业大学
6.5.3 8259A的优先级管理方式

8259中断控制器实验报告

8259中断控制器实验报告

竭诚为您提供优质文档/双击可除8259中断控制器实验报告篇一:8259中断控制器实验报告8259中断控制器实验报告作者:一实验目的1,掌握8259A的工作原理。

2,掌握编写中断服务程序方法。

3,掌握初始化中断向量的方法。

二,实验设备cpu挂箱,8086cpu模块图1-cpu挂箱三,实验内容用电平开关的输出作为中断源,每个开关对应于一个中断源。

在中断服务程序中,通过74Ls273输出一个数据,以点亮于中断源对应位置的LeD灯。

四,实验原理1.本实验用到三部分电路:电平开关电路、简单I/o扩展电路和8259中断控制器电路;2.8086的中断系统是向量中断方式,内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量,不同的中断向量对应不同的偏移地址;3.中断类型由8359通过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序;4.中断类型的高5位由8359寄存器Icw2决定,低3位由中断源IRx的编码自动填充,IRo~IR7的编码分别是000,001,010,011,100,101,110,111。

五,实验步骤1,实验接线cs0-cs8259cs1-cs27300~07-LeD1~LeD8K1~K8-IR0~IR7InT-InT(8086cpu板)InTA-InTA(8086cpu板)2,编译调试程序3,全速运行程度,拨动某一电平开关,观察LeD的亮灭情况。

六,实验结果全速运行程序,由上向下拨动开关时,相应位置的LeD灯点亮,其余LeD灯全灭七,源代码Assumecs:coDecoDesegmenTpubLIcoRg100hsTART:moVcx,0sTART1:cLImoVDx,04A0hmoVAx,13houTDx,AxmoVDx,04A2hmoVAx,80h ouTDx,AxmoVAx,01houTDx,AxmoVAx,00houTDx,AxnopmoVAx,0moVDs,AxmoVADDDI,2DI,200hmoVDs:[DI],100h;初始化中断向量表moVAx,oFFseTint0moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint1moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint2moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint3moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint4moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint5moVDs:[DI],AxADDDI,2moVAx,oFFseTint6moVDs:[DI],AxADDDI,2moVDs:[DI],100hADDDI,2moVAx,oFFseTint7moVDs:[DI],AxADDDI,2;上述程序为芯片8259的初始化程序moVDs:[DI],100hmAIn:moVAx,0sTIwAITIng:cmpAx,0hJewAITIngmoVDx,04b0houTDx,AxmoVcx,0 DeLAY:LoopDeLAYJmpsTART1Int0:cLInopmoVAx,oFehIReTInt1:cLInopmoVAx,oFDhIReTInt2:cLInopmoVAx,oFbhIReTInt3:cLInopmoVAx,oF7hIReTInt4:cLInopmoVAx,oeFhIReTInt5:cLInopmoVAx,oDFhIReTInt6:cLInopmoVAx,obFhIReTInt7:cLInopmoVAx,o7FhIReT篇二:8259中断控制实验报告深圳大学实验报告班级:实验时间:实验报告提交时间:教务处制篇三:8259中断控制实验报告实验六8259中断控制一、实验目的1.学习8086/8088cpu中断系统的知识。

a可编程中断控制器实验

a可编程中断控制器实验

4.2 8259A可编程中断控制器实验4.2.1 实验目的1、掌握8259A可编程中断控制器的工作原理、编程方法以及如何通过8259A实现对外部可屏蔽硬件中断的管理;熟悉实验中涉及到的中断屏蔽寄存器IMR和中断服务寄存器ISR等的使用方法.2、进一步掌握中断服务程序的设计方法.4.2.2 实验预习要求1、复习教材中有关中断的内容,了解微型计算机中外部可屏蔽硬件中断的处理过程.2、复习8259A的工作原理以及如何通过8259A实现对外部可屏蔽硬件中断源的管理.3、复习中断服务程序的编写方法.4、预先编写好实验程序.4.2.3 实验原理微型计算机中用户可使用的外部硬件中断只有可屏蔽中断,由8259A可编程中断控制器管理.中断控制器用于接收外部的中断请求信号,可实现中断优先级判定、提供中断类型号、屏蔽中断输入等功能.在IBM PC/XT机中,仅使用了1片8259A芯片,能实现对外部8个硬件可屏蔽中断源的中断管理(其中IRQ2系统保留),有关8259A在IBM PC/XT机中的使用情况见教材“7.5 可编程中断控制器Intel 8259A”一节.IBM PC/A T(80286CPU)及其以后机型使用2片8259A组成级联方式,扩展的8259A与主8259A通过IRQ2进行级联,两个8259A中断控制器最多可对外部15个中断源进行管理.实验台上的中断请求信号通过扁平电缆连接到微机主板上的ISA总线扩展插槽的IRQ2、IRQ3、IRQ4和IRQ7中的某一个上,然后送往主板上主8259A可编程中断控制器的对应中断请求输入端.具体选用IRQ2、IRQ3、IRQ4和IRQ7中的哪一个,由本实验台接口卡上的跳线开关(JK)设置,可以选择将IRQ2、IRQ3、IRQ4和IRQ7中的某一个引到实验台上的IRQ插座上,跳线方法详见第3章,实验台接口卡出厂设置为IRQ7.系统启动时,8259A中断类型号的高5位已被初始化为00001,故IRQ0~IRQ7的中断类型号为08H~0FH;8259A的中断结束方式初始化为非自动结束方式,即要在中断服务程序中发EOI命令;中断请求信号设置为“边沿触发”方式;8259A的端口地址为20H和21H.4.2.4 实验内容按图4.2-1连接线路(只需连接一根线),按动单脉冲发生器的微动开关产生一个正脉冲作为中断请求信号.要求每按一次开关产生一次中断,在屏幕上显示一次“This is a interruption!”,中断10次后程序结束.4.2.5 实验提示设实验台接口卡上的跳线开关(JK)设置为通过ISA总线中的IRQ7(接口卡出厂设置)将实验台上的中断请求信号引入微机主板上的主8259A中断控制器.由于系统中使用IRQ7作为并行打印机的中断请求信号输入,其中断类型号为0FH,其对应的中断服务程序入口地址存放在内存(中断向量表)0FH⨯4~0FH⨯4+3四个存储单元中,因此,程序应首先将系统设置的IRQ7对应的中断服务程序的入口地址保存起来,然后再将实验台上的外部可屏蔽硬件中断对应的服务程序的入口地址写入中断向量表中的这四个单元中,在程序返回前恢复原有内容.下面分别给出以上有关操作的编程提示.1、原中断向量的保存与新中断向量的写入DATA SEGMENTKEEP_CS DW 0 ;存放原中断服务程序所在代码段的段地址&&图4.2-1 IRQKEEP_IP DW 0 ;存放原中断服务程序在代码段的偏移地址 OLD_IMR DB 0 ;存放中断屏蔽寄存器IMR 原来的内容DATA ENDSCODE SEGMENT;保存原中断服务程序的入口地址(由DOS 系统功能调用INT 21H 功能号为35H 实现)MOV AH ,35HMOV AL ,0FH ;IRQ7的中断类型号为0FHINT 21H ;返回值:(ES )=段地址 (BX )=偏移地址MOV KEEP_CS ,ES ;保存段地址MOV KEEP_IP ,BX ;保存偏移地址;将新的IRQ7的中断服务程序入口地址送中断向量表MOV AX ,SEG PIRQ7 ;中断服务程序入口地址送DS :DXMOV DS ,AXMOV DX ,OFFSET PIRQ7MOV AL ,0FH ;中断类型号0FH 送ALINT 21HPIRQ7 PROC ;IRQ7对应的新的中断服务程序IRETPIRQ7 ENDP CODE ENDS⋯ ⋯ ⋯ ⋯图4.2-2 主程序流程图 图4.2-3 中断服务程序流程图2、8259A中断屏蔽寄存器IMR对应位清零(允许该位中断)IN AL,21H ;读IMRMOV OLD_IMR,AL ;保存IMR内容AND AL,7FH ;IRQ7对应的bit7清零,允许IRQ7的中断OUT 21H,AL ;写回到IMR3、中断服务程序结束前使用中断结束命令MOV AL,20HOUT 20H,AL4、程序结束返回DOS前应恢复8259A中断屏蔽寄存器IMR的原有内容,并恢复原IRQ7的中断向量.注意:若实验台接口卡未使用出厂时的设置,即不是使用ISA总线中的IRQ7将实验台上的中断请求信号IRQ送到主板的8259A,请根据具体设置在编写程序时作适当修改.实验内容1和2的程序流程图如图4.2-2和4.2-3所示.4.2.6 实验报告要求1、根据流程图编写实验程序,并说明在实验过程中遇到了哪些问题,是如何处理的.2、写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等.。

中断系统和中断控制器8259A详解

中断系统和中断控制器8259A详解
∧∧
微 机 原
第7章 中断系统和中断控制器8259A


应 用
7.1 中断的基本概念
∨∨
•中断:是指CPU在正常运行程序时,由于内部或外部事件 引起CPU暂时中止执行现行程序,转去执行请求CPU为其 服务的那个外设或事件的服务程序,待该服务程序执行完 后又返回到被中止的程序这样一个过程。
•中断源:能发出中断申请的外设或引起中断的原因。
IRR锁存
逻辑电路根据IMR判断 IMR对应位为0
优先权判别器PR




CPU响应中断 IF=1 CPU的INTR端
高 8259A的INT端为1
INTA 8259A
ISR相应位置1, IRR响应位清0,
送中断类型码
●若允许嵌套,PR依据ISR的状态,判断新的中断请求优先权是否高 于正在服务的中断,是则送出INT=1。 ●服务结束,8259A清除ISR响应位。
提高了CPU的利用效率。
7.1.2 中断处理过程
∧∧
微 机
1.中断过程

理 及
● 对于不同的微机系统,CPU中断处理的具体过程不尽相同,但是一
应 用
个完整的中断基本过程应包括五个基本过程:
∨∨


保护现场







断 响
断 处
断 返
开中断





中断处理
产指断触生令接发中或口器断电和CP信路中U确 最号有断引定高。一屏脚有的来个蔽。中那至中触每断个于断发个请中中请器中C自关保形求断P断 求 。动中护成U且 源完 断 现 中响优 。成 ; 场 断应先下 保 服;进级列 护 务入中 中 中工 断 程中断 断作 点 序断服 服 服: ; 入周务 务 务口期就 程 程地,是 序 序弹址过 结C出P程 构断U。 如执点图行,返回主程恢中关序复断。中现返断场回

总结介绍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有一个中断到达。

8259A介绍

8259A介绍
(3)中断屏蔽寄存器IMR IMR是一个8位寄存器,存放中断屏蔽字,某位=1表示 对应的IRi输入被屏蔽,为0开放该中断请求。可通过指令 设置。 (4)优先权电路 用于识别和管理IRR中各位的优先权级别。能进行优先 级判别,把未被屏蔽的最高优先级的中断请求送到CPU。
(5)控制逻辑电路 控制逻辑电路根据CPU对8259A编程设定的工作方 式 管 理 8259A , 负 责 发 出 INTR 和 接 收 INTA# , 并 使 INTA#转化为内部所需的各种控制信号。 (6)读/写电路 读/写电路可接收CPU对8259A的初始化命令字ICW 和操作命令字OCW,并将其存入相应的端口寄存器, 来规定8259A的工作方式和控制模式;也可以向CPU提 供各端口寄存器的内容。 (7)数据总线缓冲器 连 接 系 统 总 线 和 8259A 的 内 部 总 线 , 用 于 传 输 8259A的控制字或状态字,以及中断类型号。 (8)级连缓冲/比较器 控制多片8259A的级连,扩展中断级。多片8259A 级连时,一片为主,其余为从。最多可9片级连,扩 展64级中断。

1.中断嵌套方式

(2)特殊全嵌套方式 和一般全嵌套方式基本相同,区别在于: 在特殊全嵌套方式下,处理某一中断时, 可实现对同级中断请求的响应。 系统中只有单片8259A时,通常用全嵌 套方式;而当8259A多片级连时,主片 必须采用特殊全嵌套方式,从片可采用 一般全嵌套方式。

一般全嵌套方式与特殊全嵌套方式的区别
8259A中断优先权的管理方式有固定优先权方式和自 动循环优先权方式两种。 (1)固定优先权方式 注: 特殊全嵌套仅用于多个8259A级连时的 在固定优先权方式中,IR7~IR0的中断优先权 主 8259A , 而 不 能 用 于 从 属 8259A 或 单 的级别是由系统确定的。 8259A系统。 它 们 由 高 到 低 的 优 先 级 顺 序 是 : IR0, IR1, IR2, …, IR7, 其中,IR0的优先级最高,IR7的优 先级最低。当有多个IRi请求时,优先权判决器(PR) 将它们与当前正在处理的中断源的优先权进行比较, 选出当前优先权最高的IRi,向CPU发出中断请求INT, 请求为其服务。

(8259A)

(8259A)
① 若有IRi=1,则IRR中相应位置1。 ② 若对应IMR中的相应位为0,则8259A向CPUINTR。 ③ 若IF=1,则CPU在执行完当前指令后,发第一 个 INTA8259A ④ ISR中对应当前最高优先权的位为1,且IRR中相应位清0。 ⑤ CPU发第二个INTA8259A,8259ADB上送8位的向量号N (即中断类型号,初始化8259A时已设定好)。 CPU做:N×4 从中断向量表中取出中断服务程序的入口地址。 ⑥ 若8259A为AEOI(自动结束中断), 则在第二个INTA尾,ISR中相应的位复位。 否则,至中断服务程序结束,发出EOI命令使ISR中相应位复位。 CPU 进入响应中断的过程,继而执行中断子程序。 9
从ISR是 否全为0
N
Y EOI主
IRET
(3) 优先权循环方式
一个系统的优先权比较复杂,所以不能总规定IR0高 … IR7低。 8259A设计了两种改变优先权的方法。
•自动循环方式 ——适用于设备的优先权相等情况 当一个设备受到中断服务后,它的优先级自动降到最低,其相 邻的中断请求变成最高的。 例如: IR0 IR1 IR2 IR 3 IR4 IR5 IR6 IR7 初始 高 低 若IR4有中断请求,处理IR4后,IR5成为最高优先级, 优先级次序为:IR5 IR6 IR7 IR0 IR1 IR2 IR3 IR4 IR4左循环至最低优先级。
不管是普通、还是特殊的中断结束方式,级联系统中的中断结 束必须发送两次EOI: 一次给从片,一次给主片。 (向从片发EOI后,须检查从片中的所有申请中断的源是否全服务过。 只有都服务过了,才能向主8259送另一个EOI命令)。
17
中断结束字


什么是8259A的中断结束字(EOI)?

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

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

8259A的工作方式( 8259A的工作方式(2)——结束中断的方式 的工作方式
注意: 注意:
级连方式下,一般不用中断自动结束方式, 级连方式下,一般不用中断自动结束方式,而用 非自动结束方式。不管用哪一种非自动结束方式, 非自动结束方式。不管用哪一种非自动结束方式, 都至少连发两次中断结束命令,一次对主片, 都至少连发两次中断结束命令,一次对主片,一 次对从片。 次对从片。
(5)数据总线缓冲器 数据总线缓冲器
是双向三态8位缓冲器,用于连接系统数据总线和 8259A 内 部 总 线 , 传 递 CPU 发 送 的 控 制 信 息 , 返 回 8259A的状态信息 的状态信息
(6)读/写控制电路 读 写控制电路
Di位为 表示 中断正在服务中;为0表示没有被服务 位为1表示 中断正在服务中; 位为 表示IRi中断正在服务中 表示没有被服务
第8章 中断系统
§8.3 可编程中断控制器8259A及其应用
第8章 中断系统
中断接口8259A是可编程中断控制器, 中断接口8259A是可编程中断控制器,用于管理 8259A是可编程中断控制器 8080/8085、8086/8088、80286/80386的可屏蔽中断 8080/8085、8086/8088、80286/80386的可屏蔽中断
8.3.3
8259A中断控制器的引脚( 8259A中断控制器的引脚(1) 中断控制器的引脚
8259A是一个使用+5V电源的28脚双列直插芯片。 8259A是一个使用+5V电源的28脚双列直插芯片。 是一个使用+5V电源的28脚双列直插芯片 中断请求输入信号,一般IR ① IR0~IR7—中断请求输入信号,一般IR0优先 级最高, 最低,但优先级可由编程改变。 级最高,IRQ7最低,但优先级可由编程改变。 INT—中断请求输出信号, CPU的INTR引脚 引脚。 ② INT—中断请求输出信号,接CPU的INTR引脚。 INTA—中断响应,由此脚接收来自CPU CPU的中断 ③ INTA—中断响应,由此脚接收来自CPU的中断 响应信号。 响应信号。 ④ CS—片选,当CS有效时,该芯片工作。 CS—片选, CS有效时 该芯片工作。 有效时, ⑤ WR—写信号,有效时CPU将命令字写入8259A。 WR—写信号,有效时CPU将命令字写入8259A CPU将命令字写入8259A。

可编程中断控制器Intel 8259A

可编程中断控制器Intel 8259A

0 —对应IR线上无从片
图7.26 ICW3的作用
第7章 输入/输出与中断 只有当系统中有级联(ICW1的SNGL位为0)时,才写入ICW3。 对于主片,ICW3 的S0S7 指明了IR0IR7 各引脚连接从片的情 况,置1的位表示对应的引脚有从片级联。例如,若主片ICW3的 内容为07H(00000111B)时,说明主片的IR0 、IR1 、IR2 上连有从 片。对于从片,ICW3 的D7D3 不用,置0即可;用D2D0 表示与 主片的对应引脚级联,例如,若某从片ICW3 的内容为07H,说 明该从片的INT引脚与主片的IR7相连。
第7章 输入/输出与中断
D7D0 :双向、三态数据线,接系统数据总线的D7D0 ,用
来传送控制字、状态字和中断类型号等。 IR7IR0:中断请求信号,输入,从I/O接口或其他8259A(从 控制器)上接收中断请求信号。在边沿触发方式中,IR输入应由 低到高,此后保持为高,直到被响应。在电平触发方式中,IR输 入应保持高电平。 INT:8259A向CPU发出的中断请求信号,高电平有效,该 引脚接CPU的INTR引脚。
型号。例如,在PC/XT中ICW2为00001000B,则对于从IR0、IR1、
IR2、IR3、IR4、IR5、IR6和IR7上引入的各中断请求,其相应的中
断类型号为08H、09H、0AH、0BH、0CH、0DH、0EH和0FH。
第7章 输入/输出与中断 3) ICW3 ICW3用于设置级联,写入A0=1的端口,格式如图7.26所示。
第7章 输入/输出与中断 7.5.4 8259A的编程
8259A是可编程的中断控制器,它的工作状态和操作方式是由 CPU通过命令字进行控制的。8259A有两类命令字——初始化命令 字ICW(Initialization Command Words)和操作命令字OCW(Operation Command Words)。相应地,在8259A的控制部分有7个CPU可访问 的寄存器,这些寄存器分成两组:一组用做存ICW,另一组存OCW。 当计算机刚启动时,用初始化程序设定ICW,即由CPU按次序发送 24个不同格式的ICW,用来建立起8259A操作的初始状态,此后的 整个工作过程中该状态保持不变。相反,操作命令字(OCW)用于动 态控制中断处理,是在需要改变或控制8259A操作时随时发送的。 每片8259A有2个片内地址A0=0和A0=1,所有的命令字都是通过这 两个端口来发送的。注意,当发出ICW或OCW时,CPU中断申请引 脚INTR应关闭(使用CLI指令)。

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
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
连接系统总线的方式

8259A中断控制器

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

中断控制器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。

第6章 中断系统与可编程8259A(2)

第6章 中断系统与可编程8259A(2)

第6章 中断系统与可编程8259A
(4) 若CPU处于开中断状态,则在当前指令执行完后, 进入中断服务程序,并用INTA信号作为响应中断的回 答信号。 (5) 8259A接收到INTA信号后,使中断服务寄存器ISR 相应位置1,使中断请求寄存器IRR的相应位置0,以避 免该中断源再次发生中断申请。 (6) CPU启动另一个中断响应周期,输出另一个INTA脉 冲。这时8259A通过数据总线向CPU输出当前级别最高 的中断申请源的中断类型号,以便CPU很快转入中断服 务程序。 (7) 若8259A工作在AEOI模式(自动结束方式),在第二 个INTA脉冲结束时,使中断源在中断服务寄存器中的 相应位置0;否则,直至中断服务程序结束,发出EOI 命令,才使中断服务寄存器中的相应位复位。
第6章 中断系统与可编程8259A
②初始化命令字ICW2 ICW2的端口为奇(A0=1)地址,A0恒等于1,为 ICW2的特征位,它是必须写入的第二个初始化命令字。 此控制字为设置中断类型号的初始化控制字,格式如 图6-17所示。CPU响应中断,发出第二个中断响应信 号INTA后,8259A将中断类型寄存器中的内容ICW2送 到数据总线上。 D0~ D2位:为中断类型码的低三位,决定中断源 挂在8259A IRi 哪一个引脚上。
图6-158259A初始化流程图
第6章 中断系统与可编程8259A
初始化控制字有4个,操作控制字有3个,需写入 8259A7个相应的寄存器中,但是8259A只占用了两个 地址,偶地址和奇地址,8259A是通过控制字的标识位 和奇偶地址来决定控制字应写入到哪个寄存器中。下面 讨论每个控制字中特别标出A0位,若A0=1,控制字应 写在奇地址端口中,若A0=0,控制字应写在偶地址端 口中。下面分别对初始化控制字和操作控制字各位定义 进行介绍。 (1)初始化命令字ICW 初始化命令字 是用来设定8259A的基本工作方式。 它有四个初始化命令字寄存器ICW1~ICW4。各初始化 命令字的格式如下所示。

8259A的工作方式

8259A的工作方式
• 8259A的中断结束方式有两种:命令中断结束方式(EOI)和自动中断结束方式 (AEOI)。
7
(l)自动结束
• 在自动中断结束(AEOI)方式下,8259A自动地在最后一个
INTA 中断响
应脉冲的后沿将中断服务寄存器ISR中的相应位清零。这种方式的过程是:中断请
求,CPU响应,发第一个 ,ISR相应位置“1”,CPU发第二个INTA ,8259A
• 查询时,CPU先向8259A发出查询命令,8259A接到查询命令后,就把下一个IN指 令(对偶地址端口的读指令)产生的脉冲作为中断响应信号,此时,若有中断请求 信号,则在ISR中相应位置“1”,并把该优先级送上数据总线。
6
5.中断结束方式
• 所谓中断结束方式是指中断如何结束的方法,这里的“结束”不是指中断服务程序 的结束,中断服务程序的结束用IRET指令就可完成,这里的“结束”是指如何和何 时使8259A中的ISR中的相应位清零。ISR中某位为“1”,表示CPU正在为之服务; 某位为“0”表示CPU已经停止(结束)为之服务。而IRET指令主要是恢复程序的断 点,它并不能使ISR的相应位清零。
• (2)在某个中断源退出中断服务程序之前,CPU要用软件检查它是否是这个从片中的唯一中断。检 查办法是:送一个非特殊中断结束命令(EOI)给这个从片,然后读它的ISR,检查是否为0,若为0 则唯一,即只有这一个中断在被服务,没有嵌套。若不为0则不唯一,说明还有其他的中断在被服务, 该中断是嵌套在其他中断里的。只有唯一时,才能把另一个非特殊EOI命令送至主片,结束此从片 的中断。否则,如果过早地结束主片的工作记载而从片尚有未处理完的嵌套中断的话,整个系统的 中断嵌套环境就会混乱。
5
4.程序查询方式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ISR2上的1,一直要保持到该中断源的中断处理结束为止,当8259A收到中断结 束命令后,ISR2才被清0,表明连接在IR2上的外设的中断服务已经结束。 有两个以上的“1”,表明有中断嵌套。
设IR2引脚有中断请求,IRR2= 1
IR7引脚 IR6 IR5 IR4 IR3
CPU 响 应 IR2 中断,回送中 断应答信号; 8259 的 INTA 引 脚收到第一个 中断响应信号 , 使 ISR 某 位 ( 如 ISR2) 置 1 时 ,把IRR中某位 (如IRR2)清0
2)内部结构 *1 中断请求寄存器 IRR Interrupt Request Register 功能: 存放中断请求信号直到CPU响应中断为止。
IRR7
:
:
:
IRR0
IR7引脚
IR0引脚 或
IR7~IR0引脚上出现中断请求信号
上升边或高电平表示有中断请求,则相应的位置1。 80X86计算机系统设定的是上升边方式
*2中断屏蔽寄存器 IMR Interrupt Mask Register 功能: 用于屏蔽某IR0~IR7引脚上的中断请求信号,使之不能被传递给CPU。
某位为1,则屏蔽对应引脚上的中断请求;为0,允许。 IMR与IRR的各个位一一对应
例:IR0,IR3,IR7引脚上有中断请求信号,要求只屏蔽IR7引脚上的中断请求,则对屏蔽寄 存器送入屏蔽字10000000即可
IR2 IR1 IR0引脚
IRR7
IRR2
1 0
IRR0
IRR IMR
1
10
ISR
第二个中断响应信号,启动8259把选中的中断源的中断类型号 回送给CPU
*4 优先级分析器 PR Priority Resolver 功能:用于分析中断请求寄存器IRR中各位的优先级,对各个中断请求择优。 *择优对象:没有被屏蔽的IRi *择优时间:接收到第一个INTA信号时 *择优方式:由编程决定 *择优结果:找出优先级最高的中断源,送出中断类型号给CPU,并且使ISRi对应的位置1。 *5 逻辑控制 根据CPU对8259A设定的方式,产生8259A内部所需的控制信号,并且能够 发出INT信号和接收INTA信号。 *6 读写逻辑 *7 数据总线缓冲器:通过这一环节,可以使8259A的数据线直接与CPU的DB连接而不用增加 其它电路。 *8 级联缓存器/比较器(了解) 在多片8259A级联的情况下,用于存放和比较从8259A的级联选择代码。CPU响应中断 时,通过CS2~CS0对从8259A输出级联选择代码,选出发中断请求的从8259A;从8259A则通 过CS2~CS0接受来自主8259A的选择代码。 *9 初始化命令寄存器和操作字命令寄存器 两组可编程控制寄存器,用于设定或改变8259A的工作方式和控制方式。
中断屏蔽寄存器 IMR
8259A与总线的连接
8259A
总线 Vcc 数据线 D0 ~ D7 RD WR A0 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 + 5V 18.2Hz 方波 键盘 保留 串 口2 串 口1 硬盘 软盘 打印机
D0 ~ D7
IOR IOW A0 A1 ~ A9 INTA INTR
从功能的角度,认识和学习8259A!
*功能: 1)一片8259A可以管理8个中断源的识别和判优;一片8259可以级连8 片8259A,可以管理64个中断源的识别和判优。 2)对于每一个由8259管理的外中断,均可独立屏蔽或非屏蔽 3)能够向CPU提供中断源的识别码(中断类型号) 4)具有多种优先级管理方式
(1) 8259A内部的结构和引脚功能
INTA
数据总线 缓冲器
INT
D0~D7 RD WR A0
控制逻辑
读 /写 逻辑
正在服务 寄存器 ISR
优先级 分析器 PR
中断请求 寄存器 IRR
CS CAS0 CAS1 CAS2
SP/EN
级联 缓冲 /比较器
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
A0=1,选中奇地址端口 A0=0,选中偶地址端口
8259A规定有些命令字要写入奇地址端 口,有些则应写入偶地址端口。
在80X86系统中,使用一片8259,偶地址为20H,奇地址为21H 使用两片8259A时,主片8259H,偶地址为20H,奇地址为21H 从片8259H,偶地址为A0H,奇地址为A1H * WR RD *INT 中断请求信号 8259 INT INTR CPU 上一级8259
IMR7 IMR3 IMR0
IMR IRR
1
IRR7
0
IRR3
0
IRR0
1
R7引脚
1
R3引脚
1
R0引脚
如果我们希望确保IR3引脚上的信号不被屏蔽(允许中断请求信号 能够传送到CPU),而又要求其它各个引脚上屏蔽/开放的状态不变,可以采用 如下指令:
重 要
IN AL,21H ;从8259的奇地址读入屏蔽字 AND ALAL ;开放(允许)IR3的中断
*INTA 中断响应信号输入端 *SP / EN (Slave Program / ENable buffer)(了解即可) 从编程/使能缓冲线 双功能引脚。工作在级联方式时,主8259A的这条引脚接高电平,从8259A 接低电平。 * CAS0,CAS1,CAS2:(CAScade lines)级联线(了解即可) 主从片的CAS0,CAS1,CAS2对应连接 *IR0~IR7 中断请求输入引脚。8个外设的中断请求信号分别连接在这些引脚上。 每一个引脚可以扩展一片8259A 注意:外设的中断请求不是直接提交给 CPU的,而是通过中 断控制器经过管理后,再传递给CPU的INTR引脚的。
6.2.2 8259A 可编程中断控制器
中断管理包括: 中断请求信号的产生和锁存环节; 中断请求的屏蔽环节; 中断判优环节; 中断源的识别环节; 向CPU传递识别码(中断向量号)的环节; 中断请求信号的撤除环节。 中断管理可以由若干块芯片来实现,与可以采用可编程接口芯片来实现。8259A就 是一块在计算机系统中,用得相当普遍的一种中断管理芯片,它不仅可以完成上面 所提及的各种操作,还具备更强的、更多的功能,具有更方便、更灵活的特性
片 选 20~3FH 译 码
CS
INTA INT
SP/EN CA0 CA1 CA2 GND
用于多片 8259A 级连情况
1) 引脚功能 P174 图6.15 *D0~D7: 8259A数据线。通过D0~D7,设置8259A的工作模式;外设的中断类型号也必须 通过数据线送给CPU。 * CS 片选信号 * A0:端口选择信号 8259A内部有两个可寻址的端口:偶地址端口和奇地址端口
*3 中断服务寄存器 ISR Interrupt Service Register ISR与IRR的各个位一一对应 功能:记录CPU正在为之服务的是哪一个中断源。
例如:经过优先级分析器,IR2中断被选中,8259向CPU发出中断请求,CPU响应中断,向 8259A回送两个中断响应信号INTA。第一个INTA使ISR2置1,表明CPU正在为IR2服务(正在 处理IR2中断),并且把IRR2清0, (已经响应了该中断请求,所以撤除请求标志)。
相关文档
最新文档