资源预览内容
第1页 / 共83页
第2页 / 共83页
第3页 / 共83页
第4页 / 共83页
第5页 / 共83页
第6页 / 共83页
第7页 / 共83页
第8页 / 共83页
第9页 / 共83页
第10页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第7章典型可编程接口芯片及应用章典型可编程接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用7.1 中断系统及可编程中断控制器中断系统及可编程中断控制器8259 中断是微机系统中非常重要的一种技术,是对微处理中断是微机系统中非常重要的一种技术,是对微处理中断是微机系统中非常重要的一种技术,是对微处理中断是微机系统中非常重要的一种技术,是对微处理器功能的有效扩展。器功能的有效扩展。器功能的有效扩展。器功能的有效扩展。利用外部中断,微机系统可以实时响利用外部中断,微机系统可以实时响利用外部中断,微机系统可以实时响利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部随机出现应外部设备的数据传送请求,能够及时处理外部随机出现应外部设备的数据传送请求,能够及时处理外部随机出现应外部设备的数据传送请求,能够及时处理外部随机出现的意外或是紧急事件的意外或是紧急事件的意外或是紧急事件的意外或是紧急事件。利用内部中断,微处理器为用户提利用内部中断,微处理器为用户提利用内部中断,微处理器为用户提利用内部中断,微处理器为用户提供了发现、调试并解决程序执行异常情况的有效途径供了发现、调试并解决程序执行异常情况的有效途径供了发现、调试并解决程序执行异常情况的有效途径供了发现、调试并解决程序执行异常情况的有效途径。因。因。因。因此,中断是用以提高计算机工作效率的一种重要技术。如此,中断是用以提高计算机工作效率的一种重要技术。如此,中断是用以提高计算机工作效率的一种重要技术。如此,中断是用以提高计算机工作效率的一种重要技术。如何建立准确的中断概念和灵活掌握中断技术是学好本门课何建立准确的中断概念和灵活掌握中断技术是学好本门课何建立准确的中断概念和灵活掌握中断技术是学好本门课何建立准确的中断概念和灵活掌握中断技术是学好本门课程的关键问题之一。程的关键问题之一。程的关键问题之一。程的关键问题之一。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用一、什么是中断?一、什么是中断?7.1.1 中断的基本概念中断的基本概念贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用 中断是由一不可知的事件引起的,中断是由一不可知的事件引起的,中断是由一不可知的事件引起的,中断是由一不可知的事件引起的,CPUCPU响应中断后,响应中断后,响应中断后,响应中断后,将暂时停止正在运行的程序流程,而转去执行预定的处理,将暂时停止正在运行的程序流程,而转去执行预定的处理,将暂时停止正在运行的程序流程,而转去执行预定的处理,将暂时停止正在运行的程序流程,而转去执行预定的处理,当这些不可预知的事件的程序,执行完毕,再返回被中断当这些不可预知的事件的程序,执行完毕,再返回被中断当这些不可预知的事件的程序,执行完毕,再返回被中断当这些不可预知的事件的程序,执行完毕,再返回被中断的程序的一个过程。因此,的程序的一个过程。因此,的程序的一个过程。因此,的程序的一个过程。因此,所谓中断,是指所谓中断,是指所谓中断,是指所谓中断,是指CPUCPU在正常执在正常执在正常执在正常执行程序的过程中,由于内部行程序的过程中,由于内部行程序的过程中,由于内部行程序的过程中,由于内部/ /外部事件或由程序的预先安外部事件或由程序的预先安外部事件或由程序的预先安外部事件或由程序的预先安排,引起排,引起排,引起排,引起CPUCPU暂时中断当前程序的运行而转去执行为内部暂时中断当前程序的运行而转去执行为内部暂时中断当前程序的运行而转去执行为内部暂时中断当前程序的运行而转去执行为内部/ /外部事件或预先安排的事件服务的子程序,待中断服务外部事件或预先安排的事件服务的子程序,待中断服务外部事件或预先安排的事件服务的子程序,待中断服务外部事件或预先安排的事件服务的子程序,待中断服务子程序执行完毕后,子程序执行完毕后,子程序执行完毕后,子程序执行完毕后,CPUCPU再返回到暂停处(断点)继续执再返回到暂停处(断点)继续执再返回到暂停处(断点)继续执再返回到暂停处(断点)继续执行原来的程序,这一过程称为中断。行原来的程序,这一过程称为中断。行原来的程序,这一过程称为中断。行原来的程序,这一过程称为中断。或者说,中断就是或者说,中断就是或者说,中断就是或者说,中断就是CPUCPU在执行当前程序的过程中因意外事件插入了另一段程在执行当前程序的过程中因意外事件插入了另一段程在执行当前程序的过程中因意外事件插入了另一段程在执行当前程序的过程中因意外事件插入了另一段程序的运行。利用中断可以大大提高序的运行。利用中断可以大大提高序的运行。利用中断可以大大提高序的运行。利用中断可以大大提高CPUCPU的工作效率。实现的工作效率。实现的工作效率。实现的工作效率。实现中断功能的控制逻辑称为中断机构或中断系统。中断功能的控制逻辑称为中断机构或中断系统。中断功能的控制逻辑称为中断机构或中断系统。中断功能的控制逻辑称为中断机构或中断系统。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断服务程序中断服务程序1中断服务程序中断服务程序 2 2非预料事件非预料事件1非预料事件非预料事件 2 2CPU执行流程执行流程贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断的用途中断的用途 CPUCPU的中断功能的实现带来了以下好处:的中断功能的实现带来了以下好处:的中断功能的实现带来了以下好处:的中断功能的实现带来了以下好处:1、同步处理、同步处理2、实现了实时处理、实现了实时处理3、多道程序或多重任务的运行、多道程序或多重任务的运行4、突发事件处理、突发事件处理贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用有关中断的基本概念(续)有关中断的基本概念(续) 二、中断源二、中断源 能够引起中断的原因,或能够发出中断请求信号的能够引起中断的原因,或能够发出中断请求信号的外设。外设。可屏蔽中断可屏蔽中断 (INTR)不可屏蔽中断不可屏蔽中断 (NMI)外部中断外部中断(硬中断)(硬中断)内部中断内部中断(软中断)(软中断)(因执行指令而引起)(因执行指令而引起)贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用1000:150H 、 、 、 、 、MOV AH, 01INT 21HCMP AL, 0DH、 PUSH AX 、 、IRET用指令调用中断程序用指令调用中断程序软件中断软件中断贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用断点:断点: 通常指被中断的主程序中,下一条待运行的指令的地址。通常指被中断的主程序中,下一条待运行的指令的地址。它是中断返回时的指令指针之值。由于是指它是中断返回时的指令指针之值。由于是指CPU执行的现行程执行的现行程序被中断时的下一条指令的地址序被中断时的下一条指令的地址,又称断点地址。又称断点地址。现场:现场: 指指中中断断发发生生前前程程序序的的运运行行状状态态,即即标标志志寄寄存存器器(程程序序状状态态字字)。为为了了保保证证中中断断返返回回后后能能继继续续正正确确地地执执行行原原来来的的程程序序,中中断断系系统统必必须须能能在在中中断断发发生生时时自自动动保保存存现现场场,并并在在中中断断返返回回时时自自动动恢恢复复现现场场。(是是指指CPU转转去去执执行行中中断断服服务务程程序序前前的的运运行行状状态,包括态,包括CPU内部各寄存器、断点地址等。)内部各寄存器、断点地址等。)三、中断的断点和现场三、中断的断点和现场贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用1000:150H 、 、 、 、 、MOV AX, 0ADD AX, DXMOV DI , AX、 PUSH AX 、 、 IRETCPU在执行此指令时,在执行此指令时,某中断源发申请中断某中断源发申请中断;CPU在执行完该指令后,在执行完该指令后,转去执行中断子程转去执行中断子程地址地址1000:150H为断点为断点断点概念断点概念贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用 系系统统中中的的多多个个中中断断源源可可能能同同时时提提出出中中断断请请求求,此此时时需需要要按按中中断断事事件件的的轻轻重重缓缓急急为为每每个个中中断断源源指指定定一一个个处处理理的的优优先先级别,即级别,即中断优先级中断优先级。 当当多多个个中中断断源源同同时时提提出出中中断断请请求求时时,中中断断系系统统按按照照优优先级对中断源进行排队,总是优先处理优先权高的中断。先级对中断源进行排队,总是优先处理优先权高的中断。 四、中断优先级四、中断优先级贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用当前当前CPU正在进行某一优先权级别的中断源的处理;正在进行某一优先权级别的中断源的处理;有更高级别的中断源发出请求,且新中断源满足响应条件;有更高级别的中断源发出请求,且新中断源满足响应条件;CPU中中止止当当前前的的中中断断服服务务程程序序,保保护护断断点点和和现现场场,转转而而响响应高级中断应高级中断 这这种种多多级级中中断断的的处处理理方方式式即即为为“嵌嵌套套”。某某些些中中断断系系统统对中断嵌套的层数有一定限制。对中断嵌套的层数有一定限制。五、中断嵌套五、中断嵌套贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用高级中断源能中断低级的中断处理高级中断源能中断低级的中断处理 当当CPU正在处理某个中断时,如果外部又有一个优先正在处理某个中断时,如果外部又有一个优先级别比本优先级别更高的中断请求,则可以实现级别比本优先级别更高的中断请求,则可以实现中断嵌套中断嵌套中断嵌套中断嵌套。 中断嵌套中断嵌套中断嵌套中断嵌套 当当当当CPUCPUCPUCPU正在进行某一级别中断源的中断处理时,正在进行某一级别中断源的中断处理时,正在进行某一级别中断源的中断处理时,正在进行某一级别中断源的中断处理时,若有若有若有若有更高级别的新中断源更高级别的新中断源更高级别的新中断源更高级别的新中断源发出请求,且新中断源发出请求,且新中断源发出请求,且新中断源发出请求,且新中断源满足满足满足满足响应条件响应条件响应条件响应条件,则,则,则,则CPUCPUCPUCPU应中止当前的中断服务程序,保护应中止当前的中断服务程序,保护应中止当前的中断服务程序,保护应中止当前的中断服务程序,保护此程序的断点和现场,转而响应高级中断。这种多级此程序的断点和现场,转而响应高级中断。这种多级此程序的断点和现场,转而响应高级中断。这种多级此程序的断点和现场,转而响应高级中断。这种多级(重)中断的处理方式称为(重)中断的处理方式称为(重)中断的处理方式称为(重)中断的处理方式称为“嵌套嵌套嵌套嵌套”。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用CPU正常执行正常执行中断服务程序中断服务程序1 1非预料事件非预料事件1 1中断服务程序中断服务程序2非预料事件非预料事件2中断嵌套示意图中断嵌套示意图贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断嵌套必须具备的几个条件中断嵌套必须具备的几个条件1)第第一一级级中中断断(已已处处于于响响应应状状态态的的原原中中断断)的的服服务务程程序序中中,应应在在保保护护现现场场执执行行完完毕毕后后加加上上开开放放总总中中断断(IF位位置置1)的的指令;指令;2)新新到到来来的的中中断断应应具具有有比比原原中中断断高高的的优优先先级级,同同级级或或低低级级均不能嵌套;均不能嵌套;3)为为保保护护各各级级中中断断服服务务程程序序的的数数据据不不被被破破坏坏,所所有有服服务务程程序中均应有序中均应有保护现场、恢复现场保护现场、恢复现场的指令;的指令;4)每每个个中中断断服服务务程程序序末末尾尾必必须须有有IRET指指令令以以示示结结束束,从从而而返回被中断的程序地址处返回被中断的程序地址处贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用 某些情况下某些情况下CPU可能不对已发出的中断请求作出响应可能不对已发出的中断请求作出响应或处理,称为该中断请求被或处理,称为该中断请求被“屏蔽屏蔽” 。 中断屏蔽可能在两种情况下发生:中断屏蔽可能在两种情况下发生: 中中断断系系统统设设置置了了中中断断屏屏蔽蔽标标志志(或或中中断断允允许许标标志志),以以屏屏蔽某些中断源的请求;蔽某些中断源的请求; 当系统在处理优先级别较高的中断请求时,不会理睬新来当系统在处理优先级别较高的中断请求时,不会理睬新来的级别较低的中断请求的级别较低的中断请求中断系统自动屏蔽优先级低的中中断系统自动屏蔽优先级低的中断。断。六、中断屏蔽六、中断屏蔽贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用子程序的执行由程序员安排(由调用子程序的指令转入)子程序的执行由程序员安排(由调用子程序的指令转入),断点是确知的;而中断服务程序的执行一般由随机的,断点是确知的;而中断服务程序的执行一般由随机的中断事件引发,断点不确定。中断事件引发,断点不确定。子程序的执行受到主程序或上层子程序的控制;而中断子程序的执行受到主程序或上层子程序的控制;而中断服务子程序一般与被中断的现行程序无关。服务子程序一般与被中断的现行程序无关。不存在同时调用多个子程序的情况,因此子程序不需要不存在同时调用多个子程序的情况,因此子程序不需要进行优先级排队;而不同的中断源则可能同时提出服务进行优先级排队;而不同的中断源则可能同时提出服务请求。请求。七、中断服务程序与子程序的区别七、中断服务程序与子程序的区别贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用八、中断系统的功能八、中断系统的功能 实现实现中断及返回中断及返回 中断源发出中断请求,中断源发出中断请求,CPU决定是否响应:决定是否响应:若响应若响应,则,则保护断点和现场保护断点和现场,转入相应中断服务程序,转入相应中断服务程序,中断服务结束中断服务结束后,后,恢复现场和断点恢复现场和断点,继续执行原程序。,继续执行原程序。CPU执行执行中断服务程序中断服务程序1 1非预料事件非预料事件1 1贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用非预料事件非预料事件是指事件发生的时间无法预知是指事件发生的时间无法预知,即中即中断源何时产生中断不确定,是随机的。断源何时产生中断不确定,是随机的。中中断断源源产产生生中中断断的的随随机机性性,使使中中断断服服务务程程序序的的执执行行也也具具有有随随机机性性,即即何何时时执执行行中中断断服服务务程程序序不不是是在在程程序序中安排好的。中安排好的。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用 实现实现优先权排队优先权排队按各中断请求的重要程度排列按各中断请求的重要程度排列CPU响应的次序称为响应的次序称为中断优先级中断优先级。 即同时有多个中断请求到来时,即同时有多个中断请求到来时,CPU会首先响应和处理优先级会首先响应和处理优先级别最高的中断请求。别最高的中断请求。中断优先级的实现可以用中断优先级的实现可以用软件软件或或硬件硬件的办法。的办法。中断系统的功能(续)中断系统的功能(续)贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用 软件查询法判优流程软件查询法判优流程软件查询法判优流程软件查询法判优流程读中断请求寄存器读中断请求寄存器外设外设1有请求?有请求?外设外设1中断服务程序中断服务程序外设外设2有请求?有请求?外设外设2中断服务程序中断服务程序外设外设8有请求?有请求?外设外设8中断服务程序中断服务程序后续处理后续处理YNNNNYY贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用硬件实现的中断优先权排队电路硬件实现的中断优先权排队电路1 2 3 4 5 6 7 81 2 3 4 5 6 7 8可由程序设置的可由程序设置的中断允许寄存器中断允许寄存器由外设设置的由外设设置的中断请求寄存器中断请求寄存器编编码码器器A2A1A0B2B1B0优先优先权寄权寄存器存器比比较较器器AB12CPU的的INTR优先权失效优先权失效中断请求中断请求+CPU写入写入贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用8086的中断处理过程的中断处理过程中断检测及优先级判断中断检测及优先级判断中断响应中断响应 保存保存CPU内部各寄存器内容,以便在中断服务子程序中内部各寄存器内容,以便在中断服务子程序中使用这些寄存器而不致破坏原信息使用这些寄存器而不致破坏原信息 开总中断(开总中断(IF =1),以便在该中断服务期间仍然能响应),以便在该中断服务期间仍然能响应更高级的中断请求,即允许中断嵌套更高级的中断请求,即允许中断嵌套用户中断服务的具体处理过程用户中断服务的具体处理过程恢复恢复CPU内部各寄存器内容内部各寄存器内容执行执行IRET语句,中断返回语句,中断返回自动保存自动保存现场、断现场、断点点贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用CPU响应外中断的条件响应外中断的条件 1具备中断请求触发器具备中断请求触发器2具备中断屏蔽触发器具备中断屏蔽触发器3开放总中断开放总中断4在现行指令结束后响应中断在现行指令结束后响应中断贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用7.1.2 8086的中断系统的中断系统一、中断源一、中断源贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用二、中断类型码、中断向量表和中断向量二、中断类型码、中断向量表和中断向量中中断断类类型型码码:8086可可以以处处理理256个个中中断断请请求求,每每个个中中断断请请求求均均对对应应于于惟惟一一固固定定的的类类型型码码。被被0除除类类型型码码是是0,单单步为步为1;NMI为为2;断点中断为;断点中断为3,溢出中断为,溢出中断为4 等。等。中中断断向向量量:即即中中断断服服务务程程序序的的入入口口地地址址,包包括括段段地地址址(高字单元)和偏移地址(低字单元)。(高字单元)和偏移地址(低字单元)。中中断断向向量量表表:存存放放中中断断向向量量的的表表,位位于于内内存存空空间间的的最最低低地地址址单单元元,长长1KB。共共可可容容纳纳256个个中中断断向向量量(25641024)。)。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断类型码中断类型码1、中断类型码:、中断类型码:8086可以处理可以处理256个中断请求。每个中断个中断请求。每个中断请求均对应于唯一固定的类型码。被请求均对应于唯一固定的类型码。被0除类型码是除类型码是0,单步,单步为为1; NMI为为2;断点中断为;断点中断为3,溢出中断为,溢出中断为4;等。;等。类型码类型码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H 被被0 0除除0FH并口并口1 1(打印机)中(打印机)中断断1EH磁盘参数磁盘参数01H 单步中断单步中断10H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02H NMINMI11H设备检测设备检测20H程序结束程序结束03H 断点中断断点中断12H存储器检测存储器检测21HDOSDOS系统调用系统调用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用IBM PC/XT中断源的功能中断源的功能类型码类型码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H被被0除除0FH并口并口1(打印机)中断(打印机)中断1EH磁盘参数磁盘参数01H单步中断单步中断10H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02HNMI11H设备检测设备检测20H程序结束程序结束03H断点中断断点中断12H存储器检测存储器检测21HDOS系统调用系统调用04H溢出中断溢出中断13H软盘驱动程序软盘驱动程序22H结束地址结束地址05H打印屏幕打印屏幕14H通信驱动程序通信驱动程序23HCtrl-Break夭折键处理夭折键处理06H(保留)(保留)15H盒式磁带机驱动程序盒式磁带机驱动程序24H关键性错误处理关键性错误处理07H(保留)(保留)16H硬盘驱动程序硬盘驱动程序25H磁盘顺序读磁盘顺序读08H定时中断定时中断17H打印机驱动程序打印机驱动程序26H磁盘顺序写磁盘顺序写09H键盘中断键盘中断18HBASIC程序程序27H程序结束且驻留内存程序结束且驻留内存0AH保留的硬件中断保留的硬件中断19H引导(引导(BOOT)程序)程序28HDOS内部使用内部使用0BH异步串口异步串口2中断中断1AH年月日定时中断年月日定时中断292EHDOS保留使用保留使用0CH异步串口异步串口1中断中断1BH用户键盘用户键盘2FHDOS内部使用内部使用0DH并口并口2(硬磁盘)中断(硬磁盘)中断1CH用户定时器时标用户定时器时标303FHDOS保留使用保留使用0EH软盘中断软盘中断1DHCRT初始化参数初始化参数40FFH用户自定义用户自定义INTRINTRBIOSBIOS可调用可调用可调用可调用DOSDOS可调用可调用可调用可调用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用内部中断的种类内部中断的种类(1 1)除法出错中断)除法出错中断)除法出错中断)除法出错中断 类型号为类型号为类型号为类型号为00H00H 除法出错中断既不是外部硬件产生,也不是用软件指令除法出错中断既不是外部硬件产生,也不是用软件指令除法出错中断既不是外部硬件产生,也不是用软件指令除法出错中断既不是外部硬件产生,也不是用软件指令产生,而是产生,而是产生,而是产生,而是CPUCPU自身产生的,因此自身产生的,因此自身产生的,因此自身产生的,因此0 0型中断没有对应的中断型中断没有对应的中断型中断没有对应的中断型中断没有对应的中断指令,即指令系统中没有指令,即指令系统中没有指令,即指令系统中没有指令,即指令系统中没有INT 0INT 0这条指令。这条指令。这条指令。这条指令。(2 2)单步中断(陷阱中断)单步中断(陷阱中断)单步中断(陷阱中断)单步中断(陷阱中断) 类型号为类型号为类型号为类型号为01H01H 对单步中断要注意三点:对单步中断要注意三点:对单步中断要注意三点:对单步中断要注意三点:一一一一是所有类型的中断在其处理过是所有类型的中断在其处理过是所有类型的中断在其处理过是所有类型的中断在其处理过程中,程中,程中,程中,CPUCPU会自动地把标志寄存器会自动地把标志寄存器会自动地把标志寄存器会自动地把标志寄存器FLAGSFLAGS压入堆栈,然后压入堆栈,然后压入堆栈,然后压入堆栈,然后清除清除清除清除TFTF和和和和IFIF。因此当。因此当。因此当。因此当CPUCPU进入单步中断处理程序时,就不再处于单进入单步中断处理程序时,就不再处于单进入单步中断处理程序时,就不再处于单进入单步中断处理程序时,就不再处于单步工作方式,而以正常方式工作。只有在单步处理结束时,从步工作方式,而以正常方式工作。只有在单步处理结束时,从步工作方式,而以正常方式工作。只有在单步处理结束时,从步工作方式,而以正常方式工作。只有在单步处理结束时,从堆栈中弹出原来的标志,才能使堆栈中弹出原来的标志,才能使堆栈中弹出原来的标志,才能使堆栈中弹出原来的标志,才能使CPUCPU又回到单步方式。又回到单步方式。又回到单步方式。又回到单步方式。二二二二是通是通是通是通常程序编制好后,在常程序编制好后,在常程序编制好后,在常程序编制好后,在DEBUGDEBUG调试程序时可使用单步中断检查程调试程序时可使用单步中断检查程调试程序时可使用单步中断检查程调试程序时可使用单步中断检查程序,是通过跟踪命令序,是通过跟踪命令序,是通过跟踪命令序,是通过跟踪命令T T来实现单步运行。来实现单步运行。来实现单步运行。来实现单步运行。三三三三是是是是8086/80888086/8088指令系指令系指令系指令系统中没有设置或清除统中没有设置或清除统中没有设置或清除统中没有设置或清除TFTF标志的指令,但指令系统中的标志的指令,但指令系统中的标志的指令,但指令系统中的标志的指令,但指令系统中的PUSHFPUSHF和和和和POPFPOPF为程序员提供了置位或复位为程序员提供了置位或复位为程序员提供了置位或复位为程序员提供了置位或复位TFTF的手段。置位和复位的手段。置位和复位的手段。置位和复位的手段。置位和复位TFTF的的的的程序段如下所示:程序段如下所示:程序段如下所示:程序段如下所示:贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用; ;置位置位置位置位TFTF标志标志标志标志PUSHFPUSHFPOP AXPOP AXOR AX, 0100HOR AX, 0100HPUSH AXPUSH AXPOPFPOPF; ;复位复位复位复位TFTF标志标志标志标志PUSHFPUSHFPOP AXPOP AXAND AX, 0FEFFHAND AX, 0FEFFHPUSH AXPUSH AXPOPFPOPF(3 3) 断点中断断点中断断点中断断点中断 类型号为类型号为类型号为类型号为03H03H 设置断点实际上是把一条断点指令设置断点实际上是把一条断点指令设置断点实际上是把一条断点指令设置断点实际上是把一条断点指令INT 3INT 3插入程序中,插入程序中,插入程序中,插入程序中,CPUCPU每执行到断点处的每执行到断点处的每执行到断点处的每执行到断点处的INT 3INT 3指令便产生一个中断。指令便产生一个中断。指令便产生一个中断。指令便产生一个中断。(4 4)溢出中断)溢出中断)溢出中断)溢出中断 类型号为类型号为类型号为类型号为04H04H 在执行溢出中断指令在执行溢出中断指令在执行溢出中断指令在执行溢出中断指令INTOINTO时,若标志寄存器时,若标志寄存器时,若标志寄存器时,若标志寄存器FLAGSFLAGS中的中的中的中的溢出标志溢出标志溢出标志溢出标志OF=1OF=1,则产生一个类型号为,则产生一个类型号为,则产生一个类型号为,则产生一个类型号为4 4的内部中断,称为溢出的内部中断,称为溢出的内部中断,称为溢出的内部中断,称为溢出中断。中断。中断。中断。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用 对带符号数来说,溢出就意味着出错对带符号数来说,溢出就意味着出错对带符号数来说,溢出就意味着出错对带符号数来说,溢出就意味着出错(加、减运算),一(加、减运算),一(加、减运算),一(加、减运算),一旦产生应立即发现,而旦产生应立即发现,而旦产生应立即发现,而旦产生应立即发现,而CPUCPU并不知道当前处理的数据是无符号并不知道当前处理的数据是无符号并不知道当前处理的数据是无符号并不知道当前处理的数据是无符号数还是带符号数,只有程序员才明确这一点。因此通常在带符数还是带符号数,只有程序员才明确这一点。因此通常在带符数还是带符号数,只有程序员才明确这一点。因此通常在带符数还是带符号数,只有程序员才明确这一点。因此通常在带符号数的加、减法运算后面总是跟着号数的加、减法运算后面总是跟着号数的加、减法运算后面总是跟着号数的加、减法运算后面总是跟着INTOINTO指令,当标志寄存器的指令,当标志寄存器的指令,当标志寄存器的指令,当标志寄存器的OF=0OF=0时,则时,则时,则时,则INTOINTO指令不产生中断指令不产生中断指令不产生中断指令不产生中断,CPUCPU继续运行原程序;当继续运行原程序;当继续运行原程序;当继续运行原程序;当OF=1OF=1时,时,时,时,进入溢出中断处理程序进入溢出中断处理程序进入溢出中断处理程序进入溢出中断处理程序,打印出一个出错信息,在处,打印出一个出错信息,在处,打印出一个出错信息,在处,打印出一个出错信息,在处理程序结束时,不返回原程序继续运行,而是把控制交给操作理程序结束时,不返回原程序继续运行,而是把控制交给操作理程序结束时,不返回原程序继续运行,而是把控制交给操作理程序结束时,不返回原程序继续运行,而是把控制交给操作系统。系统。系统。系统。如下面的指令用来测试加法的溢出:如下面的指令用来测试加法的溢出:如下面的指令用来测试加法的溢出:如下面的指令用来测试加法的溢出:ADD AX ADD AX ,VALUVALUINTOINTO(5 5) 指令中断指令中断指令中断指令中断 在在在在8086/80888086/8088的指令系统中,当的指令系统中,当的指令系统中,当的指令系统中,当CPUCPU执行中断指令执行中断指令执行中断指令执行中断指令INT nINT n时,时,时,时,也能形成内部中断,其中也能形成内部中断,其中也能形成内部中断,其中也能形成内部中断,其中n n在理论上可取值在理论上可取值在理论上可取值在理论上可取值0 0255255。当。当。当。当n n0 0、1 1、3 3、4 4时,就是上述的四种内部中断。时,就是上述的四种内部中断。时,就是上述的四种内部中断。时,就是上述的四种内部中断。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用内部中断的特点内部中断的特点 (1)(1) 除除除除单步中断单步中断单步中断单步中断以外,所有内部中断都不能被屏蔽。以外,所有内部中断都不能被屏蔽。以外,所有内部中断都不能被屏蔽。以外,所有内部中断都不能被屏蔽。(2) (2) 所有内部中断不从外部接口中读取中断类型号也所有内部中断不从外部接口中读取中断类型号也所有内部中断不从外部接口中读取中断类型号也所有内部中断不从外部接口中读取中断类型号也不发送中断响应信号,即不执行中断响应的总线不发送中断响应信号,即不执行中断响应的总线不发送中断响应信号,即不执行中断响应的总线不发送中断响应信号,即不执行中断响应的总线周期。周期。周期。周期。(3) (3) 指令中断没有随机性,外中断是随机性的指令中断没有随机性,外中断是随机性的指令中断没有随机性,外中断是随机性的指令中断没有随机性,外中断是随机性的。指令。指令。指令。指令中断是由程序中指令引起的,指令位置事先已知。中断是由程序中指令引起的,指令位置事先已知。中断是由程序中指令引起的,指令位置事先已知。中断是由程序中指令引起的,指令位置事先已知。外中断是随机性的,由外中断是随机性的,由外中断是随机性的,由外中断是随机性的,由I/OI/O设备引起,何时引起事设备引起,何时引起事设备引起,何时引起事设备引起,何时引起事先未知。先未知。先未知。先未知。(4) (4) 除单步中断外,所有内部中断的优先权都比外部除单步中断外,所有内部中断的优先权都比外部除单步中断外,所有内部中断的优先权都比外部除单步中断外,所有内部中断的优先权都比外部中断的优先权高。中断的优先权高。中断的优先权高。中断的优先权高。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断向量和中断向量表中断向量和中断向量表2 中断向量中断向量:中断服务程序的入口地址中断服务程序的入口地址,包括段地址(存放,包括段地址(存放于高字单元)和偏移地址(存放于低字单元)。于高字单元)和偏移地址(存放于低字单元)。3 中断向量表中断向量表:存放中断向量的表格。位于内存空间的最低:存放中断向量的表格。位于内存空间的最低地址,长度地址,长度1KB,可容纳,可容纳256类中断向量(类中断向量(256 41024)。)。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中中断断向向量量和和中中断断向向量量表表贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用 已知中断类型码后,如何进入中断服务程序?已知中断类型码后,如何进入中断服务程序? 1、将中断类型码乘以将中断类型码乘以4,得到中断向量表的向量首址指针;,得到中断向量表的向量首址指针; 2、将断点(当前将断点(当前CS、IP的值)入栈保护;的值)入栈保护; 3、取取中中断断向向量量:把把向向量量表表指指针针所所指指的的4个个连连续续字字节节的的内内容容作作为为中中断服务程序的入口地址,分别送给断服务程序的入口地址,分别送给IP和和CS; 4、按新的按新的CS:IP指针执行中断服务程序。指针执行中断服务程序。中断中断中断中断类型码的获取类型码的获取类型码的获取类型码的获取NMINMI、断点中断、溢出中断、被、断点中断、溢出中断、被、断点中断、溢出中断、被、断点中断、溢出中断、被0 0除、单步中断等类型码除、单步中断等类型码除、单步中断等类型码除、单步中断等类型码固定。固定。固定。固定。INT NINT N软中断类型码由立即数软中断类型码由立即数软中断类型码由立即数软中断类型码由立即数N N给出。给出。给出。给出。外部中断读取中断类型码。外部中断读取中断类型码。外部中断读取中断类型码。外部中断读取中断类型码。中断响应过程中断响应过程贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用(FLAG)1000:150H3000:200H0: N40: N4+20: 0000内内 存存 、 、 0200H 3000H 、 、 、 MOV AX, 0 ADD AX, DX MOV DI, AX、 MOV BX,CX、 IRET、类型类型N中断子程中断子程响应中断前响应中断前 SS:SP 01501000堆栈堆栈执行执行IRET后后 (IP) (CS)(PSW)SS:SP 响应中断后响应中断后SS:SP (IP)=0200H(CS)=3000H中断向量表中断向量表0:0 3FFH0:3FFH0:0某中断源发申请中断,某中断源发申请中断,申请执行类型号为申请执行类型号为N的中断子程序的中断子程序中断响应过程中断响应过程贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断向量的设置方法中断向量的设置方法用三种方法来为中断类型用三种方法来为中断类型用三种方法来为中断类型用三种方法来为中断类型N N设置中断向量设置中断向量设置中断向量设置中断向量1) 1) 直接装入法直接装入法直接装入法直接装入法PUSH DSPUSH DSXOR AX, AXXOR AX, AXMOV DS, AXMOV DS, AXMOV BX, N*4MOV BX, N*4MOV AX, OFFSET NEWINTMOV AX, OFFSET NEWINTMOV WORD PTR BX, AXMOV WORD PTR BX, AXMOV AX, SEG NEWINTMOV AX, SEG NEWINTMOV WORD PTR BX+2,AXMOV WORD PTR BX+2,AXPOP DSPOP DSNEWINT PROCNEWINT PROCIRETIRETNEWINT ENDPNEWINT ENDP、 、 、 、 、贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断向量的设置方法中断向量的设置方法2) 2) 使用串送存指令装入法使用串送存指令装入法使用串送存指令装入法使用串送存指令装入法MOV AX, 0MOV AX, 0MOV ES, AXMOV ES, AXMOV DI, N*4MOV DI, N*4MOV AX, OFFSET NEWINTMOV AX, OFFSET NEWINTCLDCLDSTOSWSTOSWMOV AX, SEG NEWINTMOV AX, SEG NEWINTSTOSWSTOSW贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断向量的设置方法中断向量的设置方法3) 3) 使用使用使用使用DOSDOS功能调用设置中断向量功能调用设置中断向量功能调用设置中断向量功能调用设置中断向量 设置中断向量是把由设置中断向量是把由设置中断向量是把由设置中断向量是把由ALAL指指指指定的中断类型定的中断类型定的中断类型定的中断类型N N的中断向量的中断向量的中断向量的中断向量DSDS:DXDX放置在中断向量表中。放置在中断向量表中。放置在中断向量表中。放置在中断向量表中。预置:预置:预置:预置:(AH)=25H (AH)=25H 功能号功能号功能号功能号 ( AL)=N ( AL)=N 中断类型号中断类型号中断类型号中断类型号 DS DS:DX=DX=中断向量中断向量中断向量中断向量执行:执行:执行:执行:INT 21HINT 21H例如:例如:PUSH DSMOV AX, SEG NEWINTMOV DS, AXMOV DX, OFFSET NEWINTMOV AL, NMOV AH, 25HINT 21HPOP DS贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断向量的设置方法中断向量的设置方法 例:利用例:利用 INT 21H 设置中断向量设置中断向量MOV AH,25H; DOS功能调用号功能调用号25H AHMOV AL,40H; 将设置的中断类型码将设置的中断类型码 ALMOV DS,SEG USERINTMOV DX,OFFSET USERINT; 入口参数:入口参数:中断服务程序的入口地址中断服务程序的入口地址 DS:DXINT 21H 执行之后,中断服务程序的入口地址值将放入中断向量执行之后,中断服务程序的入口地址值将放入中断向量表中表中n4处连续的处连续的4个单元中。个单元中。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用7.1.3 中断响应与处理中断响应与处理 8086的的保留中断和其它软件中断保留中断和其它软件中断由指令给出中断类型,所以不执行中由指令给出中断类型,所以不执行中断响应周期;断响应周期; 非屏蔽中断非屏蔽中断NMI的类型码固定,也不执行中断响应周期;的类型码固定,也不执行中断响应周期; 可可可可屏屏屏屏蔽蔽蔽蔽中中中中断断断断INTRINTR:CPUCPU将将将将执执执执行行行行持持持持续续续续两两两两个个个个总总总总线线线线周周周周期期期期的的的的中中中中断断断断响响响响应应应应周周周周期期期期。第第第第一一一一个个个个总总总总线线线线周周周周期期期期 有有有有效效效效,向向向向外外外外设设设设送送送送出出出出的的的的中中中中断断断断应应应应答答答答信信信信号号号号;第第第第二二二二个个个个总总总总线线线线周周周周期期期期 再再再再次次次次有有有有效效效效,表表表表示示示示外外外外设设设设应应应应送送送送出出出出中中中中断断断断类类类类型码。型码。型码。型码。CPUCPU将在将在将在将在T4T4周期前沿读取中断类型码。周期前沿读取中断类型码。周期前沿读取中断类型码。周期前沿读取中断类型码。类型码类型码 INTACLKAD7AD0T1T2T3T4第一个第一个中断响应周期中断响应周期T1T2T3T4第二个第二个中断响应周期中断响应周期贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断响应周期时序中断响应周期时序CPU从引脚从引脚INTA 发中断响应信号,发中断响应信号, 接口芯片接收此信号,把中断类型号准备好;同时接口芯片接收此信号,把中断类型号准备好;同时ISRi=1,IRRi=0。CPU再从引脚再从引脚INTA 发中断响应信号,发中断响应信号, 接口芯片接此信号后,将中断类型号送至数据总线上;接口芯片接此信号后,将中断类型号送至数据总线上;CPU从数据总线获取中断类型号。从数据总线获取中断类型号。向量类型向量类型 INTACLKAD7AD0T1T2T3T4第第第第 一一一一 个个个个中断响应周期中断响应周期中断响应周期中断响应周期T1T2T3T4第第第第 二二二二 个个个个中断响应周期中断响应周期中断响应周期中断响应周期贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断处理的全过程:中断处理的全过程:检测检测响应响应服务服务执行用户中断过程执行用户中断过程执行用户中断过程执行用户中断过程标志寄存器入栈标志寄存器入栈令令TEMP=TF清清IF和和TFCS、IP入栈入栈调用中断处理程序调用中断处理程序调用中断处理程序调用中断处理程序IP、CS 出栈出栈标志寄存器出栈标志寄存器出栈返回被中断的返回被中断的主程序断点处主程序断点处I IR RE ET T当前指令当前指令结束否?结束否?软件中断?软件中断?INTR?TF=1?IF=1?执行下一条指令执行下一条指令形形成成中中断断类类型型码码进入中进入中断响应断响应周期,取周期,取类型码类型码YNMI?YYYYYNNNNNN贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用中断服务程序(用户自行编制):中断服务程序(用户自行编制):保护现场:保存保护现场:保存CPU内部各寄存器的内容,以便在服务程序中使用;内部各寄存器的内容,以便在服务程序中使用;开总中断:将开总中断:将IF置置1,使,使CPU在中断服务期间仍能响应更高级的在中断服务期间仍能响应更高级的INTR请请求;求;具体处理:用户的中断服务具体处理:用户的中断服务关总中断:将关总中断:将IF位清位清0;恢复现场:将入栈保护的各寄存器内容依次弹出;恢复现场:将入栈保护的各寄存器内容依次弹出;中断返回:执行中断返回:执行IRET指令,指令,CPU将自动弹出给将自动弹出给IP、CS、FLAGS,就可,就可以接着执行被中断的原程序;以接着执行被中断的原程序; 开总中断:再次将开总中断:再次将IF位置位置1,使返回后能够重新响应,使返回后能够重新响应贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用外部中断源的管理外部中断源的管理 多个外部硬件中断源共用一条多个外部硬件中断源共用一条INTR线时,要在程序中采取线时,要在程序中采取一定措施或用外部硬件解决中断源的一定措施或用外部硬件解决中断源的优先权排列和多级中断优先权排列和多级中断的嵌套的嵌套等。等。中断优先权中断优先权(优先级):中断优先权就是为每个中断源所确(优先级):中断优先权就是为每个中断源所确定的响应级别。定的响应级别。软件排序软件排序:CPU响应中断后,在程序中用查询的方法判定外响应中断后,在程序中用查询的方法判定外设的中断请求。设的中断请求。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用外部中断源的管理外部中断源的管理软件查询软件查询排序的特点是:排序的特点是:查询次序查询次序即优先权排序,最先被即优先权排序,最先被询问的故障具有最高优先级;节省硬件;修改方便,只要询问的故障具有最高优先级;节省硬件;修改方便,只要改变程序中的查询次序即可;由询问转至真正的服务程序改变程序中的查询次序即可;由询问转至真正的服务程序入口时间长,在中断源较多的情况下执行速度较慢。入口时间长,在中断源较多的情况下执行速度较慢。硬件排序硬件排序:采用:采用优先权的编码电路优先权的编码电路,对各种外部硬中断进,对各种外部硬中断进行排队。还有菊花链式硬件排序电路,以及中断控制集成行排队。还有菊花链式硬件排序电路,以及中断控制集成芯片芯片8259A贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用软件法排序的接口电路示意图软件法排序的接口电路示意图贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用软件查询程序流程图软件查询程序流程图贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用硬件优先权排序电路硬件优先权排序电路贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用7.1.4 非屏蔽中断非屏蔽中断NMIIBM PC/XT的的NMI来源于三方面:来源于三方面:存储器奇偶校验错误PCKI/O通道奇偶校验错误IOCHCK协处理器产生异常N.P.NPI三种信号通过三种信号通过NMI屏蔽触发器,向屏蔽触发器,向CPU的的NMI引脚送出;引脚送出;系系统统上上电电之之初初,RESET信信号号先先将将NMI屏屏蔽蔽触触发发器器清清0。等等系统自检完成之后,再写入控制字解除对系统自检完成之后,再写入控制字解除对NMI的屏蔽。的屏蔽。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用7.1.5 可编程中断控制器可编程中断控制器8259一、一、8259性能概述性能概述1. 具有具有8级中断优先控制,通过级连可以扩展至级中断优先控制,通过级连可以扩展至64级优先权控制;级优先权控制;2. 每一级中断都可以通过初始设置为允许或屏蔽状态;每一级中断都可以通过初始设置为允许或屏蔽状态;3. 8259的工作方式,可以通过编程进行设置,因此,使用非常灵的工作方式,可以通过编程进行设置,因此,使用非常灵活;活;4. 8259采用采用NMOS制造工艺,只需要单一的制造工艺,只需要单一的+5V电源。电源。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用二、二、8259A的内部结构和工作原理的内部结构和工作原理贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用8259A的内部结构和工作原理的内部结构和工作原理数据总线缓冲器:数据总线缓冲器:它是它是8259A与系统数据总线的接口,是与系统数据总线的接口,是8位双向三态位双向三态缓冲器。缓冲器。CPU与与8259A之间的控制命令信息、状态信息以及中断类型信之间的控制命令信息、状态信息以及中断类型信息,都是通过该缓冲器传送的。息,都是通过该缓冲器传送的。读读/写控制逻辑:写控制逻辑:CPU通过它实现对通过它实现对8259A的读的读/写操作。写操作。级连缓冲器:级连缓冲器:用以实现用以实现8259A芯片之间的级连,使得中断源可以由芯片之间的级连,使得中断源可以由8级级扩展至扩展至64级。级。控制逻辑电路:控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。对整个芯片内部各部件的工作进行协调和控制。中断请求寄存器中断请求寄存器IRR:8位,用以分别保存位,用以分别保存8个中断请求信号,当相应的个中断请求信号,当相应的中断请求输入引脚有中断请求时,该寄存器的相应位置中断请求输入引脚有中断请求时,该寄存器的相应位置1。中断屏蔽寄存器中断屏蔽寄存器IMR:8位,相应位用以对位,相应位用以对8个中断源的中断请求信号进个中断源的中断请求信号进行屏蔽控制。当其中某位置行屏蔽控制。当其中某位置”0”时,则相应的中断请求可以向时,则相应的中断请求可以向CPU提提出;否则,相应的中断请求被屏蔽,即不允许向出;否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。该提出中断请求。该寄存器的内容为寄存器的内容为8259A的操作命令字的操作命令字OCW1,可以由程序设置或改变。,可以由程序设置或改变。中断服务寄存器中断服务寄存器ISR: 8位,当位,当CPU正在处理某个中断源的中断请求时,正在处理某个中断源的中断请求时,ISR寄存器中的相应位置寄存器中的相应位置1。优先级比较器优先级比较器PR:用以比较正在处理的中断和刚刚进入的中断请求之间用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。的优先级别,以决定是否产生多重中断或中断嵌套。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用8259A的外部引脚的外部引脚贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用8259A的外部引脚的外部引脚D7-D0:双向数据输入双向数据输入/输出引脚,用以与输出引脚,用以与CPU进行信息交换。进行信息交换。IR7-IR0:8级中断请求信号输入引脚。级中断请求信号输入引脚。INT:中断请求信号输出引脚,高电平有效,用以向中断请求信号输出引脚,高电平有效,用以向CPU发中断请求,应接在发中断请求,应接在CPU的的INTR输入端。输入端。INTA:中断响应应答信号输入引脚,低电平有效,接在中断响应应答信号输入引脚,低电平有效,接在CPU的中断应答信号输的中断应答信号输出端。出端。RD、WR:读读/写控制信号输入引脚,低电平有效,实现对写控制信号输入引脚,低电平有效,实现对8259A内部有关寄存内部有关寄存器内容的读操作。器内容的读操作。CS:片选信号输入引脚,低电平有效,决定了片选信号输入引脚,低电平有效,决定了8259A的端口地址范围。的端口地址范围。A0:8259A两组内部寄存器的选择信号输入引脚,决定两组内部寄存器的选择信号输入引脚,决定8259A的端口地址。的端口地址。CAS2-CAS0:级连信号引脚,当级连信号引脚,当8259A为主片时,为输出;否则为输入,与信为主片时,为输出;否则为输入,与信号配合,实现芯片的级连,这三个引脚信号的不同组合号配合,实现芯片的级连,这三个引脚信号的不同组合000111,刚好对应于,刚好对应于8个从片。个从片。SP/EN:为级连管理信号输入引脚,在非缓冲方式下,若为级连管理信号输入引脚,在非缓冲方式下,若8259A在系统中作从在系统中作从片使用,则片使用,则SP=1;否则;否则SP=0;在缓冲方式下,用作;在缓冲方式下,用作8259A外部数据总线缓冲外部数据总线缓冲器的启动信号。器的启动信号。+5V、GND:电源和接地引脚。电源和接地引脚。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用三、三、8259A的工作过程的工作过程1.当有一条或若干条中断请求输入(当有一条或若干条中断请求输入(IR7-IR0)有效时,则使中断请求寄存)有效时,则使中断请求寄存器的器的IRR的相应位置位。的相应位置位。2.若若CPU处于开中断状态,则在当前指令执行完之后,响应中断,并且发处于开中断状态,则在当前指令执行完之后,响应中断,并且发应答信号(两个连续的应答信号(两个连续的INTA#负脉冲)。负脉冲)。3.第一个第一个INTA#负脉冲到达时,负脉冲到达时,IRR的锁存功能失效,对于的锁存功能失效,对于IR7-IR0上发来上发来的中断请求信号不予理睬。的中断请求信号不予理睬。4.使中断服务寄存器使中断服务寄存器ISR的相应位置的相应位置1,以便为中断优先级比较器的工作做,以便为中断优先级比较器的工作做好准备。好准备。5.使中断请求寄存器的相应位复位,即清除中断请求。使中断请求寄存器的相应位复位,即清除中断请求。6.第二个第二个INTA#负脉冲到达时,将中断类型寄存器中的内容负脉冲到达时,将中断类型寄存器中的内容ICW2,送到数,送到数据总线的据总线的D7-D0上,上,CPU以此作为相应中断的类型码。以此作为相应中断的类型码。7.若若ICW4中的中断结束位为中的中断结束位为1,那么,第二个,那么,第二个INTA#负脉冲结束时,负脉冲结束时,8259A将将ISR寄存器的相应位清零。否则,直至中断服务程序执行完毕,寄存器的相应位清零。否则,直至中断服务程序执行完毕,才能通过输出操作命令字才能通过输出操作命令字EOI,使该位复位。,使该位复位。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用四、四、8259A的工作方式的工作方式1.优先权的管理方式优先权的管理方式2.中断源的屏蔽方式中断源的屏蔽方式3.结束中断处理的方式结束中断处理的方式4.系统总线的连接方式系统总线的连接方式 5.引入中断的请求方式引入中断的请求方式贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用一一) 优先权的管理方式优先权的管理方式1. 全嵌套方式全嵌套方式 这是这是8259A默认的优先权设置方式,在全嵌套方式下,默认的优先权设置方式,在全嵌套方式下,8259A所管所管理的理的8级中断优先权是固定不变的,其中级中断优先权是固定不变的,其中IR0的中断优先级最高,的中断优先级最高,IR7的中的中断优先级最低。断优先级最低。 CPU响应中断后,请求中断的中断源中,优先级最高的中断源,响应中断后,请求中断的中断源中,优先级最高的中断源,在中断服务寄存器在中断服务寄存器ISR中的相应位置位,而且把它的中断矢量送至系统中的相应位置位,而且把它的中断矢量送至系统数据总线,在此中断源的中断服务完成之前,与它同级或优先级低的中数据总线,在此中断源的中断服务完成之前,与它同级或优先级低的中断源的中断请求被屏蔽,只有优先级比它高的中断源的中断请求才是运断源的中断请求被屏蔽,只有优先级比它高的中断源的中断请求才是运算的,从而出现中断嵌套。算的,从而出现中断嵌套。2. 特殊全嵌套方式特殊全嵌套方式 特殊全嵌套方式与全嵌套方式基本相同,所不同的是,当特殊全嵌套方式与全嵌套方式基本相同,所不同的是,当CPU处理处理某一级中断时,如果有同级中断请求,那么某一级中断时,如果有同级中断请求,那么CPU也会作出响应,从而形也会作出响应,从而形成了对同一级中断的特殊嵌套。成了对同一级中断的特殊嵌套。 特殊全嵌套方式通常应用在有特殊全嵌套方式通常应用在有8259A级连的系统中,在这种情况下,级连的系统中,在这种情况下,对主对主8259A编程时,通常使它工作在特殊全嵌套方式下。这样,一方面,编程时,通常使它工作在特殊全嵌套方式下。这样,一方面,CPU对于优先级别较高的主片的中断输入是允许的,另一方面,对于优先级别较高的主片的中断输入是允许的,另一方面,CPU对对于来自同一从片的优先级别较高(但对于主片来讲,优先级别是相同的)于来自同一从片的优先级别较高(但对于主片来讲,优先级别是相同的)的中断也是允许、能够响应的。的中断也是允许、能够响应的。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用3. 优先级自动循环方式优先级自动循环方式 在实际应用中,中断源优先级的情况是比较复杂的,要求在实际应用中,中断源优先级的情况是比较复杂的,要求8级中断级中断的优先级在系统工作过程中,可以动态改变。即一个中断源的中断请求的优先级在系统工作过程中,可以动态改变。即一个中断源的中断请求被响应之后,其优先级自动降为最低。系统启动时,被响应之后,其优先级自动降为最低。系统启动时,8级中断优先级默级中断优先级默认为认为IR0IR7,这时,刚好,这时,刚好IR4发出了中断请求,发出了中断请求,CPU响应之后,若响应之后,若8259A工作在优先级自动循环方式下,则中断优先级自动变为工作在优先级自动循环方式下,则中断优先级自动变为IR5、IR6、IR7、IR0、 IR1、 IR2、 IR3、 IR4。4.优先级特殊循环方式优先级特殊循环方式 优先级特殊循环方式与自动循环方式相比,只有一点不同,即初始优先级特殊循环方式与自动循环方式相比,只有一点不同,即初始化的优先级是由程序控制的,而不是默认的化的优先级是由程序控制的,而不是默认的IR0IR7。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用二二) 中断源的屏蔽方式中断源的屏蔽方式1. 普通屏蔽方式普通屏蔽方式 8259A的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。若相应位为若相应位为“1”,则中断请求不能送,则中断请求不能送CPU。屏蔽是通过对屏蔽寄存器。屏蔽是通过对屏蔽寄存器IMR的编程(操作命令字的编程(操作命令字OCW1),来加以设置和改变的。),来加以设置和改变的。2. 特殊屏蔽方式特殊屏蔽方式 有些场合下,希望一个中断服务程序的运行过程中,能动态地改变有些场合下,希望一个中断服务程序的运行过程中,能动态地改变系统中的中断优先级结构,即在中断处理的一部分,禁止低级中断,而系统中的中断优先级结构,即在中断处理的一部分,禁止低级中断,而在中断处理的另一部分,又能够允许低级中断,于是引入了对中断的特在中断处理的另一部分,又能够允许低级中断,于是引入了对中断的特殊屏蔽方式。殊屏蔽方式。 设置了特殊屏蔽方式后,用设置了特殊屏蔽方式后,用OCW1对屏蔽寄存器中的某一位复位时,对屏蔽寄存器中的某一位复位时,同时也会使中断服务寄存器同时也会使中断服务寄存器ISR中的相应位复位,这样就不只屏蔽了正中的相应位复位,这样就不只屏蔽了正在处理的等级中断,而且真正开放了其它优先级别较低的中断请求。在处理的等级中断,而且真正开放了其它优先级别较低的中断请求。 特殊屏蔽是在中断处理程序中使用的,用了这种方式之后,尽管系特殊屏蔽是在中断处理程序中使用的,用了这种方式之后,尽管系统正在处理高级中断,但对外界来讲,只有同级中断被屏蔽,而允许其统正在处理高级中断,但对外界来讲,只有同级中断被屏蔽,而允许其它任何级别的中断请求。它任何级别的中断请求。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用三三) 结束中断的处理方式结束中断的处理方式1. 中断自动结束方式中断自动结束方式 这种方式仅适用于只有单片这种方式仅适用于只有单片8259A的场合,在这种方式下,系统一旦响应的场合,在这种方式下,系统一旦响应中断,那么中断,那么CPU在发第二个在发第二个INTA#脉冲时,就会使中断响应寄存器脉冲时,就会使中断响应寄存器ISR中相应位中相应位复位,这样一来,虽然系统在进行中断处理,但对于复位,这样一来,虽然系统在进行中断处理,但对于8259A来讲,来讲,ISR没有相应没有相应的指示,就象中断处理结束,返回主程序之后一样。的指示,就象中断处理结束,返回主程序之后一样。CPU可以再次响应任何级可以再次响应任何级别的中断请求。别的中断请求。2. 一般的中断结束方式一般的中断结束方式 一般的中断结束方式适用用在全嵌套的情况下,当一般的中断结束方式适用用在全嵌套的情况下,当CPU用输出指令向用输出指令向8259A发一般中断结束命令发一般中断结束命令OCW2时,时,8259A才会使中断响应寄存器才会使中断响应寄存器ISR中优先中优先级别最高的位复位。级别最高的位复位。3. 特殊的中断结束方式特殊的中断结束方式 在特殊全嵌套模式下,系统无法确定哪一级中断为最后相应和处理的中断,在特殊全嵌套模式下,系统无法确定哪一级中断为最后相应和处理的中断,也就是说,也就是说,CPU无法确定当前所处理的是哪级中断,这时就要采用特殊的中断无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束方式。结束方式。 特殊的中断结束方式是指在特殊的中断结束方式是指在CPU结束中断处理之后,向结束中断处理之后,向8259A发送一个特发送一个特殊的殊的EOI中断结束命令,这个特殊的中断结束中断结束命令,这个特殊的中断结束EOI命令,明确指出了中断响应寄命令,明确指出了中断响应寄存器存器ISR中需要复位的位。中需要复位的位。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用四四) 系统总线的连接方式系统总线的连接方式1. 缓冲方式缓冲方式 在多片在多片8259A级连的大系统中,级连的大系统中,8259A通过外部总线驱动器和数据通过外部总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下,总线相连,这就是缓冲方式。在缓冲方式下,8259的输出信号作为缓冲的输出信号作为缓冲器的启动信号,用来启动总线驱动器,在器的启动信号,用来启动总线驱动器,在8259A与与CPU之间进行信息交之间进行信息交换。换。2. 非缓冲方式非缓冲方式 当系统中只有一片或几片当系统中只有一片或几片8259A芯片时,可以将数据总线直接与系芯片时,可以将数据总线直接与系统数据总线相连,这时统数据总线相连,这时8259A处于非缓冲方式下。在这种方式下,处于非缓冲方式下。在这种方式下,8259A的作为输入端设置,主片应接高电平,从片应接低电平。的作为输入端设置,主片应接高电平,从片应接低电平。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用五五) 引入中断请求的方式引入中断请求的方式1. 边沿触发方式边沿触发方式 8259A将中断请求输入端出现的上升沿,作为中断请求信号,上升沿后相应引脚,将中断请求输入端出现的上升沿,作为中断请求信号,上升沿后相应引脚,可以一直保持高电平。可以一直保持高电平。2. 电平触发方式电平触发方式 8259A将中断请求输入端出现的高电平作为中断请求信号,在这种方式下,必须将中断请求输入端出现的高电平作为中断请求信号,在这种方式下,必须注意:中断响应之后,高电平必须及时撤除,否则,在注意:中断响应之后,高电平必须及时撤除,否则,在CPU响应中断,开中断响应中断,开中断之后,会引起第二次不应该有的中断。之后,会引起第二次不应该有的中断。3. 中断查询方式中断查询方式 当系统中的中断源很多,超过当系统中的中断源很多,超过64个时,则可以使个时,则可以使8259A工作在查询方式下,中断工作在查询方式下,中断查询方式的特点是:查询方式的特点是:a . 中断源仍往中断源仍往8259A发中断请求,但发中断请求,但8259A却不使用却不使用INT信号向信号向CPU发中断请求信发中断请求信号。号。b. CPU内部的中断允许标志复位,所以内部的中断允许标志复位,所以CPU对对INT引脚上出现的中断请求呈禁止引脚上出现的中断请求呈禁止状态。状态。c. CPU 用软件查询的方法来确定中断源,从而实现对设备的中断服务,可见,中用软件查询的方法来确定中断源,从而实现对设备的中断服务,可见,中断查询方式,既有中断的特点,又有查询的特点,从外设的角度来看,是靠中断查询方式,既有中断的特点,又有查询的特点,从外设的角度来看,是靠中断的方式来请求服务,但从断的方式来请求服务,但从CPU的角度来看,是用查询方式来确定发中断请求的角度来看,是用查询方式来确定发中断请求的中断源。的中断源。贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用五、五、8259A的控制字的控制字 8259A的命令字有两种。一种是初始化命令字的命令字有两种。一种是初始化命令字(ICW),在在8259A启动之前写入,使其处于预定的初始状态。另一种启动之前写入,使其处于预定的初始状态。另一种是操作命令字是操作命令字(OCW),使处于初始状态的,使处于初始状态的8259去执行具体的去执行具体的某种操作方式。操作命令字可在某种操作方式。操作命令字可在8259初始化后的任何时刻初始化后的任何时刻写入。写入。 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用1.1.初始化命令字初始化命令字1 1)ICWICW1 1:芯片控制初始化命令字:芯片控制初始化命令字, ,在在A A0 0=0,D=0,D4 4=1=1时写入。时写入。 1:需ICW4 0:不需ICW41:单8259A0:多片8259A 1:间隔为40:间隔为81:电平触发0:边沿触发任 意 值X1LTIMAXSNGLIC4X A0 D7 D6 D5 D4 D3 D2 D1 D00ICW1标志贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用2)ICW2:设置中断向量码初始化命令字。:设置中断向量码初始化命令字。 T5T4T30T600T7 A0 D7 D6 D5 D4 D3 D2 D1 D01贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用3)ICW3:主片:主片/从片初始化命令字。从片初始化命令字。 000ID20ID1ID00 A0 D7 D6 D5 D4 D3 D2 D1 D01三位编码对应从片接主控片的IR编号从属片ICW3 A0 D7 D6 D5 D4 D3 D2 D1 D011:相应IR端接从片0:未接从片主控片ICW3贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用4)ICW4:方式控制字初始化命令字。:方式控制字初始化命令字。ICW4用来设定用来设定8259A的工作模式。的工作模式。 1:86/88模式0:80/85模式1:自动EOI0:非自动结束0X:非缓冲方法10:缓冲方式/从属片11:缓冲方式/主控片1:特殊完全嵌套方式0:一般完全嵌套方式0SFNMBUFM/S0AEOIPM0 A0 D7 D6 D5 D4 D3 D2 D1 D01ICW4标识码贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用初始化流程初始化流程 贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用2.2.操作命令字操作命令字1)OCW1:中断屏蔽操作命令字,在:中断屏蔽操作命令字,在A0=1时写入到中断屏蔽寄存器时写入到中断屏蔽寄存器IMR中,中,当某一位为当某一位为1时,就屏蔽与之相应的时,就屏蔽与之相应的IR输入。输入。 M5 M4 M3 M2 M6 M1 M0 M7 A0 D7 D6 D5 D4 D3 D2 D1 D0 1贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用2)OCW2:优先循环方式和中断结束方式操作字。其中:优先循环方式和中断结束方式操作字。其中R是优先级循环控是优先级循环控制位,制位,R=1为循环优先级,为循环优先级,R=0 为固定优先级。为固定优先级。 ISRi(IRi)序号0 不设EIO命令1 EIO命令EOI00L2SLL1L0R A0 D7 D6 D5 D4 D3 D2 D1 D00OCW2标志 SL=0时,L2-L0无效SL=1时,L2-L0有效0 非设循环优先级方式1 循环优先级方式贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用3)OCW3:特殊屏蔽方式和查询方式操作字。:特殊屏蔽方式和查询方式操作字。OCW3的功能有三个方面:的功能有三个方面:一是设置和撤消特殊屏蔽方式,二是设置中断查询方式,三是用来设置一是设置和撤消特殊屏蔽方式,二是设置中断查询方式,三是用来设置对对8259A内部的寄存器的读出命令。在内部的寄存器的读出命令。在A0=0,D4D3=01时写入时写入OCW3。 0:无效10:可读IRR11:可读ISR1:允许查询0:不查询0:无效10:复位特殊屏蔽11:设置特殊屏蔽SMM01PESMMRRRIS0 A0 D7 D6 D5 D4 D3 D2 D1 D00OCW3标志贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用六、六、8259A的级联的级联贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用七、编程举例七、编程举例贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用考题分析考题分析贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用贵州大学微机原理贵州大学微机原理及复习典型可编程及复习典型可编程接口芯片及应用接口芯片及应用
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号