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

下载本文档

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

文档简介

1、第七章第七章 中断技术中断技术1 中断的基本概念中断的基本概念2 8086中断系统中断系统3 可编程中断控制器可编程中断控制器8259A及应用及应用1 中断的基本概念中断的基本概念 “ “中断中断” ” 是指这样一个过程:是指这样一个过程: CPUCPU在程序运行中,在程序运行中,被内部或外部的事件所打断,转去执行一段预先安排被内部或外部的事件所打断,转去执行一段预先安排好的中断子服务程序;服务结束后,又返回原来的断好的中断子服务程序;服务结束后,又返回原来的断点,继续执行原来的程序,整个中断过程由计算机的点,继续执行原来的程序,整个中断过程由计算机的中断系统,配合用户设计的中断服务程序来实现

2、。中断系统,配合用户设计的中断服务程序来实现。主主程程序序中中断断服服务务子子程程序序中断响应中断响应中断返回中断返回中断申请中断申请中断源中断源断点断点中断系统中断系统:实现中断功能的控制逻辑实现中断功能的控制逻辑中断系统的基本功能中断系统的基本功能: (1 1)实现中断响应、中断处理(服务)、中断返回和中断屏蔽;)实现中断响应、中断处理(服务)、中断返回和中断屏蔽;(2 2)实现中断优先级排队(管理);)实现中断优先级排队(管理);(3 3)实现中断嵌套。)实现中断嵌套。一、中断过程一、中断过程 一个完整的中断过程包括中断请求、中断响应、中断服务一个完整的中断过程包括中断请求、中断响应、中

3、断服务(处理)和中断返回四个阶段(处理)和中断返回四个阶段 。1. 中断源和中断请求中断源和中断请求中断源中断源:能引起中断的设备或事件。能引起中断的设备或事件。中断源可以是中断源可以是CPUCPU内部的也可以是外部的,一般有以下内部的也可以是外部的,一般有以下几种中断源几种中断源: (1)外设的请求,如外设的请求,如 I IO O接口的传送请求,实时时钟中断接口的传送请求,实时时钟中断等。等。(2 2)由硬件故障引起的。如电源掉电、奇偶校验错,或协处)由硬件故障引起的。如电源掉电、奇偶校验错,或协处理器中断请求等。理器中断请求等。(3 3)由程序预先安排的中断指令()由程序预先安排的中断指令

4、(INT nINT n)引起,或)引起,或 CPUCPU内内部运算产生的某些错误引起的。如除法出错、运算溢出、程部运算产生的某些错误引起的。如除法出错、运算溢出、程序调试中设置断点等。序调试中设置断点等。中断请求中断请求:中断源向中断源向CPUCPU发出的中断申请。发出的中断申请。2中断响应中断响应 (以(以 外设请求中断为例)外设请求中断为例) CPUCPU在每一条指令执行结束后,会自动地检测在每一条指令执行结束后,会自动地检测“中断请求中断请求”若有中断请求,且若有中断请求,且CPU又允许中断,则又允许中断,则CPU进入中断响应周期,进入中断响应周期,在这段时间,在这段时间,CPU要通过其

5、内部自动完成以下几件事:要通过其内部自动完成以下几件事:(1 1)关中断。(不允许)关中断。(不允许CPUCPU响应其它中断请求)响应其它中断请求)(2 2)保护断点。断点地址压入堆栈)保护断点。断点地址压入堆栈(3 3)查中断源。由硬件设计封锁电路或软件查询或使用专用的)查中断源。由硬件设计封锁电路或软件查询或使用专用的接口对多个中断源进行排队,同时只允许一个中断源得到响应。接口对多个中断源进行排队,同时只允许一个中断源得到响应。(4 4)将中断服务程序的入口地址送至)将中断服务程序的入口地址送至CSCS:IPIP3中断处理(执行中断服务子程序)中断处理(执行中断服务子程序) 保护现场保护现

6、场(把需要保护的寄存器的内容压入堆栈)(把需要保护的寄存器的内容压入堆栈) 开中断开中断(允许(允许CPU响应其它中断,实现中断嵌套)响应其它中断,实现中断嵌套) 中断服务中断服务(执行中断服务子程序)(执行中断服务子程序) 关中断(不允许关中断(不允许CPU响应其它中断)响应其它中断) 恢复现场恢复现场 (把保护在堆栈中的寄存器的内容弹出到相应的寄存器中)(把保护在堆栈中的寄存器的内容弹出到相应的寄存器中) 开中断开中断(允许(允许CPU响应其它中断)响应其它中断)4中断返回中断返回 在中断服务子程序中通过执行中断返回命令,返回到主程序在中断服务子程序中通过执行中断返回命令,返回到主程序 8

