第五章 中断接口技术

76
微微微微微微微微微微微微 微微微 微微微微微微 微微微 微微微微微微 微微微微微微微微 微微微微微微微 微微微微微微微 IBM-Pc IBM-Pc 微微微微微微微微 微微微微微微微微 微微微微微微微微 8259 8259

Upload: noah-rosario

Post on 02-Jan-2016

112 views

Category:

Documents


12 download

DESCRIPTION

第五章 中断接口技术. 本章重点: 中断的基本概念 IBM-Pc 机中断系统 可编程中断控制器8259. 5.1 中断的基本概念. 一、中断的概念 1、什么是中断? 是微机系统重要的功能之一,其主要目的是当系统出现一些紧急情况,需要暂停正常程序运行并插入临时处理程序时,计算机能正确地打断主程序,然后转入相应的中断处理程序,服务完后再返回到主程序。 2、中断的用处 :以中断的方式 响应外设的请求 ,或 进行异常情况处理 等。对于计算机接口管理来讲,由于有了中断功能, CPU 可以不必经常查询外围接口, 提高 CPU 的利用率 。. CPU 执行流程. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

第五章 中断接口技术第五章 中断接口技术 本章重点:本章重点:

中断的基本概念中断的基本概念 IBM-PcIBM-Pc 机中断系统机中断系统 可编程中断控制器可编程中断控制器 82598259

Page 2: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

5.1 5.1 中断的基本概念中断的基本概念一、中断的概念一、中断的概念11 、什么是中断?、什么是中断?是微机系统重要的功能之一,其主要目的是当系统是微机系统重要的功能之一,其主要目的是当系统

出现一些紧急情况,需要暂停正常程序运行并插入出现一些紧急情况,需要暂停正常程序运行并插入临时处理程序时,计算机能正确地打断主程序临时处理程序时,计算机能正确地打断主程序 ,, 然然后转入相应的中断处理程序,服务完后再返回到主后转入相应的中断处理程序,服务完后再返回到主程序。程序。

22 、中断的用处、中断的用处:以中断的方式:以中断的方式响应外设的请求响应外设的请求,,或或进行异常情况处理进行异常情况处理等。对于计算机接口管理来讲等。对于计算机接口管理来讲 ,,由于有了中断功能,由于有了中断功能, CPUCPU 可以不必经常查询外围可以不必经常查询外围接口接口 , , 提高提高 CPUCPU 的利用率的利用率。。

Page 3: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断服务程序1

中断服务程序 2

非预料事件 1

非预料事件 2

CPU执行流程

Page 4: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断用途举例中断用途举例 下面以下面以 PCPC 机的键盘管理为例说明使用中断功能机的键盘管理为例说明使用中断功能

的好处:的好处: 每次击键对每次击键对 CPUCPU 产生一次中断请求,产生一次中断请求, CPUCPU 在处在处

理完当前指令之后,暂停当前程序,响应键盘理完当前指令之后,暂停当前程序,响应键盘中断,去执行键盘服务程序,中断,去执行键盘服务程序, CPUCPU 在完成接收在完成接收键入信息的程序之后键入信息的程序之后 ,, 自动回到原程序的断点自动回到原程序的断点处去执行下一指令。这样,避免了处去执行下一指令。这样,避免了 CPUCPU 不断查不断查询键盘等待有键按下的循环操作。提高了询键盘等待有键按下的循环操作。提高了 CPUCPU的利用率。的利用率。

Page 5: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断源中断源11 、、什么是中断源什么是中断源::发出中断请求的外部设备或引起中断的内部原因称为中发出中断请求的外部设备或引起中断的内部原因称为中断源。断源。

22 、、中断源的种类中断源的种类::(( 11 )当中断由中断指令)当中断由中断指令 INT nINT n 产生时产生时 ,, 指令中的指令中的 nn为中断向量为中断向量

(( 22 )当中断是由异常情况产生的时)当中断是由异常情况产生的时 ,,CPUCPU 将会通过硬将会通过硬件逻辑自动产生中断向量件逻辑自动产生中断向量

(( 33 )当中断是由中断电路产生时)当中断是由中断电路产生时 ,, 中断向量由中断电中断向量由中断电路提供路提供

Page 6: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断源中断源具体的中断源可分为具体的中断源可分为::①① 外设中断外设中断:系统外部设备要求与:系统外部设备要求与 CPUCPU 交换信交换信息而产生的中断。息而产生的中断。

②② 指令中断指令中断:为了方便用户使用系统资源或调:为了方便用户使用系统资源或调试软件而设置的中断指令,如调用试软件而设置的中断指令,如调用 II // OO 设设备的备的 BIOSBIOS 及及 DOSDOS 系统功能的中断指令和设系统功能的中断指令和设置断点中断等。置断点中断等。

③③ 程序性中断程序性中断:程序员的疏忽或算法上的差错,:程序员的疏忽或算法上的差错,使程序在运行过程中出现多种错误而产生的使程序在运行过程中出现多种错误而产生的中断。中断。

Page 7: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断类型中断类型80868086 采用向量型的中断结构,共有采用向量型的中断结构,共有 256256 个中断类个中断类

型号,中断源按与型号,中断源按与 CPUCPU 的相对位置关系分为的相对位置关系分为外部中断和内部中断。外部中断和内部中断。

11 、内部中断、内部中断 也称软件中断,是由处理器检测也称软件中断,是由处理器检测

到异常情况或执行软件中断指令所引起的一到异常情况或执行软件中断指令所引起的一种中断。内部中断又种中断。内部中断又可分为:可分为:(( 11 )除法出)除法出错 中 断 ; (错 中 断 ; ( 22 )) INTOINTO 溢 出 中 断 ;溢 出 中 断 ;(( 33 )) INT nINT n 中断;(中断;( 44 )断点中断;)断点中断;(( 55 )单步中断。 )单步中断。

Page 8: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

内部中断的特点内部中断的特点::     中断类型号由中断类型号由 CPUCPU 自动提供的,不需自动提供的,不需

要执行中断响应总线周期去读取。要执行中断响应总线周期去读取。      除单步中断外,所有内部中断都无法除单步中断外,所有内部中断都无法

禁止,即都不能通过执行禁止,即都不能通过执行 CLICLI 指令使指令使IFIF 位清零来禁止对它们的响应。位清零来禁止对它们的响应。

     除单步中断外,任何内部中断的优先除单步中断外,任何内部中断的优先权都比外部中断高。权都比外部中断高。

Page 9: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

22 、外部中断、外部中断 也称硬件中断,是由也称硬件中断,是由 CPUCPU 的外部中断的外部中断

请求信号触发的一种中断,分为不可屏蔽中断请求信号触发的一种中断,分为不可屏蔽中断NMINMI 和可屏蔽中断和可屏蔽中断 INTRINTR 。。

