第五章中断技术.ppt_第1页
第五章中断技术.ppt_第2页
第五章中断技术.ppt_第3页
第五章中断技术.ppt_第4页
第五章中断技术.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 中断技术,第五章 中断技术,本章内容,5.1 中断的基本概念 5.2 IBM-PC微机中断系统 5.3 可编程中断控制器8259A 5.4 8259A在微机系统中的应用 实验内容 本章要点,5.1 中断基本概念,本节内容,基本概念 中断源与中断识别 中断向量与中断向量表 中断类型号与中断向量指针 中断向量的装入(填写) 中断向量的修改 中断优先级排队方式 中断嵌套,章内容提要,5.1 中断基本概念,一、中断基本概念,定义:CPU暂停现行程序,转而处理随机到来的事件,待处理完后再回到被暂停的程序继续执行,这个过程就是中断。,中断过程:,中断处理的隐操作:程序状态及程序断点地址的进栈及出栈

2、。,节内容提要,章内容提要,指令中断:INT 10H、INT 21H等,2)中断识别:确定中断源,实现程序转移,向量中断:中断向量、中断号,外设中断:键盘、打印机、显示器等,硬件故障中断:奇偶错、电源故障等,程序性中断:除法溢出、非法操作码等,查询中断:软、硬件查询确定中断源,二、 中断源与中断识别,节内容提要,三、 中断向量、中断向量表,1.中断向量:(中断矢量)是中断服务程序的入口地址(CS、IP), 2.中断向量表:存放中断向量的内存区域。 PC机的中断向量表支持256(编号00H - FFH )个中断,256个中断号的中断向量占用4256=1024存储单元,它位于存储器的最低1K字节(

3、000000003FFH)。,中断号表:80页 表5.1 了解,节内容提要,类型号:8位,N=00FFH,四、 中断类型号、中断向量指针,中断向量表示意图 结合81页 图5.1,中断向量指针,中断向量指针:PA=4*N,节内容提要,五、 中断向量的装入,开机时自动装入,有些单板机和实验装置未自动装入,需要程序员装入中断向量。,例1:中断号60H,服务程序段基址SEG_INTR,偏移地址OFFSET_NITR (006DH),填写中断向量表。,CLI CLD MOV AX,0 MOV ES,AX MOV DI,4*60H MOV AX, OFFSET_NITR,STOSW MOV AX,SEG_

4、INTR STOSW STI,节内容提要,方法2:直接写入 CLI CLD MOV AX,0 MOV ES,AX MOV BX,4*60H MOV AX, 006DH MOV ES:BX,AX ;先装偏移地址 PUSH CS POP AX ;取中断服务程序基地址 MOV ES:BX+2,AX STI,节内容提要,节内容提要,利用INT21H中的功能号35H和25H INT21H调用:子程序号(功能号)送AH,子程序入口参数送指定寄存器。,DOS中断21H功能25H,就是将中断服务程序的入口地址置于中断向量表中,格式如下: 入口参数: AH=25H AL=要设置的中断号 DS=中断服务程序入口段

5、址 DX=中断服务程序入口偏移地址,六、改写中断向量,节内容提要,DOS中断21H功能35H, 将一个中断号的地址读出作为返回值,参数和返回值格式如下: 入口地址: AH=35H AL=中断号 返回值: ES=中断服务程序的入口段址 BX=偏移量,例3、假设原中断号为N,新中断服务程序入口地址段基址为SEG_INTR 偏移量为OFFSET_INTR 。 程序见下页,节内容提要,MOV AH, 35H ;取原中断向量 MOV AL, NH INT 21H MOV OLD_OFF, BX ;保存原中断向量 MOV BX, ES MOV OLD_SEG, BX : MOV AH, 25H ;设置新中