7、0868086的中断返回指令为:的中断返回指令为: IRETIRET:可屏蔽外部中断返回指令:可屏蔽外部中断返回指令 NRETNRET:不可屏蔽外部中断返回指令:不可屏蔽外部中断返回指令二、中断识别及中断优先级管理二、中断识别及中断优先级管理 在实际系统中,往往有多个中断源,当一个中断源提出申在实际系统中,往往有多个中断源,当一个中断源提出申请,请,CPUCPU怎样知道是哪一个中断源在申请?当多个中断源同时申怎样知道是哪一个中断源在申请?当多个中断源同时申请中断,或在尚未处理完一个中断时又有一个新的中断源提出请中断,或在尚未处理完一个中断时又有一个新的中断源提出申请,申请, CPUCPU又如何

8、判断该为哪一个中断申请服务?这就需要进又如何判断该为哪一个中断申请服务?这就需要进行中断的识别和中断优先级的排队。行中断的识别和中断优先级的排队。1. 1. 中断优先级排队中断优先级排队 CPU实现中断优先级排队的方法有:实现中断优先级排队的方法有:软件查询法和向量中断法软件查询法和向量中断法(1)软件查询法(程序查询法)软件查询法(程序查询法) 当当CPUCPU响应中断后,在简单硬件接口电路的支持下,通过响应中断后,在简单硬件接口电路的支持下,通过查询程序以确定哪些外设申请中断并按事先确定的优先级别查询程序以确定哪些外设申请中断并按事先确定的优先级别确定查询的先后顺序,最先被查询的优先级别最

9、高确定查询的先后顺序,最先被查询的优先级别最高 。D0D1D7INTINTACPU中 断请 求锁 存 器CS译码ABIR0IR1IR7保护现场保护现场IR0请 求 ?读 中 断请 求IR1请 求 ?IR7请 求 ?恢复现场恢复现场0#中 断服务1#中 断服务7#中 断服务中断返回中断返回中断服务子程序入口中断服务子程序入口软件查询法的优点:硬件简单、改变外设的软件查询法的优点:硬件简单、改变外设的中断优先级而不必变更硬件连接。中断优先级而不必变更硬件连接。软件查询法的缺点:速度慢。占用软件查询法的缺点:速度慢。占用CPUCPU时间,时间,(2 2)向量中断法)向量中断法 在在CPUCPU响应中

10、断后,中断源提供一个地址信息,由该地址信响应中断后,中断源提供一个地址信息,由该地址信息对程序的执行进行导向,将程序引导到中断服务程序中去,息对程序的执行进行导向,将程序引导到中断服务程序中去,该地址信息称为中断向量或中断矢量(该地址信息称为中断向量或中断矢量( 一般为中断服务子程序一般为中断服务子程序的入口地址),这种中断称为向量中断。根据形成入口地址的的入口地址),这种中断称为向量中断。根据形成入口地址的机制不同,向量中断法又分为:机制不同,向量中断法又分为:简单硬件查询法和中断专用控制硬件法简单硬件查询法和中断专用控制硬件法 a. 简单硬件查询方式简单硬件查询方式菊花链法菊花链法 菊花链

11、法:是用硬件排队电路(菊花链电路)对中断源进菊花链法:是用硬件排队电路(菊花链电路)对中断源进行优先级排队,并将程序引导到相关的行优先级排队,并将程序引导到相关的I IO O中断服务程序的入中断服务程序的入口。口。 中 断 请求中 断 回答 INTA INTR接 口1接 口2接 口3CPU及及其其总总线线控控制制逻逻辑辑菊菊花花链链逻逻辑辑电电路路菊菊花花链链逻逻辑辑电电路路菊菊花花链链逻逻辑辑电电路路 1#中断回答中断回答 2#中断回答中断回答INTAINTR1INTR1菊花电路菊花电路优点:中断响应速度快。优点:中断响应速度快。缺点:各中断源的优先级团硬件连接固定缺点:各中断源的优先级团硬

12、件连接固定而不易修改。而不易修改。b. 中断控制专用硬件方式中断控制专用硬件方式 中断控制专用硬件方式是向量中断的典型方法。该方法中断控制专用硬件方式是向量中断的典型方法。该方法使用一个专门的中断优先级控制器使用一个专门的中断优先级控制器8259A8259A接口芯片来解决中断接口芯片来解决中断优先级的排队管理。优先级的排队管理。 2中断嵌套(多重中断)中断嵌套(多重中断) 当当 CPUCPU正在响应某一中断源的请求,即正在执行某个中断正在响应某一中断源的请求,即正在执行某个中断服务程序时,若有优先级更高的中断源申请中断,为了使级别服务程序时,若有优先级更高的中断源申请中断,为了使级别更高的中断

13、源能及时得到服务,更高的中断源能及时得到服务,CPUCPU就应暂停当前正在服务的级就应暂停当前正在服务的级别较低的服务程序而转入新的中断源服务,等新的级别较高的别较低的服务程序而转入新的中断源服务,等新的级别较高的中断服务程序执行完后,再返回到被暂停的中断服务程序继续中断服务程序执行完后,再返回到被暂停的中断服务程序继续执行,直至处理结束返回主程序。这种中断套中断的过程称为执行,直至处理结束返回主程序。这种中断套中断的过程称为中断嵌套或多重中断。中断嵌套或多重中断。返回返回返回 1#中 断请 求 2#中 断请 求 3#中 断请 求中 断中 断中 断主主程程序序入入口口1#中中断断服服务务入入口

