版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章中断系统本章主要内容中断的基本概念8086/8088的中断系统中断控制器8259A中断的基本概念本节主要内容中断及中断源中断处理过程中断优先权管理中断的意义中断是CPU和外部设备交换数据的一种方式;是一种使CPU挂起正在执行的程序而转去处理特殊事件的操作当外围设备准备好向CPU传送的数据或者外设已准备就绪接收CPU的数据,就向CPU发中断请求,或者计算机系统有异常事故要求CPU处理这时,CPU暂停原程序的执行,启动中断服务程序,转去中断处理,处理完毕后,又返回原来的断点,继续执行原来的程序中断的概念图示中断断点IRET中断服务子程序主程序中断源★能够导致CPU产生中断的来源就是中断源;或者称中断源就是能够引起中断的事件★对于CPU来说,中断源有两类:硬中断源和软中断源硬中断也称为外中断,是由外部的电路在CPU的引脚上产生的中断请求软中断是在CPU执行程序过程中产生的中断请求;可以是一条软中断指令,也可以是因为程序运行出现某种问题而导致的软中断CPU中断源的示意图开中断与关中断外中断源又可以分为条件中断(也称为可屏蔽中断)和无条件中断(也称为不可屏蔽中断)对于条件中断,要求CPU必须处于某种条件下,才可以响应中断。如果CPU处于可以响应条件中断的状态,称为开中断状态。如果CPU处于不可以响应条件中断的状态,称为关中断状态关中断方法:IF=0使用CLI指令
开中断方法:IF=1使用STI指令几个基本概念中断源:引起中断的事件断点:主程序被打断的位置中断服务程序:中断源的响应和处理函数断点中断源中断服务程序中断系统的基本功能管理和处理中断事务的系统称为中断系统接受中断请求实现中断、启动中断服务程序及中断返回确定中断的优先级别,对多个中断进行排队管理实现中断优先处理,即实现优先权高的中断,可以中断优先权低的中断中断处理过程中断处理过程一般包括 中断请求 中断排队 中断响应 中断服务 中断返回中断请求中断请求信号:当中断源需要CPU为其服务时,中断源将发出的“中断请求”信号请求中断的条件: 该外设本身的准备工作已完成 系统允许该外设发出中断请求中断请求屏蔽:并不是所有的中断请求都可提交
中断屏蔽触发器输出端置“1”时,允许该中断(EI)输出端置“0”时,则屏蔽该中断(DI)中断排队中断排队就是按照一定的策略,在多个当前中断请求中,确定其中的一个中断源中断排队的基本原则是: 先响应高优先级中断 同级别的先来先服务单级中断处理和多级中断处理:单级中断处理不允许其他设备再中断服务程序;多级中断处理允许优先级高的中断中断优先级低的中断服务程序单级中断处理和多级中断处理示意为单级中断处理示意图为多级中断处理示意图中断响应CPU给设备发出一个中断应答信号,进入中断响应周期中断响应的工作任务:关中断(不允许接收新的中断请求)保存断点保护现场(保存某些寄存器的值到堆栈)形成中断服务程序的入口地址(将指令指针指向中断服务程序的入口),程序转向中断服务程序中断服务与中断返回中断服务是指CPU需要执行的中断服务程序中断返回是指该运行结束后应返回原来的程序中断服务程序由程序员根据中断源的操作事先编制并存储相关寄存器压栈保护将在该服务程序中使用的寄存器中的原内容中断服务程序的结构图IF=1表示在该服务程序运行过程中,该可以被中断而运行更高级别的其他中断服务程序IF=0恢复现场时,不允许再响应中断,以保证恢复的有序和正确使用中断返回指令,结束中断服务,返回中断前的原程序更详细的程序框架入口地址:PUSHAX;保护现场
PUSHBX
PUSHCX
PUSHDX
PUSHSI
PUSHDI
PUSHSP
PUSHBP
STI;开中断
标号∶……;具体的中断服务CLI;关中断
POPBP;恢复现场
POPSP
POPDI
POPSI
POPDX
POPCX
POPBX
POPAX
STI;开中断
IRET;中断返回中断优先级在实际系统中一般有多个中断源,有时会出现有多个中断同时请求中断的情况,而CPU每次只能响应一个中断为了能够有序的处理多个中断申请,所以要有中断优先级的规定如果CPU在执行中断服务程序时,又接受了新的中断申请,就会打断正在执行的中断服务程序,为新的中断源服务。这种在中断服务过程中,又接受新的中断申请并为之服务的情况,称为中断嵌套。有了中断优先级可以使得中断嵌套有序的进行中断优先权管理◆中断优先权管理就是判别和确定各个中断源的中断优先权,决定首先响应哪个中断请求◆实现中断优先权的判别,一般有软件和硬件两种方法软件方式确定中断优先权软件法是在CPU接受多个中断请求后,用软件查询的方法,确定哪个中断源首先被查询到;先被查询的先响应;
中断被查询的次序就是优先权的高低次序;该次序需要程序员在编写中断服务程序时,通过查询来确定软件查询确定中断级别的接口示意★假设有8个外设中断源;存放在I/O端口中;已经约定A外设的级别最高,H的最低;他们的状态或1或0(1为有请求)
★只要有请求,即可通过或门向CPU请求
★此时,CPU将通过查询,决定先响应哪一个中断请求软件查询中断的程序INAL,80H;端口80H的内容送ALTESTAL80H;测试AL的最高位JNZASEV;对A的服务程序标号TESTAL,40HJNZBSEV;对B的服务程序标号……TESTAL01HJNZHESV;对H的服务程序标号软件方式确定中断优先权已设置A的级别最高从A到H依次查询先查询到的先响应软件查询流程图硬件方式确定中断优先权用硬件方式实现中断优先权的判别常用的硬件电路有:中断优先权编码、链式优先权排队电路及专用硬件电路等广泛使用8259A控制器硬件方式确定中断优先权的例高优先级中断的三态缓冲器连接到数据总线。小结中断的概念中断源、断点、中断服务程序中断处理的一般流程中断请求->中断优先级判别->中断响应->断点现场保护->中断处理程序->断点现场恢复->中断返回中断优先级优先级判别方法、中断屏蔽、中断嵌套8086/8088的中断系统本节主要内容8086/8088的中断指令8086/8088的中断分类中断向量表8086/8088的中断处理过程8086/8088的中断指令8086/8088提供了3条中断操作指令1.中断指令INTn2.溢出中断指令INTO3.中断返回指令IRET中断类型码一共256个;取值为0-255,或00H-0FFH;一个唯一的中断类型码标记一种中断服务程序INTO指令检查溢出标志OF,如果OF=1,则启动一个中断号为4的中断过程,如果OF=0,不做任何操作。INTO指令一般安排在有符号数算术运算指令后面,用于进行溢出检查。IMULDX;乘法指令INTO ;若发生溢出,则启动INT4中断服务处理MOV RESULT,AXMOV RESULT+2,DX结束服务程序返回原程序CLI:关闭中断(将标志寄存器FLAGS的IF位置0);STI:开启中断(将标志寄存器FLAGS的IF位置1);其中,CLI、STI以及IRET可用于硬件中断控制,INTn、INTO为8086/8088的软件中断调用指令。8086/8088的中断指令SPSPIPCSFLAG中断返回后中断指令的执行过程中涉及的堆栈操作IPLIPHCSLCSHFLAGLFLAGHSPSPSPIPLIPHCSLCSHFLAGLFLAGHSPSPSP8086/8088的中断分类8086/8088的中断系统可以处理256种不同的中断8086/8088中断源可分为:◆软中断(也称内部中断)◆硬中断(也称外部中断)
▼可屏蔽中断(即条件中断)
▼不可屏蔽中断(即无条件中断)8086/8088的内部中断内部中断也称为软中断
它是由CPU执行某些指令或CPU执行程序中某些错误引起的中断除单步中断外,其他的内部中断都是非屏蔽中断8086/8088的内部中断除法错中断--类型码为0CPU在执行除法指令DIV或IDIV时,若发现除数为0或商超过了寄存器所能表达的范围,就立即产生了一个类型为0的内部中断CPU不需要执行任何指令,直接地自动地响应该中断,转去执行“除法错误中断服务处理程序”8086/8088的内部中断单步中断——类型码为1单步中断与类型0中断相似,没有对应的中断指令它是由CPU对状态标志寄存器中的单步标志TF的测试而产生的当CPU测试到TF=1,自动产生单步中断;此时,每执行一条指令,就会产生一个中断中断服务程序的功能一般是显示此时的运算结果及了解系统的信息提示8086/8088的内部中断断点中断——类型码为3执行INT(3)指令就会产生一个类型为3的内部中断,也称为断点中断它和单步中断类似,断点中断也是8086/8088提供给用户的一个调试手段,一般用在调试程序中断点中断与单步中断不同在于:单步中断每执行一条指令中断一次;断点中断是程序运行到预先设置的断点处,中断一次;设置断点就是在此处加一个INT指令8086/8088的内部中断溢出中断——类型码为4
溢出中断是由CPU执行一条INTO指令实现的,当OF=1时,执行INTO就会进入类型码为4的内部中断;其中断服务程序一定是处理溢出错误内部中断中断类型号用途对应的指令说明0除法溢出无1单步中断无通过TF=1来启动2非屏蔽中断无3断点中断INT3单字节指令4溢出中断INTO单字节指令8086/8088的内部中断软件中断----类型码为n当执行INTn指令时,形成软件中断,中断类型码由指令提供该指令可设置在程序的任何地方,从执行功能上来说,它与段间调用子程序类似,使用更加方便。用户只要知道中断号,不用知道具体的中断程序地址。它将状态标志寄存器与断点一起推入堆栈,并从中断向量表中取出中断服务程序(相当于子程序)的入口地址内部中断问题内部中断与CPU正在运行的程序是同步的;有些还是程序的组成部分故有人称他们为“程序运行异常”,而不把他们以“中断”对待外部中断是“异步”的,事先一般不可知;而且由外设提出请求8086/8088的外部中断外部中断通过外部的硬件设备产生由送至CPU引脚NMI和INTR上的请求信号引起中断外部中断分为非屏蔽中断和可屏蔽中断非屏蔽中断(NMI)非屏蔽中断请求由NMI引脚送入,它不能被屏蔽,即不受标志IF状态的影响,在当前指令执行完后,CPU就必须响应
非屏蔽中断类型码固定为2外部中断非屏蔽中断有以下几个特点:不受内部中断允许触发器及状态标志IF的影响外部通过非屏蔽中断引脚NMI提出请求非屏蔽中断主要用于处理系统的意外和故障上升沿触发(边沿触发)外部中断可屏蔽中断
可屏蔽中断请求由INTR引脚送入,CPU是否响应,取决于标志寄存器中的中断允许标志lF的状态
电平触发;必须“长时间”保持,直至CPU响应若IF=0,表示中断禁止,CPU不响应;若IF=1,表示中断允许,CPU可以响应进入中断响应总线周期,CPU发出中断响应信号INTA,并从数据总线获取中断源的中断类型码,选择并进入中断服务程序外部中断可屏蔽中断INTR请求,有两个控制条件决定是否响应第一条:中断请求是否被屏蔽,对应于8259A中断屏蔽触发器IMR的输出状态;若为0,则允许中断;若为1,则屏蔽中断第二条:CPU是否允许中断,即标志寄存器中位IF是否等于1外部中断8086/8088中断优先级中断源优先级除法错、INTn,INTO最高NMIINTR单步(陷阱)最低中断向量的意义中断服务处理程序的入口地址(首地址);它包含段地址和偏移地址两个部分中断向量占用4个字节;低地址存放中断处理程序的入口偏移地址,高地址存放其段地址中断向量表中断向量表的意义8086/8088微处理器规定:从物理地址00000H开始,依次安排存放各个中断向量,形成一个特殊的存储区域,称为中断向量表;在表中,各中断向量的存放顺序按中断类型码排列,并约定从0开始256个不同类型的中断向量将占用1KB区域;中断向量表建立在内存空间中最低1K地址,地址从00000—003FFH中断向量表中断向量表
中断向量在中断向量表中的存放地址称为中断向量地址指针中断向量指针由CPU采用将“中断类型码乘于4”的方式确定并管理CPU将依据该指针从中断向量表中取出两个字分别送入IP和CS中断类型码联系着中断向量和中断向量地址指针中断向量表
例如:对于中断类型码为24H的中断源其中断向量地址指针为24H
4=0090H
即在0000:0090H开始的单元依次存放该中断源的中断服务程序的人口地址若00090H~00093H中的内容分别是00H、46H、A4H、3BH,则该中断源的中断服务程序入口地址为
3BA4H:4600H中断向量表同样:若中断类型码42H的中断向量为5678H:1234H则中断向量表中从00108H~0010BH这4个单元内应依次存放34H、12H、78H、56H中断类型码的意义CPU根据中断类型码,确定向量指针,到中断向量表中取出中断服务程序的入口地址,实现程序执行顺序的跳转不同的处理器,对于类型码的分配是不同的IBMPC/XT机的中断类型号的安排IBMPC/XT机的中断类型号的安排中断类型号地址(H)中断功能中断类型号地址(H)中断功能2080-83程序结束2698-9B写磁盘2184-87DOS系统调用279C-9F程序结束,驻留内存2288-8B结束地址28A0-A3DOS内部使用238C-8F中止处理29~2EA4-BBDOS保留2490-93错误处理2FBC-BFDOS内部使用2594-97读磁盘30~3FC0-FFDOS保留
编制好中断服务程序后,给中断服务程序安排了存储空间,还须将它的入口地址按照中断类型码的顺序,置入中断向量表中;称为中断向量表的设置
当中断到来时,CPU才会根据中断类型码,自动取出中断向量,转入中断服务程序中
系统提供的服务程序的设置由系统自动完成;用户自定义的服务程序的中断向量应由用户用程序写入中断向量表的设置中断向量表的两中设置方法向中断向量表置入中断向量的方法用传送指令实现用DOS的系统功能调用,INT2lH实现例:假设某中断服务程序的入口地址为INTSUB,中断类型码为40H;试用传送指令设置中断向量表中断向量表的设置VECTABSEGMENTAT0000;设置连接方式ORG0100H;对应类型码40HADDRPDW2DUP(?)VECTABENDSCODESEGMENT┆CLI;关中断PUSHDS;保护现场MOVAX,VECTABMOVDS,AX;指定段基址为0000
MOVADDRP,OFFSETINTSUB;存放中断向量MOVADDRP+2,SEGINTSUBPOPDS;恢复现场STI;开中断┆CODEENDS假设中断号为40的中断服务程序地址为0835H,编写程序将该中断向量写入到中断向量表中。40号中断的中断向量表地址为4*40=00A0H,因此00A0H存放0835H,00A2存放0000H。【书上P180有误】MOVBX,0A0HMOVAX,0835HMOVES:[BX],AXMOVAX,00HMOVES:[BX+2],AX中断向量表的设置
25H功能调用方法,设置中断向量表
执行调用前需预置参数1)AH中预置功能号25H;2)AL中预置中断类型码;3)DS和DX中预置中断服务程序的入口地址(段地址和偏移地址分别置入DS和DX)
预置完以上参数后,执行INT21H指令就可把中断服务程序的入口地址置入中断向量表中适当的位置中断向量表的设置例8-4设中断服务程序的入口地址为INTSUB,中断类型码为70H,则用下列指令段可设置中断向量中断向量表的设置PUSHDSMOVAX,SEGINTSUBMOVDS,AXLEADX,INTSUBMOVAL,70HMOVAH,25HINT21HPOPDS
35H功能调用,读取中断向量表
执行调用前需预置参数1)AH中预置功能号35H;2)AL中预置中断类型码;
执行INT21H后:ES:读出的中断服务程序入口的段地址;BX:读出的中断服务程序入口的偏移地址读取中断向量表8086/8088的中断响应流程按优先级查询中断源获取中断类型号中断响应
一个INTR中断请求被响应时,CPU实际执行的总线时序全过程如下:
1)执行两个中断响应总线周期;被响应的中断源将在第二个中断响应总线周期中,由低8位数据线送回一个单字节的中断类型码。CPU接收后,左移两位(×4),作为中断向量的首字节地址,存入CPU内部暂存器中断响应过程
2)执行一个总线写周期,把状态标志寄存器FR推入堆栈3)把FR中的中断允许标志IF和单步标志TF置0,禁止中断响应过程中,其他可屏蔽中断的进入;同时禁止中断处理过程中单步中断
4)执行一个总线写周期,把CS的内容推入堆栈
5)执行一个总线写周期,把IP的内容推入堆栈中断响应过程
6)执行一个总线读周期,把中断向量前两个字节读入,送到IP7)执行一个总线读周期,把中断向量后两个字节读入,送到CS★对非屏蔽中断或内部中断,则由第2步开始执行,因为此时中断类型码已确定无需从数据线上读取中断响应过程中断响应时序小结8086/8088中断指令8086/8088中断分类:内部中断、外部中断,不同类型中断的响应时序8086/8088的中断向量表:中断向量、中断向量表、中断向量指针、中断类型码、中断向量表的设置8086/8088的中断处理流程主要内容:8259A的主要功能8259A的结构及引脚功能8259A的工作过程
8259A的工作方式(不要求)8259A的初始化命令字和操作命令字8259A的编程中断控制器8259A中断控制器的作用:接收外部的中断请求确认当前级别最高的中断请求,并送至CPU
的INTR引脚当CPU响应中断时,送出中断类型码中断处理过程中屏蔽低优先权的中断请求,而允许高优先权的中断请求送出,实现中断的嵌套等中断控制器8259A8259A是一种可编程中断控制器可用于管理Intel8080/8085,8086/8088,80286/80386的可屏蔽中断1)每片8259A能管理8级中断;在不增加其他硬件电路情况下,采用9片芯片级联可构成主从式中断管理系统,可扩展至64级中断2)每级中断都可以被屏蔽或允许3)在中断响应周期,可提供中断源的中断类型码,供CPU查找获得相应的中断向量8259A的主要功能4)允许并控制实现多级中断,即中断嵌套5)设置多种优先权管理方式、屏蔽功能6)8259A为可编程芯片,用户可通过编程选择不同的工作方式,使用灵活、方便7)具有中断查询方式功能,供CPU以查询方式与各外设进行I/O操作8259A的主要功能8259A的结构及引脚功能1.内部结构8259A的结构框图如下页图所示,它由8个基本部分组成:8259A的结构框图1.内部结构①中断请求寄存器IRR8位寄存器;寄存8个外界中断请求信号;IR0~IR7分别对应他们的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求②中断屏蔽寄存器IMR8位寄存器;寄存对中断请求信号IR的屏蔽状态Di位为1,表示IRi中断将被屏蔽(禁止);为0,则表示允许0010010011010010③优先权判别器PR8位寄存器;寄存经过IMR后的IRi根据当时的规则和当前ISR中的状态,决定哪一个级别最高,决定送出哪一个IRi;条件是PRi的级别>ISRi的级别送出当前级别最高的中断请求信号④中断服务寄存器ISR8位寄存器;寄存正在被CPU响应着的中断的状态Di位为1,表示IRi中断正在响应中;为0,则表示未被响应置“1”,将被一直保持到该级中断处理过程结束为止1.内部结构0010010000000100⑤数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,是8259A与CPU间数据传输的通道,CPU通过数据总线缓冲器向8259A送初始化命令和操作命令字,或是读取状态信息和中断类型码;D0—D7最终与CPU低8位数据总线连接⑥读/写控制逻辑读/写控制逻辑的功能是负责接收CPU发来的控制信号,完成规定的写入命令操作以及读IRR、ISR和IMR的操作;同时接受片选信号和片内译码地址A01.内部结构1.内部结构8259A芯片有两个端口;只需要A0一个地址位片内寻址对于16位的CPU,通常将CPU的A1接到8259的A0端。在软件设计时,用连续的2个偶数地址寻址8259A端口的奇/偶地址⑦级联缓冲/比较器级联缓冲/比较器用于实现8259A的级联,构成主从式中断管理系统,使中断源由8级扩展到最多为64级级联时,各片CAS0—CAS2对应相连;对于主片而言,经过比较,确定并输出级联设备的编码,选中对应的从片;对于从片,接受来自主片的设备编码1.内部结构1.内部结构⑧控制逻辑控制逻辑根据CPU编程设定的工作方式,产生片内控制信号,控制片内的工作方式;根据IRR、IMR的内容和PR判断结果,向CPU发出中断请求INT;并接受来自CPU的中断响应信号INTA⑴中断请求寄存器IRR接收外部的中断请求并锁存
如IRi=1,表示第i个端子有中断请求⑵中断屏蔽寄存器IMR内容决定是否让它进入优先权判别器PR,若IMR中对应的位为0,则中断请求进入PR⑶PR判别该中断请求是否是当前优先权最高的中断请求,是则8259A的INT为1,向CPU发出INTR请求信号⑷当CPU的中断允许标志IF=l,CPU响应中断,发回INTA信号给8259A⑸8259A使中断服务寄存器ISR中相应位置1,并将中断请求寄存器IRR相应位清0;再送出中断类型码若允许中断嵌套,则由8259A的优先权判别器PR判断IRR中新的中断请求优先权是否高于正在响应的中断,是则再次送出(INT=1),向CPU发INTR请求信号,从而实现中断嵌套;此时ISR中将有两个(或以上)的中断服务状态置1当某个中断服务结束时,CPU送出中断结束命令,即将8259A中ISR的相应位复位,从而结束一个中断的服务8259A的工作过程复位即置0
置位即置18259A是具有28个引脚、双列直插式的芯片8259A的引脚及功能在一个系统中,8259A可以级联,有一个主,若干个从级联时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2每个从8259A的中断请求信号INT,连至主8259A的某一个中断请求输入端IRi主8259A的INT线连至CPU的中断请求输入端中断控制器8259A的级联PC/AT机两片8259级联硬件连接图PC中的级联
例PC机各级中断源及类型码8259A的工作方式8259A有多种工作方式
只做简介普通完全嵌套8259A的中断请求输入端引入的中断具有确定的优先权排队顺序普通完全循环的原则是:高优先级的中断可进入低优先级,但低优先级不能进入高优先级或同等优先级适用于单片8259的情况特殊完全嵌套适用于8259A有级联的情况特殊完全循环的原则仍然是:高优先级的中断可进入低优先级,但低优先级不能进入高优先级或同等优先级但在确定优先级别时,将综合考虑主片和从片上的相关中断首先确定主片上个IRi的优先级别,高级别一定中断低级别的中断;其次还要考虑从片上的各IRi的优先级别,同一片上的高级别中断可以中断低级别中断由于从片上的各级中断对主片而言,都是同级别的,所以该种工作方式可以实现“同级别中断的相互中断”特殊完全嵌套假如某系统为级联方式,主片设置为特殊完全循环方式接在主片IR3上的从片比接在IR4上的从片具有高的优先权主片上IR0,IR1,IR2的单级中断比从片中各IRi具有更高优先级别;当然IR5IR6IR7就低IR3中的高级别中断,就可以中断IR3中低级别的中断特殊完全嵌套例从8259A发来的新的申请可以打断前面的中断服务固定优先权与循环优先权固定优先权是指中断请求IR0~IR7的优先级别是固定不变的,使得从IR0引入的中断总是具有最高优先权,IR7的级别最低在某些情况下,我们需要能改变这种优先级别,这时,可采用“循环优先权方式”在这种方式下,从IR0~IR7引入的中断轮流具有最高优先权自动循环方式当任何一级中断被处理完,它的优先级别就被自动改变为最低,而最高优先级分配给该中断的下一级中断例如:现正为IR3引入的中断服务,若服务完毕,IR3为最低优先级,IR4有最高优先级,IR5有次高优先级,依次排列特殊循环方式指定最低级别的循环方式指定一个为最低级别,其他的也相应变化,改变个中断源的优先级别例如:指定IR4为最低级别的中断服务,则IR5成为最高优先级,IR6有次高优先级,依次排列数据线的缓冲方式在级联的工作方式下,为了提高数据的传送能力,通常在8259和CPU数据总线之间增加数据缓冲器(如8286)芯片此时,SP/EN将作为8286输入输出的选通信号主片或从片的选择确定该由ICW4决定,而不再由SP/EN确定在非缓冲的级联方式下,由SP/EN确定主片或从片;主片的SP=1,从片的SP=0中断结束方式中断结束的意义在中断服务程序结束后,用什么方式使ISR复位由于存在中断嵌套现象,故需要不同的方式实现分为自动EOI和非自动EOI非自动又分为普通EOI方式和特殊EOI方式非自动EOI方式下,需要在中断程序结束前,通过命令字OCW2,向8259传送中断结束命令自动EOI方式CPU在进入中断响应总线周期后的第二个中断响应信号结束时,自动将ISR寄存器相应置“1”位清“0”中断结束时,不需要向8259A送中断结束EOI命令问题:任何一级中断在执行中断服务程序期间,在8259A中都没有了标志;如果在此过程中,出现了新的中断请求,则只要CPU允许中断,不管出现的中断级别如何,都将打断正在执行的中断服务而被优先执行使用自动EOI结束方式,一般适用于不会发生同级中断或低级中断中断高级中断的情况普通(一般)EOI方式当任何一级中断服务程序结束时,给8259A传送一个EOI命令,8259A将ISR寄存器中级别最高的置“1”位清“0”这种方式只有在当前结束的中断总是尚未处理完的级别最高的中断时,才能使用这种结束方式。如果在中断服务中修改过中断级别,则可能会产生混乱而不能采用这种方式特殊EOI方式在普通EOI方式的基础上,当中断服务程序结束给8259A发出EOI命令的同时,将当前结束的中断级别(即IRi)也同时传送给8259A在这种情况下,8259A将ISR寄存器中指定级别的相应置“1”位清“0”这种方式适合于任何情况下使用中断屏蔽方式意义:屏蔽中断源普通屏蔽方式—通过设置并传送命令字使IMR中的一位或几位置1,屏蔽对应的请求;屏蔽的策略可通过OCW1随时修改特殊屏蔽方式----用于中断嵌套环境;允许低级别的中断进入到正在响应的高级别中断中,而响应低级别的中断;待该中断结束后,再继续原高级别的中断在高级别中断响应过程中,用命令字OCW1将IMR中对应的位置1;之后,ISR中相应的位将“跟随”复位;此时,CPU仍在执行程序,但8259已无任何中断响应的“标记”,从而开放可较低级别的中断;即实现了将正在响应的高级中断中断,而响应低级别的中断中断触发方式意义:CPU以何种方式接收到外设提交的中断请求信号边沿触发----非屏蔽中断一般为边沿触发电平触发----可屏蔽中断一般为电平触发程序查询引入----CPU不是依靠NMI和INTR被动接收中断,而是主动查询8259的端口状态,并通过数据总线获得“状态字”,判断有无中断请求产生8259A为可编程的中断控制器工作状态和操作方式,可由接收CPU的命令字而确定和更改;这个过程称为“编程”命令字有两大类:初始化命令字:对8259A输入初始化命令字,使其处于预定的工作状态;操作命令字:在响应中断的过程中,输入操作命令字,控制8259A执行不同的操作方式8259A的初始化命令字和操作命令字MOVAL,13HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,0DHOUT21H,AL初始化命令字ICW最多有4个;均为8位8259A在开始工作前,必须由CPU写入必须按照ICW1~ICW4顺序写入ICW1和ICW2是必须送的ICW3和ICW4由ICW1工作方式,决定是否写入1.初始化命令字ICW
D7
D6
D5
D4
D3
D2
D1
D0ICW1基本工作状态命令字0ICW1基本工作状态命令字例指令执行后,对8259设置了基本工作状态MOVAL,13HOUT20H,AL说出其具体意义00010011ICW2中断类型码基数命令字中断类型码基数是指IR0对应的中断类型码ICW2的低3位是对应8个中断请求端的编号,从000到111,由8259自行确定;高5位为该8259中8个中断请求类型码中的共有数码(相同的数码)通过ICW2确定了IR0的中断类型码,同时也就自动地确定了本片上其他7个IRi对应的中断类型码ICW2中断类型码基数命令字CPU响应某个中断后,8259A将通过数据总线送出该中断类型码字节高5位即为ICW2的高5位;低3位是由ICW2低3位确定的IRi中的某一个(000---111)ICW2中断类型码基数命令字ICW2中断类型码基数命令字由此可见,一片8259A上的8个中断源的8个中断类型码是连续的如:设置ICW2=40H,则8259A的IR0~IR7,对应的8个中断类型码为:40H,41H,42H,43H,44H,45H,46H,47HICW3主片/从片标示命令字ICW3是在级联方式下,才需要设置的初始化命令字当ICWl的D1位为0时,8259A在级联方式下工作,必须设置ICW3而且主片和从片都需要分别设置ICW3ICW3主片/从片标示命令字说明该从片的INT引脚接到主片哪个引脚ICW3主片/从片标示命令字例:主片的ICW3=00101011,表示IR5,IR3、IRl和IR0上连有从8259A
例:从片的ICW3=00000101,则此从片的INT连至主片的IR5上ICW4工作方式初始化命令当ICWl的D0位为1,才需要设置ICW4设置的工作方式包括数据传送方式----缓冲与非缓冲级联下的优先权管理方式中断结束方式CPU的类型该片8259A的主从方式ICW4工作方式初始化命令8259A的初始化系统初始化时对8259A设置ICWl~ICW4称为8259A初始化8259A的初始化流程图如下页图所示8259A芯片的初始化流程图8259A的初始化问题1)系统中的每一片8259A都须按此流程进行初始化工作2)写入4个初始命令字ICWl~ICW4的顺序固定不变3)ICWl写入偶地址端口(A0=0);ICW2、ICW3和ICW4写入奇地址端口;8259A会按照规定顺序自己区分ICW2~ICW44)ICWl中指明是否需设置ICW3、ICW4;级联方式下;主、从片都需设置ICW3
8259A的初始化设8259A的端口地址为20H、21H。下面是该8259A的初始化程序段:MOVAL,13HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,0DHOUT21H,AL该8259A芯片的工作状态为:单片8259A,中断请求上升沿触发,中断类型码为08H,09H,0AH,0BH,0CH,0DH,0EH,0FH分别对应IR0~IR7,普通全嵌套方式,缓冲方式,用于8086/8088系统中,普通中断结束方式初始化后,8259A进入设定的工作状态,可以随时接受操作命令字OCWOCW共有3个:OCW1~OCW3写入时没有顺序要求,需要哪个OCW就写入哪个OCWD7D6D5D4D3D2D1D0操作命令字OCWOCW1——中断屏蔽操作命令字屏蔽命令字写入中断屏蔽寄存器IMRDi=Mi对应IRi,为1将禁止IRi中断;为0则允许IRi中断OCW2——优先权管理方式和中断结束方式操作命令字设置优先级循环方式以及中断结束的方式命令字中标志位D3D4=00写入偶地址端口,即A0=0设置循环方式位D7:1为循环优先权,0为固定循环设置中断结束命令位D5:1为非自动EOI,0为自动EOI设置末三位的有效性位D6:1时末3位有效,对应特殊循环和特殊EOI工作方式此时的末3位即为被指定的IRi的编号0时末3位无效,对应自动循环和普通EOI的工作方式OCW2——优先权管理方式和中断结束方式操作命令字RSLEOI意义000恢复固定循环、自动EOI方式001设置普通EOI方式010无意义011设置特殊EOI,ISR中指定位复位10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风冷型PVT集热器工作原理及结构设计
- 2026银行春招全国统一笔试真题及高频错题解析
- 复数的几何意义(第一课时)课件2025-2026学年高一下学期数学人教A版必修第二册
- 历年真题改编2026建设工程监理期末测试题及答案
- 2026烟草送货岗面试备考资料题库及完整答案
- 铁塔代维2021年初级认证考试试题及标准解析答案
- 2023教科版三年级科学第二单元《水》期中测试卷 基础能力双提升
- 2026年神介学苑内部培训考核试题及答案
- 临床横纹肌溶解症的急救与护理策略
- 线段的垂直平分线课件2025-2026学年北师大版八年级数学下册
- 2024云南省委党校研究生招生考试真题(附答案)
- 诺如病毒考试题及答案
- DB45∕T 2479-2022 一般固体废物填埋场水文地质工程地质勘察规范
- 岗位安全责任清单意义
- 2025年焊工(技师)考试练习题库(附答案)
- 学术自由与责任共担:导师制度与研究生培养制的深度探讨
- 法拍司辅内部管理制度
- 道路损坏修缮协议书模板
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
- 全国民用建筑工程设计技术规范
评论
0/150
提交评论