微机原理与接口技术-第7章中断系统-17_第1页
微机原理与接口技术-第7章中断系统-17_第2页
微机原理与接口技术-第7章中断系统-17_第3页
微机原理与接口技术-第7章中断系统-17_第4页
微机原理与接口技术-第7章中断系统-17_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术第7章中断系统2主要内容7.1

中断系统概述7.2

8086CPU的中断系统7.3

可编程中断控制器8259A7.4

小结7.1

中断系统概述7.1.1

中断的基本概念什么是中断?与生活场景的比较正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理中断请求及响应实际场景计算机中断返回1.中断的定义什么是中断?让CPU挂起当前正在执行的程序,转去执行处理某一事件的操作。什么是中断过程?CPU暂停执行原来的程序,转去执行处理特定事件的服务程序,处理结束之后,又返回到原来的程序,从断点开始继续往下执行的全过程。中断过程示意图7-1指令指令指令指令指令指令指令指令有中断请求指令指令指令指令返回中断服务子程序1指令指令指令指令返回中断服务子程序2有中断请求中断嵌套2.中断源引起CPU中断的事件——中断源。例如:外设——请求输入输出数据,报告故障等事件——掉电、硬件故障、软件错误、非法操作、定时时间到等中断源分为:外部中断、内部中断内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断73.中断服务程序为完成中断源所期望的功能而编写的程序称为中断服务程序。每一个中断都对应一个中断服务程序,计算机运行时,中断服务程序驻留在内存。中断服务程序的第一条指令所在的地址(即入口地址)称为该中断服务程序的中断向量。要调用中断服务程序,只需要将程序执行跳转到相应的中断服务程序的入口地址。84.中断类型号中断类型号——为了区别不同的中断服务程序,分配给每个中断服务程序的唯一编号。用户调用中断服务程序时,只要给出对应的中断类型号,计算机即可自动查表获得中断向量。在8086/8088CPU中,中断系统能处理256种不同类型的中断。其中断类型号为00H~FFH。95.中断优先权系统中存在多个中断源,CPU必须设法找出发出中断请求的中断源——中断识别当出现多个中断源同时需要CPU处理的时候,CPU应该先响应谁?——中断判优这种响应中断的顺序,即各种中断源的优先权顺序。107.1.2中断处理系统一个中断处理系统需要具备的功能有:实现中断及返回实现优先权排队

多个中断源同时提出中断请求时,能找到优先权级别最高的中断源进行响应,处理完后,响应级别较低的中断源。实现中断嵌套

当正在处理某个中断时,若有更高优先权的中断源发出中断请求,则CPU中断该中断服务程序,响应更高级的中断,待执行完后,再返回执行被中断的中断服务程序。中断嵌套主程序中断高级中断中断嵌套示意图主程序中断源5处理程序中断源3请求中断源1请求返回返回返回中断源5请求(假设中断源1~n的优先级为从高到低)中断源3处理程序中断源1处理程序137.1.3中断控制方式的优点并行处理能力

实现了CPU和多个外部设备同步工作实时处理能力

中断系统能处理实时要求故障处理能力CPU出现意想不到的情况或故障,可以利用中断系统自动处理,而不用关机。7.2

8086的中断系统

与中断有关的控制线为:NMI、INTR、INTA#8086系统的中断源内部中断除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生断点中断:类型号3,这是一个软中断溢出中断:类型号4,软中断即INTO指令。软件中断:即INTn指令,类型号n(0-255)。外部中断非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断8086/8088中断源类型可屏蔽中断请求n43012中断源的识别8086系统采用中断类型码来识别不同的中断源,每个中断源都有一个与它相对应的中断类型码。溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值软件中断的类型码由指令给出可屏蔽中断的类型码由PIC给出171.

内部中断

CPU中断:CPU执行某些指令时出现错误或对标志寄存器的标志位进行设置而引发的中断。除法错中断 中断类型号为0单步执行中断 中断类型号为1断点中断 中断类型号为3溢出中断 中断类型号为4INTO:当CPU检测到溢出标志OF为1,且当前指令是INTO指令时,则立即引起溢出中断。INT4:如果直接执行软件中断指令INT4,无论OF标志位如何,CPU都将会调用4型服务程序。181.内部中断软中断

CPU执行在用户程序中安排的有定义的INTn指令而引发的中断。软中断的中断类型号是在指令中直接给出的。软中断是在程序中安排而不是随机的。在PC系列机器中,软件中断主要分为:BIOS中断DOS中断192.外部中断(硬中断)硬中断是由来自CPU外部事件产生的中断,即由外部设备提出中断请求而产生的。硬中断的产生具有随机性,何时产生中断,CPU预先并不知道。在PC/AT系统中,硬中断由两片8259A中断控制器引入。PC/AT系统硬件中断表中断类型号IRQ标准应用02H08H09H0AH70H71H72H73H74H75H76H77H0BH0CH0DH0EH0FHNMI0128910111213141534567奇偶校验错、I/O检测错中断定时器OUT0中断键盘输入中断接收从片8259A的中断请求INT实时钟中断改向INT0AH(以IRQ2出现)保留保留保留协处理器中断硬磁盘控制器中断保留串行通信(COM2)中断串行通信(COM1)中断打印机(LPT2)中断软磁盘控制器中断打印机(LPT1)中断212.