(( 11 )不可屏蔽中断)不可屏蔽中断 NMINMI

它不受中断允许标志位它不受中断允许标志位 IFIF 的影响,即使在关的影响,即使在关中断(中断( IF=0IF=0 )的情况下,)的情况下, CPUCPU 也能在当前指令执也能在当前指令执行完毕后就响应行完毕后就响应 NMINMI 引脚引脚上的中断请求。上的中断请求。

(( 22 )可屏蔽中断)可屏蔽中断 INTRINTR

CPUCPU 将根据中断允许标志位将根据中断允许标志位 IFIF 的状态决定是否的状态决定是否响应。如果响应。如果 IF=0IF=0 ,, CPUCPU 关中断,将拒绝响应;关中断,将拒绝响应;如果如果 IF=1IF=1 ,, CPUCPU开中断,允许响应开中断,允许响应 INTRINTR 引脚引脚上的中断请求。 上的中断请求。

Page 10: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断优先权中断优先权 1.1. 识别中断源的方法识别中断源的方法(( 11 )查询中断)查询中断 查询中断就是用软件查询的方法确定中断源。查询中断就是用软件查询的方法确定中断源。(( 22 )向量中断)向量中断

当当 CPUCPU 响应某个中断源的中断请求时,控制响应某个中断源的中断请求时,控制逻辑就将该中断源的中断类型号送入逻辑就将该中断源的中断类型号送入 CPUCPU(如(如 NMINMI 和和 INTRINTR 中断),或由程序指定中中断),或由程序指定中断类型号(如软件中断中的断类型号(如软件中断中的 BIOSBIOS 中断中断 ,DOS,DOS中断)。中断)。 CPUCPU根据中断类型号自动指向相应根据中断类型号自动指向相应的中断服务程序的入口地址,转入中断服务。的中断服务程序的入口地址,转入中断服务。

Page 11: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断优先权中断优先权 2. 2. 中断优先权的确定中断优先权的确定 (( 11 )软件查询排序)软件查询排序::查询次序查询次序即优先权排即优先权排

序,最先被询问的故障具有最高优先级;节序,最先被询问的故障具有最高优先级;节省硬件;修改方便,只要改变程序中的查询省硬件;修改方便,只要改变程序中的查询次序即可;由询问转至真正的服务程序入口次序即可;由询问转至真正的服务程序入口时间长,在中断源较多的情况下执行速度较时间长,在中断源较多的情况下执行速度较慢。慢。

(( 22 )硬件排序)硬件排序:采用:采用优先权的编码电路优先权的编码电路,,对各种外部硬中断进行排队。有菊花链式硬对各种外部硬中断进行排队。有菊花链式硬件排序电路,以及中断控制集成芯片件排序电路,以及中断控制集成芯片 82598259AA

Page 12: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

软件法排序的接口电路示意图软件法排序的接口电路示意图

Page 13: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

软件查询程序流程图软件查询程序流程图

Page 14: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

软件法排序程序软件法排序程序IN ALIN AL ,, 20H20H ;;读中断触发器的状态读中断触发器的状态TEST ALTEST AL ,, 80H80H;;有电源故障请求?有电源故障请求?JZ B1JZ B1 ;;没有,继续查询没有,继续查询JMP PWFJMP PWF ;;转至电源故障程序入口转至电源故障程序入口

B1B1 :: TEST ALTEST AL ,, 40H40H ;;有磁盘请求吗?有磁盘请求吗?JZ B2JZ B2 ;;无,继续查询无,继续查询JMP DISSJMP DISS ;;转至磁盘服务程序转至磁盘服务程序

B2B2 :: TEST ALTEST AL ,, 20H20H ;;有磁带请求吗?有磁带请求吗?JZ B3JZ B3 ;;无,继续查询无,继续查询JMP MTJMP MT ;;转至磁带服务程序转至磁带服务程序

B3B3 :: TEST ALTEST AL ,, 10H10H ;;有有 CRTCRT 请求?请求?JZ B4JZ B4 ;;无,继续查询无,继续查询

Page 15: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

软件法排序程序软件法排序程序JMP CRTJMP CRT ;;转至转至 CRTCRT显示服务程序显示服务程序

B4B4 :: TEST ALTEST AL ,, 08H08H ;;有纸带请求?有纸带请求?JZ B5JZ B5 ;;无,继续查询无,继续查询JMP PINJMP PIN ;;转至纸带输入服务程序转至纸带输入服务程序

B5B5 :: TEST ALTEST AL ,, 04H04H ;;有纸带穿孔请求吗?有纸带穿孔请求吗?JZ B6JZ B6 ;;无,继续查询无,继续查询JMP PHJMP PH ;;转至纸带穿孔服务程序转至纸带穿孔服务程序

B6B6 :: TEST ALTEST AL ,, 02H02H ;;是键盘输入中断请求吗?是键盘输入中断请求吗?JZ POUTJZ POUT ;;否,转打印中断服务程否,转打印中断服务程

序序JMP KEYINJMP KEYIN ;;转至键盘输入中断服务程序转至键盘输入中断服务程序

POUTPOUT : : ……

Page 16: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

硬件优先权排序电路硬件优先权排序电路【【 11 】】

Page 17: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

链式优先权排队电路【 2 】

Page 18: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

专用芯片硬件电路专用芯片硬件电路

Page 19: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

11 、中断类型码(也叫中断类型号)、中断类型码(也叫中断类型号):: 80868086 可以处可以处理理 256256 个中断请求。每个中断请求均对应于唯一个中断请求。每个中断请求均对应于唯一固定的类型码。固定的类型码。被 0 除类型码是 0 ,单步为 1 ; NMI 为 2 ;断点中断为 3 ,溢出中断为 4 ;等。

类型类型码码

中断源中断源 类型码类型码 中断源中断源 类型码类型码 中断源中断源

0000HH 被被 00除除 00FHFH 并口并口 11 (打印(打印机)中断机)中断

11EHEH 磁盘参数磁盘参数

0101HH 单步中断单步中断 1010HH 显示器驱动程序显示器驱动程序 11FHFH 图形字符集图形字符集0202HH NMINMI 1111HH 设备检测设备检测 2020HH 程序结束程序结束0303HH 断点中断断点中断 1212HH 存储器检测存储器检测 2121HH DOSDOS 系统调系统调

用用

中断向量、中断类型码与中断向量表中断向量、中断类型码与中断向量表

Page 20: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

IBM-PC/XTIBM-PC/XT 中断类型号的功能分配中断类型号的功能分配类型码类型码 中断源中断源 类型码类型码 中断源中断源 类型码类型码 中断源中断源

0404HH 溢出中断溢出中断 1313HH 软盘驱动程序软盘驱动程序 2222HH 结束地址结束地址0505HH 屏幕打印中断屏幕打印中断 1414HH 通信驱动程序通信驱动程序 2323HH Ctrl-BreakCtrl-Break 夭折夭折

