《微型计算机原理》课件chapter7 中断.ppt

上传人(卖家):momomo 文档编号:7571424 上传时间:2024-03-19 格式:PPT 页数:79 大小:2MB
下载 相关 举报
《微型计算机原理》课件chapter7 中断.ppt_第1页
第1页 / 共79页
《微型计算机原理》课件chapter7 中断.ppt_第2页
第2页 / 共79页
《微型计算机原理》课件chapter7 中断.ppt_第3页
第3页 / 共79页
《微型计算机原理》课件chapter7 中断.ppt_第4页
第4页 / 共79页
《微型计算机原理》课件chapter7 中断.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

1、2024年年3月月19日日第第1页页本章主要内容本章主要内容中断系统概述中断系统概述13可编程中断控制器可编程中断控制器8259A28086处理器的中断系统处理器的中断系统2024年年3月月19日日第第2页页 在在CPUCPU执行程序的过程中,执行程序的过程中,由于某种事件发生,强迫由于某种事件发生,强迫CPUCPU暂暂停正在执行的程序而转向对该停正在执行的程序而转向对该发生的事件进行处理,当对事发生的事件进行处理,当对事件的处理结束后又能回到原中件的处理结束后又能回到原中止程序,接着中止前的状态,止程序,接着中止前的状态,继续执行原来的程序,这一过继续执行原来的程序,这一过程称为中断。程称为

2、中断。7.1 中断系统概述中断系统概述2024年年3月月19日日第第3页页正在看书正在看书电话铃响电话铃响接电话接电话继续看书继续看书执行程序执行程序事件发生事件发生事件处理事件处理继续执行程序继续执行程序中断处理中断处理中断请求及响应中断请求及响应实际场景实际场景计算机计算机中断返回中断返回7.1 中断系统概述中断系统概述2024年年3月月19日日第第4页页 1 1、实现并行处理:实现并行处理:实现实现CPUCPU与多个与多个外设同时工作,提高外设同时工作,提高CPUCPU利用率。利用率。2 2、实现实时处理:实现实时处理:当外设提出中当外设提出中断请求,断请求,CPUCPU能及时响应。能及

3、时响应。3 3、实现故障处理:实现故障处理:当系统发生故当系统发生故障时可以利用中断功能及时自行处理。障时可以利用中断功能及时自行处理。7.1 中断系统概述中断系统概述2024年年3月月19日日第第5页页1 1、中断源、中断源v 引起引起CPU中断的事件中断的事件中断源。例如:中断源。例如:外设外设请求输入输出数据,报告故障等。请求输入输出数据,报告故障等。事件事件掉电、硬件故障、软件错误、非法操作、定掉电、硬件故障、软件错误、非法操作、定时时间到等。时时间到等。v 中断源分为:内部中断源、外部中断源中断源分为:内部中断源、外部中断源 内部中断:内部中断:CPU内部执行程序时自身产生的中断。内

4、部执行程序时自身产生的中断。外部中断:外部中断:CPU以外的设备、部件产生的中断。以外的设备、部件产生的中断。v 8086/8088的外部中断信号:的外部中断信号:INTR、NMI7.1 中断系统概述中断系统概述2024年年3月月19日日第第6页页NMI:非屏蔽中断:非屏蔽中断INTR:可屏蔽中断:可屏蔽中断不受标志位不受标志位IF的影响,只要的影响,只要CPU在正常地执行程在正常地执行程序时,它就一定会响应序时,它就一定会响应NMI的请求。是上升沿有的请求。是上升沿有效。效。外部中断提出中断申请后,外部中断提出中断申请后,CPU能否响应还要受能否响应还要受到标志位到标志位IF的控制。的控制。

5、IF=1时,时,CPU在一条指令在一条指令执行完后对中断请求作出响应;执行完后对中断请求作出响应;IF=0时则不响应。时则不响应。高电平有效。高电平有效。NMI和和INTR有有什么区别什么区别7.1 中断系统概述中断系统概述2024年年3月月19日日第第7页页(以外部中断为例介绍)(以外部中断为例介绍)n 外设接口(中断源)发出中断请求信号,送到外设接口(中断源)发出中断请求信号,送到CPUCPU的的INTRINTR或或NMINMI引脚;引脚;n 中断请求信号应保持到中断被处理为止;中断请求信号应保持到中断被处理为止;n CPU CPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信

