《中断控制接口》PPT课件.ppt_第1页
《中断控制接口》PPT课件.ppt_第2页
《中断控制接口》PPT课件.ppt_第3页
《中断控制接口》PPT课件.ppt_第4页
《中断控制接口》PPT课件.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1、第章 中断控制接口,7.1中断和中断系统,CPU在正常执行程序的过程中,当出现某些异常事件或某种外部请求时,暂时停止当前程序的执行,而转去处理临时发生的事件,处理完毕后,再返回去继续执行暂停的程序,这个过程称为中断。,CPU执行流程,非预料事件是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。,中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。,非预料事件,中断系统,中断系统是微机中实现中断功能的各种软、硬件的总称 中断系统一般包括CPU内部相应的中断逻辑、接口中的中断控制电路及各类中断服务子程序,中断系统相关概念,可屏蔽中断

2、 (INTR) 不可屏蔽中断 (NMI),外部中断 (硬件中断) 内部中断 (软件中断),(执行指令所引起的),中断源:引起中断的原因,或能够发出中断请求信号的外设 中断类型号:处理器对各类中断的中断源进行的统一编号N,N的取值范围是0255,中断系统相关概念,中断向量:中断向量即中断服务子程序的入口地址,也就是中断服务子程序的第一条指令的地址在存储器中的存放位置 中断向量表:中断向量构成的表格,位于存储器的最低地址单元 中断优先级:在系统中多个中断源可能同时提出中断请求时,需要按中断的轻重缓急给每个中断源指定一个优先级别,中断系统相关概念,断点:是指CPU执行的现行程序被中断时的下一条指令的

3、地址,又称断点地址,、 、 、 、 、 MOV AX, 0 ADD AX, DX MOV DI , AX 、 、 、 、 、 PUSH AX 、 、 IRET,地址1000:150H为断点,断点概念,中断系统相关概念,中断现场:是指CPU转去执行中断服务程序前的运行状态,包括CPU内部各寄存器、断点地址等。,中断嵌套:当CPU正在进行某一级别中断源的中断处理时,若有更高级别的新中断源发出请求,且新中断源满足响应条件,则CPU应中止当前的中断服务程序,保护此程序的断点和现场,转而响应高级中断。这种多级(重)中断的处理方式称为“嵌套”。,中断嵌套过程示意图,中断嵌套必须具备的几个条件,正处于响应状

4、态的中断服务程序中,应开放总中断(IF位置1) 新中断应具有比原中断有高的优先级;同级或低级均不能嵌套 为保护各级中断服务程序的数据不被破坏,所有服务程序中均应有保护现场、恢复现场的指令 每个中断服务程序末尾必须有IRET指令以示结束,从而返回被中断的程序地址处,中断系统相关概念,中断屏蔽:在某些情况下,CPU可能不对中断请求信号作出响应或处理,这就是中断屏蔽。 屏蔽情况 中断屏蔽标志IF 接口电路中的中断屏蔽寄存器 系统在处理优先级别较高的中断请求时,不会理睬后来的级别较低的中断请求 。,程序中断与子程序调用的区别,子程序的执行是程序员事先安排好的(由调用子程序的指令转入);中断服务子程序的

5、执行一般由随机的中断事件引发。 子程序的执行受到主程序或上层子程序的控制;中断服务子程序一般与被中断的现行程序无关。 不存在同时调用多个子程序的情况,因此子程序不需要进行优先级排队;而不同中断源则可能同时向CPU提出服务请求,因此需要中断仲裁及优先级排队。,中断系统的功能,一、实现中断及返回 中断源发出中断请求,CPU决定是否响应,若响应,则保护断点和现场,转入相应中断服务程序,中断服务结束后,恢复现场和断点,继续执行原程序。,中断系统的功能,二、能实现优先权排队 按各中断请求的重要程度排列CPU响应的次序称为中断优先级。 即同时有多个中断请求到来时,CPU会首先响应和处理优先级别最高的中断请

