最新微机信息传递方式与中断PPT课件.ppt

上传人:豆**** 文档编号:77614291 上传时间:2023-03-15 格式:PPT 页数:71 大小:1.31MB
返回 下载 相关 举报
最新微机信息传递方式与中断PPT课件.ppt_第1页
第1页 / 共71页
最新微机信息传递方式与中断PPT课件.ppt_第2页
第2页 / 共71页
点击查看更多>>
资源描述

《最新微机信息传递方式与中断PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机信息传递方式与中断PPT课件.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、微机信息传递方式与中断微机信息传递方式与中断【教学目标教学目标】了解三种不同的微机信息传递方了解三种不同的微机信息传递方式,掌握其软件和硬件设计方法。式,掌握其软件和硬件设计方法。【教学重点教学重点】微机信息传递方式及其特点。微机信息传递方式及其特点。【教学难点教学难点】中断技术。中断技术。28.1.3 中断方式传送中断方式传送nCPU无需循环查询外设状态,而是外部设备无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断在需要进行数据传送时才中断CPU正在进行正在进行的工作,让的工作,让CPU来为其服务。即来为其服务。即CPU在没有在没有外设请求时可以去做更重要的事情,有请求外设请求时

2、可以去做更重要的事情,有请求时才去传输数据,从而大大提高了时才去传输数据,从而大大提高了CPU的利的利用率。用率。n优点:优点:CPU效率高,实时性好,速度快。效率高,实时性好,速度快。n缺点:程序编制较为复杂。缺点:程序编制较为复杂。98.1.4 DMA传输传输 n前面三种前面三种I/O方式都需要方式都需要CPU作为中介:作为中介:外设外设 CPU 内存内存 两个含义:两个含义:1)软件:外设与内存之间的数据传送是通过)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的;执行程序来完成的;2)硬件:)硬件:I/O接口和存储器的读写控制信号、地接口和存储器的读写控制信号、地址信号都是由

3、址信号都是由CPU发出的(总线由发出的(总线由CPU控制)。控制)。n 缺点:程序的执行速度限定了传送的最大速缺点:程序的执行速度限定了传送的最大速度(约为几十度(约为几十KB/秒)秒)解决:解决:DMA传输传输10 nDMA传输传输:外设外设 内存内存n外设直接与存储器进行数据交换外设直接与存储器进行数据交换,CPU不再担不再担当数据传输的中介者;当数据传输的中介者;n总线由总线由DMA控制器(控制器(DMAC)进行控制()进行控制(CPU要放弃总线控制权),内存要放弃总线控制权),内存/外设的地址和读写外设的地址和读写控制信号均由控制信号均由DMAC提供。提供。n优点:数据传输优点:数据传

4、输由由DMA硬件来控制,数据硬件来控制,数据直直接在内存和外设之间交换,可以达到很高的接在内存和外设之间交换,可以达到很高的传输速率(可达几传输速率(可达几MB/秒)秒)118.2 中断技术中断技术n8.2.1 中断的基本概念中断的基本概念n什么是中断什么是中断?n与生活场景的比较与生活场景的比较正在看书正在看书电话铃响电话铃响接电话接电话继续看书继续看书执行程序执行程序事件发生事件发生事件处理事件处理继续执行程序继续执行程序中断处理中断处理中断请求及响应中断请求及响应实际场景实际场景计算机计算机中断返回中断返回12中断的定义中断的定义 nCPU执行程序时,由于发生了某种随机执行程序时,由于发

5、生了某种随机的事件的事件(外部或内部外部或内部),引起,引起CPU暂时中暂时中断正在运行的程序,转去执行一段特殊断正在运行的程序,转去执行一段特殊的服务程序的服务程序(称为中断服务程序或中断处称为中断服务程序或中断处理程序理程序),以处理该事件,该事件处理完,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一后又返回被中断的程序继续执行,这一过程称为中断。过程称为中断。13中断源中断源n引起引起CPU中断的事件中断的事件中断源。例如:中断源。例如:n外设外设请求输入输出数据,报告故障等请求输入输出数据,报告故障等n事件事件掉电、硬件故障、软件错误、非法操作、定时掉电、硬件故障、软件错