6、号应及时撤销。n 在在8086/80888086/8088系统中,外设的中断要经过系统中,外设的中断要经过 8259A8259A可编程中断控制器可编程中断控制器(PIC)(PIC)的排队判优后的排队判优后 向向CPUCPU发出。发出。7.1 中断系统概述中断系统概述2024年年3月月19日日第第8页页CPUCPU响应可屏蔽中断的条件:响应可屏蔽中断的条件:1 1、一条指令执行结束。、一条指令执行结束。2 2、CPUCPU处于开中断。处于开中断。IF=1IF=1时。时。3 3、没有发生、没有发生RESETRESET、HOLDHOLD、NMINMI。4 4、STISTI、IRETIRET指令执行完

7、、还需再执行一指令执行完、还需再执行一条指令才能响应条指令才能响应INTRINTR请求请求7.1 中断系统概述中断系统概述2024年年3月月19日日第第9页页 断点保护过程由断点保护过程由CPUCPU硬件自动完成,其内容包括:硬件自动完成,其内容包括:标志寄存器压入堆栈进行保护;关中断;将标志寄存器压入堆栈进行保护;关中断;将CSCS和和IPIP的内容压入堆栈加以保护。的内容压入堆栈加以保护。在中断服务程序中可由在中断服务程序中可由软件保护硬件没保护的寄存器的内容。软件保护硬件没保护的寄存器的内容。7.1 中断系统概述中断系统概述2024年年3月月19日日第第10页页E 软件查询。将中断信号从

8、数据总线读软件查询。将中断信号从数据总线读入,用程序进行判别。入,用程序进行判别。E 中断矢量法。将中断源进行编码(中中断矢量法。将中断源进行编码(中断矢量、中断类型号),断矢量、中断类型号),CPUCPU根据编码确根据编码确定中断源。此编码由中断源向定中断源。此编码由中断源向CPUCPU提供。提供。(8086/80888086/8088即采用此种方法)即采用此种方法)7.1 中断系统概述中断系统概述2024年年3月月19日日第第11页页a.软件查询中断源所用的硬件接口软件查询中断源所用的硬件接口b.软件查询中断源流程软件查询中断源流程E 软件查询法软件查询法7.1 中断系统概述中断系统概述2

9、024年年3月月19日日第第12页页中断向量码中断向量码CLKALEINTAD0D7第一个中断响应总线周期第一个中断响应总线周期第二个中断响应总线周期第二个中断响应总线周期T1T2T3T4T1T2T3T4INTR中断响应时序中断响应时序E 中断矢量法判别中断源中断矢量法判别中断源7.1 中断系统概述中断系统概述2024年年3月月19日日第第13页页2.2.中断响应的一般过程中断响应的一般过程以外部中断为例介绍以外部中断为例介绍中断服务程序入口中断服务程序入口现场保护现场保护对中断源服务对中断源服务现场恢复现场恢复开中断开中断STI中断返回中断返回IRET开中断开中断关中断关中断2024年年3月

10、月19日日第第14页页7.1 中断系统概述中断系统概述2024年年3月月19日日第第15页页7.1 中断系统概述中断系统概述2024年年3月月19日日第第16页页 当当CPUCPU响应中断并为该中断服务时,可以被优先级更高响应中断并为该中断服务时,可以被优先级更高的中断源中断,实现中断的嵌套。的中断源中断,实现中断的嵌套。INT4INT1INT4中断服务中断服务INT1中断服务中断服务中中 断断 嵌嵌 套套7.1 中断系统概述中断系统概述2024年年3月月19日日第第17页页 8086(8088)可以处理可以处理256个个不同方式的中断,每个中断对不同方式的中断,每个中断对应一个应一个中断向量

11、码中断向量码,CPU 根据向量码的不同来识别不同的根据向量码的不同来识别不同的中断源。其中中断源。其中,内部中断源内部中断源主要有主要有5种种,包括包括CPU硬件产生的硬件产生的中断(中断类型号为中断(中断类型号为0、1、3和和4),软件中断),软件中断INT n;外外部中断源部中断源有有2种:种:NMI和和INTRn 与中断有关的控制线为:与中断有关的控制线为:NMI、INTR、INTA7.2 8086的中断系统的中断系统2024年年3月月19日日第第18页页n 内部中断内部中断n除法溢出:类型号除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。,商大于目的操作数所能表达的范围时产生

