第7章中断技术_第1页
第7章中断技术_第2页
第7章中断技术_第3页
第7章中断技术_第4页
第7章中断技术_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

1、中断技术及中断技术及8259A的使用的使用教学重点教学重点 (1 1)中断基本概念)中断基本概念 (2 2)80868086中断系统中断系统 (3 3)可编程中断控制器)可编程中断控制器8259A8259A教学要求教学要求理解理解: 1)中断、中断源、中断向量、中断过程;)中断、中断源、中断向量、中断过程; 2)中断系统结构、中断类型码、中断过程;)中断系统结构、中断类型码、中断过程; 3)8259A 的功能、编程及使用方法;的功能、编程及使用方法;掌握掌握: 1)中断方式及中断入口地址形成方式;)中断方式及中断入口地址形成方式; 2)中断处理过程;)中断处理过程; 3)8259A的初始化方法

2、;的初始化方法;第第7章章 中断技术及中断技术及8259A的使用的使用1 中断的基本概念中断的基本概念 2 8086中断系统功能中断系统功能3 中断控制器中断控制器8259A1 中断的概述中断的概述 中断是微机原理中的一种非常重要的中断是微机原理中的一种非常重要的技术,也是技术,也是CPU和外部设备进行数据交换和外部设备进行数据交换的一种很有效的方法的一种很有效的方法 。中断的概念中断的概念 所谓所谓中断(中断(Interrupt),是指微机正常操,是指微机正常操作过程中,由于作过程中,由于cpu内部(如算术运算溢内部(如算术运算溢出)、出)、外部不可预测的随机事件的发生外部不可预测的随机事件

3、的发生,或者或者程序中预先安排(如中断功能调用)程序中预先安排(如中断功能调用)导致导致cpu暂时中断正在正常执行的程序,转暂时中断正在正常执行的程序,转向执行为内部向执行为内部/外部事件发生,或程序预先外部事件发生,或程序预先安排的中断服务程序,并在实时处理完所安排的中断服务程序,并在实时处理完所对应的中断服务程序后,自动返回到主程对应的中断服务程序后,自动返回到主程序的中断点继续执行主程序。这个过程和序的中断点继续执行主程序。这个过程和机制称为中断。机制称为中断。 中断服务程序中断服务程序B发申请发申请中断服务程序中断服务程序C发申请发申请程序程序A断点断点(地址)(地址)42315678

4、9中断返回中断返回IRET中断中断现场现场断点:断点:主程序被中断的地方称为断点。主程序被中断的地方称为断点。 断点处的指令是断点处的指令是CPU完成中断处理后返回主程完成中断处理后返回主程 序序时恢复执行的第一条指令,该指令的存储地址称为时恢复执行的第一条指令,该指令的存储地址称为返回地址返回地址。返回操作:返回操作:由硬件完成将断点弹出到程序计数器中由硬件完成将断点弹出到程序计数器中的操作,这种操作由的操作,这种操作由中断返回指令中断返回指令来完成。来完成。现场:现场:是指进入中断服务程序之前是指进入中断服务程序之前CPU各个寄存器的各个寄存器的 状态。状态。CS : IPCS : IP1

5、中断响应中断响应中断服务中断服务中断中断请求请求中断的用途中断的用途 并行操作,提高工作效率并行操作,提高工作效率CPUCPU与外设同时工作,多个外设同时工作。与外设同时工作,多个外设同时工作。实现实时处理实现实时处理在控制系统中,有些参量要求计算机能快速在控制系统中,有些参量要求计算机能快速处理,用中断方式容易实现。处理,用中断方式容易实现。故障处理故障处理出现故障,提出中断申请,要求计算机及时出现故障,提出中断申请,要求计算机及时响应。响应。中断源及其来源分类中断源及其来源分类 引起中断的原因,或能发出中断申请的来源,称为引起中断的原因,或能发出中断申请的来源,称为中断中断源源。80X86

6、cpu可响应可响应256个个中断源。中断源。 通常中断源有以下几种:通常中断源有以下几种:一般的输入、输出设备。如键盘、纸带读入机、行打印一般的输入、输出设备。如键盘、纸带读入机、行打印机等。机等。数据通道中断源。如磁盘、磁带等。数据通道中断源。如磁盘、磁带等。实时时钟实时时钟 故障源故障源 为调试程序而设置的中断源为调试程序而设置的中断源硬件中断源:硬件中断源:I/OI/O设备,系统时钟,故障源等设备,系统时钟,故障源等软件中断源:软件中断源:程序中断指令程序中断指令(INT 21H)(INT 21H),指令运行出错,指令运行出错(INTO)(INTO)等等NMIINTR硬件中断硬件中断可可

7、屏屏蔽蔽中中断断请请求求软中断(软中断(INT n 指令)指令)非屏蔽中断请求非屏蔽中断请求中中 断断 逻逻 辑辑INT3指令指令INTO指令指令单步单步中断中断除数为除数为0中中 断断中中断断控控制制系系统统(8259A)8086的中断分类的中断分类异常中断异常中断外部中断外部中断内部中断内部中断中断的分类中断的分类 就其性质讲,可分为内部中断和外部中断就其性质讲,可分为内部中断和外部中断 外部中断外部中断:一般是指:一般是指I/O设备或其它硬件电路所引起的中断设备或其它硬件电路所引起的中断 特点:通过硬件向特点:通过硬件向CPU发出中断请求信号,也叫硬件中断。发出中断请求信号,也叫硬件中断

8、。分为非屏蔽中断(分为非屏蔽中断(NMI)和可屏蔽中断()和可屏蔽中断(INTR)。)。 内部中断内部中断:主要指:主要指CPU内部的中断,包括软件中断和异常内部的中断,包括软件中断和异常 中断。中断。 特点:通过指令设置的中断,也称为软件中断。其功能类特点:通过指令设置的中断,也称为软件中断。其功能类似于子程序调用,只是这些子程序大部分是系统提供的,似于子程序调用,只是这些子程序大部分是系统提供的,所以这类子程序的调用相当于高级语言中的库函数的调用。所以这类子程序的调用相当于高级语言中的库函数的调用。 中断源识别的方法中断源识别的方法外部中断判断:软件查询和中断类型号外部中断判断:软件查询和

9、中断类型号内部中断判断:中断向量号固定,不用内部中断判断:中断向量号固定,不用 判断判断断点保护断点保护IRQ0?中断返回中断返回中断源中断源0的中的中断服务程序断服务程序NY图图2 软件查询程序流程图软件查询程序流程图IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ71 并行并行输入输入接口接口 INTRD0D7 CPU图图1 软件查询判优电路软件查询判优电路中断中断请求请求寄存寄存器器IRQ1?N中断源中断源1的中的中断服务程序断服务程序IRQ7?N中断源中断源7的中的中断服务程序断服务程序. 中断源识别的方法中断源识别的方法 在微型机中普遍使用一种可编程的中断控制在微型机中

10、普遍使用一种可编程的中断控制器(如器(如Intel 8259A)实现中断优先级的管理。)实现中断优先级的管理。专用硬件方式专用硬件方式 中断源识别的方法中断源识别的方法中断优先权中断优先权l优先权:优先权:多个中断源同时申请中断时,多个中断源同时申请中断时,CPU对中断的响应的优先次序。对中断的响应的优先次序。l8086CPU的中断优先权排列从高到低为:的中断优先权排列从高到低为: 除法出错中断,溢出中断,除法出错中断,溢出中断,INT n, 断点中断断点中断 NMI INTR 单步中断单步中断中断屏蔽中断屏蔽 中断屏蔽:中断屏蔽:根据中断屏蔽标志根据中断屏蔽标志IF和当前指和当前指令执行的情

11、况,令执行的情况,cpu对一些中断请求和异常对一些中断请求和异常的发生不响应。的发生不响应。 IF为为0,屏蔽屏蔽INTR引脚上的中断请求。引脚上的中断请求。中断的一般过程中断的一般过程 中断请求中断请求中断响应中断响应中断服务中断服务中断返回中断返回中断处理过程中中断处理过程中 断断 请请 求求 中断请求信号中断请求信号是由中断源向是由中断源向CPU发出的。中断源发出的。中断源可以是外部事件,也可以是可以是外部事件,也可以是CPU的内部事件。的内部事件。 外部事件的中断请求是外部设备向外部事件的中断请求是外部设备向CPU中断请求中断请求引脚(引脚(INTR或者或者NMI)发出的电平或边沿信号

12、。)发出的电平或边沿信号。 内部事件的中断请求可以是内部事件的中断请求可以是CPU执行一条中断指执行一条中断指令使令使CPU进入中断处理过程,也可以是进入中断处理过程,也可以是CPU执行执行程序的结果使程序的结果使CPU进入中断处理过程。进入中断处理过程。 中断处理过程中断响应中断处理过程中断响应若为若为非屏蔽中断申请非屏蔽中断申请,则,则CPUCPU执行完正在执行的那一执行完正在执行的那一条指令后,做好保护工作即可去响应;条指令后,做好保护工作即可去响应;对对可屏蔽的中断申请,可屏蔽的中断申请,CPUCPU要响应,必须满足以下三要响应,必须满足以下三个条件个条件:p无总线请求;无总线请求;p

13、CPUCPU允许中断;允许中断;pCPUCPU执行完现行指令。执行完现行指令。CPUCPU响应中断要响应中断要自动完成(隐指令)自动完成(隐指令)三项任务:三项任务:u关闭中断;(关闭中断;(IFIF、TFTF清零)清零)uCSCS,IPIP以及以及PSWPSW的内容推入堆栈;的内容推入堆栈;u取得取得中断服务程序入口地址中断服务程序入口地址,进入中断服务。,进入中断服务。中断处理过程中断服务中断处理过程中断服务 中断服务包括以下六个过程:中断服务包括以下六个过程: 保护现场保护现场 :执行:执行PUSH指令将需要保指令将需要保 护的寄存器内容压入堆栈。护的寄存器内容压入堆栈。 开中断开中断

14、:允许优先级高的中断潜套:允许优先级高的中断潜套 中断服务程序中断服务程序 :处理程序:处理程序 关中断关中断 :禁止中断潜套:禁止中断潜套 恢复现场恢复现场 :执行:执行POP命令,出栈命令,出栈 开中断返回开中断返回 :在返回主程序前,开中断:在返回主程序前,开中断中断处理过程中断返回中断处理过程中断返回 在中断服务程序最后安排一条中断返回指在中断服务程序最后安排一条中断返回指令,使断点送回程序计数器令,使断点送回程序计数器IP,继续执行,继续执行被中断的程序。被中断的程序。 中断的多级嵌套中断的多级嵌套 一个中断请求尚未处理完,又转而处理新的一个中断请求尚未处理完,又转而处理新的中断请求

15、,称为中断的多级嵌套或称为多级中断请求,称为中断的多级嵌套或称为多级中断中断 请求请求中断响应中断响应中断响应中断响应请求请求中断返回中断返回中断返回中断返回低级低级中断中断服务服务程序程序高级高级中断中断服务服务程序程序图图4 两级中断嵌套的示意图两级中断嵌套的示意图8086 8086 中断向量及中断向量表中断向量及中断向量表 中断向量:中断向量:实际上就是实际上就是中断处理子程序的入口地址中断处理子程序的入口地址,每个,每个中断类型对应一个中断向量。中断类型对应一个中断向量。 中断向量表中断向量表:就是中断服务程序的入口地址表,它是存放:就是中断服务程序的入口地址表,它是存放各中断向量的具

16、有固定间隔的表型结构的存储区。各中断向量的具有固定间隔的表型结构的存储区。 80868086的的中断向量表位于中断向量表位于内存内存0 0段的段的0 03FFH3FFH区区域,可以容纳域,可以容纳256256个个中断向量。中断向量。 以中断类型码为查表的索引。以中断类型码为查表的索引。 可利用硬件查表。可利用硬件查表。 可动态修改、编程灵活可动态修改、编程灵活中断类型号:中断类型号:每个中断有一个中断类型号,中每个中断有一个中断类型号,中断类型号与中断向量在中断向量表的位置断类型号与中断向量在中断向量表的位置(中断(中断向量地址)向量地址)有关,某个中断的中断类型号为有关,某个中断的中断类型号

17、为n,则,则该中断的中断向量在中断表中的位置为该中断的中断向量在中断表中的位置为4n每个中断向量有每个中断向量有4个字节个字节。前两个字节(低地址)。前两个字节(低地址)为中断服务程序偏移地址为中断服务程序偏移地址IP,后后两个字节(高地两个字节(高地址)为服务程序段地址址)为服务程序段地址CS。 第一种是用指令直接获取:对于类型号第一种是用指令直接获取:对于类型号0 04 4的中的中断,由于断,由于8086CPU8086CPU已规定了产生中断的原因,所以已规定了产生中断的原因,所以可以直接获取类型号。而可以直接获取类型号。而INT NINT N类型的中断可以由类型的中断可以由指令直接得到中断

18、类型号。指令直接得到中断类型号。 第二种是由外部引入的第二种是由外部引入的INTRINTR中断:当中断:当CPUCPU响应中断响应中断时必须由硬件提供中断类型号。在可屏蔽中断响时必须由硬件提供中断类型号。在可屏蔽中断响应周期进行到第二个周期时,类型号放入数据总应周期进行到第二个周期时,类型号放入数据总线,线,CPUCPU从数据总线上获取类型号从数据总线上获取类型号 。 CLI CLD MOV AX,0 MOV ES,AX MOV DI,N*4 MOV AX,OFFSET INTRP STOSW MOV AX,SEG INTRP STOSW STI MOV AX,0 MOV ES,AX MOV

19、BX,N*4 MOV AX,OFFSET INTRP MOV ES:BX,AX MOV AX,SEG INTRP MOV ES:BX+2,AX MOV AL,N MOV AH,35H INT 21H PUSH ES PUSH BX PUSH DS MOV AX,SEG INTRP MOV DS,AX MOV DX,OFFSET INTRP MOV AL,N MOV AH,25H INT 21Hl POP DS ?l POP BX ?l POP ES ?l MOV AH,25Hl MOV AL,Nl INT 21Hl l INTRP:l l IRET中断系统的功能中断系统的功能1 1、实现中断及

20、返回、实现中断及返回检测中断:当中断允许时,检测中断:当中断允许时,CPUCPU在每条指令的最后一个时在每条指令的最后一个时钟周期检测中断请求。钟周期检测中断请求。响应中断时保护断点和现场:断点自动保护,现场要在响应中断时保护断点和现场:断点自动保护,现场要在中断服务程序中保护。中断服务程序中保护。中断服务完成时将中断申请信号撤销。中断服务完成时将中断申请信号撤销。中断服务完成后恢复现场和断点,返回原程序。中断服务完成后恢复现场和断点,返回原程序。2 2、对中断进行控制、对中断进行控制对中断申请进行控制:控制中断申请能否被检测到对中断申请进行控制:控制中断申请能否被检测到对中断响应进行控制:对

21、中断响应进行控制:80868086标志寄存器标志寄存器FlagFlags s中中IFIF标志可标志可控制控制CPUCPU是否查询是否查询INTRINTR引脚。引脚。STI IF=1 STI IF=1 允许中断允许中断CLI IF=0 CLI IF=0 禁止中断禁止中断中断系统的功能中断系统的功能3 3、实现优先权排队、实现优先权排队 当系统中多个中断源同时发出中断请求时,当系统中多个中断源同时发出中断请求时,CPUCPU按照重按照重要性和急迫性要性和急迫性( (中断优先级中断优先级) )择优响应:择优响应:不同优先级同时请求时,不同优先级同时请求时,CPUCPU先响应高优先级中断;先响应高优先

22、级中断;CPUCPU在处理低优先级中断时,若出现高优先级中断请在处理低优先级中断时,若出现高优先级中断请求,则转去处理高优先级中断求,则转去处理高优先级中断中断嵌套;中断嵌套;CPUCPU在处理高优先级中断时,若出现低优先级中断请在处理高优先级中断时,若出现低优先级中断请求,暂不响应;求,暂不响应;CPUCPU在处理中断时,若出现同级别中断请求,则等当在处理中断时,若出现同级别中断请求,则等当前中断处理完后,才处理新的请求。前中断处理完后,才处理新的请求。中断系统的功能中断系统的功能4 4、寻找中断源寻找中断源 有中断申请时需要查找中断源,以决定中断服务程序有中断申请时需要查找中断源,以决定中

23、断服务程序入口地址。入口地址。预先约定:预先约定:当有中断申请时,则转到固定地址执行中当有中断申请时,则转到固定地址执行中断服务程序。电路简单,但一般只能为几个中断源服断服务程序。电路简单,但一般只能为几个中断源服务。务。查询:查询:在中断服务程序中查询中断源。在中断服务程序中查询中断源。应答方式(矢量(向量)中断):应答方式(矢量(向量)中断):响应中断时响应中断时CPUCPU发发中断响应信号,中断源收到此信号发出中断类型码,中断响应信号,中断源收到此信号发出中断类型码,CPUCPU根据中断类型码决定中断服务程序入口地址。根据中断类型码决定中断服务程序入口地址。3 中断控制器中断控制器825

24、9A Intel 8259A的功能的功能 8259A的结构及引脚的结构及引脚 8259A的工作方式的工作方式 8259A编程应用编程应用Intel 8259A的功能的功能 Intel 8259A是与是与8080/8085系列以及系列以及8088/8086系列兼容的可编程的中断控制器。它的主要功能系列兼容的可编程的中断控制器。它的主要功能为:为:具有具有8级优先权控制,通过级连可扩展至级优先权控制,通过级连可扩展至64级优级优先权控制。先权控制。每一级中断都可以屏蔽或允许。每一级中断都可以屏蔽或允许。在中断响应周期,在中断响应周期,8259A可提供相应的中断类型可提供相应的中断类型号,从而能迅速

25、地转至中断服务程序。号,从而能迅速地转至中断服务程序。 8259A有几种工作方式,可以通过编程来进行选有几种工作方式,可以通过编程来进行选择。择。8259A编程结构编程结构IRR:该寄存器用来存放由外部:该寄存器用来存放由外部输入的中断请求信号输入的中断请求信号IR7IR0,当某个输入端为高电平时,该当某个输入端为高电平时,该寄存器的相应位置寄存器的相应位置“1”。ISR :该寄存器记录正在处理中的中断请求,当任何:该寄存器记录正在处理中的中断请求,当任何一级中断被响应,一级中断被响应,CPU正在执行它的中断服务程序正在执行它的中断服务程序时,时,ISR寄存器中的相应位置寄存器中的相应位置“1

26、”,一直保持到该级,一直保持到该级中断处理过程结束为止。多重中断情况下,中断处理过程结束为止。多重中断情况下,ISR寄存寄存器中可有多位被同时置器中可有多位被同时置“1”。PR :当输入端:当输入端IR7IR0中有多个中断请求信号同时中有多个中断请求信号同时产生时,由产生时,由PR判定哪个中断请求具有最高优先权,判定哪个中断请求具有最高优先权,并在脉冲期间把它置入中断服务寄存器并在脉冲期间把它置入中断服务寄存器ISR的相应位。的相应位。IMR:该寄存器中存放有关被屏蔽的中断线上的信息。该寄存器中存放有关被屏蔽的中断线上的信息。当某位置当某位置“1”时,表示禁止这一级中断请求进入系统,时,表示禁

27、止这一级中断请求进入系统,通过通过IMR寄存器可实现对各级中断的有选择的屏蔽。寄存器可实现对各级中断的有选择的屏蔽。7个寄存器分为二组个寄存器分为二组第一组寄存器:第一组寄存器:ICW1ICW4;第二组寄存器:第二组寄存器:OCW1OCW3 7个寄存器分为二组个寄存器分为二组 第一组寄存器:第一组寄存器:ICW1ICW4; 第二组寄存器:第二组寄存器:OCW1OCW3 中断请求寄存器(中断请求寄存器(IRR) 该寄存器用来存放由外部输入的中断请求信号该寄存器用来存放由外部输入的中断请求信号IR7IR0,当某个输入,当某个输入端为高电平时,该寄存器的相应位置端为高电平时,该寄存器的相应位置“1”

28、。 中断服务寄存器(中断服务寄存器(ISR) 该寄存器记录正在处理中的中断请求,当任何一级中断被响应,该寄存器记录正在处理中的中断请求,当任何一级中断被响应,CPU正在执行它的中断服务程序时,正在执行它的中断服务程序时,ISR寄存器中的相应位置寄存器中的相应位置“1”,一直,一直保持到该级中断处理过程结束为止。多重中断情况下,保持到该级中断处理过程结束为止。多重中断情况下,ISR寄存器中可有寄存器中可有多位被同时置多位被同时置“1”。 优先权判别器(优先权判别器(PR) 当输入端当输入端IR7IR0中有多个中断请求信号同时产生时,由中有多个中断请求信号同时产生时,由PR判定哪判定哪个中断请求具

29、有最高优先权,并在脉冲期间把它置入中断服务寄存器个中断请求具有最高优先权,并在脉冲期间把它置入中断服务寄存器ISR的相应位。的相应位。 8259A编程结构说明编程结构说明8259A内部结构图的说明(续)内部结构图的说明(续)中断屏蔽寄存器(中断屏蔽寄存器(IMR) 该寄存器中存放有关被屏蔽的中断线上的信息。当某位置该寄存器中存放有关被屏蔽的中断线上的信息。当某位置“1”时,时,表示禁止这一级中断请求进入系统,通过表示禁止这一级中断请求进入系统,通过IMR寄存器可实现对各级中寄存器可实现对各级中断的有选择的屏蔽。断的有选择的屏蔽。级联缓冲级联缓冲/比较器比较器 一片一片8259A只能接收只能接收

30、8级中断,当超过级中断,当超过8级时,可用多片级时,可用多片8259A级联级联使用,构成主从关系。对于主使用,构成主从关系。对于主8259A,其级联信号,其级联信号CAS2CAS0是输是输出信号,而对于从出信号,而对于从8259A,级联信号,级联信号CAS2CAS0是输入信号。是输入信号。 此时,主此时,主8259A的的 端为端为“1”,从,从8259A的的 端为端为“0”,且从,且从8259A的的INT输出接到主输出接到主8259的中断输入端的中断输入端IR上,因而可把中断扩展上,因而可把中断扩展到到64级。级。l控制逻辑控制逻辑l数据总线缓冲器数据总线缓冲器l读读/写逻辑;写逻辑;SPSP

31、IRR、IMR、ISR、PR和控制逻辑五个部分是实现中断优先管理的核心和控制逻辑五个部分是实现中断优先管理的核心部件。部件。8259A只有两个只有两个I/O端口地址,它们由端口地址,它们由 CS和和A0输入的地址信息决定。输入的地址信息决定。8259A的工作原理的工作原理 1中断源通过中断源通过IR0IR7向向8259A发中断请求,使得发中断请求,使得8259A的中断请求寄存器的中断请求寄存器IRR的相应位置的相应位置1。 2IRR中经中断屏蔽寄存器中经中断屏蔽寄存器IMR允许后的置位位进入优先允许后的置位位进入优先权判别器权判别器PR,PR将其中最高优先权的中断请求从将其中最高优先权的中断请

32、求从INT输出,输出,送至送至CPU的的INTR端。端。 3若若CPU处于开中断状态,则在当前指令执行结束后,启处于开中断状态,则在当前指令执行结束后,启动中断响应总线操作,发出两个负脉冲作为响应信号。动中断响应总线操作,发出两个负脉冲作为响应信号。 48259A接收到第一个负脉冲,完成如下工作:接收到第一个负脉冲,完成如下工作: (1)使)使IRR的锁存功能失效,不再接收中断请求;的锁存功能失效,不再接收中断请求; (2)使)使ISR相应位置相应位置1,表示,表示CPU已为该中断请求服务。已为该中断请求服务。 (3)使)使IRR的相应位清的相应位清0。8259A的工作原理(续)的工作原理(续

33、) 58259A接收到第二个负脉冲,完成如下工作:接收到第二个负脉冲,完成如下工作: (1)将中断类型号送上数据总线。中断类型号由用户)将中断类型号送上数据总线。中断类型号由用户编程和中断请求引脚编程和中断请求引脚IRi的序号的序号i共同决定(共同决定(CPU读取中断读取中断类型号,经响应过程后,进入中断服务程序,直到服务结类型号,经响应过程后,进入中断服务程序,直到服务结束返回)。束返回)。 (2)若)若8259A工作在自动结束中断方式工作在自动结束中断方式AEOI,则,则8259A清除清除ISR的相应位,否则直至中断服务结束,发出的相应位,否则直至中断服务结束,发出EOI命令,才能使命令,

