第7章-中断处理和定时计数技术_第1页
第7章-中断处理和定时计数技术_第2页
第7章-中断处理和定时计数技术_第3页
第7章-中断处理和定时计数技术_第4页
第7章-中断处理和定时计数技术_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

1、中断的基本概念中断的基本概念第第 7 7 章章 中断处理与定时计数器技术中断处理与定时计数器技术8086中断结构中断结构可编程中断控制器可编程中断控制器8259A可编程定时计数器可编程定时计数器8253一一. . 中断中断的基本概念的基本概念1. 1. 中断:中断:是指某事件的发生引起是指某事件的发生引起CPU暂停当前程序的执行,暂停当前程序的执行,转去对所发生的事件进行处理,处理结束后又回到原转去对所发生的事件进行处理,处理结束后又回到原程序被打断处接着执行这样一个过程。程序被打断处接着执行这样一个过程。中断中断断点断点IRET中断服务子程序中断服务子程序主程序主程序2. 中断源:中断源:是

2、指能够引发中断的事件。是指能够引发中断的事件。内部中断源:内部中断源:CPUCPU内部产生内部产生 a. a. 软件中断。软件中断。INTINT等软中断等软中断 b. b. 执行指令出错。如除法错误等执行指令出错。如除法错误等 外部中断源:外部设备产生外部中断源:外部设备产生 a.a.输入、输出设备中断输入、输出设备中断 b.b.实时时钟中断实时时钟中断 c.c.实时监控系统中断等实时监控系统中断等. . 计算机掉电、计算机掉电、I/OI/O通道出错、内存读、写出错等通道出错、内存读、写出错等执行指令执行指令指令结束否?指令结束否?有中断请求吗?有中断请求吗?非屏蔽中断吗?非屏蔽中断吗?IF=

3、1吗?吗?NYYY取下一条执行指令取下一条执行指令NNNYCPU硬件自动完成硬件自动完成CPU产生两个产生两个INTA负脉冲负脉冲关闭中断关闭中断保护断点、保护现场、开中断保护断点、保护现场、开中断中断服务中断服务关中关中断断恢复现场恢复现场IRET中断返回中断返回中断服务程序完成中断服务程序完成3. 3. 中断矢量表中断矢量表中断矢量表给出了不同中断源与其终端入口地址的对应关中断矢量表给出了不同中断源与其终端入口地址的对应关系。响应中断时系。响应中断时CPUCPU能根据中断源提供的中断类型号在中断能根据中断源提供的中断类型号在中断矢量表中找到相应中断服务子程序入口地址。矢量表中找到相应中断服

4、务子程序入口地址。4.4.中断屏蔽中断屏蔽中断屏蔽是指中断屏蔽是指CPUCPU通过软件能够实现中断禁止的一种功能。通过软件能够实现中断禁止的一种功能。7.1.2 7.1.2 中断处理过程中断处理过程 中断方式的实现一般需要经历下述过程:中断方式的实现一般需要经历下述过程: 中断请求中断请求中断排队中断排队中断响应中断响应断点及现场保护断点及现场保护中中断服务断服务断点恢复断点恢复中断返回中断返回1 1)中断请求)中断请求 外部中断源产生的中断请求信号应符合下列有效性规定:外部中断源产生的中断请求信号应符合下列有效性规定: 信号形式应满足CPU要求; 中断请求信号应被有效地记录,以便CPU能够检

5、测到; 一旦某个中断请求被处理完,则该中断请求信号应及时撤销。2 2)中断排队(即中断优先级)中断排队(即中断优先级) 中断请求是随机发生的,有时多个中断源会同时提出中断请求,由于CPU每次只能相应一个中断源的中断请求,因此中断系统必须根据各中断源的轻重缓急,安排一个优先顺序,这就是中断排队。中断排队可以采用硬件方法实现,也可以采用软件方法实现。 3)中断响应 CPU对内部中断源提出的中断请求必须接受,而对外部中断源产生的中断请求是否响应则取决于外中断源类型及响应条件。如CPU对非屏蔽中断请求会立即做出响应,而对可屏蔽中断请求则要根据当时的条件做出反应。CPU在每条指令执行的最后一个时钟周期对