键处理键处理0606HH (保留)(保留) 1515HH 盒式磁带机驱动程盒式磁带机驱动程

序序2424HH 关键性错误处理关键性错误处理

0707HH (保留)(保留) 1616HH 硬盘驱动程序硬盘驱动程序 2525HH 磁盘顺序读磁盘顺序读0808HH 定时电路中断定时电路中断 1717HH 打印机驱动程序打印机驱动程序 2626HH 磁盘顺序写磁盘顺序写0909HH 键盘中断键盘中断 1818HH BASICBASIC 程序程序 2727HH 程序结束且驻留内程序结束且驻留内

存存00AHAH 保留的硬件保留的硬件 (( 级联级联 ))

中断中断1919HH 引导(引导( BOOTBOOT ))程程

序序2828HH DOSDOS 内部使用内部使用

00BHBH 异步串口异步串口 22 中断中断 11AHAH 年月日定时中断年月日定时中断 29~229~2EE DOSDOS 保留使用保留使用00CHCH 异步串口异步串口 11 中断中断 11BHBH 用户键盘用户键盘 22FHFH DOSDOS 内部使用内部使用00DHDH 并口并口 2(2( 硬磁盘硬磁盘 )) 中中

断断11CHCH 用户定时器时标用户定时器时标 30~330~3FF DOSDOS 保留使用保留使用

00EHEH 软盘中断软盘中断 11DHDH CRTCRT 初始化参数初始化参数

Page 21: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量、中断类型码与中断向量表中断向量、中断类型码与中断向量表

22 、、中断向量中断向量::中断服务程序的入口地址中断服务程序的入口地址,包括段地,包括段地址址 CSCS (存放于高字单元)和偏移地址(存放于高字单元)和偏移地址 IPIP (存(存放于低字单元)。 放于低字单元)。 (( 共占共占 44个字节地址个字节地址 ))。 。

33 、、中断向量表中断向量表:存放中断向量的表格。位于内存空:存放中断向量的表格。位于内存空间的最低地址,长度间的最低地址,长度 11KBKB ,,可容纳可容纳 256256 类中断向类中断向量(量( 25625644== 10241024 )。地址范围为: )。地址范围为: 0000—0000—0303FFHFFH 。。

Page 22: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量和中断向量表

中断向量和中断向量表

Page 23: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量、中断类型码与中断向量表中断向量、中断类型码与中断向量表

44、、中断向量、中断向量号与中断向量表的关系中断向量、中断向量号与中断向量表的关系::中断向量=中断类型号中断向量=中断类型号×4×4 开始的连续开始的连续 44个内存个内存单元(也就是中断服务程序入口地址)。关系见单元(也就是中断服务程序入口地址)。关系见下图:下图:

Page 24: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量的装入中断向量的装入 (( 填写填写 ))与修改与修改11 ..中断向量的装入中断向量的装入

中断向量中断向量并非常驻内存,而是开机上电并非常驻内存,而是开机上电时,时,由程序装入内存指定的中断向量表中由程序装入内存指定的中断向量表中。系。系统配置和使用的中断所对应的中断向量由系统统配置和使用的中断所对应的中断向量由系统软件负责装入。用户也可自行装入中断向量。软件负责装入。用户也可自行装入中断向量。下面介绍几种填写中断向量表的方法。下面介绍几种填写中断向量表的方法。

例例 11 :用:用 MOVMOV 指令指令。例如,假设中断类。例如,假设中断类型号为型号为 6060HH ,,中断服务程序的段基址是中断服务程序的段基址是SEG_INTRSEG_INTR ,, 偏 移 地 址 是偏 移 地 址 是OFFSET_INTR(006DH)OFFSET_INTR(006DH) ,,则填写中断向量表则填写中断向量表的程序段为:的程序段为:

Page 25: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

CLI CLI ;;关中断关中断CLD CLD ;;清清 DFDF 按照内存地址加按照内存地址加 11 操作操作MOV AXMOV AX ,, 00

MOV ESMOV ES ,, AX AX ;; ESES赋值为赋值为 0 0 MOV DIMOV DI ,, 4*60H 4*60H ;;中断向量指针入中断向量指针入 DIDI

MOV AXMOV AX ,, OFFSET_INTR OFFSET_INTR ;;中断服务程序偏移值入中断服务程序偏移值入AXAX

STOSW STOSW

MOV AXMOV AX ,, SEG_INTR SEG_INTR ;;中断服务程序的段基址中断服务程序的段基址入入 AXAX

STOSW STOSW

STISTI ;;开中断开中断

Page 26: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量的装入中断向量的装入 (( 填写填写 ))与修改与修改例例 22 :将中断服务程序的人口地址直接写入中断向:将中断服务程序的人口地址直接写入中断向

量表;量表; MOV AXMOV AX ,, 00H00H

MOV ESMOV ES ,, AX AX

MOV BXMOV BX ,, 60H*4 60H*4 ;;中断号中断号 *4*4入入 BXBX

MOV AXMOV AX ,, 006DH 006DH ;;中断服务程序偏移地址入中断服务程序偏移地址入AXAX

MOV ESMOV ES :: [BX][BX] ,, AX AX ;;装入偏移地址装入偏移地址 PUSH CS PUSH CS ;;假设中断服务程序和主程序在同一段假设中断服务程序和主程序在同一段 POP AX POP AX ;;获取中断服务程序段基址获取中断服务程序段基址 MOV ESMOV ES :: [BX+2][BX+2] ,, AX AX ;;装入段基址装入段基址

Page 27: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量的装入中断向量的装入 (( 填写填写 ))与修改与修改例例 33 :利用:利用 ORGORG 、、 DWDW伪指令(伪指令( nn 为中断类型号)为中断类型号)

SEGMENT AT 0000HSEGMENT AT 0000H

ORG n*4ORG n*4

VTAB:DWVTAB:DW OFFSETOFFSET

DWDW CSSEGCSSEG

………………………………..

例例 44:利用:利用 DOSDOS 功能调用功能调用 INT21 INT21 的的 3535 号和号和 2525 号号功能对中断向量进行修改。步骤入下功能对中断向量进行修改。步骤入下::

Page 28: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

①① 用用 3535HH 号功能,获取原中断向量号功能,获取原中断向量,并保存在字,并保存在字变量中。变量中。 3535HH 的功能调用,入口为中断类型号的功能调用,入口为中断类型号 nn入入 ALAL ;;出口为出口为 ES:BXES:BX ,,分别存放段基址和偏移。分别存放段基址和偏移。

②② 用用 2525HH 号功能,设置新中断向量号功能,设置新中断向量,取代原中断,取代原中断向量,以便当中断发生后,转移到新中断服务程序向量,以便当中断发生后,转移到新中断服务程序中去。中去。 2525HH 的入口为中断类型号入的入口为中断类型号入 ALAL ,,段基址和段基址和偏移量入偏移量入 DS:DXDS:DX 。。