12、。n单步中断:类型号单步中断:类型号1,TF=1时产生(当前指令需执行完)时产生(当前指令需执行完)n断点中断:类型号断点中断:类型号3,这是一个软件中断,即,这是一个软件中断,即INT 3指令。指令。n溢出中断:类型号溢出中断:类型号4,这是一个软件中断,即,这是一个软件中断,即INTO指令。指令。n软件中断:即软件中断:即INT n指令,类型号指令,类型号n(0-255)。n 外部中断外部中断n非屏蔽中断非屏蔽中断NMI:类型号:类型号2,不可用软件屏蔽,不可用软件屏蔽,CPU必须响应它。必须响应它。n可屏蔽中断可屏蔽中断INTR:类型号由:类型号由PIC提供。提供。IF=1时时CPU才能

13、响应。才能响应。内部中断内部中断NMIINTR单步中断单步中断7.2 8086的中断系统的中断系统2024年年3月月19日日第第19页页NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢出中断除法错除法错单步中断单步中断非屏蔽中断请求非屏蔽中断请求中断控中断控制器制器8259APIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断可可屏屏蔽蔽中中断断请请求求n43012可屏蔽中断请求可屏蔽中断请求1 18087中断中断RAM错错I/O通道错通道错NMI7.2 8086的中断系统的中断系统2024年年3月月19日日第第20页页8086/8088 CP

14、U8086/8088 CPU的中断响应过程的中断响应过程 7.2 8086的中断系统的中断系统2024年年3月月19日日第第21页页8086/8088 CPU8086/8088 CPU的中断响应过程的中断响应过程 7.2 8086的中断系统的中断系统2024年年3月月19日日第第22页页7.2 8086的中断系统的中断系统2024年年3月月19日日第第23页页中断向量码中断向量码CLKALEINTAD0D7第一个中断响应总线周期第一个中断响应总线周期 第二个中断响应总线周期第二个中断响应总线周期T1T2T3T4T1T2T3T4图图 INTR中断响应时序中断响应时序7.2 8086的中断系统的中

15、断系统2024年年3月月19日日第第24页页8086(88)的中断响应过程的中断响应过程取指令取指令执行当前指令执行当前指令获取中断向量码获取中断向量码FLAG压栈压栈IF=0,TF=0CS、IP压栈压栈向量表地址向量表地址=向量码向量码4表地址取一字表地址取一字IP表地址表地址+2取一字取一字CS执行完否执行完否内部中断内部中断NMI?INTR?TF=1?IF=1NNNNYNNYYYYY转向中断服务程序入口转向中断服务程序入口2024年年3月月19日日第第25页页 80888088在内存开始的在内存开始的1K1K字节建立了一个中断向量表,在该字节建立了一个中断向量表,在该表中可提供表中可提供

16、 256 256 个中断源中断服务程序的入口地址。无论个中断源中断服务程序的入口地址。无论内部中断还是外部中断,对应每一个中断源都有它相应的内部中断还是外部中断,对应每一个中断源都有它相应的中断向量码,中断向量码为一个字节,可对应中断向量码,中断向量码为一个字节,可对应256256个不同的个不同的中断源,利用该中断向量表,可将不同的中断源与其相对中断源,利用该中断向量表,可将不同的中断源与其相对应的中断服务程序入口联系在一起。应的中断服务程序入口联系在一起。CS基地址基地址 IP 偏移量偏移量CS基地址基地址 IP 偏移量偏移量CS基地址基地址 IP 偏移量偏移量中断向量码中断向量码0除法除法

17、错错中断向量码中断向量码1单步单步中断中断中断向量码中断向量码2NMI00000H00004H00008H0000CH003FFH供用户使用供用户使用保留保留0007FH00080H中断向量表中断向量表的结构的结构7.2 8086的中断系统的中断系统2024年年3月月19日日第第26页页如何获得某一中断源的中断服如何获得某一中断源的中断服务程序入口地址?务程序入口地址?中断向量码中断向量码4=中断向量表中断向量表的地址的地址中断服务程序入口地址偏移量中断服务程序入口地址偏移量(16位)和段基地址(位)和段基地址(16位)位)段基地址段基地址CS左移左移4位偏移量位偏移量IPCS基地址基地址 I