34、才能使ISR中的相应位清中的相应位清0。 8259A的管脚分配的管脚分配 中断源输入端中断源输入端数据线数据线 中断应答信号中断应答信号 中断请求信号中断请求信号 从片选择信号从片选择信号从片和主片的选从片和主片的选择和驱动信号择和驱动信号地址引脚地址引脚注注 :IRRIRR、ISRISR或中断级别的选择,取决于在读操作前所写入或中断级别的选择,取决于在读操作前所写入的的OCW3OCW3内容。内容。注:由片上的顺序逻辑队列,使这些命令字按适当的顺序写注:由片上的顺序逻辑队列,使这些命令字按适当的顺序写入。入。D7D0D7D0RDWRINTINTAA0CS8259ASP/ENIR0IR1IR2I

35、R3IR4IR5IR6IR7CAS2CAS1CAS0IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7日时钟日时钟键盘键盘保留保留COM2COM1硬盘硬盘软盘软盘打印机打印机+5VIORIOWINTRINTAA1A13A15A14A10A12A1174LS3074LS04A9+5VA8A7A6A5+5VCBA74LS138Y1Y0G2AG2BG1接口电路说明接口电路说明 8259A 8259A 的的数据线数据线与与控制控制线线对应连接对应连接到系统总线;到系统总线; 由由7474LS30LS30(8 8输入与非门)和输入与非门)和7474LSLS138138(3 38 8译码器)