外部中断(硬中断)1)非屏蔽中断

(边缘触发)非屏蔽中断NMI:不受中断允许标志IF的影响,它总是被CPU接受的。非屏蔽中断的优先权高于可屏蔽中断,中端类型号为2。2)可屏蔽中断(电平触发的)可屏蔽中断INTR:是否响应INTR的请求,取决于中断允许标志位IF的状态。只有当中断允许标志位IF为1时,CPU才能响应INTR的中断请求。如果IF为0,即使INTR端有中断请求信号CPU也不会响应。这种情况称为中断屏蔽。223.中断向量表中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。中断向量表是在内存中00000到00400h开辟的一个区域,将每个中断服务程序的入口地址存放其中。共1KB,可以存放256个中断向量。查表方法:中断号*4=中断向量表地址低16位——偏移量高16位——代码段地址例:INT13H入口地址CS:IP=0210:045D5D041002IPCS0000:004C类型0中断入口(除法出错)类型1中断入口(单步中断)类型2中断入口(NMI)类型3中断入口(断点中断)类型4中断入口(溢出中断)类型5中断入口类型31中断入口类型32中断入口类型255中断入口¡­¡­¡­¡­1587000000400800C01001407F0803FC供用户使用系统备用专用中断IPCSIPCSIPCS图8086中断向量表中断向量表的初始化初始化——将中断服务程序的入口地址放入向量表例:中断类型码为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址放入向量表。中断向量表的初始化CLIMOVAX,0MOVDS,AXMOVSI,48H*4MOVAX,OFFSETint48hMOV[SI],AXMOVAX,SEGint48hMOV[SI+2],AX

STI264.中断响应条件向CPU发出中断请求CPU处于开中断状态。即IF标志为1。CPU复位时,自动关中断,当CPU响应任何中断时,也立即自动关中断。在中断服务程序中用开中断指令STI开中断。CPU在一条现行指令结束之后响应中断。5.中断处理过程一个中断处理过程应该包含以下五个过程: (1)中断请求 (2)中断排队 (3)中断响应 (4)中断服务 (5)中断返回1)中断请求外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚;中断请求信号:边沿请求,电平请求

例如,NMI为边沿请求,INTR为电平请求中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。在8086/8088系统中,外设的中断要经过8259A可编程中断控制器(PIC)的排队判优后向CPU发出:

(I/O接口)

→8259A→CPU(INTR)2)中断排队中断源识别中断源有很多,CPU必须识别是哪一个设备产生中断。识别中断源有两个方法:软件查询。将中断信号从数据总线读入,用程序进行判别。中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源。(8086/8088即采用此种方法)2)中断排队中断判优确定当前所有中断请求中优先级最高的中断源。因为CPU一次只能响应一个中断,所以必须首先处理最紧急最重要的中断。根据中断源的轻重缓急给予一个中断优先权级别,优先权级别最高的中断源将首先得到响应。中断优先级的控制方法硬件判优——链式判优、并行判优(中断向量法)软件判优——顺序查询中断请求,先查询的先服务(即先查询的优先级别高)x86系统中,这项任务由8259A和CPU共同完成。3)中断响应CPU通过中断排队确定了要响应的中断源后,进入中断响应,自动完成以下步骤:

①标志寄存器入栈②关中断;0→IF③保护断点,将正要执行的程序地址(CS:IP)入栈;④形成中断服务程序入口地址。3)中断响应(续)CPU中断响应时,要做下述三项工作:向中断源发出INTA中断响应信号;断点保护,包括FLAGS和CS、IP。这主要是保证中断结束后能返回被中断的程序。获得中断服务程序首地址(入口)。

[中断类型码*4]=>IP

[中断类型码*4+2]=>CS338086硬件中断的时序8086从INTA发出中断响应信号;第一个总线周期用来通知外设,CPU准备响应中断,第二个总线周期接收外设发回的中断类型码,该类型码必须通过16位数据总线的低8位传送。4)中断处理(中断服务)中断服务是指CPU执行中断服务程序。中断服务程序应包括:①保护现场,CPU响应中断时自动保护断点,寄存器则由程序员决定是否要入栈;②开中断,CPU响应中断时,自动执行关中断操作。要实现中断嵌套,必须在中断服务程序中开中断;4)中断处理(中断服务)③中断处理,对中断源作相应的处理,是中断服务程序的核心;④关中断,若中断服务程序设置了开中断,则此时应该关中断,以保证恢复现场的操作不被打断;⑤恢复现场,按后进先出的原则,PUSH和POP应配对使用;⑥中断返回,从堆栈中弹出断点,返回主程序。5)中断返回执行中断返回指令IRETIRET指令将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAG中,保证被中断的程序从断点处能够继续往下执行。IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG进入中断服务程序时中断返回后(1)中断响应(2)标志寄存器入栈(3)关中断:0→IF(4)保存断点:(CS:IP)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论