6、误、非法操作、定时时间到等时间到等n中断源分为:外部中断、内部中断中断源分为:外部中断、内部中断n内部中断:内部中断:CPU内部执行程序时自身产生的中断内部执行程序时自身产生的中断n外部中断:外部中断:CPU以外的设备、部件产生的中断以外的设备、部件产生的中断n 8086/8088的外部中断信号:的外部中断信号:INTR、NMInINTR可屏蔽中断请求,高电平有效,受可屏蔽中断请求,高电平有效,受IF标志的控标志的控制。制。IF=1时,执行完当前指令后时,执行完当前指令后CPU对它作出响应。对它作出响应。nNMI非屏蔽中断请求,上升沿有效,任何时候非屏蔽中断请求,上升沿有效,任何时候CPU都要

7、响应此中断请求信号。都要响应此中断请求信号。14为何计算机中要引入中断?为何计算机中要引入中断?n提高数据传输率;提高数据传输率;n避免了避免了CPU不断检测外设状态的过程,提不断检测外设状态的过程,提高了高了CPU的利用率。的利用率。n实现对特殊事件的实时响应。实现对特殊事件的实时响应。158.2.2中断过程中断过程n五个步骤:五个步骤:n中断请求n中断判优(有时还要进行中断源识别)n中断响应n中断服务n中断返回以下以外部中断外部中断为主介绍这五个步骤。161)中断请求)中断请求n外设接口(中断源)发出中断请求信号,送到外设接口(中断源)发出中断请求信号,送到CPU的的INTR或或NMI引脚

8、;引脚;n中断请求信号:边沿请求,电平请求中断请求信号:边沿请求,电平请求例如,例如,NMI为边沿请求,为边沿请求,INTR为电平请求为电平请求n中断请求信号应保持到中断被处理为止;中断请求信号应保持到中断被处理为止;nCPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信号应及时撤销。n在在8086/8088系统中,外设的中断要经过系统中,外设的中断要经过8259A可编程中断控制器可编程中断控制器(PIC)的排队判优后向的排队判优后向CPU发出:发出:(I/O接口接口)PICCPU172.1)中断源识别)中断源识别n计算机中的中断源有很多,计算机中的中断源有很多,CPU必须识别是必

9、须识别是哪一个设备产生中断。识别中断源有两个方哪一个设备产生中断。识别中断源有两个方法:法:n软件查询。将中断信号从数据总线读入,用程序软件查询。将中断信号从数据总线读入,用程序进行判别。进行判别。n中断矢量法。由中断源提供中断类型号,中断矢量法。由中断源提供中断类型号,CPU根根据类型确定中断源。(据类型确定中断源。(8086/8088即采用此种即采用此种方法)方法)182.2)中断判优)中断判优n多个中断源产生中断,多个中断源产生中断,CPU首先为谁服务?首先为谁服务?中断优先级排队问题。中断优先级排队问题。n中断优先级控制要处理两种情况:中断优先级控制要处理两种情况:n对同时产生的中断:

10、应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;n对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断即允许中断嵌套。n中断优先级的控制方法中断优先级的控制方法n硬件判优硬件判优链式判优、并行判优(中断向量法)链式判优、并行判优(中断向量法)n软件判优软件判优顺序查询中断请求,先查询的先服务(即先查询的优顺序查询中断请求,先查询的先服务(即先查询的优先级别高)先级别高)n通常将通常将中断判优中断判优与与中断源识别中断源识别合并在一起进行处理。合并在一起进行处理。nx86系统中,这项任务由系统中,这项任务由PIC和和CPU共同完成。共同完成。19IN

11、TAinCPUINTAINTR外设外设1 1外设外设2 2外设接口外设接口1 1菊花链菊花链逻辑电路逻辑电路外设接口外设接口2 2外设外设3 3外设接口外设接口3 31 1菊花链菊花链逻辑电路逻辑电路菊花链菊花链逻辑电路逻辑电路IREQIREQIREQ中断确认中断确认链式判优电路原理图链式判优电路原理图INTAinINTAin中断确认中断确认中断确认中断确认20菊花链逻辑电路菊花链逻辑电路INTAinIREQINTR&=1 1INTAoutDB三态门中断向量码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路213)中断响应)中断响应n在每条指令的最后一个时钟周期,在每条指令的最后