36、对译码器)对地址线进行译码决定端口地址,地址为地址线进行译码决定端口地址,地址为020020H H03FH03FH; 80868086使用低使用低8 8位数据线与位数据线与82598259A A传递信息。传递信息。80868086的的A1A1接到接到82598259的的A0A0线上,使用偶地址;线上,使用偶地址; CAS2 CAS1 CAS0CAS2 CAS1 CAS0未接,未接,SP/ENSP/EN接正电源;接正电源; 地址范围:地址范围:范范 围围A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0A15A14A13A12A11A10A9A8A7A6A5A4A3A2

37、A1A0 0 0 0 0 0 0 0 0 0 0 1 X X X X X0 0 0 0 0 0 0 0 0 0 1 X X X X X 0020H0020H003FH003FH两片两片82598259A A级联工作管理级联工作管理1515级中断级中断+5VD7D0INT8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7CAS2 CAS1 CAS0D7D0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15CAS2 CA

38、S1 CAS0INTINTA2CS(020H 03FH)(0A0H0BFH)INTA1CSINTARDWRA0INTARDWRA0D7D0实时钟改向INT0A协处理器CSINTRINTAIORIOWA1 从片从片82598259A A的中断申请端的中断申请端INTINT接主片的接主片的IR2IR2 主片的主片的SP/ENSP/EN接接+5+5V,V,从从片的片的SP/ENSP/EN接地,主从片的接地,主从片的CAS2CAS2、CAS1CAS1、CAS0CAS0对应对应连接。连接。 主片的端口地址主片的端口地址INTA1CSINTA1CS为为020020H H03FH03FH, , 从从片的端口