18、P 偏移量偏移量CS基地址基地址 IP 偏移量偏移量CS基地址基地址 IP 偏移量偏移量中断向量码中断向量码0除除法错法错中断向量码中断向量码1单单步中断步中断中断向量码中断向量码2NMI000H004H008H00CH3FFH供用户使用供用户使用保留保留07FH080H7.2 8086的中断系统的中断系统2024年年3月月19日日第第27页页 中断向量表的初始化中断向量表的初始化v初始化初始化将中断服将中断服务程序的入口地址放务程序的入口地址放入向量表入向量表 例:中断类型码为例:中断类型码为4848H H的的中断处理子程序的名字中断处理子程序的名字为为int48hint48h,编写程序段,

19、编写程序段将该中断处理子程序的将该中断处理子程序的入口地址放入向量表。入口地址放入向量表。CLI MOV AX,0 MOV DS,AX MOV SI,48H*4 MOV AX,OFFSET int48h MOV WORD PTRSI,AX MOV AX,SEG int48h MOV WORD PTRSI+2,AX STI CLI PUSH DS MOV AL,48H MOV AX,SEG int48h MOV DS,AX MOV DX,OFFSET int48h MOV AH,25H INT 21H POP DS STI7.2 8086的中断系统的中断系统2024年年3月月19日日第第28页页

20、1.1.一片一片82598259能管理能管理8 8级中断,在不增加任何其他电路的级中断,在不增加任何其他电路的情况下,可用情况下,可用9 9片片82598259级联,构成级联,构成6464级主从式中断系统级主从式中断系统。2.82592.8259是可编程的,有多种工作方式,使用灵活。是可编程的,有多种工作方式,使用灵活。3.3.根据中断源向根据中断源向x86x86提供不同中断类型码。提供不同中断类型码。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第29页页引脚及引脚及内内部部结构结构1工作方式工作方式2编编程程(控制字、命令字)控制字、命令字)3应应用用举举例

21、例47.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第30页页12345678910111213141516171819202122232425262728地地+5VA0D0D1D2D3D4D5D6D7CSIR7WR8259RDSP/ENIR6IR5IR4IR3IR2IR1IR0CAS2CAS1CAS0INTINTA7.3.7.3.1.1.引脚及内部结构引脚及内部结构D0D7 双向数据线双向数据线 与系统总线的数据线相连接。与系统总线的数据线相连接。IR0IR7 中断请求输入端中断请求输入端 IR0优先级最高。优先级最高。RD、WR 读、写控制信号读、写控制信号