14、口2#中中断断服服务务入入口口3#中中断断服服务务入入口口2 8086中断系统中断系统 8086微机系统具有一个简单灵活和功能强大的中断系统,微机系统具有一个简单灵活和功能强大的中断系统,可以处理多达可以处理多达256种不同类型的中断。种不同类型的中断。 8086CPU与中断有关的引脚与中断有关的引脚NMI:不可屏蔽中断请求:不可屏蔽中断请求INTR:可屏蔽中断请求:可屏蔽中断请求INTA:中断响应:中断响应8086CPU的中断指令的中断指令INT n 中断调用指令中断调用指令IRET 可屏蔽中断返回可屏蔽中断返回NRET 不可屏蔽中断返回不可屏蔽中断返回中断类型号中断类型号00-FFH00-

15、FFH在中断服务在中断服务子程序中子程序中一、一、8086的中断源分类的中断源分类 非屏 蔽 中 断 请求8086/8088CPU8259AINTRNMI可屏 蔽中 断中中断断逻逻辑辑除除法法出出错错单单步步TF=1INTO指指令令INT n指指令令8086中断中断硬件中断硬件中断(外部中断)(外部中断)不可屏蔽中断:不可屏蔽中断:(从(从NMI引脚进入)引脚进入)可屏蔽中断:可屏蔽中断:(从(从INTR引脚进入)引脚进入)当当IF=0,中断被禁止,中断被禁止当当IF=1,中断才能被,中断才能被CPU响应响应 只要只要CPU的的NMI引脚有申请,引脚有申请,CPU就响应该中断就响应该中断软件中

16、断软件中断(内部中断)(内部中断)1. 1. 由中断指令由中断指令INT nINT n引起的中断;引起的中断;2. 2. 由由CPUCPU的某些运算错误引起的中断(如除的某些运算错误引起的中断(如除法出错、溢出等);法出错、溢出等);3. 3. 由调试程序由调试程序DEBUGDEBUG设置的中断,如单步中设置的中断,如单步中断(断(T T命令)、断点中断(命令)、断点中断(G G命令)。命令)。* *所有的内部中断都是不可屏蔽中断。所有的内部中断都是不可屏蔽中断。 二、中断向量与中断向量表二、中断向量与中断向量表 8086可处理可处理256种中断,种中断,8086对这些中断采用向量管理。对这些

17、中断采用向量管理。中断向量:中断向量:中断子服务程序的入口地址(段基址:偏移地址)。中断子服务程序的入口地址(段基址:偏移地址)。 每一个中断服务程序都有一个唯一确定的入口地址每一个中断服务程序都有一个唯一确定的入口地址中断向量表:中断向量表:存放中断向量的存储区存放中断向量的存储区 8086把所有中断向量集中放到存储器把所有中断向量集中放到存储器00000H003FFH的区域内,每个向量占的区域内,每个向量占4个存储单元。个存储单元。中断类型码:中断类型码:中断向量在中断向量表中的位置。中断向量在中断向量表中的位置。 编号为编号为0255或或00FFH。中断向量指针:中断向量指针:任一中断向

18、量在向量表中的首偏移地址就为该任一中断向量在向量表中的首偏移地址就为该中断向量指针。它为中断向量指针。它为4 4中断类型码中断类型码 当当CPUCPU响应中断时,响应中断时,中断源只要给出该中断中断源只要给出该中断对应的中断类型码为对应的中断类型码为n n ( 0-2550-255或或00H-FFH00H-FFH),),CPUCPU自动地将中断类型号自动地将中断类型号n n乘以乘以4 4,就得到中断向,就得到中断向量的存放地址(中断向量的存放地址(中断向量指针)量指针)4n4n。然后。然后将将装装入入IPIP寄存器,即寄存器,即IPIP( 4n4n, 4n4n1 1);装入);装入CSCS寄存

19、器,即寄存器,即CSCS(4n4n2 2,4n4n3 3),就可进),就可进入入 中断服务。中断服务。00000H003FFH类型类型0类型类型1类型类型FEH类型类型FFH00004H003F8H003FCH类型类型0 0指针指针类型类型1 1指针指针类型类型FEHFEH指针指针类型类型FEHFEH指针指针中断入口中断入口偏移地址偏移地址中断入口中断入口段地址段地址中断向量中断向量中断向量表中断向量表000H004H008H00CH010H014H07CH080H3FCHIPCS类类型型0中中断断入入口口(除除数数出出错错)类类型型1中中断断入入口口(单单步步中中断断)类类型型2中中断断入入

