- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 中断技术;第七章 中断技术;二、中断的基本过程
分为四个阶段
中断请求 → 中断响应 → 中断服务 → 中断返回;1.中断请求
①外设先(通过接口)发送“中断请求”信号
给CPU。
②CPU检查“中断请求”输入线。
③CPU有权决定是否响应中断(中断允许):
若允许请求,、则中断允许触发器IF置“1”,
(使用STI指令开中断)。 ; ⑤不允许中断请求的情况:
如:在实时控制时,需采集一段连续数据为防上数据
丢失,不允许其他中断请求;
又:执行管理程序中某些重要程序,CLI指令进行屏蔽。
; ①CPU在当前指令执行结束时,响应中断,进入中断的响应周期;
②发出二个中断回答信号INTA完成一个中断响应周期
③进行断点及标志保存
如:段地址(CS),偏移地址(IP)标志FR以及压入堆栈。
④读取中断类型号,找到中???源;
⑤装入中断服务程序的入口地址(CS,IP);
3.中断服务
①转入中断服务程序后,其服务程序的内容有:
a.与CPU交换数据,进行I/O操作;
b.外部期望CPU给以控制,进行参数修改。
②在程序开头,将可能使用的寄存器内容进栈,即保护现场。
③在服务程序的未尾,将入栈的寄存器内容弹出,即恢复现场。
;4.中断返回
中断服务程序结束,执行中断返回。
①自动将保存在堆栈中的标志PSW,断点(IP,CS)依次弹出并装入。
②返回到中断前的地址(断点地址)开始继续执行主程序。
;三、中断源、中断识别、优先级
中断源:发出中断请求的外设或引起中断的内部原因称为中断源。
中断识别:CPU响应中断后,只知道有中断请求但不知道是哪一个中断源,寻找中断源的操作过程称为中断识别。
中断识别的目的:形成该中断服务程序的入口地址。; CPU识别中断的方法:
二种: 向量中断
程序查询中断
向量中断:在CPU响应中断后,由中断控
制器将服务程序入口地址送到CPU。
查询中断:采用软件查询技术来确定发出
中断请求。;四、多重中断(中断嵌套);五、中断的软硬件系统
硬件:外设、中断控制器、CPU、总线控制器、BIOS
软件:OS、中断初始主程序、中断处理子程序
外设:发出中断请求(可以是边沿触发或电平触发)、数据输入输出、握手联络
中断控制器:中断请求的锁存、中断排队、中断屏蔽、提供中断向量、中断结束
CPU:中断检测、中断允许、状态输出(8288中断周期)、断点(FR、CS、IP)入栈、获得向量n、计算入口地址、取子程序CS/IP、转向执行子程序;;
; ;;2.中断向量,中断向量指针与中断类型号
中断向量:中断服务程序入口地址
中断向量指针:
指出中断向量存放在中断矢量表中的位置(或地址)。
;
如:硬盘“1NT13H”
它的向量地址=0000:13H×4
=0000:004CH
004CH开始连续4个单元中用来存放“INT 13H”的中断向量
:
;5。2 80X86的中断系统;二、硬中断(见下表)
1.不可屏蔽中断NMI---通常用于处理紧急/灾难性事件
①RAM奇偶校验错PCK
②I/O通道校验错I/O CHCK
③协处理器8087运算错INT
响应时间:在当前机器周期之后立即响应。
;
;M;三.80X86的中断响应总线周期:; 中断响应总线周期时序波形图;§3. 8259A可编程中断控制器;8259A;INT; CPU; 2. 与外部硬件(中断源)连接部分:
中断请求寄存器(IRR)一片8259有8条INTR中断请求线 IR0~IR7,每一条请求线有一个对应的触发器来存放中断请求信号。
; (3)中断屏蔽寄存器IMR的每一位可对IRR中相应的中断源进行屏蔽,如果禁止某IR提出中断请求,就将其中在IMR中的相应位量“1”。
IMR对于较低优先权的IR实行屏蔽并不影响较低优先权的IR的输入 ;中断屏蔽寄存器IMR; 8259的中断响应过程:
1。当有一条或多条中断请求引脚信号有效时(即IR7~0相应引脚为“1”)。
中断请求寄存器IRR的相应位被置为“1”。
2。若中断请求IR1线中至少有一个中断请求被允许,则8259通过INT引脚向CPU的INTR送出中断请求信号。
3。若CPU处于开中状态(IF=1)
文档评论(0)