《微机原理与应用教学资料》第七章-中断(课件)_第1页
《微机原理与应用教学资料》第七章-中断(课件)_第2页
《微机原理与应用教学资料》第七章-中断(课件)_第3页
《微机原理与应用教学资料》第七章-中断(课件)_第4页
《微机原理与应用教学资料》第七章-中断(课件)_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与应用教学资料第七章-中断(课件)微机原理与应用教学资料第七章-中断(课件)27-1 概述实时操作 外设 CPU, 再CPU 外设例:外设键盘,原为空闲状态,现开始工作,CPU如何知道键盘何时工作呢?两种方法:a.每隔一段时间采样b.中断请求 显然,中断请求的方法较合理中断定义:当有外部数据输入或内部异常时,发送请求给CPU,CPU暂时停止正在运行的程序,处理中断结束后,返回继续运行先前的程序。 两个最重要的特点:可返回性,现场保护发送请求控制信号断点保护电气学院学习部资料库47-1 概述实时操作 外设 31、中断源:引起程序中断的事件,内部中断、外部中断2、中断响应:对外部中断而言,

2、INTA对INTR的响应3、中断向量,中断向量表 中断向量: 中断服务子程序的入口地址(逻辑地址)中断类型码:中断向量的编号。0-255,与中断向量是一一对应的 中断向量表:内存中开出的一定区域,用来存储中断向量一、中断概念CS :IP电气学院学习部资料库51、中断源:引起程序中断的事件,内部中断、外部中断一、中断41个中断向量必须用4个存储单元来存储(1个地址CS :IP,分别有16位,而存储单元内容8位,所以需要4个) 地址低高 如右图所示存放CPU在内存中开出1024个字节来存储中断向量,即00000H003FFH (中断向量表,内存中0段,1K字节)IP 低8IP 高8CS 低8CS

3、高8n n+1 n+2 n+3电气学院学习部资料库61个中断向量必须用4个存储单元来存储IP 低8IP 5例1:中断类型号 中断向量地址 中断向量 4 10H13H 32H C8HCBH例2:中断类型号64D=40H,中断操作过程:中断向量地址64D*4=256D=00100H。若中断向量中内容如图 则CS :IP=1312 :1110转向中断服务程序中断返回到INT 40H指令的下一条指令10H11H12H13H00100H 00101H 00102H 00103H内容电气学院学习部资料库7例1:中断类型号 中断向量地址 中断向量6各个外设的中断服务子程序的入口地址集中在一个表(中断向量表)

4、中,CPU响应中断时,根据中断源提供的中断类型号 i, i4在中断向量表查找对应的中断服务子程序 i 的入口地址,内容装入CS、IP,转而执行中断服务子程序 i电气学院学习部资料库8电气学院学习部资料库74、中断优先级:当同时有多个中断请求,先响应优先级高的当一个中断服务程序正在执行时,又一个中断源申请中断:高不睬低,停低转高 中断嵌套5、中断屏蔽中断源硬件屏蔽CPU的IFCPU电气学院学习部资料库94、中断优先级:中断源硬件屏蔽CPU的IFCPU电气学院学8二、中断分类1、内部中断(软件中断)中断指令 INT n n中断类型码 n=0255由CPU的运算错误引起的: a.除法错中断: INT

5、 0(除数为零或商超过范围,自动产生中断) b.溢出中断: INT 4 (当OF=1,且在程序中有INTO指令,产生中断)由调试程序debug设置的中断 a.单步中断:INT 1 (当TF=1,每执行完一条指令,产生中断) b.断点中断:INT 3 (利用G命令设置断点,当程序执行到断点,产生中断)电气学院学习部资料库10二、中断分类电气学院学习部资料库9特点:由指令产生,中断类型码包括在指令中,不需要取中断类型码是可预见性的,是人为预先安排,中断处理子程序与主程序间有数据的传送。而硬件中断,两者之间则是相互独立电气学院学习部资料库11特点:电气学院学习部资料库102、外部中断(硬件中断)不可

6、屏蔽中断NMI a. 上升沿触发 b. CPU必须予以响应,不能用IF屏蔽 c. INT 2,中断类型码为2, 中断向量固定存放于00008H 0000BH中 d. 用于发生重大故障时申请中断可屏蔽中断INTR a. 电平触发 b. 是否响应,与IF有关 c. 中断类型号由硬件连线决定 d.一般事件申请中断电气学院学习部资料库122、外部中断(硬件中断)电气学院学习部资料库11CPU内部规定的优先级别: 内部中断(除法错,溢出,INT n)NMIINTRTF单步中断 高 低电气学院学习部资料库13CPU内部规定的优先级别:电气学院学习部资料库127-2 中断处理过程一、CPU响应中断的过程参见