39、地址片的端口地址INTA2CSINTA2CS为为0A00A00BFH.0BFH. 80868086系统系统主从芯片都用偶地址传递信息。主从芯片都用偶地址传递信息。全嵌套方式全嵌套方式特殊全嵌套方式特殊全嵌套方式优先级自动循环方式优先级自动循环方式优先级特殊循环方式优先级特殊循环方式1.全嵌套方式全嵌套方式 中断请求输入端引入的中断具有固定的优先权中断请求输入端引入的中断具有固定的优先权排队顺序,排队顺序,IR0IR0为最高优先级,为最高优先级,IRlIRl为次高优先为次高优先级,依次类推,级,依次类推,IR7IR7为最低优先级。为最低优先级。 高优先级的中断可进入低优先级,但低优先级高优先级的

40、中断可进入低优先级,但低优先级不能进入高优先级或同等优先级。不能进入高优先级或同等优先级。 主程序必须执行开中断指令主程序必须执行开中断指令STISTI,使,使IF=1IF=1,才有可能,才有可能响应中断。响应中断。 每进入一个中断服务程序,要在其中开中断,才能每进入一个中断服务程序,要在其中开中断,才能进行中断嵌套。进行中断嵌套。 中断服务程序结束时,需发出中断服务程序结束时,需发出EOIEOI中断结束命令,使中断结束命令,使ISRISR中的对应位清中的对应位清0 0,才能返回断点并响应再次到来,才能返回断点并响应再次到来的中断。的中断。+5VD7D0INT8259ASP/ENIR0IR1I