③③ 新中断服务程序完毕后,新中断服务程序完毕后,利用利用 2525HH 号功能恢复号功能恢复原中断向量。 原中断向量。

例:假设原中断程序的中断号为例:假设原中断程序的中断号为 nn ,,新中断程序新中断程序的入口地址的段基址为的入口地址的段基址为 SEG_INTRSEG_INTR ,,偏移地址为偏移地址为OFFSET_INTROFFSET_INTR 。。中断向量修改的程序段为: 中断向量修改的程序段为:

Page 29: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量的装入中断向量的装入 (( 填写填写 ))与修改与修改MOV AHMOV AH ,, 35H 35H ;;取原中断向量取原中断向量MOV ALMOV AL ,, nn

INT 21HINT 21H

MOV DXMOV DX ,, ES ES

MOV OLD_SEGMOV OLD_SEG ,, DX DX ;;保存原中断向量保存原中断向量MOV OLD_OFFMOV OLD_OFF ,, BX BX

MOV AHMOV AH ,, 25H 25H ;;设置新中断向量设置新中断向量 MOV AL,n MOV AL,n ;;中断号入中断号入 ALAL

MOV DXMOV DX ,, SEG_INTR SEG_INTR

MOV DSMOV DS ,, DX DX ;; DSDS 指向新中断程序指向新中断程序段址 段址

Page 30: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断向量的装入中断向量的装入 (( 填写填写 ))与修改与修改MOV DXMOV DX ,, OFFSET_INTR OFFSET_INTR ;; DXDX 指向新中断程指向新中断程序偏移序偏移 ;地址 ;地址

INT 21HINT 21H

MOV AHMOV AH ,, 25H 25H ;;恢复原中断向量恢复原中断向量 MOV ALMOV AL ,, nn

MOV DXMOV DX ,, OLD_SEGOLD_SEG

MOV DSMOV DS ,, DXDX

MOV DXMOV DX ,, OLD_OFFOLD_OFF

INT 21HINT 21H

Page 31: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断嵌套中断嵌套 什么叫中断嵌套什么叫中断嵌套:当:当 CPUCPU 正在响应较正在响应较低级的中断服务过程中,如果有更高低级的中断服务过程中,如果有更高级的中断申请,级的中断申请, CPUCPU 将停止当前的中将停止当前的中断服务程序,而转去响应高级中断,断服务程序,而转去响应高级中断,当高级中断结束后,再返回到低级中当高级中断结束后,再返回到低级中断继续服务,服务结束后再返回到断断继续服务,服务结束后再返回到断点处继续执行。点处继续执行。

Page 32: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断系统的功能中断系统的功能11 、、实现中断及返回实现中断及返回 中断源发出中断请求,中断源发出中断请求, CPUCPU决定是否响应,决定是否响应,若响若响

应应,则,则保护断点和现场保护断点和现场,转入相应中断服务程序,,转入相应中断服务程序,中断服务结束中断服务结束后,后,恢复现场和断点恢复现场和断点,继续执行原,继续执行原程序。程序。

CPU 执行流程

中断服务程序 1非预料事件 1

Page 33: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

◆非预料事件是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。

◆中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。

断点断点 ::是指是指 CPUCPU 执行的现行程序被中断时的执行的现行程序被中断时的下一条下一条指令的地址指令的地址 ,, 又称断点地址。又称断点地址。中断现场中断现场 ::是指是指 CPUCPU 转去执行中断服务程序前的运转去执行中断服务程序前的运行状态,包括行状态,包括 CPUCPU 内部各寄存器、断点地址等。内部各寄存器、断点地址等。

Page 34: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

1000:0150H

、、 、、 、、 、、 、、

MOV AX, 0ADD AX, DXMOV [ DI ], AX

、、、、、、、、、、

PUSH AX 、、 、、

IRET

CPU 在执行此指令时,某中断源发申请中断 ;CPU 在执行完该指令后,转去执行中断子程

地址 1000:0150H 为断点

断点概念

Page 35: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

CPU 执行流程

中断服务程序 1非预料事件 1

中断服务程序 2

非预料事件 2

中断嵌套过程示意图中断嵌套过程示意图

Page 36: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断嵌套必须具备的几个条件中断嵌套必须具备的几个条件

11 )第一级中断(已处于响应状态的原中断)的服务)第一级中断(已处于响应状态的原中断)的服务程序中,应在程序中,应在保护现场执行完毕后保护现场执行完毕后加上开放总中断加上开放总中断(( IFIF 位置位置 11 )的指令;)的指令;

22 )新到来的中断应具有比原中断)新到来的中断应具有比原中断高的优先级高的优先级,同级,同级或低级均不能嵌套;或低级均不能嵌套;

33 )为保护各级中断服务程序的数据不被破坏,所有)为保护各级中断服务程序的数据不被破坏,所有服务程序中均应有服务程序中均应有保护现场、恢复现场保护现场、恢复现场的指令;的指令;

44 )每个中断服务程序末尾必须有)每个中断服务程序末尾必须有 IRETIRET 指令指令以示结以示结束,从而返回被中断的程序地址处束,从而返回被中断的程序地址处

Page 37: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

CPUCPU 响应外中断的条件响应外中断的条件

11 .具备中断请求触发器.具备中断请求触发器22 .具备中断屏蔽触发器.具备中断屏蔽触发器33 .开放总中断.开放总中断44 .在现行指令结束后响应中断.在现行指令结束后响应中断

Page 38: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

5.2 5.2 IBM-PCIBM-PC 机中断系统机中断系统一、一、中断的分类中断的分类在在 PCPC 机系统中机系统中 ,, 中断常分为二类:中断常分为二类:软软 ((件件 ))中断中断硬硬 ((件件 ))中断中断11 、、硬中断硬中断::也称外部中断也称外部中断 ,,它可分为两种:它可分为两种:(( 11 )一种是由)一种是由中断电路中断电路发出的中断请求信号在发出的中断请求信号在CPUCPU 的的 INTRINTR端引起的中断,称端引起的中断,称可屏蔽中断可屏蔽中断。。它常常由它常常由 PCPC 机的外设或一些接口功能产生,机的外设或一些接口功能产生,如键盘、打印机、串行口、定时器等等。如键盘、打印机、串行口、定时器等等。

Page 39: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断的分类中断的分类(( 22 )另外一种是)另外一种是 CPUCPU 的的 NMINMI 端端引起的中断引起的中断 ,,

也称也称非屏蔽中断非屏蔽中断。。如当系统出现掉电、内存奇偶校验错误等如当系统出现掉电、内存奇偶校验错误等 ,, 系系统一般采用非屏蔽中断统一般采用非屏蔽中断