12、一个时钟周期,CPU检测检测INTR或或NMI信号。若以下条件成立,则信号。若以下条件成立,则CPU响应中断:响应中断:n当前指令执行完。对INTR,还应满足以下条件n当前指令是STI和和IRET,则下条指令也要执行完。n当前指令带有LOCK、REP等指令前缀时,则把它们看成一个整体,要求完整地执行完;n对INTR,CPU应处于开中断状态,即IF=1;n当前没有复位(RESET)和保持(HOLD)信号。n若NMI和 INTR 同时发生,则首先响应NMI。223)中断响应(续)中断响应(续)nCPU中断响应时,要做下述三项工作:中断响应时,要做下述三项工作:n向中断源发出INTA中断响应信号;n

13、断点保护,包括CS、IP和PSW(FLAGS)。这主要是保证中断结束后能返回被中断的程序。n获得中断服务程序首地址(入口)。如何得到中断处理程序的首地址?n固定入口法n中断向量法常用234)中断处理(中断服务)中断处理(中断服务)n中断服务子程序特点中断服务子程序特点n为”远”过程(类型为FAR)n要用IRET指令返回n中断服务子程序要做的工作中断服务子程序要做的工作n保护现场(PUSH regs)n开中断(STI)n进行中断处理 n恢复现场(POP regs)n中断返回(IRET)245)中断返回)中断返回n执行中断返回指令执行中断返回指令IRETnIRET指令将使CPU把堆栈内保存的断点信

14、息弹出到IP、CS和FLAG中,保证被中断的程序从断点处能够继续往下执行。IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHCSLCSHFLAGLFLAGHSPIPCSFLAG进入中断服务程序时中断返回后258.2.3 8088的中断系统的中断系统 n与中断有关的控制线为:与中断有关的控制线为:NMI、INTR、INTA#n8088系统的中断源系统的中断源n内部中断n除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。n单步中断:类型号1,TF=1时产生(当前指令需执行完)n断点中断:类型号3,这是一个软件中断,即INT 3指令。n溢出中断:类型号4,这是一个软件中断,即INT

15、O指令。n软件中断:即INT n指令,类型号n(0-255)。n外部中断n非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。n可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。26NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢出中断除法错除法错单步中断单步中断非屏蔽中断请求非屏蔽中断请求中断控中断控制器制器8259APIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断8086/8088中断源类型中断源类型可可屏屏蔽蔽中中断断请请求求n4301227中断源的识别中断源的识别n8088系统采用系统采用中断类型码中断类型

16、码来识别不同的中断来识别不同的中断源,源,每个中断源都有一个与它相对应的中断每个中断源都有一个与它相对应的中断类型码类型码。n溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值固定值n软件中断的类型码由指令给出由指令给出n可屏蔽中断的类型码由由PIC给出给出nCPU响应响应INTR中断时,会产生两个中断响中断时,会产生两个中断响应总线周期,要求应总线周期,要求PIC在第在第2个中断响应总线个中断响应总线周期把中断类型码放到数据总线上,供周期把中断类型码放到数据总线上,供CPU读入。读入。28中断向量表中断向量表(IVT)n存放各类中断的存放各类中断的中断服务程序的入口地址中断服务程序的入口

17、地址(段和偏移)(段和偏移)中断向量中断向量 n表的地址位于内存的表的地址位于内存的00000H003FFH,大,大小为小为1KB,共,共256个中断向量个中断向量n每个中断向量占用每个中断向量占用4Bytes,低字为段内偏移,低字为段内偏移,高字为段基址高字为段基址n根据中断类型号根据中断类型号获得中断服务程序入口的方获得中断服务程序入口的方法法:(n为为中断类型号中断类型号)n中断向量在中断向量在IVT中的存放地址中的存放地址4n29中断向量表的初始化中断向量表的初始化n初始化初始化将中断服务程序的入口地址放入将中断服务程序的入口地址放入向量表向量表 例:中断类型码为例:中断类型码为48H

