第七章 IBM PC 的中断系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0: 20H.
(二 ) 8259A的工作原理 进入中断处理的全过程. 1. 设置IRR: IRRI有效,对应位置1.
IRR
IR4有请求. 2. 据PR,IMR的状态,使INTR有效. 3. 接收INTA. 置1 清0 4. 设置 ISR, IRR 5. 获得中断类型号.
0 0 0 1 0 0 0 0
1). 固定优先: 由低到高依次为:
单步→INTR→NMI→INTO→INTn→ 除法
2). 嵌套优先: 在处理中断时又引起新的中断.
二、中断过程
加入INTR信号直到执行中断服 务程序的全部操作.
各类中断的过程是不尽相同的. 但一般都须经: Page 262 图 7-2 中断检测 中断响应
中断服务
中断类型码的确定
由外设提供, 8259A进行识别. 其过程见Page 47 图2-13
第四节 中断的优先权管理
目的:确定中断被响应的先后次序. 实质: 怎样寻找中断源. 1. 多个中断源单独发出请求. 由中断管理机构决定. 2. 多个中断源同时发出请求. NMI 先于INTR.
中断源的管理方法
一、单独输入法:
二、内部结构及工作原理 P 269
(一) 内部结构:由8个基本部份组成. 1. 数据总线缓冲器:8位,三态,双向. 作用: 1). 实现8位数据传送. 2). 接收CPU发出的控制字. 3). 提供中断类型号. 与CPU的D0~D7相连.
2. 读/写电路: 接收CPU 的I/O指令,实现与CPU 间的信息交换. WR: 把有关寄存器的内容送入CPU. RD: 将数据由CPU送入相关寄存器. 3. 级联缓冲器: 实现PIC的多片联 合使用. Page 273 4. 中断请求寄存器 (IRR). 8位. 用于存放IR0~IR7的请求状态.
则: 原级对应位为1, 暂停处理.转 入高级别处理.
形如:
0 0 0 0 01 0 1
→0 0 0 0 0 1 00
0 0 0 0 0 0 0 0
8. 控制逻辑: 1).由IRR和PR的结果经INTR向 CPU发出中断请求. 2). 接受CPU发回的INTA.
3). 含七个8位寄存器,可用I/O指令 进行读写. 第一组: ICW: ICW1 ~ ICW4. 初始化命令字. 由加电时设置. 第二组: OCW: OCW1 ~ OCW3. 操作命令字.用于中断设置及管理. 均由编程设置. 1: 21H. 共用两个口地址. A0={
2). 不可屏蔽中断的过程 ▼ 不受IF, TF的控制. ▼ 无需类型号(类型号固定为2号). 其余与 1) 完全相同. 2. 内部中断的过程 ♂由指令或硬件提供类型号. ♂无INTA周期. ♂除单步外,不受IF控制.
♂除单步外,内部先于外部中断.
♂仍需可屏蔽中断的 3), 4), 5).
三、中断向量表的设置方法
4. 特殊循环方式: 由用户指定最低级. 目的是使用户有控制循环的能力. 作法: 用置位优先权设定. 在ISR中将对应位强行置1.
0 0 1 0 0 0 0 0
Hale Waihona Puke Baidu
优先级别为: IR5, IR6, IR7, IR0, · IR4 · ·
(二) 中断源屏蔽方式 1.普通屏蔽方式:一般地,常规方法. 1). 利用IF位. IF=1, 允许中断. IF=0, 禁止中断. STI, CLI 可置位和复位IF. 2). 利用IMR:
6. 取出服务程序的入口地址. 三、8259A 的工作方式 包括: 优先权设置; 屏蔽设置; 请求的触发方式;中断结束的处理. (一) 优先级设置: 如何确定级别? 采用指令设置和控制. 1. 全嵌套方式: 全嵌套: 严格遵循固定优先原则.
若没有设置,则自动进入本方式. 规定: 优先级次序随序号的递增而 由高变低. 嵌套的实现: 1.当ISR的某位被置1后, PIC就禁 止同级和较低级的中断请求. 2. 不屏蔽比某级高的中断请求. 3. 在服务程序中安排STI.
第七章 IBM PC 的中断系统
一、中断源
中断系统: 与中断有关的硬件,软件. 第二节 8086的中断机构 发出中断请求的设备或软件. 外部中断: 也称硬中断. 因外部事件而改变正常工作流程. 可屏蔽中断: 能被IF位所禁止的. 由INTR输入.
不可屏蔽中断: 不能被IF位所禁止.
由NMI输入. INTn INTO 内部中断: 也称软中断. 由软件调用而引起的中断. 包括: 1). 单步中断: TF=1, 用于程序调试. 2). 除法错中断: 商太大或除数为0. 3). 溢出中断: OF=1所启动的中断. 4). 指令中断: 由用户编程所确定. 中断优先权: 响应中断的先后次序.
2. 边沿触发方式: 由无效跳变为有效来触发IRI. 适用于不希望产生重复响应或中 断请求信号是一个短暂脉冲. 下列连接应采用什么方式?
IRI
或 门
设备1 设备2 设备3
PIC
边沿触发
3. 查询方式: 当IF=0,IRI无用时. 用软件来识别中断源的类型号.
详情见8259A的编程中的OCW3.
四 、初始化命令字和操作命令字
形如:
IR4请求
为IR4服务 IR2请求
返回主程序
为IR2服务 IRET2
为IR4服务
2. 特殊全嵌套方式: 用于级联方式. 不作要求. 3. 自动循环方式: 用于处理级别相同的中断源. 使中断源被响应的概率完全相同. 规则: 某级若被响应,自动轮为最低. 设初始状态为: IR0,IR1,· IR7. · · 若IR5有请求且被响应后,则变为: IR6,IR7,IR0,IR1,· IR5. · ·
一、 ICW: 决定PIC的工作方式. 由用户的初始化程序完成设置. 初始化的任务: 1). 设定请求信号的有效方式. 2). 是否级联?
8259A
· · 接口 · 接口
外设 外设 外设
第五节 可编程中断控制器
8259A的概况 简记为PIC. 28脚,双列直插式. 每片PIC能管理8个中断源,但每 次只给CPU提供一个请求信号. 在PC中只有一片PIC. 而PC/AT中有两片PIC. 8259A的主要任务或功能.
1. 接收各级中断源的中断请求. 2. 完成中断判优. 3. 由INTR向CPU 发中断请求. 4. 且向CPU 提供中断类型号. 5. 屏蔽中断. 一、引脚特性 IR0~IR7: 接收外设的8个请求信号. INTA: 与CPU相连的应答信号. A0: 用于初始化和操作状态选择.
1. 自动结束: 利用INTA的第二个负脉冲的后 沿执行EOI.
▁ ▏▏ ▁↖
n ▁
2. 普通中断结束方式 由CPU发EOI指令,将ISR中最高 级的对应位清0. 特点:勿需指出已结束中断的级别.
EOI
3. 特殊中断结束方式 不仅通知有中断处理结束,而且 告诉其级别. 作法: IMR某位置1, ISR自动清0. 特点: 适用于非全嵌套方式. (四) 连接系统总线的方式 解决PIC与系统的连接. 对PIC而言,连接方式有: 1. 缓冲方式:
中断服务程序入口地址的形成: 将中断类型号 n * 4 可得表中地址. (4n:4n+1) →(IP) (4n+2:4n+3) → (CS) 如: NMI中断的类型号为2,则: (IP)=00008H:00009H. (CS)=0000AH:0000BH.
中断类型号与向量表的对应关系
0~4号: 厂家规定 范围:00000H~00013H 5~31号: 保留或专用 00014H~0007FH 范围: 32~255号: 用户可用的 范围:00080H~003FFH
3). 硬件查询法 利用逻辑电路寻找中断源. 常采用菊花链系统. Page268 图7-5 工作原理: 1. INTA的传递. 2. 接收后的阻截. 3. 接收后的撤销. 特点: 距CPU越近,优先级越高.
三、专用芯片管理法
利用可编程芯片8259A实现优先 权管理. CPU
INTR
IRQ0 INTA IRQn
3). 如有多个中断同时发请求,则较高 者优先.
4). 若正在处理某级中断,又有新的 中断出现,则由PR经IMR判定. 7. 中断服务寄存器(ISR): 8 位. 用于记录正在被处理的中断级别. 1). 某级正被处理,对应位为1. 2). 无任何中断在处理,各位全0. 3). 若正在处理某级中断,又有比此 级别更高的中断发请求并响应.
IR7 IR6
· · · · IR1 IR0 · · · · · · · ·
每个IRI一位,有请求对应位置1. 由其内容确定类型号,识别中断源.
0 0 0 0 0 0 1 0
则类型号为02H, IR1有中断请求. 5. 中断屏蔽寄存器(IMR): 8位. 用于存放对IR0~IR7的禁止情况. 1). 第I位为1,则IRI被屏蔽.
2).第I位为0,则IRI未被禁止. 3). 屏蔽与CPU的屏蔽是不同的. 6. 优先权分析器 (PR) 识别和管理各中断源的优先级别. 对IRR中所有为1的位按优先规 则进行判断. 分析规则如下(PC 机配置): 1). 固定优先: 由高到低. IR0 (定时器) IR1
IR2 (CRT) IR3 (未用) IR4 (RS232) IR5 (硬盘) IR6 (软盘) IR7 (打印机) 其中:IR0,IR1已在主机内接好,其 余的接在扩展槽上. Page 248 2). 上述规则可编程重新定义.
系统总线
DB
8286
DB
8259A
适用于级联方式
2. 非缓冲方式: 无8286作驱动. 直接经数据总线缓冲器与DB相连. 适用于单片或为数不多的级联. (五) 引入中断的请求方式 中断请求的触发或有效方式. 1. 电平触发:高电平或低电平有效. 常用于需重复执行当前服务程序. 使得执行EOI后,PIC可识别IRI的 有效电平,实现再次响应.
前者是消极地等待设备发出请求.
后者是主动寻找已发请求的设备.
特点: 电路简单, 费时, 宜外设较少. 中断请求寄存器 2). 查询识别法: 发生中断后,用指令获得中断源. 作法: 读出IRR的内容. 两者的区别: 如:Page 266图7-4
前者是消极地等待设备发出请求.
后者是主动寻找已发请求的设备.
将每一个中断源分别与8259A 请求输入端相连.
IR0 →设备1 IR1 → 设备2
8259A
:
IR7
→ 设备8
二、查询识别法:
利用软件或硬件寻找中断源. 1). 软件查询: 程序查询. 具体作法: 编写延时程序段,依次等待各I/O 设备请求的到来.
特点: 电路简单, 费时, 宜外设较少. 中断请求寄存器 2). 查询识别法: 发生中断后,用指令获得中断源. 作法: 读出IRR的内容. 两者的区别: 如:Page 266图7-4
中断向量表: 见Page 132 图3-18 存储中断服务程序入口地址的 专用存储区. 从00000H~003FH共1024个单元.
中断向量表的构成
从00000H开始,每连续的 4 个存 储单元存放一个入口地址. 前两个单元是偏移量(IP). 后两个单元是服务程序所在段 的段地址(CS). 共可存放256种中断向量. 并分别命名为类型0,类型1·· ·· ·.
第三节 外部中断
因外部事件而改变正常流程. 它是CPU与外设传送信息的主 要途径. 由NMI或INTR触发. 一、NMI中断 (不受IF位的控制) 1. RAM的R/W发生奇偶校验错. 2. 协处理器的中断请求. 3. 故障性事件.
由硬件保证,该中断的类型码为2. 二、INTR中断 (受IF位的影响). IF=1 允许中断, 也称开中断 IF=0 禁止中断, 也称关中断
中断返回
1. 外部中断的过程 1).可屏蔽中断的过程
Ω 接收中断请求. PUSH Ω 等待当前操作结束. Ω 获得中断类型号. Ω F , CS, IP依次进栈 (保护现场). Ω 使IF=0;TF=0 (关中断). Ω 服务程序的入口地址送CS, IP. Ω中断返回 (执行IRET). POP Ω 恢复现场.
1 0 0 0 0 0 0 1
IR7, IR0的请求被禁止.
2. 特殊屏蔽方式: 用于动态地改变系统优先级别. 使其在服务过程中,不仅能响应 较高级的中断请求,也能响应低级 别的中断请求. 作法: IMR对应位置1, ISR对应位请0. (三) 中断结束的处理方式 中断结束: 服务程序完毕;ISR对应位请0.
相关文档
最新文档