20、口口(NMI)类类型型3中中断断入入口口(断断点点中中断断)类类型型4中中断断入入口口(溢溢出出中中断断)类类型型5中中断断入入口口类类型型31中中断断类类型型32中中断断类类型型255中中断断IPCSIPCS15 0供供用用户户使使用用系系统统户户使使用用专专用用中中断断8086中断中断向量分配向量分配表示意图表示意图8086中断向量表划分中断向量表划分 第一类是专用中断,类型第一类是专用中断,类型0 0类型类型4 4,分别对应于除法出错、,分别对应于除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断。系统已有定单步中断、不可屏蔽中断、断点中断和溢出中断。系统已有定义,用户是不能修改的。义

21、,用户是不能修改的。 第二类是从类型第二类是从类型5 5类型类型3131共共2727个中断,是系统保留的中断,个中断,是系统保留的中断,是提供给系统使用。是提供给系统使用。 第三类是从类型第三类是从类型3232类型类型255255共共224224个中断,这类中断原则个中断,这类中断原则上是可以由用户定义。可定义为软中断,由上是可以由用户定义。可定义为软中断,由INT nINT n指令引人,也指令引人,也可以是通过可以是通过INTRINTR引脚直接引入,或者是通过中断控制器引脚直接引入,或者是通过中断控制器8259A8259A引引入的可屏蔽中断,使用时用户要自行装入相应的中断向量(即入的可屏蔽中

22、断,使用时用户要自行装入相应的中断向量(即入口地址)。不过,在这类中断类型号中,有的系统已分配有入口地址)。不过,在这类中断类型号中,有的系统已分配有固定的用处,如类型号为固定的用处,如类型号为21H21H的中断已定义为操作系统的中断已定义为操作系统MSMS一一DOSDOS的系统调用。类型号的系统调用。类型号20H20H3FH3FH为为DOSDOS软中断(即软中断(即DOSDOS中断调用)。中断调用)。 三、三、8086各类中断的优先等级各类中断的优先等级中断源中断源中断权级别中断权级别除法出错中断除法出错中断 INT 0溢出中断溢出中断INTO或或INT 4其它内部中断其它内部中断 INT

23、nINT nNMINMI中断(中断(INT 2INT 2)INTRINTR中断中断单步中断单步中断 INT 1INT 1 高高 低低*对同类硬件中断,其中断的优先等级可根据需要由用户自行安排对同类硬件中断,其中断的优先等级可根据需要由用户自行安排四、四、8086的中断过程的中断过程 80868086中断过程也分为四个部分:中断申请,中断响应,中断中断过程也分为四个部分:中断申请,中断响应,中断处理和中断返回。处理和中断返回。完成当前指令完成当前指令是内部中断?是内部中断?是是NMI中断?中断?是是INTR中断?中断? TF=1?执行下条指令执行下条指令 IF=1?中断响应中断响应读类型码读类型

24、码FR入栈入栈令令TEMP=TF清除清除IF、TFCS、IP入栈入栈调中断子程序调中断子程序执行中断程序执行中断程序弹出弹出CS和和IP弹出标志弹出标志有有NMI?TEMP=1?YYYYY YNNNNN8086/8088中断过程中断过程YYNN暂存暂存器器主程序主程序2000:010B MOV DX,2B77H2000:010E MOV AH,09H2000:0110 INT 21HFR2000010E2B77AX(1)INTR有效,外设申请中断有效,外设申请中断(2)CPU中断响应周期中断响应周期从中断控制器读去中断类型号(例从中断控制器读去中断类型号(例80H)(3)关中断)关中断FR入栈

25、,入栈,IF、TF清零清零(4)保护断点)保护断点2000H入栈,入栈,010E入栈入栈(5)获取中断服务子程序入口地址)获取中断服务子程序入口地址IP=200H ,CS=202H(6)执行中断服务子程序)执行中断服务子程序INTP PROCSTIPUSHDXPUSHAX;保护现场;保护现场POPAXPOPDX;恢复现场;恢复现场IRETINTPENDP堆栈堆栈中断前中断前SP应用例:应用例:五、五、8086中断响应的总线周期(对可屏蔽中断)中断响应的总线周期(对可屏蔽中断)T1T2T3T4TITITIT1T2T3T4AD0AD7ALEINTA中断类型码中断类型码通知申请源准备类型码允许申请设

26、备将类型码送允许申请设备将类型码送CPU六、六、8086中断向量的装入和取出中断向量的装入和取出将中断向量装入向量表将中断向量装入向量表(1)规范装入(使用)规范装入(使用DOS系统功能系统功能25H) MOV AX,SEG INTP MOV DS,AX MOV DX,OFFSET INTP ;将中断向量送;将中断向量送DS:DX MOV AL,80H ;将中断类型码送;将中断类型码送AL MOV AH,25H INT 21H;将中断向量送向量表;将中断向量送向量表设中断类型码为设中断类型码为80H,中断向量为,中断向量为INTP(2)非规范装入)非规范装入 MOV AX,0 MOV DS,A