18、的中断处理子程序的的中断处理子程序的名字为名字为int48h,编写程序段将该中断处理子,编写程序段将该中断处理子程序的入口地址放入向量表。程序的入口地址放入向量表。30中断向量表的初始化中断向量表的初始化 CLI;关中断关中断 MOV AX,0 MOV DS,AX MOV SI,48H*4;表的地址指针表的地址指针DS:SI MOV AX,OFFSET int48h MOV SI,AX;送中断入口之偏移地址送中断入口之偏移地址 MOV AX,SEG int48h MOV SI+2,AX;送中断入口之段基址送中断入口之段基址 STI;开中断开中断318086/8088 CPU的中断响应过程的中断

19、响应过程 n内部中断响应过程内部中断响应过程 n无INTA#周期n中断类型码固定或由指令给出n响应过程主要步骤(CPU 自动完成):PUSH FLAG IF=0 PUSH CS PUSH IP 取中断向量送入取中断向量送入IP和和CS32中断响应过程(续)中断响应过程(续)n外部中断响应过程外部中断响应过程n非屏蔽中断,与内部中断响应过程类似 n可屏蔽中断 INTA#(1),),PIC进行优先级排队判优处理进行优先级排队判优处理 INTA#(2),),PIC把中断类型码把中断类型码n放到放到DB上,上,CPU读入读入 PUSH FLAG IF=0 PUSH CS PUSH IP 取中断向量送入

20、取中断向量送入IP和和CS与内部中断一样与内部中断一样(CPU自动完成自动完成)338088系统中各中断的优先级系统中各中断的优先级n优先级从高到低顺序如下:优先级从高到低顺序如下:n内部中断nNMInINTRn单步中断34NYNYNNNNNYY执行指令执行完否?取指令IF=1?内部中断?NMI?INTR?TF=1?类型码=0255类型码=2类型码=1中断响应,读回类型码FLAG入栈TEMPTFTF=TF=0CS、IP入栈计算向量表地址高字CS低字IP执行中断服务程序NMI?TEMP=1?转入中断服务程序恢复CS和IP恢复FLAGS返回被中断的程序YYYYNIRET指令的操作8086/8088

21、的的中断处理流程中断处理流程35NMI、INTR、单步和除法错单步和除法错中断同时产生中断同时产生时的中断处理时的中断处理过程过程DIVTF=1IF=1INTRNMIPUSH FLAGS、CS、IPCLEAR IF&TF,中断入口CS:IP除法错除法错NMI(IF、TF=0)PUSH FLAGS、CS、IPCLEAR IF&TF,中断入口CS:IPNMI中断处理程序除法错中断处理程序(IF、TF=0)返回返回执行下条指令识别出INTR(IF、TF=1)返回返回INTR仍然有效仍然有效继续单步执行程序继续单步执行程序INTR中断处理程序INTRPUSH FLAGS、CS、IPCLEAR IF&T

22、F,中断入口CS:IP单步单步(IF、TF=0)PUSH FLAGS、CS、IPCLEAR IF&TF,中断入口CS:IP单步中断处理程序(IF、TF=0)返回返回(IF、TF=1)返回返回368.3 可编程中断控制器可编程中断控制器8259AnPIC,Programmable Interrupt Controllern可对可对8个中断源实现优先级控制个中断源实现优先级控制 n可扩展至对可扩展至对64个中断源实现优先级控制个中断源实现优先级控制 n可编程设置不同工作方式可编程设置不同工作方式n根据中断源向根据中断源向x86提供不同中断类型码提供不同中断类型码n引脚分配及功能引脚分配及功能378