6、外部中断进行检测。中断相应过程是硬件软件相互配合的过程,不同系统有不同的实现方法,一般有一下两种:CPU相应中断后,由硬件电路直接向CPU提供调用指令的机器码,接着CPU执行这条,而转入中断程序入口地址。由请求中断的外设向CPU提供中断矢量,CPU在中断矢量表中查找对应中断矢量的中断入口地址,并转去执行中断服务程序。8086/80888086/8088系统响应可屏蔽中断系统响应可屏蔽中断INTRINTR的条件为:的条件为: 指令执行结束;指令执行结束; CPUCPU处于开中断状态(处于开中断状态(IFIF1 1);); 没有发生复位(没有发生复位(RESETRESET)、保持()、保持(HOL

7、DHOLD)和)和 非屏蔽中断请求(非屏蔽中断请求(NMINMI);); 开中断指令(开中断指令(STISTI)和中断返回指令()和中断返回指令(IRETIRET) 执行完,需要再执行一条指令才能响应执行完,需要再执行一条指令才能响应INTRINTR。3 3)断点、现场保护)断点、现场保护 为了能在中断处理结束时,使CPU回到被中断程序的断点处接着执行,需要对被中断程序的断点信息进行保护。 不同的CPU所做的断点保护操作不一样,8086/8088CPU采取硬件自动保护断点地址(段地址和偏移量)和标志寄存器内容的方法。现场其他信息的保护则需要通过软件在中断服务程序中完成。 4 4)中断服务)中断

8、服务 中断服务是完成对所识别中断源的功能性处理。不同的中断服务是完成对所识别中断源的功能性处理。不同的中断源,要求中断源,要求CPUCPU对其进行的处理可能各不相同,所以其中对其进行的处理可能各不相同,所以其中断服务程序的内容、复杂程度也就不同,这是整个中断处理断服务程序的内容、复杂程度也就不同,这是整个中断处理的核心。的核心。5 5)现场恢复)现场恢复 即将现场保护时压入堆栈的内容按相反的顺序弹出堆栈,放到原存储处。6 6)中断返回)中断返回 CPU硬件断点保护的相反操作,使CPU能够从中断处理程序返回到原程序被打断处继续执行。通过在中断服务程序末尾安排一条中断返回指令实现。7.1.3 中断

9、优先级u 目前采用的解决中断优先级控制的方案有:目前采用的解决中断优先级控制的方案有: 软件查询;软件查询; 硬件链式优先级排队电路;硬件链式优先级排队电路; 硬件优先级编码比较电路;硬件优先级编码比较电路; 软件查询法软件查询法2.硬件链式优先级排队电路硬件链式优先级排队电路:菊花链逻辑电:菊花链逻辑电路路INTAinIREQINTR1=1 1INTAoutDB三态门三态门中中断断向向量量码码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路7.1.4 中断嵌套 有了优先级控制逻辑,就可以形成中断嵌套(即中断有了优先级控制逻辑,就可以形成中断嵌套(即中断套中断),并可在多级上进行

10、。套中断),并可在多级上进行。u 要保证多级中断嵌套的顺利进行,需做以下工作:要保证多级中断嵌套的顺利进行,需做以下工作: 在中断处理程序中要有开中断指令;在中断处理程序中要有开中断指令; 要设置足够大的堆栈;要设置足够大的堆栈; 要正确地操作堆栈。要正确地操作堆栈。中断逻辑中断逻辑INTO指令指令单步单步中断中断除法除法错误错误INT N指令指令CPUINTRNMI8259A中断中断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7可可屏屏蔽蔽中中断断外外设设中中断断源源 INTA非屏蔽中断非屏蔽中断外部中断外部中断 非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断特点特点中断中断断点断