41、R2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7CAS2 CAS1 CAS0D7D0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15CAS2 CAS1 CAS0INTINTA2CS(020H 03FH)(0A0H0BFH)INTA1CSINTARDWRA0INTARDWRA0D7D0实时钟改向INT0A协处理器CSINTRINTAIORIOWA1主片:完全嵌套方式主片:完全嵌套方式从片:完全嵌套方式从片:完全嵌套方式 IRQ0 IRQ1 IRQ8

42、 IRQ9 IRQ15IRQ3 IRQ7 1.全嵌套方式全嵌套方式2.特殊全嵌套方式特殊全嵌套方式 与全嵌套方式基本相同,只有一点差别与全嵌套方式基本相同,只有一点差别:当处理:当处理某一级中断时,如有同级中断请求,也会给与响某一级中断时,如有同级中断请求,也会给与响应。应。 特殊全嵌套方式用在特殊全嵌套方式用在8259A8259A有级联有级联的情况:主片工的情况:主片工作在特殊全嵌套方式,从片可工作在其他工作方作在特殊全嵌套方式,从片可工作在其他工作方式。式。 当当8259A8259A(从)(从)片接收到一个中断请求,经本片接收到一个中断请求,经本8259A8259A判别确定为当前最高优先级

43、,则响应这一中断,通判别确定为当前最高优先级,则响应这一中断,通过过INTINT端向端向cpucpu(8259A8259A主片)主片)相应的相应的IRIR端提出中断请端提出中断请求。求。 如果这时如果这时8259A8259A主片中主片中ISRISR相应位已置相应位已置“1 1”,则说明该则说明该8259A8259A从片的其它输入端已提出过申请,且从片的其它输入端已提出过申请,且正在服务。正在服务。 对于对于主片主片而言他们是而言他们是同一级同一级的中断请求,但是对的中断请求,但是对于于从片从片而言,后来的中断请求而言,后来的中断请求优先级高优先级高于正在于正在服务的中断优先级,因此后来的中断有