6、断向量 MOV AL, NH MOV DX, SEG_NITR MOV DS, DX MOV DX, OFFSET_INTR INT 21H : MOV AH, 25H ;恢复原中断向量 MOV AL, NH MOV DX, OLD_SEG MOV DS, DX MOV DX, OLE_OFF INT 21H,节内容提要,七、 中断优先级,原则:按机器故障、DMA、外围硬件、软件递减。,结果:CPU专用DMA外围硬件BIOSDOS自由。,即基本按中断向量表排序。,外围硬件一般可由用户修改其优先权。 优先级固定方式(07);循环轮流方式(指定最低、不指定),八、中断嵌套 完全嵌套方式、特定完全嵌

7、套方式 后边结合8259介绍,节内容提要,5.2 IBM微机中断系统(83页),本节内容,分类:硬中断(外部中断)、软中断(内部中断),章内容提要,一、硬件中断,特殊中断对应中断号: 0除数为0;1单步中断; 3断点; 4溢出中断,1 不可屏蔽中断NMI,2 可屏蔽中断INTR,节内容提要,1.不可屏蔽中断NMI,中断请求:中断请求的信号送到CPU的NMI引脚。,NMI由0跳变到1以后要维持至少4个连续的处理器时钟周期的高电平才被识别。 NMI由1跳变到0以后要维持至少4个连续的处理器时钟周期的低电平,新的NMI中断才能被识别。,不可屏蔽:不受IF状态影响 类型号固定:02H 有效信号:上升沿

8、,紧急故障处理:RAM奇偶校验错、I/O通道校验错、协处理器运算错,节内容提要,节内容提要,NMI信号产生逻辑图,向A0H端口写入80H则Q=1,即开启与门,允许请求,2. 可屏蔽中断INTR,中断请求:中断请求的信号(高有效)送到CPU的INTR引脚。,可屏蔽:IF=1,开放;IF=0,屏蔽 类型号由8259A提供(PC机08H0FH) 有效信号:高电平,节内容提要,INTR的处理过程,可以参见书85页图5.3 INTR的处理过程,节内容提要,二、软中断(CPU不需要进行中断识别,直接处理中断。),1)双字节指令形式的中断(INT n),ROM-BIOS中断:INT 10H;INT 16H等

9、 DOS中断:INT 21H;INT 20H等 未定义中断:INT 60H;INT 78H等,节内容提要,除数为0中断(0 ):除数为0或商超出范围 单步中断(1):TF=1,调试时候使用 断点中断(3):软件提供中断服务程序,用于调试 溢出中断(4):OF=1,指令INTO,2)特殊中断,节内容提要,单步中断设置与溢出中断举例,设(AL)72H,在分别执行完ADD AL,63H和ADD AL,97H后,执行INTO结果如何?,节内容提要,三、硬中断与软中断的比较,节内容提要,1、中断申请,8086/8088CPU用INTR引脚和NMI引脚接收硬件中断请求信号。 对于软件中断源,在CPU内部由

10、中断指令或程序出错直接引发中断。 硬件中断请求可以用CLI来禁止。,四、中断处理过程,CPU在每条指令最后一个T内检测INTR;若为高电平, IF=1,且无DMA请求,当前指令执行完进入响应阶段,节内容提要,在8086/8088系统中可以用CLI和STI指令来设置IF,禁止或允许来自INTR可屏蔽中断请求引脚的中断申请。 中断请求标志 对应每个外设有一位,用来纪录外设的中断请求状态。有请求时置1,中断处理完后清0。 在PC机中,用8259A来管理外设的中断请求,而在8051系列的单片机中,该标志也在CPU内部。,2、中断响应,1).保护断点,2).取得中断类型号,对外部硬件中断通过中断响应周期

11、取得中断类型号。,通过堆栈及相关硬件实现EFLAGS、CS、EIP的保护。并清除IF和TF。,3).取得中断服务程序入口地址,对向量中断,通过中断类型号查中断向量表(32位机器查中断描述符表取得),3、执行中断服务程序,节内容提要,4、中断返回,中断返回用IRET指令。 这条指令能自动将保存在堆栈中的IP、CS、标志寄存器EFLAGS依次弹出堆栈(共6字节),使程序又回到中断前的地址继续执行。,节内容提要,CPU响应中断条件:,当前指令执行完毕; EFLAGS中IF=1; INTR信号有效。,DMA传送方式比中断方式速度快(响应与传送)。,五、中断响应周期,节内容提要,中断响应周期图示,节内容