(( 33 ))可屏蔽中断与非屏蔽中断的区别可屏蔽中断与非屏蔽中断的区别::可屏蔽中断:可屏蔽中断: CPUCPU 可以通过软件屏蔽掉中断,而可以通过软件屏蔽掉中断,而

不去执行。通过不去执行。通过 INTRINTR 引脚输入。引脚输入。非屏蔽中断:是指非屏蔽中断:是指 CPUCPU 不能用软件指令避免对这不能用软件指令避免对这

种中断响应,必须响应由种中断响应,必须响应由 NMINMI端送入的中断信号。端送入的中断信号。22 、、软件中断软件中断

Page 40: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断的分类中断的分类是指程序中使用的中断指令是指程序中使用的中断指令 INTINT 引起的中断引起的中断包括包括 ROM-BIOSROM-BIOS 和和 DOSDOS 中断两部分。(参考书上中断两部分。(参考书上

的介绍)的介绍)33 、异常中断、异常中断也称也称内部中断内部中断,它是微机系统运行过程中,它是微机系统运行过程中 CPUCPU 发发

现异常情况时,自动启动内部逻辑转去执行预先规现异常情况时,自动启动内部逻辑转去执行预先规定的中断号所对应的中断服务程序。定的中断号所对应的中断服务程序。是非屏蔽中断是非屏蔽中断。。由于中断处理过程与软中断具有相同特性,由于中断处理过程与软中断具有相同特性,可将其可将其规定为软中断规定为软中断。这类中断有:。这类中断有: 00 号中断(除数为号中断(除数为00 )、)、 11 号中断(单步中断)、号中断(单步中断)、 33 号中断(号中断(断点断点中断)、中断)、 44 号中断(溢出中断)。号中断(溢出中断)。

Page 41: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

对对 CPUCPU 来说来说 ,, 如果这三种中断同时发生如果这三种中断同时发生 则则 CPUCPU 将按表将按表 5.15.1 所示的先后顺序分别执行三类所示的先后顺序分别执行三类

中断中断 ,, 称为中断的优先级排队。称为中断的优先级排队。 表表 5.1 5.1 中断优先级中断优先级

中断中断 优先权优先权内中断、软中断内中断、软中断 高高

低低

非屏蔽中断非屏蔽中断 NMINMI

可屏蔽外中断可屏蔽外中断 INTRINTR

单步中断单步中断

Page 42: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

X86X86 硬中断控制逻辑性硬中断控制逻辑性

INTR

NMI

Page 43: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

BIOSBIOS 中断调用中断调用

Page 44: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

BIOSBIOS 中断功能调用方法中断功能调用方法BIOSBIOS 中断调用与中断调用与 DOSDOS 调用类似,即调用类似,即 AHAH 为功能为功能

号,给出入口参数,然后用指令“号,给出入口参数,然后用指令“ INT INT 中断类型中断类型码”码”

如打印字符“如打印字符“ X”X” ,,可用可用 BIOSBIOS 中断调用中断调用 1717HH ,,功功能号为能号为 00 ,入口参数为,入口参数为 ALAL ((待打印字符的待打印字符的 ASCIIASCII码)、码)、 DXDX ((打印机端口号),如:打印机端口号),如:

MOV ALMOV AL ’,’, X’X’ ;;入口参数是入口参数是 ALAL 、、 DXDX

MOVMOV DX DX ,, 00 ;;打印机号为打印机号为 00

MOVMOV AH AH ,, 00 ;;功能调用号为功能调用号为 00

INTINT 17H 17H ;;调用调用

Page 45: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断响应与处理中断响应与处理 中断中断类型码的获取类型码的获取

NMINMI 、、断点中断、溢出中断、被断点中断、溢出中断、被 00 除、单步中断等类型码除、单步中断等类型码固定。固定。

INT NINT N 软中断类型码由立即数软中断类型码由立即数 NN给出。给出。 外部中断读取中断类型码。外部中断读取中断类型码。

获得中断类型码后,如何进入中断服务程序?获得中断类型码后,如何进入中断服务程序?11 、、中断类型码乘以中断类型码乘以 44 ,得中断向量表的,得中断向量表的向量首址指针向量首址指针。。22 、、取中断向量取中断向量:把向量表指针所指的:把向量表指针所指的 44 个连续字节个连续字节的的

内容作为中断服务程序的入口地址,内容作为中断服务程序的入口地址,分别送给分别送给 IPIP 和和CSCS 。。

33 、、按新的按新的 CSCS :: IPIP 指针指针执行中断服务程序执行中断服务程序。。

Page 46: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

(FLAG)

1000:0150h

3000:200h

0: N×40: N×4+2

0: 0000

内 存

、、、 、、、 0200h 3000h

、、、 、、、 、、、

MOV AX, 0 ADD AX, DX MOV [DI], AX

、、、、、、、、、、、、

MOV BX,CX、、、、、、

IRET、、、

类型 N中断子程

响应中断前 SS:SP

0150

1000

堆栈执行

IRET 后

(IP)

(CS)

(PSW)

SS:SP

响应中断后SS:SP

(IP)=0200h(CS)=3000h

中断向量表 0:0 ~ 3FFH

0:03FFH

0:0

某中断源发申请中断,申请执行类型号为 N 的中断子程序

中断响应过程中断响应过程

Page 47: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断响应周期时序 CPU从引脚 /INTA 发中断响应信号, 接口芯片接收此信号,把中断类型号准备好; CPU 再一次从引脚 /INTA 发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上;

CPU从数据总线获取中断类型号。

向量类型 INTA

CLK

AD7~AD0

T1 T2 T3 T4

第 一 个中断响应周期

T1 T2 T3 T4

第 二 个中断响应周期

Page 48: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

当前指令结束否?

N

TF=1 ?

N执行下一条指令

Y IF=1 ?

N

软件中断?

Y

N

INTR ?

形成中断类型码

Y

Y

IF=1 ?Y Y

进入中断响应取中断类型码

Y

N

NMI ?N

N

标志寄存器入栈令 TEMP=TF

清 IF 和 TF

CS,IP 入栈

执行中断处理程序执行中断处理程序

继续执行中断程序继续执行中断程序

又有 NMI ?Y

N

IP, CS 出栈标志寄存器出栈

返回被中断的主程序

II

RR

EE

TT

中断处理顺序中断处理顺序

Page 49: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

Page 50: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

中断服务程序中断服务程序 保护现场保护现场:保存:保存 CPUCPU 内部各寄存器的内容,以便在服务内部各寄存器的内容,以便在服务

程序中可以使用这些寄存器而不致破坏原信息。程序中可以使用这些寄存器而不致破坏原信息。 开总中断开总中断:将:将 IFIF 置置 11 ,使得在该中断服务期间,使得在该中断服务期间 CPUCPU仍然仍然