11、点IRET中断服务子程序中断服务子程序主程序主程序自动自动关中断关中断保护保护PSW保护断点保护断点INTA响应中断响应中断获取中断类型获取中断类型获取中断向量获取中断向量保护现场保护现场中断处理中断处理恢复现场恢复现场恢复恢复PSW恢复断点恢复断点movmov bl,0 bl,0idiv blidiv bl;除数;除数BLBL0 0,产生除法错中断,产生除法错中断movmov ax,200h ax,200hmovmov bl,1 bl,1div bldiv bl ;商;商200H200H,不能用,不能用ALAL表达表达;产生除法错中断;产生除法错中断例如:例如:DEBUG.EXEDEBUG.

12、EXE调试程序的单步命令调试程序的单步命令T T就利用单步中断实现对程序的单就利用单步中断实现对程序的单步调试步调试movmov ax,2000h ax,2000hadd ax, 7000hadd ax, 7000h;2000H2000H7000H7000H9000H9000H,溢出:,溢出:OFOF1 1intointo;因为;因为OFOF1 1,所以产生溢出中断,所以产生溢出中断向量号为向量号为N N的中断向量的物理地址的中断向量的物理地址N N4 4其中:其中:IP=(4N,4N+1)IP=(4N,4N+1) CS=(4N+2,4N+3) CS=(4N+2,4N+3)PUSH DSXOR

13、 AX, AXMOV DS, AXMOV BX, N*4MOV AX, OFFSET NEWINTMOV WORD PTRBX,AXMOV AX, SEG NEWINTMOV WORD PTRBX+2,AXPOP DS NEWINT PROC IRETNEWINT ENDP例如:例如:PUSH DSPUSH DS MOV AX, SEG NEWINT MOV AX, SEG NEWINT MOV DS, AX MOV DS, AX MOV DX, OFFSET NEWINT MOV DX, OFFSET NEWINT MOV AL, N MOV AL, N MOV AH, 25H MOV AH

14、, 25H INT 21H INT 21H POP DS POP DS取中断向量是把由取中断向量是把由ALAL指定的中断类型指定的中断类型N N的中断向量的中断向量从中断向量表中取到从中断向量表中取到ESES:BXBX中。中。预置:预置:AH=35H AH=35H 功能号功能号 AL=N AL=N 中断类型号中断类型号 ESES:BX=BX=中断向量中断向量执行:执行:INT 21HINT 21H例如:例如:编写一个程序段,实现将中断类型号为编写一个程序段,实现将中断类型号为N N的原中断的原中断向量取出并存入到以向量取出并存入到以NEWOLDNEWOLD开始的开始的4 4个单元。个单元。MO

15、V AL, N MOV AL, N MOV AH, 35H MOV AH, 35H INT 21H INT 21H MOV NEWOLD, ES MOV NEWOLD, ES MOV NEWOLD+2, BXMOV NEWOLD+2, BX5. 5. 中断控制方式的必要性中断控制方式的必要性 分时操作 实时处理 故障处理 程序运行的必需机制 其他A0:片内端口选择INTA:中断响应信号RD:读信号WR:写信号CS:片选信号SP/EN:主/从片选择(输入)或启动总线驱动器(输出)2、8259A的编程结构和工作原理n 编程结构7个寄存器初始化命令字ICW1ICW4操作命令字OCW1OCW3控制部件

16、IRR:中断请求寄存器PR:中断优先级裁决器ISR:中断服务寄存器处理部件 若IF=1,则CPU执行完当前指令后响应此中断,即从INTA引脚回送两个负脉冲;8259A8259AINT主片:从片:0 1 2 3 4 5 6 7 8 10 12 149 11 13 15优先级次序: 主片:0,1 从片:815 主片:37B07 8286T OEA07SP/EN D07 8259A+5V数据总线缓冲方式:SP/EN D07 8259A (从片)数据总线非缓冲方式:SP/EN D07 8259A (主片或单片)数据总线+5V工作过程:关中断输出OCW3输入查询字查询字格式:IW2W1W0当前中断请求的