23、.3.1 8.3.1 可编程中断管理芯片可编程中断管理芯片82598259A A一、一、82598259A A的内部结构的内部结构38n 8259A的内部结构的内部结构n中断请求寄存器中断请求寄存器IRRn保存从保存从IR0IR7来的中断请求信号,某位来的中断请求信号,某位=1表示对应的表示对应的IRi有中有中断请求断请求 n中断服务寄存器中断服务寄存器ISR n保存所有正在服务的中断源,某位保存所有正在服务的中断源,某位=1表示对应的表示对应的IRi中断正在被中断正在被服务服务 n中断屏蔽寄存器中断屏蔽寄存器IMR(区别于CPU的标志寄存器的IF)n存放中断屏蔽字,某位存放中断屏蔽字,某位=

24、1表示对应的表示对应的IRi输入被屏蔽输入被屏蔽 n中断优先权判别电路中断优先权判别电路 n确定是否向确定是否向CPU发出中断请求,中断响应时确定发出中断请求,中断响应时确定ISR的哪位应置的哪位应置位及把相应中断的类型码放到数据总线上位及把相应中断的类型码放到数据总线上 39nIRRInterrupt Request RegisternPR-Priority ResolvernISR-Interrupt Service RegisternIMR-Interrupt Mask RegisternICWs-Initialization Command WordsnOCWs-Operation C

25、ommand Wordsn7个个CPU可访问的寄存器,分两组:可访问的寄存器,分两组:n初始化命令字ICW1 ICW4-系统初启时设定。n操作命令字OCW1OCW3系统运行时,由应用程序设定(实现对中断处理的动态管理和控制).The OCWs can be written into the 8259A anytime after initialization.(手册P6137)。8259A的内部结构的内部结构408.3.2 8259A的工作过程的工作过程n8259A对中断请求的处理过程如下:对中断请求的处理过程如下:n当某当某IRi有效时,有效时,IRR相应位置相应位置1n若有效的若有效的IR

26、i未被屏蔽,则未被屏蔽,则向向CPU发出中断请求发出中断请求n检测到第检测到第1个个INTA#信号后,信号后,置置ISRi=1,IRRi=0(8259A-INTA接接CPU-INTA,INT接接CPU-INTR)n检测到第检测到第2个个INTA#信号后,信号后,把把ISRi=1中最高优先级的中中最高优先级的中断类型码放到断类型码放到DB上上n若工作在若工作在AEOI方式,在第方式,在第2个个INTA#结束时,使结束时,使ISRi复复位;否则由位;否则由CPU发出发出EOI命令使命令使ISRi复位复位418.3.3 8259A的工作方式的工作方式n8259A的工作方式有如下几类:的工作方式有如下

27、几类:n中断优先方式与中断嵌套中断优先方式与中断嵌套n中断结束处理方式中断结束处理方式 n屏蔽中断源的方式屏蔽中断源的方式n中断触发方式中断触发方式n级联工作方式级联工作方式42中断优先方式与中断嵌套中断优先方式与中断嵌套n中断优先方式中断优先方式 两类优先级控制方式:固定优先级固定优先级和循环优先级循环优先级n固定优先级方式n所有中断请求IRi的中断优先级固定不变n优先级排列顺序可编程改变n加电后8259A的默认方式,默认优先级顺序从高到低为IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级优先级IR7IR6IR5IR4

28、IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变43中断优先方式与中断嵌套(续)中断优先方式与中断嵌套(续)n循环优先级方式循环优先级方式 n中断源轮流处于最高优先级,即自动中断优先级循环n初始优先级顺序可用编程改变n某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级 IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后IS

29、Ri44中断优先方式与中断嵌套(续)中断优先方式与中断嵌套(续)n中断嵌套中断嵌套方式方式n在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:n普通全嵌套方式(默认方式)普通全嵌套方式(默认方式)一中断正被处理时,只有一中断正被处理时,只有更高优先级更高优先级的事件可以打的事件可以打断当前的中断处理过程而被服务。断当前的中断处理过程而被服务。n特殊全嵌套方式特殊全嵌套方式 一中断正被处理时,允许一中断正被处理时,允许同级或更高优先级同级或更高优先级的事件的事件可以打断当前的中断处理过程而被服务。可以打断当前的中断处理过程而被服务。注注:特殊全嵌套仅用于多个