能够响应更高级的中断请求。能够响应更高级的中断请求。 具体处理具体处理:进行用户的中断服务。:进行用户的中断服务。 关总中断关总中断:将:将 IFIF 位清位清 00 。。 恢复现场恢复现场:将入栈保护的各寄存器内容依次弹出,恢复进:将入栈保护的各寄存器内容依次弹出,恢复进

入中断服务程序前的状态。入中断服务程序前的状态。 开总中断开总中断:再次将:再次将 IFIF 位置位置 11 ,使返回之后能够再响应。,使返回之后能够再响应。 中断返回中断返回:执行一句:执行一句 IRETIRET 指令,指令, CPUCPU 将自动将堆栈中将自动将堆栈中

的断点弹出给的断点弹出给 IPIP 和和 CSCS ,,然后弹出标志寄存器然后弹出标志寄存器 FLAGSFLAGS ,,完成恢复断点的操作。这样,程序就可以接着执行被中断完成恢复断点的操作。这样,程序就可以接着执行被中断的原程序了。的原程序了。

Page 51: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

5.3 5.3 可编程中断控制器可编程中断控制器 82598259AA

专用于系统中断控制,管理专用于系统中断控制,管理 8086/80888086/8088 系统系统的外部中断请求。的外部中断请求。11 、、 88 级优先级管理(级联后多达级优先级管理(级联后多达 6464 级)级)22 、、自动提供中断向量自动提供中断向量33 、、中断屏蔽功能中断屏蔽功能

Page 52: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

82598259AA 的结构和功能的结构和功能

数据总线

缓冲器

读写逻辑

控制逻辑

服务状态

寄存器ISR

优先权处理器

PR

中断请求

寄存器IRR

中断屏蔽寄存器 IMR

级联缓冲器/比较器

……

内部总线

INT

D0~7

A0

CS

WR

RD

EN

INTA

CAS0CAS0

CAS1CAS1

CAS2CAS2

Page 53: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

82598259AA 引脚信号定义引脚信号定义AA00 :: 8259A8259A 的地址线;的地址线;DD00 ~~ DD77 ::双向数据线; 双向数据线; ::低电平有效的片选信号;低电平有效的片选信号; 、 :分别是写、读信号,均为低电平、 :分别是写、读信号,均为低电平有效;有效;

CAS0CAS0 ~~ CAS2CAS2 ::级联控制线;级联控制线;

INTINT ::向向 CPUCPU输出的中断请求信号;输出的中断请求信号; :由:由 CPUCPU输入的中断应答信号;输入的中断应答信号;

IR0IR0 ~~ IR7IR7 ::来自外设的来自外设的 88级优先权中断;级优先权中断;

/ / :区分主从片或启动缓冲器;:区分主从片或启动缓冲器;

Page 54: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

一、中断请求寄存器一、中断请求寄存器 IRRIRR 8 8 位寄存器,用于保存所有从中断申请线位寄存器,用于保存所有从中断申请线 IR0IR0~~ IR7IR7 上输入上输入 82598259AA 的外设中断请求。如有任一个的外设中断请求。如有任一个IRnIRn 为高(有效)电平,则为高(有效)电平,则 IRRIRR 中的相应位被置位。中的相应位被置位。

中断请求可以使用沿触发方式(上升沿)或电平触发(高电平)

82598259AA 结构结构数据总线

缓冲器

读写逻辑

控制逻辑

服务状态

寄存器ISR

优先权处理器

PR

中断请求

寄存器IRR

中断屏蔽寄存器 IMR

级联缓冲器/比较器

……

内部总线

INT

D0~7

A0

CS

WR

RD

EN

INTA

CAS0CAS0

CAS1CAS1

CAS2CAS2

Page 55: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

二、优先权处理器二、优先权处理器 PRPR

用于确定用于确定 IRRIRR 中各中断申请位的中各中断申请位的处理优先级,并在处理优先级,并在 CPUCPU 发出第一个 负发出第一个 负脉冲(中断响应周期之第一个总线周期内)时,将脉冲(中断响应周期之第一个总线周期内)时,将具有最高优先级的申请位存入服务状态寄存器具有最高优先级的申请位存入服务状态寄存器 ISRISR中相应的位置。各中相应的位置。各 IRnIRn 的优先级可对的优先级可对 82598259AA 编程编程设定。设定。

INTA

82598259AA 结构结构 数据总线

缓冲器

读写逻辑

控制逻辑

服务状态

寄存器ISR

优先权处理器

PR

中断请求

寄存器IRR

中断屏蔽寄存器 IMR

级联缓冲器/比较器

……

内部总线

INT

D0~7

A0

CS

WR

RD

EN

INTA

CAS0CAS0

CAS1CAS1

CAS2CAS2

Page 56: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

三、中断服务寄存器三、中断服务寄存器 ISRISR

88 位寄存器,置位寄存器,置 11表示当前已处于中断服务表示当前已处于中断服务的中断请求位。只有已被的中断请求位。只有已被 PRPR 确定为最高优先级、确定为最高优先级、并被并被 CPUCPU 响应的中断请求响应的中断请求 ISRISR才置位。 才置位。

82598259AA 结构结构 数据总线

缓冲器

读写逻辑

控制逻辑

服务状态

寄存器ISR

优先权处理器

PR

中断请求

寄存器IRR

中断屏蔽寄存器 IMR

级联缓冲器/比较器

……

内部总线

INT

D0~7

A0

CS

WR

RD

EN

INTA

CAS0CAS0

CAS1CAS1

CAS2CAS2

Page 57: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

• 四、中断屏蔽寄存器四、中断屏蔽寄存器 IMRIMR• 88 位寄存器,分别屏蔽位寄存器,分别屏蔽 IR0IR0 ~~ IR7IR7 的中断请求输入,存放需的中断请求输入,存放需

要屏蔽的中断申请位。若某个中断申请位已经置要屏蔽的中断申请位。若某个中断申请位已经置 11 ,则该请,则该请求就被屏蔽。屏蔽一个高优先级的中断请求,并不影响较低求就被屏蔽。屏蔽一个高优先级的中断请求,并不影响较低优先级的中断请求。优先级的中断请求。 IMRIMR 由软件设置。由软件设置。

82598259AA 结构结构 数据总线

缓冲器

读写逻辑

控制逻辑

服务状态

寄存器ISR

优先权处理器

PR

中断请求

寄存器IRR

中断屏蔽寄存器 IMR

级联缓冲器/比较器

……

内部总线

INT

D0~7

A0

CS

WR

RD

EN

INTA

CAS0CAS0

CAS1CAS1

CAS2CAS2

Page 58: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

82598259AA 的编程的编程 82598259AA 有两种命令字:有两种命令字:

初始化命令字初始化命令字 ::ICWICW (Initialization (Initialization Command Word)Command Word)