17、最高优先级1:有请求0:无请求1LTIM ADI SNGL IC4是否需要ICW4=1 需要是否处于级联状态=1 单片 =0 级联8086/8088系统中无效中断请求信号形式=1 电平触发 =0 脉冲触发特征位8086/8088系统中不用T7T6T5T4T30008086/8088系统中无效中断类型码高5位 ICW3:标志主片/从片的初始化命令字(A0=1) 级联方式设置IR7IR6IR5IR4IR3IR2IR1IR0主片:=1,说明对应引脚上连接有片连接主片哪一引脚00000ID2ID1ID0从片:不用 D0D7 INTA INT CAS0 8259A (3) CAS1 CAS2 SP/EN

18、 IR7 IR0 GND D0D7 INTA INT CAS0 8259A (2) CAS1 CAS2 SP/EN IR7 IR0 GND D0D7 INTA INT CAS0 CAS1 8259A(1) CAS2 SP/EN IR7 IR0 Vcc 控制总线数据总线OCW3的值: 8259A(1):01001000 48H 8259A(2):00000110 06H 8259A(3):00000011 03H000SFNM BUF M/S AEOI PM=1 为8086/8088系统中断结束方式=0 非自动结束方式=1 自动结束方式主片/从片选择(缓冲方式有效)=0 从片 =1 主片缓冲方式

19、设定=1 缓冲方式 =0 非缓冲方式特殊全嵌套方式设定=1 特殊全嵌套方式不用送ICW1送ICW2送ICW3送ICW4准备接收中断级联方式?需要ICW4?NNYY程序: MOV AL,13HOUT 80H,ALMOV AL,18HOUT 81H,ALMOV AL,0DHOUT 81H,AL00010011需ICW4单片方式边沿触发000011018086/8088系统非自动中断结束主片缓冲方式一般全嵌套方式00011000中断类型码高五位M7M6M5M4M3M2M1M0若Mi位为1,则对应IRi的中断请求就被屏蔽,若为0,则对应IRi的中断请求就被允许。举例:设8259A端口地址为20H和21

20、H,开放IR2和IR7中断,其它均被屏蔽MOV AL,7BH ;01111011OUT 21H,AL要想读出中断屏蔽寄存器IMR的值:IN AL,21H OCW2:设置优先级循环方式和中断结束方式命令字 (A0=0)RSLEOI00L2L1L0中断等级代码特征位中断结束方式 :=1 发中断结束命令 说明L2L1L0是否有效:=0 无效,=1 有效中断优先级循环方式:=0 固定优先级,=1 循环优先级功能设置和撤消特殊屏蔽命令设置中断查询命令设置对8259A内部寄存器的读出命令0ESMM SMM01PRRRIS=0 读IRR=1 读ISR=1 读IRR和ISR内容=1 中断查询工作方式=1 设置

21、特殊屏蔽方式 =0 撤消特殊屏蔽方式SMM允许位:=1 SMM有效,=0 SMM无效特征位不用程序: MOV AL,0AHOUT 20H,ALIN AL,20HMOV BUF,ALMOV AL,0BHOUT 20H,ALIN AL,20HMOV BUF+1,ALIN AL,21HMOV BUF+2,AL读IRR内容读ISR内容读IMR内容INTAIR正确:INTAIR过晚:可能引起多次中断INTAIR过早:无法识别,自动设为IR72、关于如何使用中断结束命令的例子初始化开中断开中断开中断关中断中断结束命令开中断中断返回关中断中断结束命令开中断中断返回IR3请求中断IR3中断处理程序IR2请求中断主程序IS4被清除IS3置1IR3有中断请求IR4中断处理程序IS4置1IS2被清除IS1被清除IR1中断处理程序IS1置1IS2置1IR2中断处理程序初始化

温馨提示

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

最新文档

评论

0/150

提交评论