7、课本P268 流程图CPU自动完成的工作STEP 1STEP 2STEP 3STEP 4STEP 5STEP 6STEP 7握手信号 取中断类型码FLAGS入栈清除IF 、TFCS入栈IP入栈中断向量偏移地址装入IP中断向量段地址装入CSINTR才有CS、IP为被中断程序的下一条指令的地址电气学院学习部资料库147-2 中断处理过程一、CPU响应中断的过程STEP 113内部中断、NMI中断、单步中断,均无须取中断类型码。 事先由系统约定好了断点保护(可返回)由CPU自动完成;现场保护由编程完成 INT转入中断子程序和CALL调用子程序比较,两者不同处:多了标志(FLAGS)入栈 CPU自动关

8、中断。若想在中断响应过程中,允许中断嵌套,必须在子程序中开中断(STI)电气学院学习部资料库15内部中断、NMI中断、单步中断,均无须取中断类型码。电14二、中断处理子程序开中断:响应中断时,CPU已自动关中断,为允许中断嵌套,需重开中断关中断:恢复现场时不允许被中断执行IRET指令:从堆栈中依次弹出程序断点,送到IP和CS寄存器中弹出PSW的内容(恢复标志、开中断);按CS:IP的值使CPU返回断点,继续执行原来被中断的程序。保护中断现场PUSH 开中断 中断处理具体内容关中断恢复中断现场POP中断返回指令IRET电气学院学习部资料库16二、中断处理子程序保护中断现场PUSH 开中断 中断处

9、理151、 中断类型码的获取除法错、单步、NMI、断点中断、溢出:由CPU自动提供,分别为04软中断指令 INT n : n中断类型号,由指令提供外部中断INTR :中断类型号由可编程控制器8259A获得2、 中断向量的设置预置:AL=中断类型号 DS:DX=中断服务程序入口地址 AH=25H执行:INT 21H 三、中断向量电气学院学习部资料库171、 中断类型码的获取三、中断向量电气学院学习部资料库16四、中断时序(对可屏蔽中断而言)INTRINTACPU AD0AD7INTINTA8259D0D7 INTAT1 T2 T3T4T1 T2T3第一个INTA周期T4中断类型号nD0D7电气学

10、院学习部资料库18四、中断时序(对可屏蔽中断而言)INTRINTINTAT177-3 中断优先级和中断嵌套一、可屏蔽中断INTR优先级的设定软件查询:在中断处理子程序中安排查询,查询程序的次序,决定了优先级的高低。见后页 最先查询的优先级最高简单硬件:菊花链法,越靠近CPU的优先级越高。 图7-8专用硬件:8259A,可编程的电气学院学习部资料库197-3 中断优先级和中断嵌套一、可屏蔽中断INTR优先级18查询方式INTR0中断程序输入状态D0=1?D1=1?INTR1中断程序INTR0INTR1INTRn INTR0CS+ INTR CPU D0 D1INTR174LS244电气学院学习部

11、资料库20查询方式INTR0中断程序输入状态D0=1?D1=1?I19菊花链电路+INTAINTR中断回答中断请求电气学院学习部资料库21菊花链电路+INTAINTR中断回答中断请求电气学院学20二、中断嵌套 图7-10同时申请中断时,响应高优先级的,正在执行中断时,高不睬低,停低转高中断程序在保护现场后,须开中断,才能实现嵌套。中断服务结束后,须用EOI指令清除8259A中ISR的对应位,使低级中断申请得以响应,然后紧接着须有IRET,返回断点电气学院学习部资料库22二、中断嵌套 图7-10电气学院学习部资料库217-4 中断优先级控制器8259A8259A特点:一片8259A可管理8个中断

12、源,通过级连,可用9片组成64级主从式中断管理系统。 可编程,使用灵活每一个中断可通过编程单独屏蔽或允许中断可提供中断类型号给CPU电气学院学习部资料库237-4 中断优先级控制器8259A8259A特点:电气22一、8259A引腿信号1、CS :片选。通过译码电路与CPU高位地址总线相连,即与译码电路的输出端相连2、A0:片内选址。连CPU低位地址线,用于选择8259A的两个端口3、RD、WR:连CPU的RD、WR (最小模式) 连8288总线控制器(最大模式)4、D7D0:数据总线5、INT:连CPU的INTR端,向CPU发出中断请求信号电气学院学习部资料库24一、8259A引腿信号电气学