操作命令字操作命令字 : : OCWOCW (Operation (Operation Command Word )Command Word )

8259A8259A启动前必须由启动前必须由 CPUCPU送入送入 22~4~4 个初始化命令字,使它处于工个初始化命令字,使它处于工作起始点。作起始点。

对对 80868086CPUCPU ,,其中其中ICW1ICW1 、、 ICW2ICW2 、、 ICW4ICW4 是必须是必须的。的。

Page 59: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

82598259AA 的读写操作的读写操作

Page 60: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

初始化命令字 初始化命令字 ICW1~ICW4ICW1~ICW4初始化命令字在初始化命令字在 82598259AA 正常工作前设置。它决定正常工作前设置。它决定 825825

99AA 的工作方式和环境。的工作方式和环境。

A7 A6 A5 1 LTIM ADI SNGL IC4

D7 D6 D5 D4 D3 D2 D1 D00

A0ICW1

8086 不用0 :边沿检测1 :电平检测

0 :不需要ICW41 :需要 ICW4

1A0

ICW2 T7 T6 T5 T4 T3 X X X

D7 D6 D5 D4 D3 D2 D1 D0

中断类型码高 5 位 自动填入

8086 / 8088 不用

0 :级联使用1 :单独使用

Page 61: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

初始化命令字初始化命令字 ICW1~ICW4ICW1~ICW4 是是以写入的顺序以写入的顺序来区分的。来区分的。

1A0

S7 S6 S5 S4 S3 S2/ID2 S1/ID1 S0/ID0D7 D6 D5 D4 D3 D2 D1 D0

ICW3ICW3

1A0

0 0 0 SFNM BUF M/S AEOI µPMD7 D6 D5 D4 D3 D2 D1 D0

0 :非自动EOI

1 :自动 EOI

0 : 80/85 方式1 : 86/88 方式

0 :一般的全嵌套方式1 :特殊的全嵌套方式

ICW4ICW4

ID2~ID0 :从 8259A 的 IR 识别码

0×: 非缓冲方式10: 缓冲方式/从片11: 缓冲方式/主片

主 8259A 的级联标志1 :相应的 IR 上有从8259A

0 :相应的 IR 上无从8259A

Page 62: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

操作命令字

操作命令字O

CW

OC

W

OCW1 1A0

M7 M6 M5 M4 M3 M2 M1 M0 D7 D6 D5 D4 D3 D2 D1 D0

0 :清中断屏蔽位1 :置中断屏蔽位

0A0

R SL EOI 0 0 L2 L1 L0

D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 ……1 1 1

对应IRi 的编码

无操作无操作001100

特殊优先权循环,由特殊优先权循环,由 L2~L0L2~L0 设定最低优先级设定最低优先级001111

在特殊在特殊 EOIEOI 时循环,由时循环,由 L2~L0L2~L0 指定结束指定结束 IRiIRi111111

取消自动优先权循环取消自动优先权循环 ((固定优先权固定优先权 ))000000

自动优先权循环自动优先权循环000011

自动优先权循环,常规自动优先权循环,常规 EOIEOI110011

特殊特殊 EOIEOI ,,由由 L2~L0L2~L0 指定结束指定结束 IRiIRi111100

常规常规 EOIEOI000000R=1 :循环优先权R=0 :固定优先权SL=1 :由 L2 L1 L0 指定 IR位SL=0 : L2 L1 L0 无效EOI=1 :中断结束

OCW2

Page 63: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

OCW3 0A0 D7 D6 D5 D4 D3 D2 D1 D0

- ESMM SMM 0 1 P RR RIS

11

00

清除特殊清除特殊屏蔽方式屏蔽方式

00

11

设定特殊设定特殊屏蔽方式屏蔽方式

无意义无意义1100

110011

00

读读IRRIRR

00

11

读读ISRISR

无意无意义义

1100

1100

0 :非查询方式1 :查询方式

82598259AA 的工作方式编程并没有固定顺序,各命令字之的工作方式编程并没有固定顺序,各命令字之间用地址信号间用地址信号 A0A0 及特征位加以区分。及特征位加以区分。

Page 64: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

82598259AA 的工作方式的工作方式一、中断优先级管理一、中断优先级管理

1.1. 完全嵌套方式完全嵌套方式这是 8259A 的默认方式,也是最基本最常用的工作方式。该方式下 8259A 的中断优先级是从 IR0→IR7 ,优先级依次降低。

2.2. 自动循环方式自动循环方式该方式下中断的优先级队列随时发生变化,当某个外设的

中断请求得到 CPU 响应后,其中断的优先级自动降为最低。(初始的优先级对列规定为 IR0 → IR7 )

3.3. 特殊循环方式特殊循环方式与自动循环方式不同之处是:特殊循环方式下的初始优先级队列可由编程决定。

Page 65: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

二、中断结束 二、中断结束 EOI (End of Interrupt)EOI (End of Interrupt)

当一个中断服务结束后, CPU 可利用中断结束命令 EOI 通知 8259A ,以便复位ISR 的相应位。 EOI 具有三种方式:

1. 1. 普通普通 EOIEOI 方式方式在普通 EOI 方式下, 8259A 每得到一次

EOI命令,就将 ISR 中已置位的各位中优先级最高的位复位。

2. 2. 特殊特殊 EOIEOI 方式方式该方式的特殊性在于,除了普通 EOI 方式

的功能外,将明确指明本次复位的 ISR 位。3. 3. 自动自动 EOIEOI 方式方式自动 EOI 方式是利用响应中断时最后一个

响应脉冲的后沿执行一次普通EOI ,而不需要 CPU 发送 EOI 指令。

中断结束 EOI 与中断返回 IRET 是两类性质完全不同的操作: EOI 用于清除 8259A 寄存的中断服务标志,是关于中断嵌套的关于中断嵌套的处理处理; IRET 是CPU 执行的指令,用于中断返回,是主程序和中断服务程序之间的处理。

Page 66: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

三、中断屏蔽三、中断屏蔽

1. 1. 普通屏蔽方式普通屏蔽方式中断屏蔽寄存器中断屏蔽寄存器 IMRIMR 的的 88 个位与中断请求个位与中断请求 IR0IR0 ~~ IR7IR7 一一

一对应。对一对应。对 IMRIMR 编程,指定某些位为编程,指定某些位为 11 ,则屏蔽掉相应的,则屏蔽掉相应的中断请求,中断请求, CPUCPU只能接收未被只能接收未被 IMRIMR屏蔽的高级中断屏蔽的高级中断

2. 2. 特殊屏蔽方式特殊屏蔽方式在该方式下,使用控制命令使某个屏蔽位置位时,就禁在该方式下,使用控制命令使某个屏蔽位置位时,就禁