12、提要,本节内容,8259A协助CPU完成的工作 8259A的外部特性和内部结构 8259A的工作方式 8259A的编程命令及中断操作功能,5.3 Intel 8259A,章内容提要,一、8259A主要任务,接收外部的中断请求:一片可管理8级中断;多级级联最多管理64级,管理外部中断请求:排队、判优、屏蔽、嵌套,向CPU产生中断请求INTR,进行中断结束处理,接受CPU命令及返回状态:接受命令、查询中断状态,向CPU提供中断类型号,节内容提要,二、 8259A引脚及内部结构,1.8259A引脚,CPU侧:,DB0DB7;,外设侧:,IR0IR7;,级联:,节内容提要,面向CPU的信号(14),A

13、0:端口选择信号;输入,节内容提要,面向同类芯片的信号(4),节内容提要,2.8259A内部结构,接口电路:CPU接口、I/O接口。,节内容提要,1、IRR:请求寄存器, 8位,可读,寄存有请求的中断级,IRi有请求,IRRi=1 。可由OCW3读出,2、ISR:(正在)服务寄存器。 8位,可读, IRi被响应且未服务完,ISRi=1,ISR可能多位同时为1。第一个INTA信号建立,非自动中断结束情况下需要由OCW2发EOI命令。,3、IMR:中断屏蔽寄存器OCW1, 8位,可读可写, IMRi=1,IRi被屏蔽,4、PR:优先权分析器见下页图,由IRR、IMR、ISR的状态确定INT引脚的输

14、出,5、级联缓冲器/比较器:级联时传送级联代码; 缓冲方式控制传送方向,节内容提要,内部逻辑:IRR、IMR、PR、ISR及控制电路。,节内容提要,读写控制逻辑,中断类型号的读取不是读写逻辑控制的,节内容提要,1)中断触发方式,2)连接系统总线的方式,3)中断屏蔽的方式,4)优先级排队的方式,三、8259A工作方式,节内容提要,5)中断嵌套方式,6)中断结束的方式,中断请求方式:初始化设置,边沿触发方式:正跳变向8259A请求中断。 电平触发方式:高电平向8259A请求中断,响应中断后要及时清除高电平。以免引起二次误中断。 查询中断方式:外设向8259A请求中断,但8259A不向CPU发中断请

15、求信号INT。,节内容提要,连接总线与级联方式:非缓冲初始化设置,节内容提要,屏蔽方式:内部特性,内部特性:自动屏蔽低于自己优先级的IR。,正常屏蔽:IMR中相应位置位;OCW1,特定屏蔽:开放比自己优先级低的IR。OCW3,优先级管理方式:固定优先权,内部特性:IR0IR7的优先级为一循环队列。,固定优先权:从IR0IR7降序;,轮转优先权:,自动轮转:刚被服务的IR的优先级降至最低;,指定轮转:初始优先级07、以后指定的IR的优先级最高,服务后降至最低。以后按NN+1的顺序,节内容提要,嵌套方式:全嵌套,全嵌套:禁止同优先级或低优先级请求发生;,特殊全嵌套:开放同级,禁止低优先级请求,应用

16、:级联时主片特殊全嵌套,从片全嵌套。,结束方式:自动,自动:中断响应后ISR中最高优先级位自动复位;,非自动:中断服务程序返回前,需要处理程序发出对ISR中相应位复位的中断结束命令;,不指定方式:ISR中最高优先级位复位;,指定方式:命令中指定的ISR中相应位复位。,节内容提要,四、8259A的操作功能及命令,I/O端口地址:只提供二个端口(使用A0区别);,命令:初始化-ICW1、ICW2、ICW3、ICW4, 操 作-OCW1、OCW1、OCW3。,状态:IRR、ISR、IMR、查询字。,I/O端口操作冲突时解决方法:,信息字中有空闲位时:特征位方法;,信息字中无空闲位时:时序方法。,节内