30、特殊全嵌套仅用于多个8259A级连时的主级连时的主8259A,而不能用于从属而不能用于从属8259A或单或单8259A系统。系统。45中断结束处理方式中断结束处理方式n当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应位中的相应位ISRi=1。当服务结束后,则必须清零该。当服务结束后,则必须清零该ISRi位。使位。使ISRi=0是通过向是通过向8259A发出中发出中断结束命令(断结束命令(EOI命令)实现的。命令)实现的。n三种三种EOI命令命令n自动EOI(AEOI)(自动EOI方式)n非指定EOI(NSEOI)(正常EOI方式)n指定EOI(SEOI)(特殊EOI方式)46 nA

31、EOI:在第2个INTA#结束时,由8259A使ISRi自动复位;n因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式nSEOI:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。n用于特殊屏蔽方式nNSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。n用于普通全嵌套方式47屏蔽中断源的方式屏蔽中断源的方式nIMR屏蔽字决定了屏蔽字决定了允许或禁止允许或禁止某位某位IRi所对应所对应的中断的中断:IMi=1 禁止,禁止,IMi=0 允许。允许。n特殊屏蔽方式:特殊屏蔽方式:n提供了允许较低优先级的中断能够得到响应

32、的特殊手段。n原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。n特殊屏蔽方式中只能用SEOI命令结束中断。48n特殊屏蔽例特殊屏蔽例:。;IR4中断处理程序中断处理程序CLIMOVAL,68H;OCW3:01101000OUT0C0H,AL;设置特殊屏蔽方式;设置特殊屏蔽方式INAL,0C2HORAL,10H;屏蔽;屏蔽IR4OUT0C2H,ALSTI。;IR7请求,响应,返回请求,响应,返回。CLI;为设命令字;为设命令字INAL,0C2H;读出屏蔽字;读出屏蔽字ANDAL,0EFH;清除;清除IMR4OUT0C2H,ALMO

33、VAL,48H;OCW3:01001000OUT0C0H,AL;取消特殊屏蔽;取消特殊屏蔽STI。;继续;继续IR4中断服务中断服务MOVAL,20H;OCW2:00100000(EOI)OUT0C0,ALIRET49中断触发方式中断触发方式n边沿触发边沿触发nIRi出现上升沿表示有中断请求 n电平触发电平触发nIRi出现高电平表示有中断请求n在第在第1个个INTA#结束前,结束前,IRi必须保持高电平必须保持高电平 508.3.4 8259A的编程与使用的编程与使用n8259A的控制命令分为的控制命令分为n初始化命令字初始化命令字ICWnICW1ICW4n向向8259A写入写入ICW的过程称

34、为的过程称为初始化编程初始化编程n操作命令字操作命令字OCW nOCW1OCW3n向向8259A写入写入OCW的过程称为的过程称为操作方式编程操作方式编程518259A内部寄存器的寻址方法内部寄存器的寻址方法CS#RD#WR#A0D4D3读读写操作写操作010000写OCW2写OCW3写ICW1写ICW2,ICW3,ICW4,OCW1(顺序写入)00101x1xx00101xx读出IRR、ISR读出IMRn需要需要CS#、A0、RD#、WR#和和D4、D3的配的配合合n内部寄存器的访问方法如下表:内部寄存器的访问方法如下表:528259A的初始化顺序的初始化顺序 n8259的初始化流的初始化流

35、程如图程如图n注意次序不可颠倒 写写ICW1写写ICW2级连?级连?写写ICW3需需ICW4?写写ICW4NNYY538259A的控制命令字的控制命令字n初始化初始化8259A必须从必须从ICW1开始开始n写写ICW1意味着重新初始化意味着重新初始化8259An写入写入ICW1后,后,8259A的状态如下:的状态如下:n清除清除ISR和和IMR(全全0);n将中断优先级设成初始状态:将中断优先级设成初始状态:IR0最高,最高,IR7最低;最低;n设定为一般屏蔽方式;设定为一般屏蔽方式;n采用非自动中断结束方式;采用非自动中断结束方式;n状态读出逻辑预置为读状态读出逻辑预置为读IRR。54ICW