22、与系统总线的读写控制信号相与系统总线的读写控制信号相连。连。CS 片选信号片选信号 在系统中常接地址译码器。在系统中常接地址译码器。INT 8259的中断请求输出信号的中断请求输出信号(8259给给CPU)INTA 中断响应输入信号(中断响应输入信号(CPU给给8259)7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第31页页12345678910111213141516171819202122232425262728地地+5VA0D0D1D2D3D4D5D6D7CSIR7WR8259RDSP/ENIR6IR5IR4IR3IR2IR1IR0CAS2CAS1CAS

23、0INTINTA7.3.7.3.1.1.引脚及内部结构引脚及内部结构7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第32页页INTCAS0CAS1CAS2IR0IR1IR7SP/ENINTAINTAINTCAS0CAS1CAS2IR0IR1IR7SP/ENINTAINTCAS0CAS1CAS2IR0IR1IR7SP/ENVCC中断中断请求请求输入输入中断中断请求请求输入输入8259主主8259从从18259从从8l 8259级联工作框图级联工作框图7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第33页页级联级联缓冲器缓冲器比较器比

24、较器中断请中断请求寄存求寄存器器(IRR)IR0IR7优先优先级分级分析器析器中断服中断服务寄存务寄存器器(ISR)控控 制制 逻逻 辑辑INTAINT中断屏蔽寄存器(中断屏蔽寄存器(IMR)数据总数据总线缓冲线缓冲器器读写读写逻辑逻辑D7D0RDWRA0CSCAS0CAS1CAS2SP/ENl 8259的内部框图的内部框图中断请求寄存器中断请求寄存器(IRRIRR)其内部保)其内部保存着所有外部中存着所有外部中断源断源IR0IR7IR0IR7的的中断请求状态。中断请求状态。任何一个中断源任何一个中断源发生请求,其相发生请求,其相应位置应位置1 1;响应后;响应后即复位。即复位。中断服务寄存器

25、中断服务寄存器(ISRISR)用来保用来保存所有正在服务存所有正在服务的中断源。的中断源。中断屏蔽寄存器中断屏蔽寄存器(IMRIMR)用来保用来保存被屏蔽的所有存被屏蔽的所有中断源。若中断源。若IMRIMR中中某一位为某一位为1 1,则表,则表明该位所对应的明该位所对应的中断请求不能进中断请求不能进入优先级比较电入优先级比较电路。路。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第34页页7.3.7.3.2.82592.8259的工作方式的工作方式中断优先方式与中断嵌套中断优先方式与中断嵌套1中断结束方式中断结束方式2连接系统总线的方式连接系统总线的方式3中断屏

26、蔽方式中断屏蔽方式4中断触发方式中断触发方式5级联工作方式级联工作方式62024年年3月月19日日第第35页页7.3.7.3.2 82592 8259的工作方式的工作方式 7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第36页页7.3.7.3.2 82592 8259的工作方式的工作方式 p 所有中断请求所有中断请求IRiIRi的中断优先级固的中断优先级固定不变定不变p 优先级排列顺序可编程改变优先级排列顺序可编程改变p 加电后加电后8259A8259A的默认方式,默认优的默认方式,默认优先级顺序从高到低为先级顺序从高到低为IR0IR0IR7IR7IR7IR6I

27、R5IR4IR3IR2IR1IR07654321032107654最低级最低级最高级最高级最高级最高级最低级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第37页页7.3.7.3.2 82592 8259的工作方式的工作方式 IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最低级最高级最高级最高级最高级最低级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前

28、0101000001000000IR4的服务结束以后的服务结束以后ISRi7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第38页页7.3.27.3.2 8259 8259的工作方式的工作方式 在中断处理过程中允许被更高在中断处理过程中允许被更高优先级的事件所中断称为中断优先级的事件所中断称为中断嵌套。嵌套。w 普通全嵌套方式(默认方式)普通全嵌套方式(默认方式)一中断正被处理时,只有一中断正被处理时,只有更更高优先级高优先级的事件可以打断当前的的事件可以打断当前的中断处理过程而被服务。中断处理过程而被服务。w 特殊全嵌套方式特殊全嵌套方式 一中断正被处理时,允许

29、一中断正被处理时,允许同同级或更高优先级级或更高优先级的事件可以打断的事件可以打断当前的中断处理过程而被服务。当前的中断处理过程而被服务。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第39页页D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:从片的从片的INT被主片封被主片封锁,故更锁,故更高高级别的级别的IR0-IR2中断也无法中断也无法得到响应得到响应特殊嵌套方式:特殊嵌套方式:因主片不封锁从片的因主片不封锁从片的INT,故级别高的,故级别高的IR0-IR2中断可以得到响应。中断可以得到响应。(但但IR3-IR7

30、仍被本从仍被本从片封锁片封锁)C.假定假定IR3发生中发生中断断,并获得服务并获得服务一般嵌套方式:一般嵌套方式:IR4的中断被服务的中断被服务时,这些中断将时,这些中断将被封锁。被封锁。B.特殊嵌套方式:特殊嵌套方式:IR4的中断被服的中断被服务 时,只 封 锁务 时,只 封 锁IR5-IR7。A.INTE.从从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7n一般全嵌套方式与特殊全嵌套方式的区别一般全嵌套方式与特殊全嵌套方式的区别 去去CPU2024年年3月月19日日第第40页页7.3.7.3.2 82592 8259的工作方式的工作方式什么是什么是8259A的中断结束?的

31、中断结束?8259A利用中断服务寄存器利用中断服务寄存器ISR判断:判断:n 某位为某位为1,表示正在进行中断服务;,表示正在进行中断服务;n 该位为该位为0,就是该中断结束服务。,就是该中断结束服务。这里说明如何使这里说明如何使ISR某位为某位为0,不反映,不反映CPU的工作状态,的工作状态,使使ISRi=0是通过向是通过向8259A发出发出中断结束命令(中断结束命令(EOI命令)命令)实现的。实现的。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第41页页7.3.7.3.2 82592 8259的工作方式的工作方式 7.3 可编程中断控制器可编程中断控制器8

32、259A2024年年3月月19日日第第42页页w 中断自动结束方式中断自动结束方式(用于单片(用于单片8259系统,且无中断嵌套的情况下。由系统,且无中断嵌套的情况下。由ICW4设置):此方式下,系统一进入中断过程就自动将设置):此方式下,系统一进入中断过程就自动将ISR中的对应位中的对应位清清0。w 一般中断结束方式一般中断结束方式(用于全嵌套方式下):在中断服务程序中(用于全嵌套方式下):在中断服务程序中CPU发发送中断结束命令送中断结束命令EOI(OCW2)后,)后,8259会将会将ISR中正在服务的中断源的中正在服务的中断源的ISi复位。复位。w 特殊中断结束方式特殊中断结束方式(用于

33、非全嵌套方式下):非全嵌套方式下,无法(用于非全嵌套方式下):非全嵌套方式下,无法用用ISR内容确定哪一位为最后响应并正在处理的中断,此时可用特殊中断内容确定哪一位为最后响应并正在处理的中断,此时可用特殊中断结束命令结束命令SEOI(OCW2)指定)指定ISR中要复位的中要复位的IS位。位。7.3.7.3.2 82592 8259的工作方式的工作方式7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第43页页7.3.2 8259的工作方式的工作方式 8259通过总线驱动器和数据通过总线驱动器和数据总线相连。总线相连。8259在缓冲方式在缓冲方式下向外输出状态字或中断