17、容提要,Initialization Command Word Operation Command Word,读,读,写,写,操作,0A1H,0A0H,0A1H,0A0H,PIC2,IMR,查询字,IRR,ISR,OCW1,ICW2ICW4,OCW3,OCW2,ICW1,内容,无,初始化后,01*,00*,D4D3D2,无,OCW3决定,ICW2ICW4,无,时序,无,21H,无,20H,无,21H,1*,20H,特征位,PIC1,8259A命令关系表:,注:ICWx只有在初始化过程中才会出现。,节内容提要,(1)初始化命令ICW1,特征位:D4=1;,ICW4主要设定嵌套、缓冲、结束方式,缺

18、省值为全嵌套、非缓冲、自动结束方式。,节内容提要,(2)初始化命令ICW2,时序:ICW2ICW3ICW4。,IRi的中断类型号 = ICW2的高5位+i,例:如果ICW2为08H,则 IR3的中断类型号(中断向量)为08H+03H=0BH。,节内容提要,(3)初始化命令ICW3,级联方式结构:,节内容提要,级联方式结构设置:,需要分别对主片和从片进行设置。,主片:S7S0分别对应相应的IRi的引脚,为1的位对应的引脚接有从片;,从片:ID2ID1ID0的编码=i,说明该从片挂在主片的IRi上,节内容提要,主 片:OUT 21H,14H,从片1:OUT 0A1H,04H,从片2:OUT 2B1

19、H,02H,级联方式中断请求及响应过程:,主片请求:与非级联一致。,从片请求:与非级联一致,但其INT送到主片,服从主片的请求规则。,节内容提要,级联方式举例,级联方式举例,级联方式的硬件连接,级联方式下工作过程,ICW3,主片、从片1、从片2的ICW3分别为:24H、02H、05H,CPU的操作与单片无区别,(4)初始化命令ICW4,节内容提要,特定完全嵌套方式(用于级联系统的主片),开放同级和高级中断,上例中,主片若采用特定完全嵌套方式,则允许D打断B的服务,给主片送EOI的条件:从片ISR=00H,Special fully nested mode,(5)操作命令OCW1(设置IMR),

20、特征位:无,时序:无。,特殊屏蔽:通过OCW3设置。,节内容提要,如开放IR1、IR7; 屏蔽IR3、IR6;其他不变(IMR可读可写),(6)操作命令OCW2,节内容提要,例:OUT 20H,20H的含义?,节内容提要,如:不指定EOI MOV AL,20H OUT 20H,AL,指定EOI (清除ISR4) MOV AL,64H OUT 20H,AL,(7)操作命令OCW3,节内容提要,ESMM=1,特定屏蔽方式允许 Enable Special Mask Mode,P=1, poll 查询中断(轮询),RR=1,读寄存器选择有效 Read Reg,特定屏蔽方式(开放低级中断),查询式中断

21、,读寄存器,特定屏蔽方式,返回,自动清是清优先级最高的,如不指定则会自动清IR3在ISR中的标记。,查询式中断,不需要接收中断请求,CPU查询8259A,发查询命令(P=1的OCW3)后读查询字(A0=0),再根据查询字内容确定中断源,查询字格式,I=1时,W2W1W0是当前有请求的优先级最高的中断级编码,必须送,但可取任意值,返回,读寄存器,读IMR:直接对A0=1端口进行读 读IRR、ISR:先选择(用RR=1的OCW3),再读,初始为IRR,读IMR IN AL,21H,读IRR MOV AL,0AH OUT 20H,AL IN AL,20H 读ISR MOV AL,0BH OUT 20

22、H,AL IN AL,20H,返回,本节内容,8259A编程命令的使用 8259A初始化编程,5. 4 微机中8259A应用,章内容提要,1. 8259A编程命令的使用,ICW:初始化时,按顺序接收24个,OCW:工作过程中,动态控制,节内容提要,章内容提要,2. 8259A初始化编程,早期PC机单片系统,286以上PC机双片级联系统,日时钟,串口2,串口1,硬盘,软盘,打印机,端口地址:20H、21H;边沿触发;完全嵌套; 固定优先级;非缓冲;中断类型号:08H0FH,章内容提要,节内容提要,INTM00EQU 020H;8259A端口0 INTM01EQU021H;8259A端口1 MOV