13、院学习部资料库236、INTA :连CPU的INTA(最小模式), CPU给8259A的中断响应信号,两个负脉冲 响应中断 读取中断类型号 连8288总线控制器(最大模式)7、IR7-IR0: 连外设的中断请求信号线, 中断级联时,连从片INT端8、CAS2CAS0 与级联有关 SP/EN 级联: CAS2CAS0 主片:输出 从片:输入 SP/EN 主片:SP=1 从片:SP=0 单片8259A时,接高电平电气学院学习部资料库256、INTA :连CPU的INTA(最小模式),电气学院24二、8259A编程结构及工作原理数据总线缓冲器:写入控制字,读出8259A状态,送出中断类型号,接D0-

14、D7 请求IRR:锁存外部中断请求信号IR0IR7,有中断请求时,对应位置1,中断请求被响应时,对应位复位屏蔽IMR:设置是否屏蔽IRR中相应位的中断请求,置1则屏蔽优先级判别PR:管理、识别中断源的优先级别。完全嵌套方式下,IR0最高中断服务寄存器ISR:存放正在处理中的所有中断请求信号。中断嵌套时,多位被置1,为以后的中断优先级裁决提供依据 IRR IMR对其进行过滤 PR比较优先级 ISR外设中断请求电气学院学习部资料库26二、8259A编程结构及工作原理外设中断请求电气学院学习25数据 缓冲器读/写 控制 电路级联 缓冲器/比较器中断服务寄存器ISR优先级 裁决器 PR中断请求寄存器I

15、RR控 制 电 路中 断 屏 蔽 寄 存 器 IMR INTD7D0A0CAS0CAS1CAS2IR08259A内部总线INTACERDWRIR1IR6IR7SP/EN电气学院学习部资料库27读/写 控制 电路级联 缓冲器/比较器控 制 26控制电路控制全过程:根据IRR的置位情况和IMR的设置情况,通过PR判定优先级,选出需处理的中断请求信号,送入ISR向CPU发送INT中断申请 INTR接收CPU发出的第一个响应INTA负脉冲,ISR相应位置1,IRR相应位清0 INTA第二个负脉冲时,向CPU送出中断类型码,使CPU转入中断程序,最后将ISR相应位清0电气学院学习部资料库28控制电路控制

16、全过程:电气学院学习部资料库277-5 8259A的编程方法两类命令字:初始化命令字ICW 操作命令字OCW初始化命令字ICW1ICW4: 由初始化程序设置的 初始化命令字一经设定,在系统工作过程中将不再改变 初始化命令字必须顺序填写 ICW1、ICW2必须预置,ICW3、ICW4不一定,是否设置体现在ICW1电气学院学习部资料库297-5 8259A的编程方法两类命令字:初始化命令字IC28操作命令字OCW1OCW3:由应用程序设定,用来对中断处理过程进行控制在系统运行过程中,操作命令字可以重新设置设置OCW,次序上没有严格要求 (OCW2命令字定义中断方式时,通常放在中断服务子程序中)电气

17、学院学习部资料库30操作命令字OCW1OCW3:电气学院学习部资料库29一、初始化命令字ICWICW1芯片控制初始化命令字 A0 D7 D0标志位1:电平触发 0:上升沿触发 1:单级使用 0:级联 1:需要设置ICW4 0:不需要设置ICW4 IC4SNGL0LTIM10电气学院学习部资料库31一、初始化命令字ICWICW1芯片控制初始化命令字标30A0:决定写入命令字的端口地址A0=0,表示ICW1必须写入8259A的低地址端口中例1:系统中8259A端口地址为20H、21H,工作在单片方式,电平触发,要求设置ICW4解:初始化ICW1的指令为: MOV AL ,1BH OUT 20H ,

18、AL00011011B电气学院学习部资料库32A0:决定写入命令字的端口地址00011011B电气学院31ICW2设置中断类型号初始化命令字 A0 D7 D0 中断类型的高5位 作用:用来设置中断类型号的基值,即IR0端对应的中断类型号例2:若T7T3=00001,即IR0的类型号为08H, IR0IR7:08H0FH 则初始化ICW2的指令为: MOV AL ,08H OUT 21H ,AL000T3T4T5T6T71电气学院学习部资料库33ICW2设置中断类型号初始化命令字000T3T4T532主片 Si= 0:表示IRi端上未接有8259A从片 1:表示IRi端上接有8259A从片从片