6、求。 中断优先级的实现可以用软件或硬件设置,中断的过程,中断请求 中断响应 中断处理 关中断 保留断点 保护现场 给出中断入口,转入相应的中断服务程序 恢复现场 开中断与返回,中断处理过程,中断检测 CPU内部硬件自动完成 中断响应 CPU内部硬件自动完成 中断服务 中断服务是根据用户自行编制的指令顺序完成各项操作的。,中断优先权,软件查询确定中断优先权,软件查询确定中断优先权,软件查询确定中断优先权,查询程序 XORAL,AL;CF=0 MOVDX,340H INAL,DX;读入中断寄存器状态 RCRAL,1 JCSERV0;若有请求,则转中断服务程序 RCRAL,1 JCSERV1 RCR

7、AL,1 JCSERV2 RCRAL,1 JCSERV3,中断优先权,链式电路判优 专用硬件方式,硬件优先权排序电路,菊花链优先排队,7.2 8086 CPU的中断系统,7.2.1 8086的中断类型,中断源的优先级顺序为:被0除中断软件中断INTO NMI INTR 单步中断。,CPU内的中断逻辑,中断类型码,一、中断类型码:8086可以处理256个中断请求。每个中断请求均对应于唯一固定的类型码。被0除类型码是0,单步为1; NMI为2;断点中断为3,溢出中断为4,IBM-PC/XT中断类型号的功能分配,8086中断系统中断源的优先级,X86系列微机的硬中断控制逻辑,INTR NMI,中断向

8、量和中断向量表,二、中断向量:中断服务程序的入口地址,包括段地址(存放于高字单元)和偏移地址(存放于低字单元)。 三、中断向量表:存放中断向量的表格。位于内存空间的最低地址(000H-3FFH),长度1KB,可容纳256类中断向量(25641024)。,7.2.2 8086的中断向量与中断向量表,8086的中断向量表,中断向量地址,中断向量地址就是中断向量在中断向量表中的位置,中断向量地址与中断类型号之间的关系表示为: 中断向量地址=中断向量类型号*4,7.2.3 8086 CPU中断处理过程,中断处理的基本过程,中断向量和中断向量表,中断响应与处理,中断类型码的获取 NMI、断点中断、溢出中

9、断、被0除、单步中断等类型码固定。 INT N软中断类型码由立即数N给出。 外部中断由接口电路提供中断类型码。 获得中断类型码后,如何进入中断服务程序 中断类型码乘以4,得中断向量表的向量首址指针 取中断向量:把向量表指针所指的4个连续字节的内容作为中断服务程序的入口地址,分别送给IP和CS 按新的CS:IP指针执行中断服务程序,(FLAG),0150,1000,中断响应过程,中断响应周期时序,CPU从引脚/INTA 发中断响应信号,接口芯片接收此信号,把中断类型号准备好;同时ISRi=1,IRRi=0 CPU再从引脚/INTA 发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上;

10、 CPU从数据总线获取中断类型号。,系统的中断分配情况,我的电脑/控制面板/系统/计算机管理/计算机/属性/中断请求,8086的中断过程,结束当前指令,内部中断?,NMI中断?,N,Y,INTR中断?,TF=1?,N,Y,IF=1?,Y,从总线上取中断类型号,N,N,执行下一条指令,FLAG压栈,IF=0,TF=0,保护断点:CS、IP压栈,根据中断类型号获取中断 向量,进入中断处理过程,恢复断点:CS、IP出栈,FLAG出栈,中断响应过程,中断返回过程,外部中断源的管理,多个外部硬件中断源共用一条INTR线时,要在程序中采取一定措施或用外部硬件解决中断源的优先权排列和多级中断的嵌套等。 中断

11、优先权(优先级):中断优先权就是为每个中断源所确定的响应级别。 软件排序:CPU响应中断后,在程序中用查询的方法判定外设的中断请求。,外部中断源的管理,INTR中断接口电路,7.3 中断控制器8259A,单片8259能管理8级中断,并且可级联管理64级 有中断判优逻辑功能,可对任一级中断单独屏蔽 中断被响应后,可直接提供中断类型号 可通过编程选择其工作方式 中断触发方式的设置 中断响应方式的设置 中断嵌套方式的设置 中断结束方式的设置 总线连接方式的设置及优先权的设置,7.3 中断控制器8259A,7.3.1 8259A的引脚信号、内部结构和工作原理,8259A内部结构,专用中断控制芯片825

