中断系统和中断控制器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.1计算机组成之.8259A详细说明

4
5 6 7 8 9 10 11 12 13 14
25
24 23 22 21 20 19 18 17 16 15
D3
D2 D1
D0
CAS0 CAS1 GND
IR0
INT SP/EN
CAS2
-7-
中断系统和中断控制器8259A
中断响应线INTA:接收CPU在中断响应周期发来的中断响应 信号,8259A接到此信号后,送中断类型码(编程设定);
- 10 -
中断系统和中断控制器8259A
2.屏蔽中断源方式
程序中安排清除中断允许标志位指令(CLI),可以使CPU对所有 可屏蔽中断INT一起进行屏蔽,但无法实现选择性屏蔽。8259A可编程设 定允许或屏蔽指定的可屏蔽中断源:
普通屏蔽方式:通过将中断屏蔽寄存器IMR的某些位置1, 使对应的中断请求被屏蔽,目的是屏蔽高优先级的中断源; 特殊屏蔽方式:该方式主要用于中断嵌套时,开放低优先级 的中断请求,使其能得到及时响应。在预实现特殊屏蔽的中 断服务程序中通过置入控制字将IMR中相应位置1, ISR中 对应位会自动清0,从而屏蔽了本级中断,使低优先级的中 断可以得到响应。在该中断服务程序结束前要退出特殊屏蔽 方式,恢复ISR相应位,再用EOI结束中断服务程序,而且 特殊屏蔽期间被响应的低级中断服务程序必须用特殊中断结 束命令退出。
[精彩]8259a芯片详解
![[精彩]8259a芯片详解](https://img.taocdn.com/s3/m/6b7ee11a854769eae009581b6bd97f192279bf95.png)
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位置位。
第八章 中断和可编程中断控制器8259A

微型计算机原理与接口技术
第七章 微型计算机中断系统
例:某中断类型号为68H,其中断服务程序存在 A000H:2050H开始的存储单元,处理过程如图所示:
INT 68H MOV AX,0 ① 向量地址 =68H4 =1A0H ② 0:19C 类型 67H 中断向量 1A0 50 20 1A2 00 A0 1A4 类型 69H 中断向量 ⑤ 中断处理程序 A000:2050 STI PUSH DS A000 CS ③ 2050 IP
山东工商学院 高群
微型计算机原理与接口技术
第七章 微型计算机中断系统
可屏蔽中断从 8259A 的 8 个输入端引入,一般情况 下,优先级从高到低排列的次序为IR0~IR7。
山东工商学院 高群
微型计算机原理与接口技术
第七章 微型计算机中断系统
主程序运行中,IR2、IR4同时提出中断请求。IR2优先级 高,先为IR2服务。在IR2的服务程序中,要用STI指令开 中断,允许更高级中断进入。
专用 中断向量 (5 个)
2 号向量(非屏蔽)
00008H
1 号向量(单步)
00004H
0 号向量(除法错)
00000H
CS IP
山东工商学院 高群
16 位
微型计算机原理与接口技术
第七章 微型计算机中断系统
中断类型号是系统分配给每个中断源的代号。 其中00H~04H为专用中断,05H~3FH为系统保 留中断,用户一般是不能对它们定义的(这里面有一 些为固定的用途,如INT 21H即为MS-DOS的系统 调用),40H~FFH为用户定义的中断。 中断向量指针:中断向量最低字节存放的地址称 为中断向量指针(即这个中断向量存放的地址)。 中断向量指针=中断类型号×4
第七章--中断系统和中断控制器8259APPT课件

发出中断请求的条件:外部设备已准 备好,且该外设的中断请求没有被 系统评屏蔽。
-
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工作原理
8259工作原理是指8259A可编程中断控制器的工作原理。
8259A是一种用来处理中断信号的芯片,它可以管理多个设备的中断请求。
在8259A中,有8个中断请求线(IRQ0~IRQ7),这些中断
请求线可以连接到外部设备。
当一个设备需要通过中断通知CPU时,它会将相应的IRQ线拉低,8259A会将这个信号传
递给CPU。
8259A使用级联方式来管理多个设备的中断请求。
具体来说,它有一个主片和一个或多个从片。
主片连接到CPU,而从片
连接到各个外部设备。
主片负责管理整个中断系统,从片负责管理各自的设备的中断请求。
当一个设备的IRQ线被拉低时,从片会将这个信息传递给主片。
主片会根据中断请求的优先级确定要处理的中断请求,并将CPU相应的引脚拉高,通知CPU中断发生。
CPU会停止当前的工作,转而执行与中断相关的处理程序。
在8259A中,还有一些寄存器用来存储中断请求的相关信息。
这些寄存器可以被CPU读取和写入,以实现对8259A的配置
和控制。
总的来说,8259A的工作原理是通过管理中断请求线和级联连接的方式,实现外部设备与CPU之间的中断通信。
它可以在
多个设备同时发生中断时,决定中断的优先级,并通知CPU 执行相应的中断处理程序。
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详解

微 机 原
第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。 如执点图行,返回主程恢中关序复断。中现返断场回
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。
中断系统和中断控制器8259A

中断系统和中断控制器8259A
1. 8259A的主要功能
每片8259A可管理8级优先权中断源,通过级联, 最多可管理64级优先权的中断源。
对任何一级中断源都可单独进行屏蔽。
向CPU提供可编程的标识码(中断号),为不能提 供中断号的外设提供中断管理。
中断系统和中断控制器8259A
中断系统和中断控制器8259A
(6) 数据总线缓冲器 这是8位双向三态缓冲器,用作8259A与数据总线的 接口,传输命令控制字、状态字和中断向量。
(7)读/写控制电路 该部件接收来自CPU的读/写命令,实现对8259A的 读/写操作。
(8)级联缓冲器/比较器 它们实现8259A芯片之间的级联,使得中断源可以 由8级扩展至64级。
中断系统和中断控制器8259A
(2)中断屏蔽寄存器IMR
IMR(Interrupt Mask Register)用来存 放屏蔽位信息,IMR的每一位可以禁止IRR 中对应位的中断请求输入信号进入。如果屏 蔽优先权级别较高的中断请求输入时,不会 影响到优先级较低的中断请求输入。
中断系统和中断控制器8259A
IRET指令将自动恢复先前保存的IP和CS值 以及标志寄存器FR或EFR的值,从而跳转到 主程序断点地址。
返回之后,CPU自动打开中断允许响应其它 中断请求。
中断系统和中断控制器8259A
8.1.3 中断的优先级
原因:中断处理的重要程度和时延要求不同
含义:按照中断源的重要程度为每个中断源分 配不同的优先级,并以优先级大小进行排序, 确定多个中断源请求时对不同中断源的服务次 序,称之为中断优先级。
8259A的内部结构框图
中断系统和中断控制器8259A
7.5 可编程中断控制器 8259A知识讲解

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写⼊相应的初始化命令ICW,可以使芯⽚处于⼀个规定的基本⼯作⽅式,并在此⽅式下进⾏⼯作。
8259A的初始化命令字共有4个ICW1-ICW4,进⾏初始化时要求ICW1-ICW4按⼀定的顺序写⼊。
⾸先,⼀个外部中断请求信号通过中断请求线 IRQ ,传输到 IMR (中断屏蔽寄存器), IMR 根据所设定的中断屏蔽字( OCW1 ),决定是将其丢弃还是接受。
如果可以接受,则 8259A 将 IRR (中断请求暂存寄存器)中代表此 IRQ 的位置位,以表⽰此 IRQ 有中断请求信号,并同时向 CPU 的 INTR (中断请求)管脚发送⼀个信号,但 CPU 这时可能正在执⾏⼀条指令,因此 CPU 不会⽴即响应,⽽当这 CPU 正忙着执⾏某条指令时,还有可能有其余的 IRQ 线送来中断请求,这些请求都会接受 IMR 的挑选,如果没有被屏蔽,那么这些请求也会被放到 IRR 中,也即 IRR 中代表它们的 IRQ 的相应位会被置 1 。
当 CPU 执⾏完⼀条指令时后,会检查⼀下 INTR 管脚是否有信号,如果发现有信号,就会转到中断服务,此时, CPU 会⽴即向 8259A 芯⽚的 INTA (中断应答)管脚发送⼀个信号。
当芯⽚收到此信号后,判优部件开始⼯作,它在 IRR 中,挑选优先级最⾼的中断,将中断请求送到 ISR (中断服务寄存器),也即将 ISR 中代表此IRQ 的位置位,并将 IRR 中相应位置零,表明此中断正在接受 CPU 的处理。
同时,将它的编号写⼊中断向量寄存器 IVR 的低三位( IVR 正是由 ICW2 所指定的,不知你是否还记得 ICW2 的最低三位在指定时都是 0 ,⽽在这⾥,它们被利⽤了!)这时, CPU 还会送来第⼆个 INTA 信号,当收到此信号后,芯⽚将 IVR 中的内容,也就是此中断的中断号送上通向 CPU 的数据线。
这⾥需要理解的是中断屏蔽与优先级判定并不是⼀回事,如果被屏蔽了,那么参加判定的机会也都没了。
第9章 中断系统和中断控制器8259A

第7章 中断系统及8259A
24
二、8086/8088的中断系统
1、8086/8088的中断指令 2、8086/8088的中断分类 3、中断向量表 4、8086/8088中断处理过程
2015-1-5
第7章 中断系统及8259A
25
1、8086/8088的中断指令
(1)中断指令 指令格式: INT n ;n=0~255,中断类型码 指令操作: SP-2 → SP(修改堆栈指针), FR入栈, IF=0(中断标志置0,关中断,CPU不响应可屏蔽中 断) , TF=0(陷阱标志,TF=0,CPU正常执行程序) , SP-2 → SP (修改堆栈指针), CS入栈 SP-2 → SP (修改堆栈指针),IP入栈 [n×4] →IP [n×4+2] →CS
第7章 中断系统及8259A
16
(4)中断服务和(5)中断返回
中断服务是指CPU执行中断服务程序。
中断服务程序应包括: ①保护现场,CPU响应中断时自动保护断点, 寄存器则由程序员决定是否要入栈; ②开中断,CPU响应中断时,自动执行关中断 操作。要实现中断嵌套,必须在中断服务程序中开 中断;
2015-1-5
2015-1-5
第7章 中断系统及8259A
7
(1)实现中断及返回
* 通过设置CPU内部的中断允许触发器(IFF),开 关中断 。 当IFF=1,使中断允许(开中断); 当IFF=0,使中断不允许(关中断)。
注意: 不可屏蔽中断,要求CPU立即处理。不受中断允 许触发器(IFF)的控制。 可屏蔽中断,受中断允许触发器(IFF)的控制。
2015-1-5
第7章 中断系统及8259A
14
中断控制器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。
第七章 中断控制器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工作原理
8259a是一种程序可编程中断控制器,用于管理和控制计算机
系统中的中断请求。
它可以与主机处理器进行通信,并根据不同的中断请求向处理器发送适当的中断信号。
该芯片的工作原理可以简要概括为以下几个步骤:
1. 初始化:在系统启动时,主机处理器将会对8259a进行初始化设置。
这些设置包括中断请求级别的优先级、中断控制方式以及中断向量的基地址等。
2. 中断请求检测:一旦系统中有设备发出中断请求,8259a会
检测到该请求。
这些中断请求可以来自于各种外部设备,如键盘、鼠标、硬盘等。
3. 中断请求优先级判断:8259a会根据中断请求的优先级进行
判断,并选择最高优先级的请求进行处理。
这一过程是基于主、从8259a之间的级联配置来完成的。
4. 中断信号发送:一旦确定了中断请求的优先级,8259a会向
主机处理器发送中断信号。
该信号将中断处理器的当前操作,将控制权转移到相应的中断服务程序,以处理中断请求。
5. 中断服务程序的执行:一旦中断信号被接收,主机处理器将会执行相应的中断服务程序。
这个程序会根据中断的类型和来源进行特定的操作,例如读取键盘输入、响应硬件故障等。
总的来说,8259a的工作原理是通过中断请求的检测、优先级判断和中断信号发送来进行中断控制和处理。
它在计算机系统中起到了关键的作用,保证了系统的稳定运行和设备之间的协调工作。
第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。各初始化 命令字的格式如下所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提高了CPU的利用效率。
7.1.2 中断处理过程
∧∧
微 机
1.中断过程
原
理 及
● 对于不同的微机系统,CPU中断处理的具体过程不尽相同,但是一
应 用
个完整的中断基本过程应包括五个基本过程:
∨∨
中
中
保护现场
中
中
中
断
断
请
判
断 响
断 处
断 返
开中断
求
优
应
理
回
中断处理
产指断触生令接发中或口器断电和CP信路中U确 最号有断引定高。一屏脚有的来个蔽。中那至中触每断个于断发个请中中请器中C自关保形求断P断 求 。动中护成U且 源完 断 现 中响优 。成 ; 场 断应先下 保 服;进级列 护 务入中 中 中工 断 程中断 断作 点 序断服 服 服: ; 入周务 务 务口期就 程 程地,是 序 序弹址过 结C出P程 构断U。 如执点图行,返回主程恢中关序复断。中现返断场回
理
及 应
● 8086/8088CPU为外部设备提供了两条硬件中断信号线,
用
即NMI和INTR中断请求信号。
∨∨
1.NMI
● CPU采样NMI引脚的中断请求时,自动提供中断类型号2,然 后根据中断类型号,查找中断向量表指针,其后的处理与内部中 断一样。NMI上的请求信号有效宽度要大于2个时钟周期.
∧∧
∨∨
微 7.2.1 中断指令
机
原
理
及 应
1、中断指令
用 格式:INT n 或 INT
;n=0~255,为中断类型码分别为 ;双/单字节指令
指令的操作: (SP) ←(SP)-2,((SP+1),(SP)) ←(FR) (IF) ←0,(TF) ← 0 (SP) ←(SP)-2,((SP+1),(SP)) ←(CS) (SP) ←(SP)-2,((SP+1),(SP)) ←(IP) (IP) ←(n×4) (CS) ←(n×4+2)
∧∧
微 机
② 专用硬件方式——可编程的中断控制器。采用可编
原 理
程中断控制器,是当前微型计算机系统中解决中断优先
及 应
权管理的常用办法。
用
∨∨
如8259A,它具有8个优先权控制,级联后可扩展至64 级优先权控制,且每级中断都可设置为允许或屏蔽。
7.2 8086/8088的中断系统
∧∧
微
机
原 理
1.中断分类
∧∧
微 7.2.1 中断指令
机
原
理
及 应
2、溢出中断指令
用 格式:INTO ;单字节指令
∨∨
操作同INT n,n=4. 用于代符号数加减后溢出产生的中断. 通常放在一条算术运算指令后面.
∧∧
微 7.2.1 中断指令
机
பைடு நூலகம்
原
理
及 应
3、中断返回指令
用 格式:IRET
∨∨
指令的操作: (IP) ← ((SP+1),(SP) (SP) ←(SP)+2 (CS) ← ((SP+1),(SP) (SP) ←(SP)+2 (FR) ← ((SP+1),(SP) (SP) ←(SP)+2
∧∧
微 机 原
第7章 中断系统和中断控制器8259A
理
及
应 用
7.1 中断的基本概念
∨∨
•中断:是指CPU在正常运行程序时,由于内部或外部事件 引起CPU暂时中止执行现行程序,转去执行请求CPU为其 服务的那个外设或事件的服务程序,待该服务程序执行完 后又返回到被中止的程序这样一个过程。
•中断源:能发出中断申请的外设或引起中断的原因。
∧∧
微 机
(2)硬件优先权排队电路
原
理 及
① 简单硬件方式——中断优先权编码链法或链式优先
应 用
权排队电路。
∨∨
中断优先权编码电路主要由硬件编码器和比较器组成。 由编码器送出优先权最高的编码,由此编码获得相应 的中断服务程序入口地址。由比较器判别只有比当前 优先权高的中断请求才能送到CPU引脚。
链式优先权排队电路由硬件逻辑电路代替查询程序。 各中断源通过一个特定的信号串行连接成链。无中断 请求时,该信号可串行通过;链中某个中断源由中断 请求,CPU响应后,该信号在中断源出截止,只有该 中断源前的中断源可以打断CPU的服务程序。即:排 在最前面的中断源为优先权最高的,排在最后面的为 优先权最低。
7.1.3 中断优先权
∧∧
微 机
(1) 软件查询方式
原
理
●软件查询优先方式是最简单的中断优先处理方式。图6.5显示
及 应
了采用软件查询方式的接口电路。
用
∨∨
保留现场
A申请服务? N
B申请服务?
Y
外设A中断服务程序 Y
N C申请服务?
外设B中断服务程序 Y
N
外设C中断服务程序
恢复现场 软件查询方式流程图
除法错误:单除步数中为断断:点T中F=断1:,与单步溢出中断:OF为
0或商超过自寄动存产器生中单断步类中似断。。用在调1时,执行INTO
表达范一围般。用在调试试程程序序中中。。
进入。
●对于INT n指令,其类型码为指令中给定的n。
溢出中断:OF为1时,执行INTO进入。
∧∧
外部中断——硬中断
微
机
原
1.能实现中断响应、中断服务和中断返回 2.能实现中断优先级排队 3.能实现中断嵌套
∧∧
微
机 原
•中断技术的优点:
理
及
应 用
并行操作:指CPU和多个外设并行操作。
∨∨
分时操作:指CPU可分时执行多个用户程序和多道作业。
实现实时处理、 故障处理。
基本功能调用:通过软件中断可实现DOS功能调用和基本BIOS 调用。
∧∧
中断源
微
机 原
● 引起中断的事件称为中断源,通常中断源有以下几种:
理
及
应 用
(1) 输入、输出设备: 如键盘、显示器和打印机等;
∨∨
(2) 数据通道: 如磁带等;
(3) 实时控制过程中的各种参数;
(4) 故障源: 如掉电保护等;
(5) 控制系统的现场测试信号以及软件中断。
● 为了满足上述各种条件下的要求,中断系统应具有以下功能
注意入 栈和出 栈的顺
序!!
低 IP
CS
FR 高
∧∧
微 7.2.2 中断分类
机 原 理 及 应 用
∨∨
∧∧
内部中断
微
机
原
理 及
●8086/8088中的各种中断的响应和处理过程是不相同的。主要
应 用
区别在于如何获取相应的中断类型码。
∨∨
●对于专用中断,中断类型码是自动形成的。 几种类型码为:类型0、1、3、4
及
应 用
● 8086/8088CPU可以处理256种类型的中断源,这些中断源可分为
∨∨
外部(硬件)中断和内部(软件)中断两大类。
内部中断:由执行指令引起
外部中断:由CPU得引脚线INTR、NMI引起。
2.中断向量表
● 在8086系统中,允许引入256种类型中断源(类型码为0~255), 相应有256个中断服务程序首址。存放中断地址的一段内存空间称中 断向量表。