34、向下向外输出状态字或中断向量码时,从量码时,从SP/EN端输出一端输出一个低电平信号,作为总线驱个低电平信号,作为总线驱动器的启动信号。动器的启动信号。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第44页页7.3.2 8259的工作方式的工作方式 8259数据线直接与系统数据总数据线直接与系统数据总线相连。此方式下,主片线相连。此方式下,主片8259的的SP/EN端接高电平,从片端接高电平,从片8259的的SP/EN端接低电平。端接低电平。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第45页页7.3.2 8259的工作方式的工

35、作方式 利用利用IMR屏蔽字使其中某些屏蔽字使其中某些位为位为1,来屏蔽相应的中断请,来屏蔽相应的中断请求输入信号。但此时不改变求输入信号。但此时不改变ISR的内容。的内容。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第46页页7.3.2 8259的工作方式的工作方式 7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第47页页7.3.2 8259的工作方式的工作方式 此方式下,当该中断得到响应后,必此方式下,当该中断得到响应后,必须及时撤除有效高电平信号,以免引须及时撤除有效高电平信号,以免引起第二次中断。起第二次中断。7.3 可

36、编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第48页页v 单片8259A可支持8个中断源;v 采用多片8259A级连,可最多支持64个中断源。n片8259A可支持7n+1个中断源;v 级连时只能有一片8259A为主片,其余的均为从属片;v 涉及到的8259A引脚包括:CAS0-CAS2 SP#/EN#IRi INT7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第49页页7.3.37.3.3 8259 8259的编程的编程 通过写通过写初始化命令字(初始化命令字(ICW1ICW4)使使8259处于某种指处于某种指定的工作方式,初始化编程应在

37、器件使用前完成。写入后一定的工作方式,初始化编程应在器件使用前完成。写入后一般不再改变。般不再改变。通过写通过写操作命令字(操作命令字(OCW1OCW3)使处于初始状态的使处于初始状态的8259 去执行具体的某种操作方式,去执行具体的某种操作方式,OCW可在应用程序中随可在应用程序中随时写入,以此实现对中断处理过程的动态控制。时写入,以此实现对中断处理过程的动态控制。(2)操作方式编程:)操作方式编程:(1)初始化编程)初始化编程:(初始化程序)初始化程序)7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第50页页 A0A0用以区分用以区分8259A8259A芯片