27、X MOV BX,80H SAL BX,1 SAL BX,1 ;形成中断向量表指针;形成中断向量表指针 MOV BX,OFFSET INTP ;装中断向量偏移地址;装中断向量偏移地址 INC BX INC BX MOV BX,SEG INTP ;装中断向量偏移地址;装中断向量偏移地址2. 将中断向量从向量表中取出(常用于保存原中断向量)将中断向量从向量表中取出(常用于保存原中断向量)(1)规范取出(调用)规范取出(调用DOS系统功能系统功能35H) MOV AL,80H ;将中断类型码送;将中断类型码送AL MOV AH,35H INT 21H;将中断向量取到;将中断向量取到ES:BX中中PU

28、SH ES PUSH BX ;将中断向量保存到堆栈;将中断向量保存到堆栈设中断类型码为设中断类型码为80H(2)非规范取出)非规范取出 MOV AX,0 MOV DS,AX MOV SI,80H SAL SI,1 SAL SI,1 ;形成中断向量表指针;形成中断向量表指针 MOV BX, SI ;取中断向量偏移地址到;取中断向量偏移地址到BX INC SI INC SI MOV ES,SI ;取中断向量段地址到;取中断向量段地址到ES PUSH ES PUSH BX ;将中断向量保存到堆栈;将中断向量保存到堆栈3 可编程中断控制器8259A及应用一、一、8259A的外部引脚和内部结构的外部引脚

29、和内部结构 8259ACS 1WR 2RD 3D7 4D6 5D5 6D4 7D3 8D2 9D1 10D0 11CAS0 12CAS1 13GND 1428 VCC27 A026 INTA25 IR724 IR623 IR522 IR421 IR320 IR219 IR118 IR017 INT16 SP/EN15 CAS2引脚引脚作用作用D0D7IR0IR7A0CSWDRDINTITNACAS0CAS1SP/EN双向数据线(与双向数据线(与CPU连接)连接)中断请求线(与外设连接)中断请求线(与外设连接)地址线(与地址线(与CPU连接)连接)片选线(地址译码器连接)片选线(地址译码器连接)

30、写控制线(与写控制线(与CPU连接)连接)读控制线(与读控制线(与CPU连接)连接)中断申请(与中断申请(与CPU连接)连接)中断响应(与中断响应(与CPU连接)连接)双向级联(双向级联(8259之间连接)之间连接)编程编程/缓冲使能缓冲使能数数据据缓缓冲冲寄寄存存器器读 / 写控 制 电 路级级连连缓缓冲冲器器/比比较较器器控 制 电路中 断服 务寄 存 器(I SR)优 先 级判 别 器(PR)中 断请 求寄 存 器(I RR)中 断屏 蔽寄 存器 (I M R)IR0IR1IR2IR3IR4IR5IR6IR7 INTA INT RDWRA0CSSP/ENCAS0CAS1CAS2D7D08

31、259A的的 内部结构内部结构1.数据总线缓冲器数据总线缓冲器 8259A8259A与与CPUCPU间数据传送的接口,间数据传送的接口, CPUCPU向向 8259A8259A发送的数发送的数据、命令、控制字及据、命令、控制字及 8259A8259A向向 CPUCPU输入的数据,状态信息都要输入的数据,状态信息都要经过数据总线缓冲器经过数据总线缓冲器。2.读读/写控制电路写控制电路 读读/ /写控制电路接收写控制电路接收 CPUCPU送来的读送来的读/ /写命令、片选信号以及写命令、片选信号以及端口选择信号端口选择信号 ,以实现,以实现CPUCPU对对8259A8259A的读的读/ /写操作写

32、操作。3. 级联缓冲器比较器级联缓冲器比较器CAS0-CAS2CAS0-CAS2引脚和控制信号引脚和控制信号SP/ENSP/EN引脚共同由用于引脚共同由用于8259A8259A的级联。的级联。CAS0-CAS2CAS0-CAS2为用于级联时,主片给从片的选择编码信号。为用于级联时,主片给从片的选择编码信号。 为为增加总线的驱动能力,增加总线的驱动能力,8259A8259A通过总线驱动器与总线相通过总线驱动器与总线相连,则控制信号连,则控制信号SP/SP/ENEN控制数据的传送方向控制数据的传送方向=1数据从数据从CPU到到8259 =0数据从数据从8259 到到CPU控制信号控制信号SP/SP

33、/ENEN为输出为输出若不与总线驱动器连接,则若不与总线驱动器连接,则控制信号控制信号SPSP/EN/EN为输入为输入=5V,8259为主片为主片 =0V,8259 为从片为从片从片从片CPU从片从片IR0IR7IR2IR3IR0IR7INTINTINTCAS02D0D7INTA最多可管理最多可管理64个外部可屏蔽中断个外部可屏蔽中断SP/ENSP/ENSP/EN5V数据驱动器数据驱动器4.中断请求寄存器中断请求寄存器IRRIRRIRR是一个具有锁存功能的是一个具有锁存功能的8 8位只读寄存器,每一位对应一个外部中断请求位只读寄存器,每一位对应一个外部中断请求信号信号 IRIR,当某个,当某个