12、9,单片8259能管理8级中断,并且可级联管理64级 有中断判优逻辑功能,可对任一级中断单独屏蔽 中断被响应后,可直接提供中断类型号 可通过编程选择其工作方式 中断触发方式的设置 中断响应方式的设置 中断嵌套方式的设置 中断结束方式的设置 总线连接方式的设置及优先权的设置,7.3.2 8259A的工作方式,中断请求方式 边沿触发方式 电平触发方式 中断查询方式 中断源屏蔽方式 普通屏蔽方式 特殊屏蔽方式 设置优先级的方式 全嵌套方式 特殊全嵌套方式 优先级自动循环方式 优先级特殊循环方式,8259A的工作方式,中断结束方式 中断自动结束方式(AEOI) 普通EOI结束方式 特殊EOI结束方式

13、读8259A状态 连接系统总线的方式 缓冲方式 非缓冲方式,8259A缓冲方式下级联结构,8259A缓冲方式下级联结构,8259A非缓冲方式下级联结构,8259A非缓冲方式下级联结构,7.3.3 8259A的初始化命令字和操作命令字,8259A的初始化命令字ICW 初始化命令字通常是系统开机时由初始化程序设置的,写入相应的初始化命令字寄存器中,用于设定8259A的工作方式、中断类型码等,在整个系统工作过程中保持不变。8259A的初始化命令字共有4个:ICW1ICW4。,(1)ICW1的格式和含义,(2)ICW2的格式和含义,(3)ICW3的格式和含义,(4)ICW4的格式和含义,8259A的初

14、始化编程,初始化编程,按照如下要求对8259A设置初始化命令字:系统中仅用一片8259A,中断请求信号采用边沿触发方式;中断类型码为08H0FH;用全嵌套、缓冲、非自动结束中断方式。8259A的端口地址为20H和21H。 MOV AL, 13H ;ICW1:边沿触发,单片,设置ICW4 OUT 20H, AL MOV AL, 8 ;ICW2:中断类型码为08H0FH OUT 21H, AL MOV AL, 0DH ;ICW4:全嵌套、缓冲、非自动结束中断方式 OUT 21H,AL,初始化编程,试对一个主从式8259A进行初始化命令字的设置。从片的INT与主片的IR2相连。从片的中断类型码为70

15、H77H,端口地址为A0H和A1H;主片的中断类型码为08H0FH,端口地址为20H和21H。中断请求信号采用边沿触发,采用全嵌套、缓冲、非自动结束中断方式。,初始化编程,主片初始化程序段: MOVAL,11H ;ICW1 OUT20H,AL MOVAL,8 ;ICW2:中断类型码为08H0FH OUT21H,AL MOVAL,4 ;ICW3:IR2上连接从片 OUT21H,AL MOVAL,0DH ;ICW4 OUT21H,AL,初始化编程,从片初始化程序段: MOV AL, 11H;ICW1 OUT 0A0H,AL MOV AL, 70H ;ICW2:中断类型码为70H77H OUT 0A

16、1H,AL MOVAL,2 ;ICW3:从片的识别地址,即主片的IR2 OUT0A1H,AL MOVAL,9 OUT0A1H,AL,8259A的操作命令字OCW,8259A操作命令字共有3个,即OCW1OCW3。操作命令字是在应用程序中内部设置,设置时,次序上没有严格的要求。但是,对端口地址有严格规定,即OCW1必须写入奇地址端口(A0=1),OCW2和OCW3必须写入偶地址端口(A0=0)。,OCW1的格式和含义,OCW2的格式和含义,OCW3的格式和含义,OCW1的编程,OCW1的编程 OCW1是一个中断屏蔽操作控制字,直接写入中断屏蔽寄存器IMR。由于地址用A0=1寻址,故在IBM PC

17、 和XT机中,该控制字的写入由端口21H写操作完成。在IBM PC/AT中,主片用端口21H写入,从片用端口A1H写入。在中断服务程序内部和其他子程序中,均可使用该命令。例如对主片屏蔽IR4IR7,对从片屏蔽IR15 和IR8,则应该向主片写入11110000=F0H,向从片写入10000001=81H,分别写入端口21H和A1H。,OCW1的编程,MOV021H, 0F0H OUT021H, AL MOV AL,81H OUT0A1H,AL,7.3.4 8259A应用举例,读8259A相关寄存器的内容。 设8259A的端口地址为20H、21H,读出IRR、ISR、IMR寄存器的内容,并相继保