23、AL, 00010011B;ICW1:边沿触发,要ICW4; ;单片方式,不要ICW3。 OUTINTA00, AL MOVAL, 00001000B;ICW2:设置中断向量,起始的 ;中断向量为08H。 OUTINTA01, AL MOVAL, 00000001B;ICW4:非缓冲,全嵌套,非自 ;动中断结束(EOI)。 OUTINTA01, AL ,章内容提要,节内容提要,286以上PC机双片级联系统,从片连在主片的IR2上;主从片级联信号互连 端口地址,主片:20H、21H;从片:0A0H、0A1H 边沿触发;完全嵌套; 固定优先级;非缓冲;中断类型号, 主片:08H0FH; 从片:70

24、H77H,初始化编程,节内容提要,双片级联系统初始化编程,初始化编程(主),初始化编程(从),章内容提要,节内容提要,INTA00EQU 020H;主8259A端口0 INTA01EQU021H;主8259A端口1 MOVAL, 00010001B;ICW1:边沿触发,要ICW4;级联方式,要ICW3。 OUTINTA00, AL JMPSHORT $+2;I/O端口延时 MOVAL, 00001000B;ICW2:设置主片的中断向量,起始的中断向量为08H OUTINTA01, AL JMPSHORT $+2 MOVAL, 00000100B;ICW3:表示从8259A的INT输出是连接到主

25、片的IR2。 OUTINTA01, AL JMPSHORT $+2 MOVAL, 00000001B;ICW4:非总线缓冲,全嵌套,非自动中断结束(EOI) OUTINTA01, AL JMPSHORT $+2 ,章内容提要,对主片8259A的初始化,节内容提要,INTB00EQU 0A0H;从8259A端口0 INTB01EQU0A1H;从8259A端口1 MOVAL, 00010001B;ICW1边沿触发,要ICW4;级联方式,要ICW3。 OUTINTB00, AL JMPSHORT $+2 MOVAL, 01110000B;ICW2:设置从片的中断向量,起始的中断向量为70H OUTI

26、NTB01, AL JMPSHORT $+2 MOVAL, 00000010B;ICW3:设置从片的识别标志,指定对应主片的IR2。 OUTINTB01, AL JMPSHORT $+2 MOVAL, 00000001B;ICW4:非总线缓冲,全嵌套,非自动中断结束。 OUTINTB01, AL JMPSHORT $+2 ,对从片8259A的初始化,章内容提要,节内容提要,作业: 112页2、 5、6、12 补充: 1、响应外部中断IRQ7 时,执行中断服务程序IRQ7,显示字符7(可以省略),执行10次中断后退出。 要求:需要初始化8259,单片,需要ICE4,功能号从08H开始,,节内容提

27、要,主程序开始段: STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE START: PUSH DS MOV AX,0000H MOV DS,AX ;设置IRQ7向量表 CLI ;关中断 POP DS ( );三条指令,开7 号中断 MOV CX,000AH ;设置中断次数10次,节内容提要,A1:CMP CX,0000H JNZ A2 IN AL,21H OR AL,80H OUT 21H,AL STI HLT A2:STI JMP A1 ;中断服务程序如下(显示7程序段): IRQ7:MOV AX,0137H ;INT10H功能 AH=01H INT 10H ;AL=带显示字符ASCII编 MOV AX,0120H INT 10H ( ) ;需要大家写的清ISR指令2条 CODE ENDS END START,节内容提要,2、执行住程序显示“main”,若有中断请求,则显示对应中断号码“6”或“7”,低级中断可以被高级中断打断(IRQ6IRQ7),节内容提要,主程序开始段 STACK SEGMENT STACK DW 64 DUP(

温馨提示

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

评论

0/150

提交评论