34、 IRIR端有中断请求,端有中断请求,IRRIRR中的相应位置中的相应位置“1”1”。5.中断屏蔽寄存器中断屏蔽寄存器IMR为为8 8位读写寄存器,与位读写寄存器,与8 8个中断源个中断源IR7IR7IR0IR0相对应,通过相对应,通过IMRIMR寄存器可以对各寄存器可以对各个中断源进行屏蔽或开放。个中断源进行屏蔽或开放。IMRIMRi=1,表示,表示对应的中断被屏蔽对应的中断被屏蔽0,表示,表示对应的中断被允许对应的中断被允许 6.中断服务寄存器中断服务寄存器ISR 为为8 8位只读寄存器,与位只读寄存器,与8 8级中断级中断IR7IR7IR0IR0相对应,用来记录相对应,用来记录正在处理中

35、的中断请求。正在处理中的中断请求。 ISRISR中的相应位置中的相应位置“1”,1”,表示对应的中表示对应的中断正在处理。当允许多重中断时,断正在处理。当允许多重中断时,ISRISR中还包括中断服务过程中中还包括中断服务过程中被其他中断打断了的中断级,所以,被其他中断打断了的中断级,所以,ISRISR中可有多位同时被置中可有多位同时被置 1 1。 11100000返回返回返回 1#中断请 求 2#中断请 求 3#中断请 求中断中断中断主主 程程 序序 入入 口口1#中中 断断服服 务务 入入 口口2#中中 断断服服 务务 入入 口口3#中中 断断服服 务务 入入 口口7. 优先级判别器优先级判

36、别器PR用来管理和识别各中断申请信号的优先级别;并通过控制电路向用来管理和识别各中断申请信号的优先级别;并通过控制电路向CPUCPU发出中断发出中断请求信号请求信号INTINT,在,在8259A8259A获得第一个中断响应信号时使获得第一个中断响应信号时使ISRISR寄存器中相应位置寄存器中相应位置1 1 。8.控制电路控制电路该模块是该模块是8259A8259A的内部控制器,控制的内部控制器,控制8259A8259A芯片的内部工作过程,整个芯片的内部工作过程,整个8259A8259A芯片是在控制电路的控制下构成一个有机的整体并完成中断优先级管理功能芯片是在控制电路的控制下构成一个有机的整体并

37、完成中断优先级管理功能 IRRiIMRiINTISR优优先先权权编编码码器器二、二、8259A的中断管理的中断管理1. 中断优先级管理中断优先级管理(1 1)全嵌套方式全嵌套方式(最常用方式)(最常用方式) 固定优先级固定优先级IR0(高)(高)IR7(低),优先级高的中断可嵌套在优先级(低),优先级高的中断可嵌套在优先级低的中断中。低的中断中。(2 2)特殊特殊全嵌套方式(用于多片级联主片的设置)全嵌套方式(用于多片级联主片的设置) 固定优先级固定优先级IR0(高)(高)IR7(低),优先级高的中断可嵌套在优先级(低),优先级高的中断可嵌套在优先级低的中断中。低的中断中。(3 3)优先级自动