36、1初始化字初始化字nLTIM:触发方式触发方式n=1 高电平触发n=0 上升沿触发nSNGL:级连控制级连控制n=1 单片n=0 级连nIC4:ICW4控制控制n=1 要写ICW4n=0 不写ICW4(默认ICW4为全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC455ICW2中断向量码中断向量码nT7T3:中断向量码的高中断向量码的高5位位nT2T0:最低最低3位为中断源的序号位为中断源的序号IRnn000111分别对应分别对应IR0IR7n由由8259A根据中断源的序号自动填入根据中断源的序号自动填入(依次为0 7)例如:例如:若若

37、ICW2命令字为命令字为48H,则,则IR0的中断向量码为的中断向量码为48H,IR7的中断向量码为的中断向量码为4FH,等等。,等等。A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x x56ICW3级连控制字级连控制字 n主片的级联控制字主片的级联控制字 nSi=1对应对应IRi线上连接了从片线上连接了从片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0n从片的级联控制字从片的级联控制字 nID2ID0 标识码,说明本从片连接到主片的哪标识码,说明本从片连接到主片的哪个个IR引脚上。引脚上。0

38、00111分别对应分别对应IR0IR7。A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID057ICW4中断结束方式字中断结束方式字 nSFNM:特殊全嵌套特殊全嵌套1 特殊全嵌套方式特殊全嵌套方式0 一般全嵌套方式一般全嵌套方式nAEOI:自动自动EOI1 自动自动EOI方式方式0 非自动非自动EOI方式方式A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI 1nBUF:缓冲方式缓冲方式 M/S:主主/从缓冲选择从缓冲选择BUF M/S 1 1 缓冲方式缓冲方式/主主PIC 1 0 缓冲方式缓冲

39、方式/从从PIC 0 x 非缓冲方式非缓冲方式/正常正常588259A的操作命令字的操作命令字OCW nOCW用于设置用于设置8259的工作状态的工作状态n在初始化后写入在初始化后写入nOCW的写入顺序可任意的写入顺序可任意n写入地址要求:写入地址要求:nOCW1必须写入奇地址端口必须写入奇地址端口(A0=1)nOCW2,OCW3必须写入偶地址端口必须写入偶地址端口(A0=0)59OCW1中断屏蔽字中断屏蔽字 nMi=1 中断请求线中断请求线IRi被屏蔽被屏蔽(不允许中断不允许中断)=0 允许该允许该IRi中断中断 nOCW1将写入将写入IMR寄存器。寄存器。nA0=1时读时读OCW1可读出设

40、置的可读出设置的IMR内容。内容。A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M060OCW2中断结束和优先级循环中断结束和优先级循环 nL2L0:优先级编码优先级编码nR:优先级自动循环优先级自动循环nSL:指定优先级指定优先级nEOI:结束中断命令结束中断命令 RSLEOI001非指定非指定EOI命令命令(NSEOI),全嵌套方式,全嵌套方式011指定指定EOI命令命令(SEOI),全嵌套方式,按,全嵌套方式,按L2-L0编码复位编码复位ISR101NSEOI命令,优先级自动循环命令,优先级自动循环100自动自动EOI,设置优先级自动循

41、环,设置优先级自动循环000自动自动EOI,取消优先级自动循环,取消优先级自动循环(固定优先级固定优先级)111SEOI命令,按命令,按L2-L0编码循环优先级编码循环优先级(L2-L0设为最低优先级设为最低优先级)110按按L2-L0编码循环优先级编码循环优先级(L2-L0设为最低优先级设为最低优先级)A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L061OCW3屏蔽方式和读出控制字屏蔽方式和读出控制字 nESMM:允许使能特殊屏蔽方式允许使能特殊屏蔽方式nSMM:特殊屏蔽方式特殊屏蔽方式ESMMSMM11特殊屏蔽方式置位特殊屏蔽方式置位10特

42、殊屏蔽方式复位特殊屏蔽方式复位0 x非特殊屏蔽方式非特殊屏蔽方式P(Polling):=1 查询方式查询方式 =0 非查询方式非查询方式A0 D7D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RISnRR:读寄存器读寄存器nRIS:ISR/IRR选择选择RRRIS11读读ISR10读读IRR0 x无效无效62OCW3(续)(续)n查询方式允许查询方式允许8259A不工作于中断方式,而不工作于中断方式,而是以查询方式工作。是以查询方式工作。nCPU先写一个先写一个D2=1的的OCW3,再对同一地址读,再对同一地址读入,即可得到如下状态字节:入,即可得到如下

43、状态字节:IxxxxR2R1R0I=1表示有中断请求,中断请求号为表示有中断请求,中断请求号为R2-R0此查询步骤可反复执行,以响应多个同时发生此查询步骤可反复执行,以响应多个同时发生的中断。的中断。n读读IRR/ISR:写入此命令后,随后再对同一:写入此命令后,随后再对同一地址读,即可得到地址读,即可得到IRR或或ISR的内容。的内容。638259A编程举例编程举例n按以下要求初始化按以下要求初始化8259A:n接口地址为20H和21H;n中断为上升沿触发;单片8259A;不写ICW4;n与IR0-IR3对应的中断向量码为08H-0BH;nIR4-IR7不使用。n根据要求,各初始化参数及工作

44、参数如下:根据要求,各初始化参数及工作参数如下:nICW1=00010010=12HnICW2=08H 中断向量码 nOCW1=11110000=0F0H 中断屏蔽字 64 8259A编程举例(续)编程举例(续)初始化程序如下:初始化程序如下:INIT8259A:MOVDX,20H;A0=0,写ICW1MOVAL,12H;上升沿触发,单片,不写ICW4OUTDX,ALMOVDX,21H;A0=1,写ICW2,OCW1MOVAL,08H;ICW2OUTDX,ALMOVAL,0F0H;OCW1:屏蔽IR4-IR7OUTDX,AL658.4 PC机中断程序设计机中断程序设计1)主程序)主程序保存原中