38、中的不同寄存器组。芯片中的不同寄存器组。由于由于8259A8259A内部寄存器的寻址只用到一位地址信号,所以一片内部寄存器的寻址只用到一位地址信号,所以一片8259A8259A芯片只占用系统中的两个端口地址,即偶地址和奇地址,芯片只占用系统中的两个端口地址,即偶地址和奇地址,且规定偶地址小于奇地址。且规定偶地址小于奇地址。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第51页页w 初始化编程流程初始化编程流程 初始化编程必须按流程进行,初始化编程必须按流程进行,ICW1ICW4写入次序不能乱。写入次序不能乱。ICW1写入偶地址端口写入偶地址端口 (A0=0)。)

39、。ICW2ICW4依次写入奇地址端口依次写入奇地址端口(A0=1)。)。写写ICW1写写ICW2写写ICW3写写ICW4级连?级连?需要需要ICW4?NN7.3.37.3.3 8259 8259的编程的编程7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第52页页(1)写初始化命令字)写初始化命令字 ICW1 在在A0=0,D4=1时为写入时为写入IC4SALTIM1用于用于8080/85模式下模式下1:需:需ICW40:不需:不需ICW40:多片级联:多片级联1:单片:单片8259用于用于8080/85下,下,可为可为1或或01电平触发电平触发0边沿触发边沿触发

40、0A0D0D1D2D3D4D5D6D77.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第53页页 ICW2 在在8086/88模式下,可提供不同中断源模式下,可提供不同中断源 的中断向量码的中断向量码1A0D0D1D2D3D4D5D6D7自动设定为自动设定为IR0IR7的类型编码的类型编码由用户软件定义,由用户软件定义,编程设置位编程设置位若若ICW2为为25H,则,则IR0IR7为:为:20H、21H、22H、23H、24H、25H、26H、27H(1)写初始化命令字)写初始化命令字7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第

41、54页页(1)写初始化命令字)写初始化命令字 ICW3 只在级联方式时使用只在级联方式时使用IR7IR6IR5IR4IR3IR2IR1IR01A0D0D1D2D3D4D5D6D71:相应的:相应的IRi接从接从82590:相应的:相应的IRi不接从不接从8259 在在主控主控8259中,中,ICW3的每一位对应一个的每一位对应一个IR输入。输入。例:若例:若ICW3=F0H(1111 0000B),则),则IR7IR4上分别接上分别接了从了从8259,IR3IR0上没接。上没接。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第55页页(1)写初始化命令字)写初始

42、化命令字00000D2D1D01A0D0D1D2D3D4D5D6D7 在在从从8259中,中,ICW3的低三位表示该从的低三位表示该从8259接主控接主控8259的的IR编号。编号。例:若某从例:若某从8259的的INT接在主片的接在主片的IR5引脚,则引脚,则D2D1D0=101。此三位的编码对应从属此三位的编码对应从属8259接主控片的接主控片的IR编号编号 在中断响应时,主片通过在中断响应时,主片通过 CAS0CAS0CAS2 CAS2 送出被允许中断的从片标识送出被允许中断的从片标识码,各从片用自己的码,各从片用自己的 ICW3 ICW3 和和 CAS0CAS0CAS2 CAS2 比较

43、,二者一致的从片比较,二者一致的从片被确定为当前的中断源,才可发送自己的中断矢量。被确定为当前的中断源,才可发送自己的中断矢量。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第56页页 ICW4 方式控制命令字,方式控制命令字,ICW1的的D0=1时才需写入。时才需写入。000SFNMBUFM/SAEOIPM1:8086/880:8080/850:非自动:非自动 结束结束1:自动:自动EOI1A0D0D1D2D3D4D5D6D7特殊全嵌套方式:特殊全嵌套方式:1一般嵌套方式:一般嵌套方式:00:非缓冲方式:非缓冲方式10:缓冲方式:缓冲方式/从片从片11:缓冲方

44、式:缓冲方式/主片主片(1)写初始化命令字)写初始化命令字7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第57页页(2)写操作命令字)写操作命令字 OCW1 中断屏蔽字中断屏蔽字 用于设置对用于设置对8259中断的屏蔽操作,其中断的屏蔽操作,其每一位控制一根中断请求输入线。每一位控制一根中断请求输入线。M7M6M5M4M3M2M1M01A0D0D1D2D3D4D5D6D71:屏蔽:屏蔽0:允许:允许 若若OCW1=06H(0000 0110B),则),则IR2和和IR1上的请求被屏蔽。上的请求被屏蔽。在初始化开始时,默认屏蔽字各位为在初始化开始时,默认屏蔽字各位