38、循环优先级自动循环方式方式 当中断源被服务后优先级自动降为最低,它后面排列的中断源则按顺序当中断源被服务后优先级自动降为最低,它后面排列的中断源则按顺序递升一级。如递升一级。如IR2被服务后,被服务后,IR3的优先级最高,其次为的优先级最高,其次为IR4,IR5(4 4)优先级特殊优先级特殊循环方式循环方式 与优先级自动循环方式类似,只是一开始最低优先级由编程指定。与优先级自动循环方式类似,只是一开始最低优先级由编程指定。2. 中断结束方式中断结束方式 (1 1)中断自动结束方式(中断自动结束方式(AEOIAEOI) 在第二个中断响应在第二个中断响应INTA到来时,将相应被置位的到来时,将相应

39、被置位的ISRi复位为复位为0。常用。常用于单片于单片8259且多个打转无嵌套。且多个打转无嵌套。(2 2)普通中断结束方式(普通普通中断结束方式(普通EOIEOI) 在中断结束之前用在中断结束之前用OUT指令向指令向8259发一个中断结束命令字。将相应发一个中断结束命令字。将相应ISRi复位。复位。(3 3)特殊中断结束方式特殊中断结束方式 用于优先级自动循环方式和特殊循环方式。在中断结束之前用用于优先级自动循环方式和特殊循环方式。在中断结束之前用OUT指指令向令向8259发一个特殊中断结束命令字,命令字中指明复位发一个特殊中断结束命令字,命令字中指明复位ISR的哪一位。的哪一位。(2 2)

40、特殊屏蔽方式(用于多级嵌套中断)特殊屏蔽方式(用于多级嵌套中断) 当优先级高的中断服务程序较长,而优先级低的申请又急需服务时,当优先级高的中断服务程序较长,而优先级低的申请又急需服务时,可用这种方式暂时屏蔽优先级高的中断,开放优先级低的中断。可用这种方式暂时屏蔽优先级高的中断,开放优先级低的中断。3. 中断屏蔽方式中断屏蔽方式 (1 1)普通屏蔽方式普通屏蔽方式 需要屏蔽哪一位,通过需要屏蔽哪一位,通过OUT指令将相应被置位的指令将相应被置位的IMRi置位为置位为1。4. 中断请求信号的引入方式中断请求信号的引入方式 (1 1)电平触发方式电平触发方式要求请求信号必须是电平信号。当要求请求信号

41、必须是电平信号。当CPU相应后,应及时撤消高电平信号。相应后,应及时撤消高电平信号。(2 2)边沿触发边沿触发中断请求信号以出现上升沿作为有效信号。中断请求信号以出现上升沿作为有效信号。(3 3)中断查询方式中断查询方式中断查询即中断查询即CPU不是靠中断信号来进入中断处理,而是靠执行查询程序来不是靠中断信号来进入中断处理,而是靠执行查询程序来确定是否有中断及为哪个主单服务。确定是否有中断及为哪个主单服务。5. 8259与系统的连接方式与系统的连接方式 (1 1)数据缓冲方式数据缓冲方式(接数据驱动器)(接数据驱动器)(2 2)非缓冲方式)非缓冲方式(常用于(常用于82598259单片使用单片

42、使用)三、三、 8259A编程命令编程命令 优 先 级 判 断 器I C W 1I C W 2I C W 3I C W 4O C W 2O C W 3IR0IR1IR2IR3IR4IR5IR6IR7SP/EN CAS2 CAS1 CAS0RDWRINTAD7D0A0CSINTINTR地址译码AD7AD0 译译码码器器O C W 1(屏屏蔽蔽寄寄存存器器IMR)请请求求寄寄存存器器IRR服服务务寄寄存存器器ISR8259A的编程结构的编程结构 初始化命令字初始化命令字ICWlICWlICW4ICW4用来设定用来设定 8259A8259A的初始化状态,的初始化状态,完成的主要功能是:完成的主要功能

43、是:(1 1)设定中断请求信号的触发方式,即高电平或上升沿触发;)设定中断请求信号的触发方式,即高电平或上升沿触发;(2 2)设定)设定8259A8259A的连接方式:单片、级联、缓冲方式、非缓冲的连接方式:单片、级联、缓冲方式、非缓冲方式;方式;(3 3)设定)设定8259A8259A的中断类型码基值,即的中断类型码基值,即 IROIRO所对应的中断类型所对应的中断类型码;码;(4 4)设置)设置8259A8259A的中断优先级管理方式;的中断优先级管理方式;(5 5)设定中断结束时的处理方式。)设定中断结束时的处理方式。 ICWlICWlICW4ICW4的编程必须按顺序写入的编程必须按顺序

44、写入1.初始化命令初始化命令确定确定8259A8259A的基本工作方式的基本工作方式ICW1ICW2级联?级联?ICW3需要需要ICW4?ICW4YYNN准备接受中断申请准备接受中断申请A0=1A0=0用户编写用户编写8259自自动写入动写入XXXXICW2(中断类型码)(中断类型码)XIC4ICW1(芯片控制字)(芯片控制字)XXX1XLTIM SNGL1:电平触发:电平触发0:边缘触发:边缘触发1:需要:需要0:不需要:不需要1:单级:单级0:级联:级联标志位标志位ICW3(主片)(主片)1为为IR有从片,有从片,0为为IR无从片无从片表示输出到主片的哪个端表示输出到主片的哪个端ICW3(

45、从片)(从片)00000A0=1A0=1A0=1ICW4BUM0 00SFNMM/SAEOIPM1:特殊全嵌套:特殊全嵌套0:全嵌套:全嵌套1 0 缓冲从片缓冲从片 1 缓冲主片缓冲主片10 X 非缓非缓冲冲1:自动:自动EOI0:普通:普通EOI1:8086/80880:8085 设某设某 80868086系统中使用一片系统中使用一片 8259A8259A,其端口地址为,其端口地址为34H34H和和35H35H。 要求中断请求信号为边沿触发,其要求中断请求信号为边沿触发,其8 8个中断的类型号为个中断的类型号为40H40H47H47H,中断优先级为全嵌套方式,中断结束方式为正常中断优先级为全

46、嵌套方式,中断结束方式为正常EOIEOI方式,不使方式,不使用缓冲器。试编写初始化程序。用缓冲器。试编写初始化程序。 解:(解:(1)确定初始化命令字为)确定初始化命令字为 ICWICW1 100010011B00010011B13H13H ICW ICW2 201000000B01000000B40H40H ICW ICW4 400000001B00000001B01H01H (2)初始化程序)初始化程序 MOVAL,13H OUT34H,AL ; 向偶端口地址向偶端口地址34H写写ICW1 MOVAL,40H OUT35H,AL ;向奇端口地址;向奇端口地址35H写写ICW2 MOVAL,