止本级再次产生中断,而允许各个未被屏蔽的优先级(较止本级再次产生中断,而允许各个未被屏蔽的优先级(较高的或较低的)产生中断。这样任何中断源都可以通过写高的或较低的)产生中断。这样任何中断源都可以通过写入入 IMRIMR 的不同内容,有选择地被允许或被禁止请求中断服的不同内容,有选择地被允许或被禁止请求中断服务。即务。即 CPUCPU 可以接收除被屏蔽的中断源之外的所有中断请可以接收除被屏蔽的中断源之外的所有中断请求,而无论新中断源的级别是否高于原中断。求,而无论新中断源的级别是否高于原中断。

Page 67: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

四、中断触发方式四、中断触发方式

1. 1. 电平触发方式电平触发方式82598259AA依靠依靠 IRIR 引脚上的有效高电平信号来触发,引脚上的有效高电平信号来触发,

而与有效电平出现的方式和时间无关。而与有效电平出现的方式和时间无关。

2. 2. 边沿触发方式边沿触发方式利用利用 IRIR输入信号由低电平跳向高电平时触发。输入信号由低电平跳向高电平时触发。

当当 IRIR 产生上升沿后,应保持高电平直到中断被响产生上升沿后,应保持高电平直到中断被响应为止。应为止。

Page 68: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

11 、、工作于工作于 8080X86X86 系统中。系统中。22 、、优先权固定:由最高级优先权固定:由最高级 IR0IR0 向最低级向最低级 IR7IR7依次降低。依次降低。33 、、单片工作,不级联。单片工作,不级联。44 、、中断类型码为中断类型码为 0808HH ~~ 0FH0FH 。。55 、、 INTRINTR 的中断触发方式为边缘(上升沿)的中断触发方式为边缘(上升沿)触发。触发。66 、、用一般的中断结束命令用一般的中断结束命令 EOIEOI 。。77 、、 IMRIMR 采用正常的屏蔽方式。采用正常的屏蔽方式。

82598259AA 的初始化编程的初始化编程

Page 69: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

CLI ;关中断MOV AL , 17H ; ICW1 :单片,边缘触发,间隔 4 ,需要ICW4OUT 20H , ALMOV AL , 08H ; ICW2 :中断类型码的 D7 ~ D3 位为 0000

1OUT 21H , ALMOV AL , 01H ; ICW4 :非自动的 EOI ,非缓冲, 80X86 方式OUT 21H , ALMOV AL , 04H ; OCW1 :只屏蔽 IRQ2 (保留中断)OUT 21H , ALMOV AL , 20H ; OCW2 :固定优先权,一般的 EOIOUT 20H , ALMOV AL , 4BH ; OCW3 :正常屏蔽,非查询方式,可读 ISROUT 20H , ALSTI ;开中断

=0000 1000B

=0001 0111B

=0000 0001B

=0000 0100B

=0010 0000B

=0100 1011B

82598259AA 的初始化编程的初始化编程

Page 70: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

82598259AA 的连接的连接

8259A及有关电路

地址锁存器8282( 两片 )

STB

数据收发器OE 8286T

MRDC 8288 MWTC 总 线 IORC控制器 IOWC INTA

DT/RDEN

ALE

地址总线

数据总线

控制总线

+5V

S0S1S2

INTRRQ/GT0RQ/GT1

CLKRESETREADYMN/MX

VCC

RDQS0QS1LOCK

TESTHIGHNMI

GND

GND

A15~A8S6~S3/A19~A16

AD7~AD0

8088CPU

PC

线

内存

I/O接口

注意: 8259A 在连线中的位置

Page 71: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用8259A 的片选地址范围为 20~3FH

偶、奇端口地址通常取用 20H 、 21H

CS

8259A

A0

RD

WR

IR0IR1IR2IR3IR4IR5IR6IR7

D0~

D7

Vcc

SP/ENCA0CA1CA2

GNDINTAINT

数 据 线

片选译码

20~3FH

IOW

A0

总线

IOR

A5~

A9

D0~

D7

INTA INTR

方 波键 盘保 留串 口 2

硬 盘软 盘

打印机

18.2Hz+ 5V

用于多片8259A

级连情况

串 口 1

82598259 电路连接电路连接

Page 72: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

I/O CH CKD7D6D5D4D3D2D1D0I/O CH RDYAENA19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

GNDRESET

+5VIRQ2

-5VDRQ2

-12V

+12VGND

MEMWMEMR

IOWIOR

DACK3DRQ3

DACK1DRQ1

DACK0CLOCK

IRQ7IRQ6IRQ5IRQ4IRQ3

DACK2T/C

ALE+5V

OSCGND

PCPC 总线总线

Page 73: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

从 8259A

IRQ8IRQ9

IRQ10IRQ11IRQ12IRQ13 IRQ14IRQ15

主8259A

IRQ0IRQ1

IRQ3IRQ4IRQ5 IRQ6IRQ7

INT至 CPU

INT中断路由器

IRQ

7IR

Q6

IRQ

5IR

Q4

IRQ

3IR

Q2 ISA 总线

PCI

线

PCI

线

系统时钟键盘

芯片组

Pentium 机中 8259A 的连接

Page 74: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

1. 中断系统由两片 8259A , 一个中断路由器构成2. 从 8259A 的中断申请与主 8259A 的 IRQ2 相连 ISA 总线上有 6 个中断申请,其中 IRQ2连至从 8259A 的IRQ9

系统软件上,将 IRQ9 的中断向量指向 IRQ2 的中断向量3. 主 8259A 的端口地址为: 20H, 21H

8 个对应的中断申请 IRQ7~IRQ0 类型号为 0Fh~08h

从 8259A 的端口地址为: A0H, A1H

8 个对应的中断申请 IRQ15~IRQ8 类型号为 77h~70h

4. 中断路由器 (Interrupt Router) :

动态分配 PCI 上的中断申请到 8259A 中未被占用的中断上。

Pentium 的中断的中断

Page 75: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

系统的中断分配情况系统的中断分配情况

我的电脑 / 控制面板 / 系统 / 计算机管理 / 计算机 /属性 / 中断请求

Page 76: 第五章    中断接口技术

微型计算机接口技术及应用微型计算机接口技术及应用

82598259AA 的级联方式的级联方式 将主将主 82598259AA 的的

中断请求端中断请求端IR0~IR7IR0~IR7 用于用于接收从接收从 82598259AA的中断输出,的中断输出,则最多可扩展则最多可扩展至至 6464级优先权级优先权中断。中断。

CAS0CAS0 、、 CAS1CAS1、、 CAS2CAS2 作为作为从片识别码从片识别码

IR0IR1IR2:::IR7

INTAINTCAS0CAS1CAS2SP/EN

::

CAS0CAS1CAS2

IR0IR1IR2:::IR7

INTAINTCAS0CAS1CAS2SP/EN

IR0IR1IR2:::IR7

INTA

INT

SP/ENVcc

主 8259A

从 8259A

至 8086