45、为0。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第58页页(2)写操作命令字)写操作命令字OCW2 设置优先级的循环方式及中断结束方式设置优先级的循环方式及中断结束方式RSLEOI00L2L1L00A0D0D1D2D3D4D5D6D7中断等级编码中断等级编码001011一般一般EOI特殊特殊EOI中断结束命令中断结束命令101100000111110010循环优先级的一般循环优先级的一般EOI命令命令在自动在自动EOI下置循环优先级下置循环优先级在自动在自动EOI下清循环优先级下清循环优先级循环优先级的特殊循环优先级的特殊EOI命令命令设置优先级设置优先级无

46、效无效自动循环自动循环特殊循环特殊循环7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第59页页OCW3 可设置查询方式、特殊屏蔽方式以及读可设置查询方式、特殊屏蔽方式以及读8259 内部寄存器的当前状态。内部寄存器的当前状态。0ESMMSMM01PRRRIS0A0D0D1D2D3D4D5D6D70:无效:无效1 0:复位特殊屏蔽:复位特殊屏蔽1 1:设置特殊屏蔽:设置特殊屏蔽0:无效:无效1 0:可读:可读IRR1 1:可读:可读ISR1:允许查询:允许查询0:不许查询:不许查询(2)写操作命令字)写操作命令字7.3 可编程中断控制器可编程中断控制器8259A2

47、024年年3月月19日日第第60页页0ESMMSMM01PRRRIS0A0D0D1D2D3D4D5D6D7例:例:假设当前假设当前CPU响应响应IR3中中断,若要此时开放优先级低于断,若要此时开放优先级低于IR3 的中断,则可以在该中断服的中断,则可以在该中断服务程序中增加以下代码设置特务程序中增加以下代码设置特殊屏蔽。殊屏蔽。IN AL,21H ;读;读IMROR AL,08H;增加屏蔽;增加屏蔽IR3OUT 21H,ALMOV AL,68H;设置特殊屏蔽;设置特殊屏蔽OUT 20H,AL;写;写OCW3 若要取消特殊屏蔽,恢复原有若要取消特殊屏蔽,恢复原有中断优先级,可加入以下代码:中断优

48、先级,可加入以下代码:MOV AL,48H;取消特殊屏蔽;取消特殊屏蔽OUT 20H,AL;写;写OCW3 IN AL,21H ;读;读IMRAND AL,0F7H;取消屏蔽;取消屏蔽IR3OUT 21H,AL 增加特殊屏蔽时应先写屏蔽字增加特殊屏蔽时应先写屏蔽字OCW1,再发特殊屏蔽命令再发特殊屏蔽命令OCW3,而取消特殊,而取消特殊屏蔽时顺序相反。屏蔽时顺序相反。7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第61页页8259时,可设置时,可设置OCW3:A0=0 P=0,RR=1,RIS=0 查询查询IRR寄存器寄存器MOV AL,0000 1010BOU

49、T 20H,ALIN AL,20H若要读若要读ISR内容,只需改第一句为内容,只需改第一句为 MOV AL,0000 1011B A0=0 P=1,RR=0,则读偶地址可查询是否有中,则读偶地址可查询是否有中断请求等信息断请求等信息W0W1W2II=1,有中断,有中断I=0,无中断,无中断表示处于中断请求的表示处于中断请求的中断源的最高优先级中断源的最高优先级7.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第62页页 任意时刻读任意时刻读/写奇地址(写奇地址(A0=1),均可以访问中断屏),均可以访问中断屏蔽寄存器蔽寄存器IMR,如下面程序段可以完成将,如下面程序

50、段可以完成将00H和和FFH依依次写入并读出校验,以检查次写入并读出校验,以检查8259IMR 是否正常工作。是否正常工作。MOV AL,00H OUT 21H,ALIN AL,21HOR AL,ALJNZ IMRERRMOV AL,0FFHOUT 21H,ALIN AL,21HINC ALJNZ IMRERRP2777.3 可编程中断控制器可编程中断控制器8259A2024年年3月月19日日第第63页页7.3.47.3.4 8259 8259的应用及举例的应用及举例写入写入OCW1、ICW2、ICW3、ICW40011写入写入ICW100110写入写入OCW3001100写入写入OCW200

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《微型计算机原理》课件chapter7 中断.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|