19、ID2ID0=000111 表示从片接在主片的哪个IRi端1S0S1S2S3S4S5S6S7ICW3标识主片/从片初始化命令字 (当ICW1中SNGL=0时才设置)ID0ID1ID2000001电气学院学习部资料库34主片1S0S1S2S3S4S5S6S7ICW3标识主33A0 D7 D4 D3 D2 D1 D01:8086/8088配置 0:8080/8085 1:自动EOI方式0:非自动EOI方式 0:非缓冲方式 1:缓冲方式 1:特殊全嵌套工作方式0:完全嵌套工作方式 1ICW4方式控制初始化命令字(当ICW1中IC4=1时才设置)PMAEOIM/SBUFSFNM0 0 0电气学院学习部

20、资料库35A0 D7 D4 D3 34 Mi= 1:屏蔽由IRi引入的中断请求 0:允许 例:系统要求屏蔽IR4、IR7 MOV AL ,10010000B OUT 21H ,ALM0M1M2M3M4M5M6M71二、操作命令字OCW1中断屏蔽操作命令字电气学院学习部资料库36M0M1M2M3M4M5M6M71二、操作命令字OC350000:IR0 001:IR1 111:IR7001:普通EOI方式 011:特殊EOI方式101:普通EOI循环方式111:特殊EOI循环方式 000:自动EOI循环(复位) 100:自动EOI循环(置位) 110:置位优先权命令 010:无效 标志位OCW2

21、优先权循环方式和中断结束方式操作字L0L1L200EOISLR电气学院学习部资料库370000:IR0 001:普通EOI方式 标志位OC36R:(ROTATE) R=1 中断优先级按循环方式SL:指明L2L0是否有效;SL=1,L2L0有效EOI:指定中断结束;EOI=1,用中断命令结束电气学院学习部资料库38R:(ROTATE) R=1 中断优先级按循环方式电气学37OCW3 特殊屏蔽方式和查询方式操作字0X:无效 10:读IRR 11:读ISR 1:查询8259A状态 0:不查询 0X:无效 10:特殊屏蔽方式复位 11:特殊屏蔽方式置位标志位RISRRP10SMMESMM0电气学院学习

22、部资料库39OCW3 特殊屏蔽方式和查询方式操作字0X:无效 38三、优先级设置方式完全嵌套方式 默认特点:中断优先级次序固定。IR0最高,IR7最低中断嵌套时,允许优先处理更高级的中断,禁止同级或低级中断ICW4中,SFNM=0;OCW2中,R.SL=0 0特殊全嵌套工作方式中断优先级次序固定。IR0最高,IR7最低中断嵌套时,允许优先处理更高级或同级的中断ICW4中,SFNM=1;OCW2中,R.SL=0 0专门用于多片8259A级联的系统电气学院学习部资料库40三、优先级设置方式电气学院学习部资料库39优先级自动循环方式优先级次序可以改变,初始次序为IR0最高,IR7最低,但当任何一级中

23、断被处理完后,它的优先级变为最低,将最高优先级赋给原先比它低一级的中断请求例:响应处理完IR3,则优先级次序为IR4、IR5、IR6、IR7、IR0、IR1、IR2、IR3OCW2中,R.SL=1 0适用在多个中断源优先级相等的场合优先级特殊循环方式优先级次序可以改变,初始的优先级次序由程序决定OCW2中,R.SL=1 1电气学院学习部资料库41优先级自动循环方式电气学院学习部资料库40四、中断结束方式(什么时刻使ISR中对应位置“0”,就产生不同的中断结束方式)ICW4,OCW2固定优先级方式 普通EOI结束方式 非自动EOI结束方式 特殊EOI结束方式 自动AEOI结束方式:不执行结束命令

24、循环优先级方式 普通EOI循环方式 非自动EOI循环方式 特殊EOI循环方式 自动EOI循环方式 用中断结束命令使ISR对应位置0电气学院学习部资料库42四、中断结束方式用中断结束命令使ISR对应位置0电气学院41自动EOI结束方式 建议避免使用,以免重复嵌套中断响应后,当8259A收到第二个脉冲后,即自动将ISR中正在服务的相应位置“0”ICW4中AEOI位置“1”普通EOI结束方式一旦中断处理结束,CPU向8259A传送EOI结束命令字(即设置OCW2),EOI结束命令字必须放在中断服务子程序中的返回指令IRET前8259A收到EOI结束命令字后,将ISR中优先级别最高的置“1”位清“0”