44、权享受优先服务的中断优先级,因此后来的中断有权享受优先服务。服务。2.特殊全嵌套方式特殊全嵌套方式 +5VD7D0INT8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7CAS2 CAS1 CAS0D7D0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15CAS2 CAS1 CAS0INTINTA2CS(020H 03FH)(0A0H0BFH)INTA1CSINTARDWRA0INTARDWRA0D7D0实时钟改向I

45、NT0A协处理器CSINTRINTAIORIOWA1主片:特殊全嵌套方式主片:特殊全嵌套方式从片:完全嵌套方式从片:完全嵌套方式IRQ0 IRQ1 IRQ8 IRQ9 IRQ15 IRQ3 IRQ7假设从片假设从片 IRQ12正在被服正在被服务,从片务,从片IRQ9又有中断请又有中断请求,该如何处理呢求,该如何处理呢?ISR第第2位位 ISR21,但是,但是从片判断从片判断IRQ9 IRQ12, 可以响可以响应,中断应,中断IRQ12去响应去响应IRQ92.特殊全嵌套方式特殊全嵌套方式 3.优先级自动循环方式优先级自动循环方式 使用在系统中有使用在系统中有多个中断源优先级相等多个中断源优先级相

46、等的场合。的场合。 中断源的优先级是变化的中断源的优先级是变化的,从,从IR0IR0IR7IR7引入的中引入的中断轮流具有最高优先权。断轮流具有最高优先权。 当任何一级中断被处理完,它的优先级别就被改当任何一级中断被处理完,它的优先级别就被改变为最低,而最高优先级分配给该中断的下一级变为最低,而最高优先级分配给该中断的下一级中断。中断。3.优先级自动循环方式优先级自动循环方式 屏蔽中断源的方式屏蔽中断源的方式 (1)普通屏蔽方式:)普通屏蔽方式:正常的中断嵌套和中断屏蔽正常的中断嵌套和中断屏蔽l在主程序中设置在主程序中设置OCW1来实现。来实现。(2)采用特殊屏蔽方式:)采用特殊屏蔽方式:可使

