第十章 中断控制器
第十章 中断控制器
本章重点 本章重点介绍中断的概念、功能及可 编程中断控制器8259A的基本结构、初 始化命令字(ICW)、状态寄存器 (ocW)以及编程步骤。 本章难点 本章难点是理解掌握微机系统中对中 断处理的过程和8259A的硬件连接及应 用编程
【本章重点】 本章重点介绍中断的概念、功能及可 编程中断控制器8259A的基本结构、初 始化命令字(ICW)、状态寄存器 (OCW)以及编程步骤。 【本章难点】 本章难点是理解掌握微机系统中对中 断处理的过程和8259A的硬件连接及应 用编程
10.1中断概迷 10.1.1中断的基本概念 1中断的概念 在CPU执行程序的过程中,由于某种突发事件的发生,强迫 CPU暂时停止正在执行的程序,转向对该突发事件进行处理, 对这个事件处理结束后又能回到原中止的程序,接着中止前的状 态继续执行原来的程序,这一个过程就称为中断。把引起中断 的原因或触发中断请求的来源称为中断源。 2中断类型 根据中断源的位置不同可分为内中断和外中断。 根据中断是否可屏蔽,分为不可屏蔽中断和可屏蔽中断
10.1 中断概述 10.1.1 中断的基本概念 1.中断的概念 在CPU执行程序的过程中,由于某种突发事件的发生,强迫 CPU暂时停止正在执行的程序,转向对该突发事件进行处理, 对这个事件处理结束后又能回到原中止的程序,接着中止前的状 态继续执行原来的程序,这一个过程就称为中断。把引起中断 的原因或触发中断请求的来源称为中断源。 2.中断类型 根据中断源的位置不同可分为内中断和外中断。 根据中断是否可屏蔽,分为不可屏蔽中断和可屏蔽中断
10.1.2中断响应的过程 1中断申请 1)外部设备发中断请求的条件。当外设准备就绪或本 身工作已经完成时,才向CPU提出中断请求。 2)外部设备中断请求的标志。当外设要求和CPU进行 数据交换时,将中断请求信号送往中断请求触发器或中断 控制器,经它们处理后,向CPU发出中断请求。 2中断响应 如果CPU处于开中断状态,经判优后响应其中最高优 先级的中断请求,关中断,将断点压入堆栈中(有的微机 还将程序状态字和相关寄存器的内容压入堆栈)保存,以 备返回原程序,紧接着将相应的中断处理程序入口地址或 中断向量送CPU,转入中断服务程序
10.1.2 中断响应的过程 1.中断申请 1)外部设备发中断请求的条件。当外设准备就绪或本 身工作已经完成时,才向CPU提出中断请求。 2)外部设备中断请求的标志。当外设要求和CPU进行 数据交换时,将中断请求信号送往中断请求触发器或中断 控制器,经它们处理后,向CPU发出中断请求。 2.中断响应 如果CPU处于开中断状态,经判优后响应其中最高优 先级的中断请求,关中断,将断点压入堆栈中(有的微机 还将程序状态字和相关寄存器的内容压入堆栈)保存,以 备返回原程序,紧接着将相应的中断处理程序入口地址或 中断向量送CPU,转入中断服务程序
3中断处理 1)保护现场。首先要将在中断处理程序中使用的有关寄存 器的内容压入堆栈保护起来。对于有的微机现场保护是由硬件 自动完成的,而有的微机则需要编程实现现场保护,在现场保 护的过程中,绝对不允许被中断(应禁止中断),否则现场将 被破坏。当现场保护好后应开中断。 2)执行中断服务程序。中断服务程序要根据具体情况编写。 在编写时,应使中断处理过程尽量简短,使执行时间进可能缩 短,以便尽快返回被中断的程序 3)恢复现场。当中断服务结束后,应用中断结束命令清除 中断标志,立即关中断,以保证恢复现场的过程不受干扰。恢 复现场就是把原来压入堆栈的有关寄存器的内容弹出。现场恢 复后应开中断,以便CPU响应更高级的中断请求。 4中断返回 中断返回是中断服务程序中的最后一条指令,其操作是将 压入的断点地址弹出,保证被中断的程序按原来状态执行下去
3.中断处理 1)保护现场。首先要将在中断处理程序中使用的有关寄存 器的内容压入堆栈保护起来。对于有的微机现场保护是由硬件 自动完成的,而有的微机则需要编程实现现场保护,在现场保 护的过程中,绝对不允许被中断(应禁止中断),否则现场将 被破坏。当现场保护好后应开中断。 2)执行中断服务程序。中断服务程序要根据具体情况编写。 在编写时,应使中断处理过程尽量简短,使执行时间进可能缩 短,以便尽快返回被中断的程序。 3)恢复现场。当中断服务结束后,应用中断结束命令清除 中断标志,立即关中断,以保证恢复现场的过程不受干扰。恢 复现场就是把原来压入堆栈的有关寄存器的内容弹出。现场恢 复后应开中断,以便CPU响应更高级的中断请求。 4.中断返回 中断返回是中断服务程序中的最后一条指令,其操作是将 压入的断点地址弹出,保证被中断的程序按原来状态执行下去
10.13中断优先级与中断嵌套 1中断优先级 (1)如果有多个不同优先级的中断源同时提出中断请求时, CPU应当先响应最高优先级的中断源。 (2)如果CPU正在对某一中断源服务时,比它优先级更高 的中断源提出中断请求时,CPU能够暂停正在执行的中断 服务程序转向对优先级高的中断源进行服务,当服务结束 后再返回原优先级较低的中断服务程序继续执行。 2中断嵌套 正在运行的中断处理程序,被优先级高的中断源中断, 从而转入新的中断处理程序,当新的中断处理程序执行完 再回到原来的中断处理程序,这一现象称为中断嵌套
10.1.3 中断优先级与中断嵌套 1.中断优先级 (1)如果有多个不同优先级的中断源同时提出中断请求时, CPU应当先响应最高优先级的中断源。 (2)如果CPU正在对某一中断源服务时,比它优先级更高 的中断源提出中断请求时,CPU能够暂停正在执行的中断 服务程序转向对优先级高的中断源进行服务,当服务结束 后再返回原优先级较低的中断服务程序继续执行。 2.中断嵌套 正在运行的中断处理程序,被优先级高的中断源中断, 从而转入新的中断处理程序,当新的中断处理程序执行完 再回到原来的中断处理程序,这一现象称为中断嵌套
10.2微机的中断系统 102.1微机系统的中断源 中断源可以分为两大类,即外部中断和内部中断。 1内部中断 内部中断又称软件中断是通过软件调用的不可屏蔽中断, 其包括除法错中断、单步中断、断点中断、溢出中断、INTn指 令中断等 总之,可以将引起内部中断的原因归结为三种情况: 1)由CPU的某些错误引起的。如:除法错中断、溢出中断。 (2)为调试程序设置的中断。如:单步中断、断点中断。 (3)由中断指令ⅠNT引起的。如:INTn指令中断
10.2 微机的中断系统 10.2.1 微机系统的中断源 中断源可以分为两大类,即外部中断和内部中断。 1.内部中断 内部中断又称软件中断是通过软件调用的不可屏蔽中断, 其包括除法错中断、单步中断、断点中断、溢出中断、INTn指 令中断等。 总之,可以将引起内部中断的原因归结为三种情况: (1)由CPU的某些错误引起的。如:除法错中断、溢出中断。 (2)为调试程序设置的中断。如:单步中断、断点中断。 (3)由中断指令INT引起的。如:INTn指令中断
2外部中断源 1)非屏蔽中断MMI。 (2)可屏蔽中断INTR。 3中断优先级 8086/88的中断优先级次序如表10-1所示。 表10-1中断优先级次序 中断 优先级 内中断(除法错,INT0,INT) 最高 非屏蔽中断MI 可屏蔽中断INTR 单步中断 最低
2.外部中断源 (1)非屏蔽中断NMI。 (2)可屏蔽中断INTR。 3.中断优先级 8086/88的中断优先级次序如表10-1所示。 中 断 优 先 级 内中断(除法错,INTO,INT) 最 高 最 低 非屏蔽中断NMI 可屏蔽中断INTR 单步中断 表10-1 中断优先级次序
1022中断向量表 中断向量表是存放中断服务程序入口地址的表格 000H IP偏移地址 004H CS段基地址 中断类型码0(除法错) PP偏移地址 008H CS段基地址 中断类型码1(单步中断) TP偏移地址 OOCH CS段基地址 中断类型码2(NM中断) 中断类型码3(断点中断) 014H 中断类型码4(溢出中断) 中断类型码5(保留) 系统保留中断 080H 用户自定义中断 3FFH 图10-1中断向量表
10.2.2 中断向量表 中断向量表是存放中断服务程序入口地址的表格 000H 004H 008H 00CH 014H 080H 3FFH IP偏移地址 CS段基地址 IP偏移地址 CS段基地址 IP偏移地址 CS段基地址 · · · · · · 中断类型码0(除法错) 中断类型码1(单步中断) 中断类型码2(NMI中断) 中断类型码3(断点中断) 中断类型码4(溢出中断) 中断类型码5(保留) 系统保留中断 用户自定义中断 图10-1中断向量表
103可編程中断控制器8259A 10.3.18259A芯片内部结构 8259A用NM0S工艺制造,使用单一+5V电源,采用28引脚双 列直插式封装。其外部引脚和内部结构如图10-2、10-3所示。 WR A RD INTA IR IR6 DDDDDD )6 IR5 工R IR3 2 IR2 IRI Do IR CASO INT CAS SP/EN GNI CAS2 图10-28259芯片引脚
10.3可编程中断控制器8259A 10.3.1 8259A芯片内部结构 8259A用NMOS工艺制造,使用单一+5V电源,采用28引脚双 列直插式封装。其外部引脚和内部结构如图10-2、10-3所示。 CAS0 D7 D6 D5 D4 D3 D2 D1 CAS2 IR0 IR1 IR2 IR3 IR5 IR6 IR7 A0 VCC INT IR4 CS WR RD SP /EN INTA CAS1 D0 GND 图10-2 8259A芯片引脚