25、ICW4中AEOI位置“0”,OCW2中,R、SL、EOI=0 0 1电气学院学习部资料库43自动EOI结束方式 建议避免使用,以免重复嵌套电气42特殊EOI结束方式同8259A收到EOI结束命令后,将ISR中由L2L0指定的相应位清“0”ICW4中AEOI位置“0”;OCW2中 R.SL.EOI=0 1 1自动EOI循环方式同同时自动改变各级中断的优先级别 本级最低优先级 下一级最高优先级OCW2中,R.SL.EOI=1 0 0电气学院学习部资料库44特殊EOI结束方式电气学院学习部资料库43普通EOI循环方式同同,同时自动改变中断优先级别OCW2中,R.SL.EOI=1 0 1特殊EOI循

26、环方式同同OCW2中,R.SL.EOI=1 1 1电气学院学习部资料库45普通EOI循环方式电气学院学习部资料库44例7-10:已知:优先级别IR0最高、IR7最低,IR2、IR5有中断请求信号。普通EOI循环方式原始状态ISR内容ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000100100优先级76543210处理完IR2ISR内容00100000优先级43210765处理完IR5ISR内容00000000优先级10765432电气学院学习部资料库46例7-10:已知:优先级别IR0最高、IR7最低,IR245(1)CLI关中断指令禁止所有的可屏蔽中断 ( 以下两种是对中

27、断请求单独屏蔽)(2)普通屏蔽方式将IMR的某一位置“1”,即可屏蔽对应位的中断请求设置中断屏蔽操作命令字OCW1(3)特殊屏蔽方式希望在中断处理子程序中,对本级中断进行屏蔽,而允许较高或较低优先级的中断进入先设置OCW3中ESMM.SMM=1 1,再设置OCW1,使IMR中本级中断对应位置“1”中断服务子程序结束后,取消特殊屏蔽方式,恢复原先优先级的控制 (设置OCW1,使复位;再设置OCW3中ESMM.SMM=1 0)五、中断源屏蔽方式电气学院学习部资料库47(1)CLI关中断指令五、中断源屏蔽方式电气学院学习部资46例:普通屏蔽方式,IR7、IR5、IR1被屏蔽。若此时IR3正被处理,则

28、IR3及比IR3低的中断申请被屏蔽,只有IR0和IR2的中断源可以产生中断嵌套。低 高IR7 IR0 ISR中断服务00001000IMR中断屏蔽10100010IRR中断请求11111111电气学院学习部资料库48例:普通屏蔽方式,IR7、IR5、IR1被屏蔽。若此时I47(1)边沿触发方式 8259A CPU,第二(2)高电平触发方式 个 负脉冲,读中断类型号 (3)中断查询方式 外设发出中断请求,8259A在ISR中相应位置1 CPU使用软件查询来确定中断源 CPU执行的查询程序应包括如下过程: a、CPU关中断CPUINT8259A IR0外设XDB六、 中断请求引入方式电气学院学习部

29、资料库49(1)边沿触发方式 8259A 48b、CPU 8259A 偶地址 OCW3:c、CPU 8259A 偶地址 查询字: IR= 1 :有外设请求中断 0 :无外设请求中断例:优先级次序为IR3、IR4、IR5、IR1、IR2若有中断请求IR2、IR4,则W2 W1 W0=1 0 0W0W1W2IR0011000W2、W1、W0IRi组成的代码表示当前中断请求的最高优先级电气学院学习部资料库50b、CPU 49七、8259A的中断级联1、8259A与系统总线相连的方式:由初始化命令字ICW4来设置缓冲方式8259A通过总线驱动器和数据总线相连SP/EN 为输出端,与总线驱动器允许端相连

30、 EN=0 控制 8259A CPU EN=1 8259A CPU编程/双向使能缓冲数据电气学院学习部资料库51七、8259A的中断级联1、8259A与系统总线相连的方50非缓冲方式8259A直接与数据总线相连SP/EN为输入端,用来决定本片8259A是主片还是从片 SP =1 主片 SP =0 从片2、CAS0CAS2 指出具体的从片 当主片检测到中断请求来自从片,从主片的CAS0CAS2将级联地址输出到所有从片,只有级联地址与CAS0CAS2相同的从片才能选通电气学院学习部资料库52非缓冲方式电气学院学习部资料库51一、硬件连接 图7-14 1、两级级联:1片主片,2片从片 2、非缓冲方式:无数据总线驱动器 3、CAS0CAS2:主片从片 4、INT: 主:接CPU的控制总线 从:接主片的IRi端 5、SP/EN : 主:输入 SP=1,接Vcc +5V 从:输入

温馨提示

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

评论

0/150

提交评论