47、低优先级别的中断可使低优先级别的中断进入正在服务的高优先级别中。进入正在服务的高优先级别中。 l在中断服务程序中通过设置在中断服务程序中通过设置OCW1来实现来实现。中断屏蔽:中断屏蔽:通过设置中断屏蔽寄存器通过设置中断屏蔽寄存器IMR,将某一位,将某一位或几位置或几位置“1”来屏蔽掉对应中断源的中断请求;来屏蔽掉对应中断源的中断请求;结束中断处理的方式结束中断处理的方式中断自动结束方式中断自动结束方式一般的中断结束方式一般的中断结束方式特殊的中断结束方式特殊的中断结束方式 当一个中断请求得到响应时,当一个中断请求得到响应时,8259A都会在都会在ISR(当前中断服务寄存器)中设置对应的(当前

48、中断服务寄存器)中设置对应的ISn位为位为1,为后面的中断裁决器提供依据;当中断结束时,为后面的中断裁决器提供依据;当中断结束时,必须使必须使ISn位清位清0,否则中断控制功能就不正常,这,否则中断控制功能就不正常,这个个使使ISn位清位清0的动作就是中断结束处理。的动作就是中断结束处理。 使用场合:使用场合:系统中只有系统中只有一片一片8259A并且多并且多个中断个中断不会嵌套不会嵌套。 工作原理:工作原理:系统一进入中断过程(中断响系统一进入中断过程(中断响应的第一个负脉冲周期),应的第一个负脉冲周期),8259A就自动就自动将将ISR 中的对应位中的对应位ISn清除为清除为0。 设置方法

49、:设置方法:对对8259A初始化时,将初始化时,将ICW4的的AEOI位置位置1即可。即可。 使用场合:使用场合:用在用在 优先级方式为全嵌套的优先级方式为全嵌套的情况。情况。 工作原理:工作原理:当当cpu用输出指令往用输出指令往8259A发出一般发出一般中断结束命令时,中断结束命令时,8259A就会把就会把ISR 中最高的非中最高的非零零 IS位清位清0。为什么?为什么?l设置方法:设置方法:往往8259A发送一般中断结束命令,即发送一般中断结束命令,即往往 8259A的偶地址端口输出一个操作命令字的偶地址端口输出一个操作命令字OCW2, 并使并使OCW2中的中的EOI1,SL0,R0即可

50、。即可。 因为在全嵌套方式中,最高的非零因为在全嵌套方式中,最高的非零IS位对应了最后一次位对应了最后一次被响应和被处理的中断,也就是当前正在处理的中断,所被响应和被处理的中断,也就是当前正在处理的中断,所以,最高的非零以,最高的非零IS位的清位的清0相当于结束了当前正在处理的相当于结束了当前正在处理的中断。中断。 使用场合:使用场合:任何场合都可以使用,尤其是用在任何场合都可以使用,尤其是用在 非非全嵌套方式的全嵌套方式的情况。情况。 工作原理:工作原理:当当cpu用输出指令往用输出指令往8259A发出特殊发出特殊中断结束命令时,中断结束命令时,8259A就会把就会把指定的指定的ISR 中的