47、01H OUT35H,ALH ;向奇端口地址;向奇端口地址35H写写ICW4 一般在计算机启动时初始一般在计算机启动时初始化命令字就先装入到化命令字就先装入到8259A8259A中,中,不需用户再写入。不需用户再写入。T1T2T3T4TITITIT1T2T3T4AD0AD7ALEINTA中断类型码中断类型码通知通知8259A类型码,同时将类型码,同时将ISRi置位为置位为18259A将类型码将类型码ICW2送送CPUDBG1G2AG2BCBAY2CSM/IOA7A6A5A4A3A2A1A0INTRINTA WE RDA0INTINTA WE RDIR0IR7IR12.操作命令字操作命令字OCW

48、1(IMR) 在在 8259工作期间,可写入操作命令字,使工作期间,可写入操作命令字,使8259按照操作命令字的规定按照操作命令字的规定来工作。操作命令字有三个来工作。操作命令字有三个OCW1OCW3。A0=11:设置屏蔽,:设置屏蔽,0:开放屏蔽:开放屏蔽A0=0A0=0OCW2SL=1时有效时有效SLREOI0 0 L0 L1 L2标志位标志位OCW30SMM0PRR RIS0 在下一个读周期读在下一个读周期读IRR1 1 在下一个读周期在下一个读周期读读ISR0 X 无动作无动作1 0 清除特殊屏蔽清除特殊屏蔽 1 设置特殊屏蔽设置特殊屏蔽10 X 无动作无动作1:查询命令:查询命令0:

49、无查询命令:无查询命令1ESMM标志位标志位例:在例:在 IBM PCXT的的 62芯总线的芯总线的 IRQ2端输入一中断请求信端输入一中断请求信号,该信号可由计时定时器号,该信号可由计时定时器8253产生,也可由用户自己定义产生,也可由用户自己定义的其它中断源产生。要求每中断一次,的其它中断源产生。要求每中断一次,CPU响应后在响应后在CRT上显上显示一串字符示一串字符8259A INTERUPT! ,并且中断,并且中断 10次后返回次后返回 DOS。IBM PCXT中以中以8259A为核心的中断逻辑如图所示。为核心的中断逻辑如图所示。IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

50、8086CPU8259A中中断断控控制制器器PC插插卡卡槽槽保保留留同同步步通通信信中中断断异异步步通通信信中中断断硬硬盘盘驱驱动动器器中中断断软软盘盘驱驱动动器器中中断断打打印印机机中中断断INTR时时钟钟 0 1 2 3 4 5 6 7IRQ0PC键键盘盘 已知:已知:IBM PCXT内内8259A的端口地址是的端口地址是20H和和21H,并且已初始化成边沿触发、普通屏蔽(初始化屏蔽字为并且已初始化成边沿触发、普通屏蔽(初始化屏蔽字为FFH)、)、非特殊全嵌套、正常中断结束、固定优先级、非缓冲方式,非特殊全嵌套、正常中断结束、固定优先级、非缓冲方式,8259A所接的所接的8个中断源类型号为

51、个中断源类型号为08H0FH。试编写汇编语言。试编写汇编语言程序实现题目的要求。程序实现题目的要求。 解:由已知条件可知解:由已知条件可知IBM PC/XT系统内部系统内部8259A的初始化的初始化命令字应为:命令字应为:ICW1=13H(00010011B););ICW2=08H(00001000B););ICW4=01H(00000001B););IRQ2的中断类型号就是的中断类型号就是0AH。 程序流图一:程序流图一: 将中断服务子程序与主将中断服务子程序与主程序编在同一代码段程序编在同一代码段中中断断服服务务子子程程序序用用DOSDOS调用调用9H9H功能显功能显示字符串示字符串向向8

52、259A8259A发中断发中断结束命令字结束命令字OCW2OCW2中断返回中断返回计数器减计数器减1 1在数据段将字符串放入数据表在数据段将字符串放入数据表开始开始调用调用DOS35HDOS35H和和25H25H功能取出原功能取出原中断向量,装入新中断向量中断向量,装入新中断向量关中断关中断 置中断次数并开中断置中断次数并开中断等待中断等待中断主主程程序序结束结束 设置中断屏蔽字,开放设置中断屏蔽字,开放IR2IR2中断次数到?中断次数到?恢复恢复返回返回DOSDOSN NDATASEGMENTMESS DB 8259A INTERRUPT!,0DH,0AH, DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:CLI ;关中断;关中断MOVAX,350AHINT21H ;取中断向量到;取中断向量到ES:BXPUSHESPUSHBX;压原中断向量到堆栈;压原中断向量到堆栈 MOV AX, CS MOV DS, AXMOV DX,OFFSET INT_PROC MOV AX,250AH INT 21H ;将新;将

温馨提示

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

最新文档

评论

0/150

提交评论