18、存在数据段2000H开始的内存单元中;若该8259A为主片,请用查询方式,查询哪个从片有中断请求。,编程,MOV AL,xxx01010B;发OCW3,欲读取IRR的内容 OUT 20H,AL INAL,20H;读入并保存IRR的内容 MOV 2000H,AL MOV AL,xxx01011B;发OCW3,欲读取ISR的内容 OUT 20H,AL,编程,IN AL,20H;读入并保存ISR的内容 MOV2001H,AL IN AL,21H;读入并保存IMR的内容 MOV 2002H,AL MOV AL,xxx0110 xb;发OCW3,欲查询是否有中断请求 OUT 20H,AL INAL,20

19、H;读入相应状态,并判断最高位是否是1 TEST AL,80H JZDONE AND AL,07H;判断中断源的编码 DONE:HLT,初始化编程,8259A 在IBM PC/XT机中的初始化编程。 IBM PC/XT使用一片8259A 管理可屏蔽中断,其连接线路如图7-15所示。 工作在8086/8088系统(即有ICW4)、单片8259A、边沿触发方式。 中断类型码初始值为08H,即IRQ0IRQ7对应的中断类型码为08H0FH。 中断服务结束时,用常规的中断结束命令,固定优先权级别。即IRQ0优先权最高,IRQ7最低。,连接线路,初始化编程,MOVAL,13H;写入ICW1:边沿触发,单

20、片,要ICW4 OUT20H,AL MOVAL,08H;写入ICW2:中断类型号的初值为08H OUT21H,AL MOVAL,09H;写入ICW4:8086系统,非自动EOI,非缓冲 OUT21H,AL MOVAL,0FFH;OCW4:屏蔽所有中断 OUT21H,AL,7.4 中断程序设计用户中断服务子程序的装载,将用户中断服务子程序的入口地址放入中断向量表的相应位置的过程称为用户中断服务子程序的装载 。 常用的装载方法有三种,用户中断服务子程序的装载,1、定义数据段与向量表重合 DATA SEGMENT AT 0000H ; 定义数据段(DS) = 0000H ORG n * 4 ; n为

21、中断类型号 SUP DW noffset ; 中断服务程序的入口IP DW nseg ; 中断服务程序的入口CS DATA ENDS,用户中断服务子程序的装载,2、程序初始化部分用数据传送指令 DATA SEGMENT AT 0000H ORG n * 4 SUP DW 2DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, ES:DATA MOV AX, DATA MOV ES, AX MOV ES:SUP, OFFSET INISUP ; 中断服务程序的入口IP MOV ES:SUP+2, SEG INISUP ; 中断服务程序的入口CS,用户中断服务

22、子程序的装载,3、DOS中断功能调用 INT 21H置中断向量功能 功能号 25H AH 中断号 n AL 入口参数 中断服务程的入口地址CS:IP DS:DX INT 21H 注: 中断服务程的入口地址CS:IP值将放入 中断向量表的n*4处连续4个存储单元中,用户中断服务子程序的装载,INT 21H读中断向量功能 功能号 35H AH 中断号 n AL INT 21H 出口参数 ES:BX 注: ES:BX中为中断号n的中断服务程 的入口地址CS:IP值,用户中断服务子程序的装载,3、DOS中断功能调用 ;-保存原向量- MOV AL, N; AL中预置中断类型号 MOV AH, 35H;

23、 AH中预置功能号35H INT 21H; 调用DOS中断将取中 断向量到ES:BX中 PUSHES; 保存原中断向量的段 基址部分 PUSH BX; 保存原中断向量的段 内偏移量部分,用户中断服务子程序的装载,;-设置新向量- PUSHDS MOVAX, SEG INTSUB MOV DS, AX; DS中预置段基址 MOV DX, OFFSET INTSUB; DX中预置偏移量 MOV AL, N; AL中预置中断类型号 MOV AH, 25H; AH中预置功能号25H INT 21H; 调用DOS中断将用户中断向量置入中断向量表 POPDS ,置中断向量例,某中断服务程序的 中断号为40H,中断 务程序的入口地址 CS:IP =3500H:4830H 用INT 21H功能置 中断向量到中断向 量表中,MOV AH, 25H MOV AL, 40H PUSH DS 40H*4 MOV BX, 3500H MOV DS, BX MOV DX, 4830H INT 21H POP DS,中断服务程序,保护现场:保存

温馨提示

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

评论

0/150

提交评论