51、中的非零非零 IS位清位清0。l设置方法:设置方法:往往8259A发送特殊中断结束命令,即发送特殊中断结束命令,即往往 8259A的偶地址端口输出一个操作命令字的偶地址端口输出一个操作命令字OCW2, 并使并使OCW2中的中的EOI1,SL1,R0,L2、L1、 L0指定清零的指定清零的IS位。位。一般一般使用非自动结束中断使用非自动结束中断的处理方式。的处理方式。 CPUCPU发出两个中断结束命令发出两个中断结束命令EOIEOI,一个送主一个送主8259A8259A,用来将其主用来将其主8259A8259A的的ISRISR寄存器相应位清寄存器相应位清0 0;另一个;另一个送从送从8259A8

52、259A,用来将其从,用来将其从8259A8259A中的中的ISRISR寄存器相应寄存器相应位清位清0 0。1)非缓冲方式)非缓冲方式 :如上页图,如上页图, 8259A直接连接系直接连接系统数据总线。统数据总线。 SP/EN作为输入端,区别主片(作为输入端,区别主片( SP/EN 1)和从片)和从片(SP/EN0)2)缓冲方式:)缓冲方式:在多片在多片8259A级联的系统中,级联的系统中,8259A通过总线驱动器连接系统数据总线。通过总线驱动器连接系统数据总线。 SP/EN引脚作为输出端和总线驱动器相连,作为驱动器的启引脚作为输出端和总线驱动器相连,作为驱动器的启动信号。动信号。 通过通过设

53、置初始化命令字设置初始化命令字ICW4选择是否缓冲方式。选择是否缓冲方式。非缓冲非缓冲方式方式驱动器驱动器驱动器驱动器缓冲缓冲方式方式 边沿触发方式边沿触发方式 8259A将中断请求输入端出现的上将中断请求输入端出现的上升沿作为中断请求信号升沿作为中断请求信号 电平触发方式电平触发方式 中断请求端出现的高电平是有效的中断请求端出现的高电平是有效的中断请求信号中断请求信号 注意中断请求得到响应后要及时去注意中断请求得到响应后要及时去掉高电平掉高电平 中断查询方式(下页)中断查询方式(下页) 中断查询方式:中断查询方式:用于用于中断源多于中断源多于64个个的情的情况,此时况,此时8259A的的IN

54、T不用同不用同cpu的的INTR端端连接,只需连接,只需对对8259A写入写入“查询命令字查询命令字”以及通过读以及通过读IRR中的状态中的状态,即可判别当前有,即可判别当前有无中断和当前中断的最高优先级。通过操无中断和当前中断的最高优先级。通过操作作OCW3编程实现。编程实现。8259A的编程的编程 初始化编程初始化编程8259A8259A开始工作前,必须进行初始化编程开始工作前,必须进行初始化编程给给8259A8259A写入写入初始化命令字初始化命令字ICWICW 中断操作编程中断操作编程在在8259A8259A工作期间工作期间可以写入可以写入操作命令字操作命令字OCWOCW将选定的操作传

55、送给将选定的操作传送给8259A8259A,使之按新的要求工作,使之按新的要求工作还可以读取还可以读取8259A8259A的信息,以便了解他的工作的信息,以便了解他的工作状态状态8259A芯片的初始化流程芯片的初始化流程写写ICW1 A0=0,D4=1写写ICW2 A0=1SNGL=1 IC4=1写写ICW3 A0=1写写ICW4是是否否是是否否按顺序对按顺序对A0=1端端口写入命令字口写入命令字:在在AT/286AT/286以上机器上,使用两片以上机器上,使用两片8259A8259A级联组成级联组成1515个中断申请输入端。个中断申请输入端。要求:要求:端口地址主片为端口地址主片为20H和和

56、21H,从片为,从片为A0H和和A1H。接收上升沿触发中断请求信号。接收上升沿触发中断请求信号。选择全嵌套方式,优先级排列次序为选择全嵌套方式,优先级排列次序为0级最高,依次为级最高,依次为1级,级,815级,然后是级,然后是37级。级。采用非缓冲方式,主片采用非缓冲方式,主片SP/EN接接+5V,从片,从片SP/EN接接地地设定主片中断类型码为设定主片中断类型码为08H0FH,从片从片为为70H77H 一般中断结束方式。一般中断结束方式。+5VD7D0INT8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7CA

57、S2 CAS1 CAS0D7D0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15CAS2 CAS1 CAS0INTINTA2CS(020H 03FH)(0A0H0BFH)INTA1CSINTARDWRA0INTARDWRA0D7D0实时钟改向INT0A协处理器CSINTRINTAIORIOWA0接口电路接口电路初始化命令字初始化命令字IC4SNGLADILTIM1XXICW111HXXXX T3T4T7T6T5ICW208H主主从从 70HS7S6S5S4S3S2S1S0主主ICW304H00000从从01002HAEOIM/SBUF000SFNMupmICW4主主 11H从从 01H;ICW1:边沿触发,需要边沿触发,需要ICW4,级联需,级联需ICW3MOV AL,11OUT 20H,AL ;ICW2:设置中断向量高五位,使主片中断向量号为设置中断向量高五位,使主片中断向量号为08H0FHMOV AL,08HOUT 21H,AL; ICW3:主片主片IR2接有从片接有从片MOV AL,04H OUT 21H,AL; ICW4:非缓冲,特殊全嵌套,非缓冲,特殊全嵌套,80X86cpu,非自动,非自动EOIMOV AL,1

温馨提示

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

评论

0/150

提交评论