45、断向量保存原中断向量设置自己的中断向量设置自己的中断向量初始化堆栈指针初始化堆栈指针设置设置8259A的中断屏蔽字(其他的已由操作系统设置)的中断屏蔽字(其他的已由操作系统设置)STI2)中断服务程序)中断服务程序保存所用到的寄存器内容保存所用到的寄存器内容中断服务程序主体中断服务程序主体恢复进入时保存的寄存器内容恢复进入时保存的寄存器内容发发EOI命令(必要时可提前)命令(必要时可提前)STI(必要时可提前)(必要时可提前)IRET66中断程序举例中断程序举例nPC机中主机中主8259A的的I/O地址为地址为20H和和21H,中断,中断向量码为向量码为08H;n中断请求从中断请求从IR6引入

46、,故引入,故中断类型号为中断类型号为0EH;n主程序如下:主程序如下:;保存原来的中断向量保存原来的中断向量movah,35h ;系统调用的功能号系统调用的功能号moval,0eh;中断类型码;中断类型码int21h;取原中断向量;取原中断向量(在(在es:bx中)中)movsave_ip,bx;保存原来的中断向量;保存原来的中断向量movsave_cs,es67;设置自己的中断向量设置自己的中断向量pushdsmov dx,offsetmy_intmov ax,segmy_intmov ds,ax;DS:DX的内容为的内容为my_int的首地址的首地址mov ah,25hmov al,0eh

47、int21h;设置自己的中断向量设置自己的中断向量,中断类型号中断类型号0EH的的中中断向量表内容更新为断向量表内容更新为my_int的首地址的首地址popds68;初始化堆栈指针初始化堆栈指针mov sp,my_stack_top;设置设置8259A的中断屏蔽字的中断屏蔽字inal,21hand al,10111111b;8259A开放开放IR6中断中断out21h,alsti;CPU开中断开中断69n中断子程序如下:中断子程序如下:my_intproc farpusha loop1:popamoval,20h;EOI命令,命令,00100000Bout20h,al;写;写OCW2stiiretmy_intendp(第八章结束第八章结束)70

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