




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章中断技术 1 中断的定义2 采用中断技术的原因3 中断管理4 8088中断响应过程 5 中断控制器8259 1中断的定义 应用 计算机在程序执行过程中 当出现硬件或软件请求时 处理器暂时停止正在执行的程序 转去对请求进行处理 处理完后 回到程序断点位置继续执行 8088支持来自外设的硬件中断请求和来自系统软件指令产生的软件中断请求 历史 1956年 美国 IBM公司 IBM7049机上首先使用了中断处理技术 并开始使用 中断 interrupt 这一术语 2采用中断技术的原因 当CPU和外设进行数据传送时 必须测试并确认外设处于准备好的状态才能够进行数据传送 在早期的计算机中 CPU和外设处于串行工作状态 CPU将处于时间不等的等待之中 快速的CPU和慢速的外设在传递数据的速度上存在很大矛盾 大大降低了CPU的工作效率 引入中断技术以后 可以使CPU和外设在大部分时间里并行工作 外设接收到CPU的命令后 按自己的控制规律执行相应操作 完成后向CPU发出中断请求 CPU暂停正在执行的程序 转为对外设进行处理 处理完后返回断点处继续执行 中断最初是为了提高处理器的使用效率和提高计算机的工作速度而引进的 中断技术可用于 保证外设和CPU同步 实时处理 故障处理等目的 中断请求取决于事件的发生时间 而这个时间是随机的 因此在执行程序的过程中中断程序的插入也是随机的 这是子程序和中断处理程序的重要区别 3中断管理 任何能够引发中断的事件都称为中断源 硬件中断源 输入 输出设备 系统时钟 故障源等 软件中断源 程序中断指令 指令运行出错等 3 1中断源 3 2中断管理中的一些其它概念 中断请求 中断源向CPU发出中断信号的过程称为中断请求 对于硬件中断源必须通过专门的电路传送给CPU CPU也有专门的引脚接收中断请求信号 8086 8088CPU用INTR引脚和NMI引脚接收硬件中断请求信号 对于软件中断源 在CPU内部由中断指令或程序出错直接引发中断 中断标志1 中断允许标志在CPU的标志寄存器中的IF标志 表示是否可以响应外设的中断请求 1 来表示允许 在8086 8088系统中可以用CLI和STI指令来设置IF 禁止或允许来自INTR可屏蔽中断请求引脚的中断申请 2 中断请求标志对应每个外设有一位 用来纪录外设的中断请求状态 有请求时置1 中断处理完后清0 在PC机中 用8259A来管理外设的中断请求 而在8051系列的单片机中 该标志在CPU内部 3 2中断管理中的一些其它概念 中断屏蔽选择性的将某些中断源的请求忽略称为中断屏蔽 即不响应该中断请求 有些硬件中断源的请求可以根据IF标志决定是否响应 而有些硬件中断源的请求需要一定被响应 在8086 8088系统中 INTR是可屏蔽中断请求引脚 NMI是不可屏蔽的中断请求引脚 在PC机系统中 通过8259A管理的外设中断源连在CPU的INTR引脚上 在8259A内部有8位的中断申请寄存器和8位的中断屏蔽寄存器 可以对应于8个外设的中断申请和中断屏蔽 3 2中断管理中的一些其它概念 中断优先级当系统具有多个中断源时 有可能同时发出请求 由CPU按照重要性和急迫性 中断优先级别 择优响应 一般的处理原则是 1 不同优先级同时请求 按优先级别处理 2 低优先级中断正在处理 出现高优先级请求 转去处理高优先级请求 3 高优先级中断正在处理 出现低优先级请求 暂不响应 4 中断处理时 出现同级别请求 当前中断处理完以后再处理新的请求 3 2中断管理中的一些其它概念 3 2中断管理中的一些其它概念 中断嵌套在CPU的处理外部中断的时候 如果有更高优先级的中断请求 再转去处理高优先级的中断 这种低级中断中套着高级中断称为中断嵌套 在PC机中 可以中断嵌套 断点与返回地址CPU在每条指令执行的最后一个时钟周期检测中断请求 如果响应中断的话 转去执行中断处理程序 程序被中断的地方称为 断点 断点处的指令是中断处理结束后 返回时恢复执行的第一条指令 它的地址称为 返回地址 返回地址在中断前要入栈保护 1 CPU在每条指令执行的最后一个时钟周期检测中断请求 如果以下之一 CPU自动进入中断响应周期 1 有软件中断 INTN 被0除或商溢出 2 有NMI中断信号 3 有INTR中断信号且IF 1 CPU允许响应中断 2 进入中断响应周期以后 如果是INTR 则产生INTA信号给中断源 让中断源通过数据总线的低8位送出中断类型码给CPU 如果是NMI 类型码是2 中断指令中有类型码 程序出错有默认类型码 3 标志寄存器进栈 清除TF和IF标志 返回地址的CS和IP进栈 4 8088中断响应过程 4 形成中断服务程序入口地址 转入中断服务程序执行 8088中断服务程序入口地址的获得方法中断服务程序的入口地址也称为中断向量 将中断向量送入CS IP即可转入中断处理程序 在内存的000H 3FFH的1KB空间中存有256个中断向量对应于256种中断类型码 称为中断向量表 在表中按 类型码 即可得到中断向量的位置 取出 个字节的中断向量 中断向量表举例 1号中断入口地址在中断向量表中的存放位置 1号中断服务程序的入口地址为 467BH 2E34H 5 进入中断服务程序 通常由以下步骤组成 1 保护现场 2 中断处理 3 恢复现场 开中断STI 4 用中断返回指令 IRET 返回 6 中断返回从堆栈中恢复断点 返回地址的CS和IP 标志寄存器 返回到主程序继续执行 8088只有两个用于接受外部中断请求的引脚 INTR和NMI 为了可以接收更多的外设中断请求信号 实现和多个外设中断方式的IO操作 需要使用专用的中断控制器来扩展更多的中断外设 Intel8259A就是用来管理若干个硬件中断源 将中断请求信号送给微处理器的管理芯片例 在PC XT机中使用8259A管理硬件中断源 将中断请求送到8088的INTR引脚 将中断类型码送到数据总线D7 D0上 5 中断控制器8259A CPU总线接口 中断服务寄存器ISR 优先权分析电路 中断请求寄存器IRR 中断屏蔽寄存器IMR 控制逻辑 IR7IR6 IR1IR0 INTAINTR 5 中断控制器8259A 8259功能综述 每片8259能接收8路中断输入 每路中断请求都可使用IMR进行屏蔽 能为8路中断源分配8个连续的中断号 内部有中断优先权分析电路 能实现优先权的管理 通过软件编程实现多种工作方式可以级连 最多实现64路外部中断源的管理 8259与8088和外设的连接方式 8259 8088 外设0 AD7 AD0 WR RDINTR INTA CSA0IR0D7IR1 IR2D0IR3 WRIR4 RDIR5INTIR6INTAIR7 译码 INTR I O接口芯片 数据接口 CPU总线 8259A的工作状态和操作方式 由CPU的命令而定 命令有两种由于8259只有一根地址线A0 所以每片8259有2个片内地址A0 0和A0 1 所有的命令都是通过访问这两个端口来实现的 配置8259的方法 ICW1设置工作方式 对A0 0的端口写入一个D4 1的数据 表示初始化编程开始 D3 LTIM中断信号的触发方式0 边沿1 高电平D1 SGNL是否单片方式0 多片级联1 单片D0 IC4是否有ICW40 无1 有 注 在8086 8088系统中D7 D5和D2不用 通常置0 而D0必须为1 ICW2设置中断类型码 中断号的分配 在写ICW1之后 对A0 1的端口第一次写入的数据是ICW2 在8086 8088系统中 设置D7 D3 D2 D0无效 由8259A根据IR0 IR7自动填充为000 111 例如在PC XT中ICW2为00001000B 则中断号 类型号中断号 类型号IR0 08H时钟中断IR4 0CHCOM1IR1 09H键盘中断IR5 0DH硬盘IR2 0AH保留IR6 0EH软盘IR3 0BHCOM2IR7 0FHLPT1 ICW3设置级联 系统中有级联 ICW1 SNGL 0 在ICW2之后写ICW3 对于主片 置1的位表示对应的引脚有从片级联 对于从片 用D2 D0表示和主片的对应引脚级联 ICW4设置模式 ICW1 IC4 1时 有ICW4 D4 SFNM中断的嵌套方式0 一般嵌套1 特殊的全嵌套 只用于级连 在一般嵌套方式下 优先级IR0 IR7从高到底 D1 AEOI自动结束中断方式0 不自动清除ISR1 CPU响应中断后 自动清除ISRD0 PM微处理器类型0 8080 8085 Z801 8086 8088 D3 BUF缓冲 用于级连 1 8259通过数据缓冲器和总线相连 SP EN引脚输出 缓冲器选通端 0 无缓冲 SP EN引脚输入 用作主片 从片选择端 D2 M S主片 从片选择 BUF 1时 有效 0 从片1 主片初始化编程一般在系统启动时进行 初始化以后系统才可以接收中断请求信号 ICW4设置模式 8259A芯片的初始化流程 写ICW1A0 0 D4 1 写ICW2A0 1 SNGL 1 IC4 1 写ICW3A0 1 写ICW4A0 1 是 否 是 否 一 初始化命令字 例1 PC XT机中8259A的端口地址是20H 21H 初始化序列如下 ICW1 单片 上升沿触发 使用ICW4 ICW2 中断类型码是08H 0FH ICW4 有缓冲 非AEOI方式 例2 PC AT机中8259A主片的端口地址是20H 21H 从片的端口地址是A0H A1H 初始化序列如下 初始化主片MOVAL 11HOUT20H ALMOVAL 08HOUT21H ALMOVAL 04HOUT21H ALMOVAL 01HOUT21H AL 初始化从片MOVAL 11HOUT0A0H ALMOVAL 70HOUT0A1H ALMOVAL 02HOUT0A1H ALMOVAL 01HOUT0A1H AL ICW1 ICW2 ICW3 ICW4 PC AT中8259A的定义主片定义为 上升沿触发 在IR2级联从片 有ICW4 非AEOI方式中断类型码为08H 0FH 一般的中断嵌套方式从片定义为 上升沿触发 级联到主片的IR2 有ICW4 非AEOI方式中断类型码为70H 78H 一般的中断嵌套方式 二 操作命令字 系统初始化完成以后 可以在应用程序中进行操作编程 1 OCW1设置和清除中断屏蔽寄存器 即如何通过软件实现对8259的8路中断源的屏蔽管理 MX 1表示屏蔽中断源IRX例如要屏蔽IR3 INAL 21HORAL 08HOUT21H AL 2 OCW2设置优先级循环方式和中断结束方式对A0 0端口写入D4D3 00的数据 表示是OCW2R 表示是否循环 SL 表示L2 L1是否有效 EOI 中断结束命令位 在PC机中常用的是 EOI命令 MOVAL 20HOUT20H AL EOI是指EndOfInterupt 其作用是清除ISR中保存的当前正在进行服务的中断号 以表示该号中断服务已经完成 这种用ISR来保存当前服务的中断号 当服务完成后又用EOI来清除ISR的机制保证了中断服务的正常嵌套 把初始化命令字和操作命令字结合进行设置 可以有三种优先级管理方式 1 全嵌套方式 优先级固定IR0最高IR7最低 2 自动循环方式 优先级自动循环 被响应的中断号的优先级自动变为最低 3 特殊循环方式 软件设置最低优先级 单片8259A的中断优先级管理方式 3 OCW3的功能有三个方面设置和撤销特殊屏蔽方式设置中断查询方式设置对8259A内部寄存器的读出 对A0 0端口写入D4D3 01的数据 表示是OCW3在PC机中常用的是 读出IRR 先向20H端口写0AH 再读20H端口读出ISR 先向20H端口写0BH 再读20H端口读出最高级别的中断请求IR 先向20H端口写0CH 再读20H端口 在8080 8085或Z80系统中1 用ICW2的D7 D0和ICW1的D7 D5设置中断服务程序的入口地址的A15 A5 A4 A0由8259A自动填充 2 用ICW1的D2设置入口地址的间隔 D2 0间隔为8 D2 1间隔为43 在产生中断时CPU产生连续的三个INTA周期 8259A向CPU送3个字节的指令码 CALL 入口地址低8位 入口地址高8位 三 8259A在其它系统中的应用 中断机制的使用要求程序的编写必须要有主程序和中断程序两部分组成 软件 主程序 中断服务程序 一 在主程序中的设计保存中断向量 安装中断向量 恢复中断向量 一般有三种方法 1 用传送指令直接存取向量表 例 设置类型码是0F0H的中断向量MOVAX 0000HMOVDS AXMOV 0F0H 4 入口地址的偏移量MOV 0F0H 4 2 入口地址的段地址 6 中断服务程序的设计 2 用串指令存取向量表 例 设置类型码是0F0H的中断向量MOVAX 0MOVES AXMOVDI 0F0H 4MOVAX 入口地址的偏移量STOSWMOVAX 入口地址的段地址STOSW 3 用DOS调用存取向量表 1 AH 35H读取中断向量入口参数 AL 类型码出口参数 ES BX入口地址的段地址和偏移量 2 AH 25H设置中断向量入口参数 AL 类型码DS DX入口地址的段地址和偏移量 例 设置类型码是0F0H的中断向量MOVAX SEGSVR PROCMOVDS AXMOVDX OFFSETSVR PROCMOVAH 25HMOVAL 0F0HINT21H 二 编写硬件中断服务程序的要点 1 主程序和中断服务程序之间最好使用内存单元传递参数 2 在主程序中一定要将中断服务程序的地址根据其中断号填入中断向量表中 3 若使用了8259来管理外部向8088INTR脚的中断请求 则一定要对8259进行配置 4 在服务程序中用到的寄存器要保护 以避免主程序的运行受中断的影响 5 因中断过程中系统要自动使用堆栈操作 要保证堆栈的容量足够 6 如果8259A是使用非AEOI方式 要在程序中发EOI命令 一般是在中断服务程序的最后发EOI命令 然后用IRET返回 7 在服务程序中一般不要调用INT21H DOS调用不可重入 三 设计实例八 8255实验31 方式1的应用 2 8255PA0 PA7接L1 L8发光二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 张掖市中储粮2025秋招基建工程岗高频笔试题库含答案
- 百色市中石油2025秋招笔试模拟题含答案数智化与信息工程岗
- 酒泉市中储粮2025秋招信息技术岗高频笔试题库含答案
- 湘西自治州中石化2025秋招心理测评常考题型与答题技巧
- 2025年模拟物业考试题及答案
- 中国广电芜湖市2025秋招技能类专业追问清单及参考回答
- 国家能源福建地区2025秋招笔试综合知识题专练及答案
- 国家能源潮州市2025秋招心理测评常考题型与答题技巧
- 中国广电包头市2025秋招供应链采购类专业追问清单及参考回答
- 哈尔滨市中石油2025秋招心理测评常考题型与答题技巧
- 养生店国庆节活动方案
- 古代文学史杜牧课件
- 7.1促进民族团结 课件 2025-2026学年统编版道德与法治九年级上册
- 西宁市供热管理暂行办法
- 静脉血栓护理课件
- 造口患者叙事护理
- 二年级数学上册100道口算题(全册11份)
- 中医学专业职业生涯规划书2300字数
- 租赁沐足店合同协议书
- 拆迁权利转让协议书
- 鄂托克高新技术产业开发区固废处理场建设项目环评报告书
评论
0/150
提交评论