版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第7章章 中断和中断和DMA 计算机在运行过程中往往会遇到一些不可计算机在运行过程中往往会遇到一些不可预料的事情预料的事情:如电源电压波动过大,如电源电压波动过大,CPU温温度过高,除数为零等,这些事件都是随机度过高,除数为零等,这些事件都是随机的。为了保证系统安全稳定可靠,计算机的。为了保证系统安全稳定可靠,计算机必须具有处理这些随机事件的功能。这个必须具有处理这些随机事件的功能。这个功能就是功能就是中断中断来承担的。来承担的。 在进行大批量数据传输时,由于采用中断在进行大批量数据传输时,由于采用中断方式方式CPU要在主程序与中断服务程序之间要在主程序与中断服务程序之间进行频繁的切换,效率
2、不高,所以采用进行频繁的切换,效率不高,所以采用DMA方式。方式。 本章主要讨论以下问题:本章主要讨论以下问题:中断的概念;中断的概念;中断处理的一般过程;中断处理的一般过程;中断控制器中断控制器8259的作用及使用;的作用及使用;中断例程中断例程(包括中断申请、中断判优、中断包括中断申请、中断判优、中断响应、中断处理、中断返回等响应、中断处理、中断返回等)。DMA数据传输方式及数据传输方式及DMA控制器控制器7.1中断的基本概念中断的基本概念计算机与外设之间一般采用五种数据传输方计算机与外设之间一般采用五种数据传输方式:直接程序传输方式;中断方式;式:直接程序传输方式;中断方式;DMA数据传
3、输方式;通道控制传输方式;外围数据传输方式;通道控制传输方式;外围处理机控制传输方式。处理机控制传输方式。1.中断定义:所谓中断是指中断定义:所谓中断是指CPU在执行程序在执行程序过程中,如果因出现某种随机事件而收到过程中,如果因出现某种随机事件而收到中断请求,暂时中断现行程序的执行,而中断请求,暂时中断现行程序的执行,而转去执行一段中断服务程序,并在执行完转去执行一段中断服务程序,并在执行完中断服务程序后自动地返回到原来的程序中断服务程序后自动地返回到原来的程序继续执行的过程。继续执行的过程。 2与中断有关的几个名词解释与中断有关的几个名词解释:中断源:中断源是引起中断的事件及发出中断源:中
4、断源是引起中断的事件及发出中断请求的来源。中断请求的来源。断点:断点是被中断打断点的断点:断点是被中断打断点的CPU正在运正在运行程序地址(严格讲应该为正在执行指令行程序地址(严格讲应该为正在执行指令的下一条指令的地址)。的下一条指令的地址)。中断入口:中断入口是中断服务程序第一中断入口:中断入口是中断服务程序第一条指令所在的存储器单元地址。条指令所在的存储器单元地址。7.1.1中断类型中断类型 中断申请可以来源于外部设备,也可以来源中断申请可以来源于外部设备,也可以来源于处理机内部。根据中断源与于处理机内部。根据中断源与CPU之间的之间的关系,中断可以分外部中断和内部中断两大关系,中断可以分
5、外部中断和内部中断两大类。类。1.外部中断外部中断 由系统配置的外部设备引起的中断。由于中由系统配置的外部设备引起的中断。由于中断源来自断源来自CPU以外,所以称外部中断以外,所以称外部中断(简称简称外中断外中断)。 CPU为了能检测到外部中断源发出的中断请为了能检测到外部中断源发出的中断请求,通常通过引脚来接收外部中断请求信号。求,通常通过引脚来接收外部中断请求信号。Intel系列系列CPU提供两个中断申请引脚:提供两个中断申请引脚:INTR(可屏蔽中断申请引脚可屏蔽中断申请引脚)和和NMI(不可屏不可屏蔽中断申请引脚蔽中断申请引脚)。 以及一个中断响应引脚以及一个中断响应引脚INTA。 对
6、于可屏蔽中断对于可屏蔽中断,申请能否获得响应,由申请能否获得响应,由CPU内部标志寄存器的标志位内部标志寄存器的标志位IF的状态决定。的状态决定。程序员可以通过指令程序员可以通过指令STI(置位置位IF=1)和和CLI(复位复位IF=0)来开放中断来开放中断(IF= 1允许中断)允许中断)或屏蔽中断(或屏蔽中断( IF= 0)。)。 不可屏蔽中断申请总是可以获得中断响应的。不可屏蔽中断申请总是可以获得中断响应的。2.内部中断内部中断(执行中断指令陷阱执行中断指令陷阱) 内部中断是在执行中断指令内部中断是在执行中断指令INT n时产生的,时产生的,一般称软件中断,是可编程的。或程序执行一般称软件
7、中断,是可编程的。或程序执行时产生异常。时产生异常。 处理器执行的中断指令包括处理器执行的中断指令包括INT n、INTO、INT3和和BOUND将引起中断。将引起中断。3.异常异常 处理器在执行指令过程中,因检测不到正常处理器在执行指令过程中,因检测不到正常情况就会产生异常。异常分三类情况就会产生异常。异常分三类故障故障:是一种能够被纠正的异常,在一条指令是一种能够被纠正的异常,在一条指令执行前或执行过程报告。一旦异常处理完毕,执行前或执行过程报告。一旦异常处理完毕,被中断的指令将被程序启动。被中断的指令将被程序启动。陷阱陷阱:是在陷阱指令执行后产生的,异常处理是在陷阱指令执行后产生的,异常
8、处理后,继续执行下一条指令。后,继续执行下一条指令。中止中止:中止用于报告严重错误,如硬件故障、中止用于报告严重错误,如硬件故障、非法表格等,因此不允许重新启动执行失败非法表格等,因此不允许重新启动执行失败的程序。的程序。7.1.2中断与异常的优先级中断与异常的优先级1.中断与异常的优先级中断与异常的优先级 如果有多个中断或异常同时申请中断,如果有多个中断或异常同时申请中断,CPU应该先处理谁应该先处理谁? 解决方法是系统为每一个中断设置一个中断解决方法是系统为每一个中断设置一个中断优先级,优先级高的中断优先获得优先级,优先级高的中断优先获得CPU的服的服务。务。 在硬件上设置中断判优电路,对
9、所有的中断在硬件上设置中断判优电路,对所有的中断申请进行排队判优,选出优先级高的中断源。申请进行排队判优,选出优先级高的中断源。2.中断请求与判优中断请求与判优 Intel CPU只有一个中断申请引脚只有一个中断申请引脚INTR接收接收中断申请,所以当系统中有多个外部中断源中断申请,所以当系统中有多个外部中断源要申请中断时,必须对所有的中断申请进行要申请中断时,必须对所有的中断申请进行排队判优,选出优先级高的中断源。排队判优,选出优先级高的中断源。 实现排队判优的电路有多种。实现排队判优的电路有多种。中断优先级编码电路中断优先级编码电路链式优先级排队电路链式优先级排队电路7.1.3 中断响应中
10、断响应 I/O设备提出中断请求后,设备提出中断请求后,CPU中止现行程中止现行程序的执行,转去为某个设备服务的过程称为序的执行,转去为某个设备服务的过程称为中断响应。中断响应必须满足一定的条件。中断响应。中断响应必须满足一定的条件。1中断响应的条件中断响应的条件中断源有中断请求;中断源有中断请求;CPU允许中断;允许中断;CPU响应中断的时间;当前两个中断响应响应中断的时间;当前两个中断响应条件满足时,条件满足时,CPU应等待正在执行的一条应等待正在执行的一条指令执行完毕,并且执行的指令执行完毕,并且执行的不是停机指令不是停机指令或或中断返回中断返回或或子程序返回指令子程序返回指令,又没有更高
11、优,又没有更高优先级的中断有请求,则先级的中断有请求,则CPU进入中断周期进入中断周期状态,进行中断响应。状态,进行中断响应。2中断响应中断响应 一旦一旦CPU中断响应条件得到满足,则中断响应条件得到满足,则CPU进入中断周期状态,并开始响应中断。响进入中断周期状态,并开始响应中断。响应中断必须解决以下问题:应中断必须解决以下问题: 保护现场保护现场:主要保存程序计数器:主要保存程序计数器PC和程序和程序状态字状态字PSW寄存器的内容;寄存器的内容; 中断源的识别中断源的识别:确定哪个中断源优先得到:确定哪个中断源优先得到处理。处理。 提高响应的速度提高响应的速度。中断响应的具体操作中断响应的
12、具体操作:压标志寄存器压标志寄存器FLAGS内容入堆栈内容入堆栈;硬件自动清除标志硬件自动清除标志IF(IF=0)、TF(陷(陷阱)、阱)、RF(恢复)和(恢复)和AC(对界检查标志)(对界检查标志);CS、EIP寄存器内容依次压入堆栈寄存器内容依次压入堆栈;将中断服务程序的入口地址送入将中断服务程序的入口地址送入CS:EIP,在下一个机器周期转去执行在下一个机器周期转去执行中断服务程序中断服务程序,进行中断处理。进行中断处理。 由于中断有硬中断由于中断有硬中断(来自外部设备,中断申来自外部设备,中断申请信号来自请信号来自CPU引脚引脚INTR和和NMI),也有软,也有软中断中断(执行执行IN
13、T n指令指令),又有实模式和保护模,又有实模式和保护模式之分,所以具体处理是有差别的。式之分,所以具体处理是有差别的。3.硬件中断硬件中断 当外部设备需要与计算机进行通信时,可当外部设备需要与计算机进行通信时,可以采用硬中断的方式来实现。以采用硬中断的方式来实现。 CPU提供提供INTR(可屏蔽中断申请引脚可屏蔽中断申请引脚)和和NMI(不可屏蔽中断申请引脚不可屏蔽中断申请引脚)。以及一个中。以及一个中断响应引脚断响应引脚INTA。 硬件中断服务程序的入口地址取决于不同硬件中断服务程序的入口地址取决于不同的计算机系统。的计算机系统。 当多个外设都要通过中断方式与计算机进当多个外设都要通过中断
14、方式与计算机进行通信时,就必须进行中断优先级的排队行通信时,就必须进行中断优先级的排队判优。这个工作有判优。这个工作有8259A可编程控制器来可编程控制器来承担。承担。7.2 可编程中断控制器可编程中断控制器8259A 由于由于IntelCPU只有两个接受外部设备中断只有两个接受外部设备中断的引脚,当多个设备要同时申请中断时除了的引脚,当多个设备要同时申请中断时除了要进行排队判优外,还必须进行外部电路扩要进行排队判优外,还必须进行外部电路扩展(选择),完成该任务的芯片就是可编程展(选择),完成该任务的芯片就是可编程中断控制器中断控制器8259A。 8259A的主要特点:的主要特点:每片可以管理
15、每片可以管理8个外部中断,且每个都可以个外部中断,且每个都可以单独屏蔽;单独屏蔽;具有级连功能,通过级连一个主片可以控具有级连功能,通过级连一个主片可以控制制64个中断(需要个中断(需要9片);片);具有多种优先权管理模式;具有多种优先权管理模式;可直接向可直接向CPU提供中断类型码;提供中断类型码;单单+5V电源供电。电源供电。7.2.1 8259的结构及功能的结构及功能1.与系统总线接口电路与系统总线接口电路数据总线缓冲器:是数据总线缓冲器:是8位双向的三态数据位双向的三态数据缓冲总线接口,缓冲总线接口,D0D7。所有数据输入输。所有数据输入输出都是通过该接口完成。出都是通过该接口完成。读
16、写控制电路:负责对选中的内部寄存器读写控制电路:负责对选中的内部寄存器进行读写操作。进行读写操作。控制逻辑控制逻辑:根据中断控制电路提供的信号:根据中断控制电路提供的信号向向CPU发出中断请求,并负责接受发出中断请求,并负责接受CPU发发出的中断响应信号,对片内工作进行控制出的中断响应信号,对片内工作进行控制(产生中断类型码,清除中断请求寄存器中(产生中断类型码,清除中断请求寄存器中的相应标志)的相应标志)2.中断控制电路中断控制电路中断请求寄存器中断请求寄存器IRR:8259A有有8条外部中条外部中断请求输入信号线断请求输入信号线IR0IR7,每一条请求,每一条请求线上有一个相应的触发器来保
17、存请求信号,线上有一个相应的触发器来保存请求信号,它们构成了中断请求寄存器它们构成了中断请求寄存器IRR(Interrupt Request Register)。IRR7IR7IRR6IR6IRR5IR5IRR4IR4IRR3IR3IRR2IR2IRR1IR1IRR0IR0IRRn=1,表示该,表示该引脚有中断请求引脚有中断请求中断服务寄存器中断服务寄存器ISR:中断服务寄存器:中断服务寄存器ISR(Interrupt Service Register)存放当前存放当前正在进行服务的所有中断服务码(包括被高正在进行服务的所有中断服务码(包括被高优先级打断而没有服务完的)。优先级打断而没有服务完
18、的)。ISR中相应中相应位的置位是在中断响应的位的置位是在中断响应的INTA脉冲期间,脉冲期间,由优先权判决电路根据由优先权判决电路根据IRR中各请求位的优中各请求位的优先权级别和先权级别和IMR中屏蔽位的状态,将中断的中屏蔽位的状态,将中断的最高优先级请求位选通到最高优先级请求位选通到ISR中。中。对应关系:对应关系:ISR7IR7ISR6IR6ISR5IR5ISR4IR4ISR3IR3ISR2IR2ISR1IR1ISR0IR0如果如果ISR0=1,表示,表示IR0的中断申请正在被服务。的中断申请正在被服务。如果如果ISR0=1 (优先级高),(优先级高),ISR2=1。表示。表示IR2的中
19、断服务被的中断服务被IR0打断,打断,IR0申请正在被服务申请正在被服务。中断屏蔽寄存器中断屏蔽寄存器IMR:中断屏蔽寄存器:中断屏蔽寄存器IMR(Interrupt Mask Register)用来存放用来存放屏蔽位信息,每一位对应一个中断源,可屏蔽位信息,每一位对应一个中断源,可以编程设置,以编程设置,“1”对应的中断源的对应的中断源的IRR中中断请求被屏蔽,否则允许请求。断请求被屏蔽,否则允许请求。IRR7IR7IRR6IR6IRR5IR5IRR4IR4IRR3IR3IRR2IR2IRR1IR1IRR0IR0IRRIMRIMR7 IMR6 IMR5 IMR4 IMR3 IMR2 IMR1
20、 IMR0优先权判决器优先权判决器PR:实现中断优先级判别。:实现中断优先级判别。 如果当前如果当前CPU没有执行中断服务,则优先没有执行中断服务,则优先权判决器对权判决器对IRR中的各个有效中断进行排中的各个有效中断进行排队判优,选出优先级最高的中断给予处理,队判优,选出优先级最高的中断给予处理,且将且将 优先权编码送优先权编码送ISR。 如果当前如果当前CPU正执行中断服务,则优先权正执行中断服务,则优先权判决器将新的中断请求优先权编码与判决器将新的中断请求优先权编码与ISR进行比较,如果优先权高给予处理(中断进行比较,如果优先权高给予处理(中断嵌套),并置新中断的优先权编码到嵌套),并置
21、新中断的优先权编码到ISR。否则不予响应。否则不予响应。IRR0IRR1IRR2IRR3IRR4IRR5IRR6IRR7IR0IR1IR2IR3IR4IR5IR6IR7183编编码码器器B2B1B0A2A1A0AB比比较较器器&D7D6D5D4D3D2D1D0ISR编码器编码器ISRIMRIRR优先级判优电路优先级判优电路PRINT3.级连控制电路级连控制电路 用于控制多个用于控制多个8259A的级连,使的级连,使8259A可以可以用于中断源多于用于中断源多于8个场合(最多可达个场合(最多可达64个)。个)。4. 8259A的工作过程的工作过程 根据根据8259A的内部结构,其工作过程
22、如下:的内部结构,其工作过程如下:(1)外部中断源通过外部中断源通过IR0-IR7输入高电平中断请输入高电平中断请求信号求信号(2) 外部中断源的中断请求信号使中断请求触外部中断源的中断请求信号使中断请求触发器发器IRR的相应位置的相应位置“1”,并与,并与IMR按位相按位相“与与”,送给优先权判决电路。,送给优先权判决电路。(3) 优先权判决优先权判决电路从电路从IRR中检测出优先级最中检测出优先级最高的中断请求位,并将其与高的中断请求位,并将其与ISR中记录的正中记录的正在被在被CPU服务的中断进行优先级比较。当提服务的中断进行优先级比较。当提请的中断优先级高于正在服务的中断优先级请的中断
23、优先级高于正在服务的中断优先级时,中断优先权判决电路就向控制逻辑发出时,中断优先权判决电路就向控制逻辑发出有效的中断请求信号。有效的中断请求信号。(4) 当控制逻辑收到有效的中断请求信号时,当控制逻辑收到有效的中断请求信号时,向向CPU发出高电平信号发出高电平信号INT,请求中断服务。,请求中断服务。(5) 在中断允许的情况下在中断允许的情况下(IF=1),CPU接受中接受中断请求断请求INT,并发出中断响应信号,并发出中断响应信号INTA,对,对8086/8088 CPU,将连续发出两个,将连续发出两个INTA脉脉冲。冲。(6) 当当8259A接到来自接到来自CPU的第一个的第一个INTA脉
24、冲脉冲时,就把允许中断的最高优先级请求位置入时,就把允许中断的最高优先级请求位置入ISR,并把,并把IRR中的相应位复位。中的相应位复位。如果工作如果工作在级联方式下在级联方式下,而且设备的优先级最高,则,而且设备的优先级最高,则主控主控8259A将送出级联地址将送出级联地址CAS0-CAS2,将其加载至从属将其加载至从属8259A上。上。(7) 在第二个在第二个INTA脉冲,对单独使用或是级联脉冲,对单独使用或是级联方式下从属的方式下从属的8259A,将其中断向量发送至,将其中断向量发送至数据总线。数据总线。(8) CPU从数据总线上获取中断向量码,转移从数据总线上获取中断向量码,转移到相应
25、的中断处理程序。到相应的中断处理程序。(9) 中断结束时,通过在中断处理程序中向中断结束时,通过在中断处理程序中向8259A发送一条发送一条EOI(中断结束中断结束)命令,使命令,使ISR相应位复位,或在相应位复位,或在AEOI(自动中断结自动中断结束束)方式下,由方式下,由8259A在第二个在第二个INTA脉冲脉冲的后沿自动将的后沿自动将ISR相应位复位。相应位复位。CAS0CAS2INTAIR7IR0EN/SPCLKALELOCKD0D7第一个周期第一个周期第二个周期第二个周期INTCPU响应响应周期周期8259A中中断周期断周期中断类型中断类型n8259A的工作过程的工作过程7.2.2.
26、 8259A引脚功能引脚功能 8259A采用双排直插采用双排直插28引脚封装,各引脚引脚封装,各引脚功能为功能为:数据线数据线D7D0:双向三态数据总线,用于与双向三态数据总线,用于与系统总线相连,完成与系统总线相连,完成与CPU数据传输。数据传输。A0:地址选择信号。用于选择地址选择信号。用于选择8259A内部各内部各寄存器。寄存器。RD:读信号线。低电平有效。从选中的寄读信号线。低电平有效。从选中的寄存器读取数据。存器读取数据。WR:写信号。低电平有效,将数据写入到写信号。低电平有效,将数据写入到选中的寄存器或控制寄存器中。选中的寄存器或控制寄存器中。CS:片选择信号。低电平有效片选择信号
27、。低电平有效(选中该芯片选中该芯片)。INT:中断请求信号。输出,由中断请求信号。输出,由8259A向向CPU发出的中断请求信号。发出的中断请求信号。INTA:中断响应信号,输入,低电平有效。中断响应信号,输入,低电平有效。CPU向向8259A发出的中断应答信号。发出的中断应答信号。IR0IR7:输入,可接收来自外部的输入,可接收来自外部的8级中断级中断请求信号。请求信号。CAS2CAS0:级连信号线。级连信号线。8259为主片时,为主片时,为输出信号;从片为输入信号。为输出信号;从片为输入信号。SP/EN:与:与CAS2 CAS0配合使用。在非配合使用。在非缓冲方式下,主片接高电平,从片接地
28、。缓冲方式下,主片接高电平,从片接地。 在级连方式下在级连方式下,8259A一个主片可以连接一个主片可以连接8个从片,且每一片都要分别初时化和设定工个从片,且每一片都要分别初时化和设定工作状态。作状态。 级连时,主级连时,主8259A的的IR7IR0分别连接从分别连接从8259A的的INT。主。主8259A的的CAS2CAS0与与每一个从每一个从CAS2CAS0对应相连。对应相连。 当任意从当任意从8259A的的IR端有中断请求时,可以端有中断请求时,可以从该片的从该片的INT端传送到主端传送到主8259A的的IR端,再端,再由主由主8259A INT端向端向CPU发出中断请求。发出中断请求。
29、 若若CPU响应中断,主响应中断,主8259A的的CAS2CAS0将输出从将输出从8259A的编码,被选定的从的编码,被选定的从8259A将相应的中断类型号送数据总线。将相应的中断类型号送数据总线。7.2.3 8259A的工作方式的工作方式 8259A有多种工作方式,每一种工作方式都有多种工作方式,每一种工作方式都可以通过编程方法来实现。可以通过编程方法来实现。1. 8259A的中断优先权管理方式的中断优先权管理方式 按照优先级管理方式来分,按照优先级管理方式来分,8259A有几种工有几种工作方式:作方式:完全嵌套方式完全嵌套方式 是一种按照固定优先级来管理的中断方式,是一种按照固定优先级来管
30、理的中断方式,上电初时化的默认方式。上电初时化的默认方式。 在完全嵌套方式下,在完全嵌套方式下,8个中断源的优先级是固个中断源的优先级是固定的,定的,IR0最高,最高,IR7最低。最低。 当系统正在处理中断时当系统正在处理中断时,其中断服务寄存器,其中断服务寄存器ISR中所对应的位中所对应的位ISn被置被置“1”,然后进入中,然后进入中断服务。断服务。 同级或优先低的中断不再响应。只有优先级同级或优先低的中断不再响应。只有优先级比它高的中断申请才被响应,从而实现完全比它高的中断申请才被响应,从而实现完全嵌套。嵌套。特殊全嵌套方式特殊全嵌套方式(用在级连)(用在级连) 与完全嵌套方式基本相同,只
31、是在处理中断与完全嵌套方式基本相同,只是在处理中断过程中,过程中,同级同级或更高优先级的中断申请时也或更高优先级的中断申请时也给予响应。给予响应。 这种方式一般应用在有级连的情况,主片在这种方式一般应用在有级连的情况,主片在特殊全嵌套方式,从片在其他方式。特殊全嵌套方式,从片在其他方式。 因为在级连情况下因为在级连情况下,优先级被自然地分成,优先级被自然地分成了两级:主优先级(有主了两级:主优先级(有主8259A的的IR0IR7确定)和从优先级(有从确定)和从优先级(有从8259A的的IR0IR7确定)。确定)。 同一个主优先级包含了同一个从同一个主优先级包含了同一个从8259A的的8个中断源
32、,虽然对从优先级它们的优先级个中断源,虽然对从优先级它们的优先级是不同(是不同(IR0最高,最高,IR7最低),而对主优最低),而对主优先级它们又是处于同一级,所以都设置在先级它们又是处于同一级,所以都设置在完全嵌套中断方式下,主完全嵌套中断方式下,主8259A就不能响就不能响应主优先级相同的中断。应主优先级相同的中断。 当主片在特殊全嵌套方式,从片在其他方式当主片在特殊全嵌套方式,从片在其他方式时,这样从片可以响应高优先级(从优先),时,这样从片可以响应高优先级(从优先),主片可以响应同优先级(主优先级)。主片可以响应同优先级(主优先级)。优先级自动循环方式优先级自动循环方式 固定优先级的缺
33、点是当系统中设备比较多又固定优先级的缺点是当系统中设备比较多又都是通过中断与系统交换信息时,优先级比都是通过中断与系统交换信息时,优先级比较低的设备可能很难较低的设备可能很难 获得获得CPU的响应。的响应。 解决的方法是采用解决的方法是采用可变优先级可变优先级,设备等待时,设备等待时间越长,它的优先级就越高,每获得一次中间越长,它的优先级就越高,每获得一次中断响应就将优先级降到最低进行排队。断响应就将优先级降到最低进行排队。 这种方式就称优先级自动循环方式,或称这种方式就称优先级自动循环方式,或称“等优先级方式等优先级方式”。优先级特殊循环方式优先级特殊循环方式 优先级特殊循环方式与优先级自动
34、循环方优先级特殊循环方式与优先级自动循环方式相比,只有一点不同,优先级特殊循环式相比,只有一点不同,优先级特殊循环方式一开始的最低优先级是由程序确定的,方式一开始的最低优先级是由程序确定的,如如IR5最低优先级,那么最低优先级,那么IR6就是最高优先就是最高优先级。级。 自动循环方式中,一开始的最高优先级一自动循环方式中,一开始的最高优先级一定是定是IR0。2.2.按结束中断处理方式分按结束中断处理方式分 按照对中断结束(复位中断响应寄存器按照对中断结束(复位中断响应寄存器ISRISR中相应位)的不同处理,中相应位)的不同处理,8259A8259A有两种工作有两种工作方式:即自动结束方式(方式
35、:即自动结束方式(AEOIAEOI)和非自动)和非自动结束方式结束方式(EOI)(EOI)。 而非自动结束方式又可进一步分为一般的而非自动结束方式又可进一步分为一般的中断结束方式和特殊的中断结束方式。中断结束方式和特殊的中断结束方式。中断自动结束方式中断自动结束方式(AEOI)(AEOI) 这种方式仅适用于只有单片这种方式仅适用于只有单片8259A8259A且无中断且无中断嵌套的场合,在这种方式下,系统一旦响应嵌套的场合,在这种方式下,系统一旦响应中断,那么中断,那么CPUCPU在发第二个在发第二个INTAINTA脉冲时,就脉冲时,就会使中断响应寄存器会使中断响应寄存器ISRISR中相应位复位
36、(清中相应位复位(清0 0)。)。 这样一来,虽然系统在进行中断处理,但对这样一来,虽然系统在进行中断处理,但对于于8259A8259A来讲,来讲,ISRISR没有相应的指示,就象中没有相应的指示,就象中断处理结束,返回主程序之后一样。断处理结束,返回主程序之后一样。CPUCPU可可以再次响应任何级别的中断请求。以再次响应任何级别的中断请求。 一般的中断结束方式一般的中断结束方式 一般的中断结束方式适用用在全嵌套的情一般的中断结束方式适用用在全嵌套的情况下,当况下,当CPUCPU用输出指令向用输出指令向8259A8259A发一般中发一般中断中断结束命令断中断结束命令OCW2OCW2时,时,82
37、59A8259A才会使中断才会使中断响应寄存器响应寄存器ISRISR中优先级别最高的位复位。中优先级别最高的位复位。特殊的中断结束方式特殊的中断结束方式 在特殊全嵌套模式下,系统无法确定哪一在特殊全嵌套模式下,系统无法确定哪一级中断为最后响应和处理的中断(由于中级中断为最后响应和处理的中断(由于中断的优先级是变的,断的优先级是变的, ISRISR中的内容无法表中的内容无法表示正在响应的中断优先级),也就是说,示正在响应的中断优先级),也就是说,CPUCPU无法确定当前所处理的是哪级中断,这无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束方式。时就要采用特殊的中断结束方式。 特殊的中断
38、结束方式是指在特殊的中断结束方式是指在CPUCPU结束中断处结束中断处理之后,向理之后,向8259A8259A发送一个特殊的发送一个特殊的EOIEOI中断结中断结束命令,这个特殊的中断结束束命令,这个特殊的中断结束EOIEOI命令,明命令,明确指出了中断响应寄存器确指出了中断响应寄存器ISRISR中需要复位的中需要复位的位。位。 在级联方式下,一般不用自动中断结束方式,在级联方式下,一般不用自动中断结束方式,而需要用非自动结束中断方式,一个中断处而需要用非自动结束中断方式,一个中断处理程序结束时,都必须发两个中断结束理程序结束时,都必须发两个中断结束EOIEOI命令,一个发往主片,一个发往从片
39、。命令,一个发往主片,一个发往从片。 3.3.按中断源的屏蔽方式分按中断源的屏蔽方式分CPUCPU对于对于8259A8259A提出的中断请求,都可以加以提出的中断请求,都可以加以屏蔽控制,屏蔽控制有下列几种方式:屏蔽控制,屏蔽控制有下列几种方式:普通屏蔽方式:普通屏蔽方式: 8259A8259A的每个中断请求输入,都要受到屏蔽的每个中断请求输入,都要受到屏蔽寄存器中相应位的控制。若相应位为寄存器中相应位的控制。若相应位为“1”1”,则中断请求不能送则中断请求不能送CPUCPU。屏蔽是通过对屏蔽。屏蔽是通过对屏蔽寄存器寄存器IMRIMR的编程(操作命令字的编程(操作命令字OCW1OCW1),来)
40、,来加以设置和改变的。加以设置和改变的。特殊屏蔽方式:特殊屏蔽方式: 有些场合下,希望一个中断服务程序的运有些场合下,希望一个中断服务程序的运行过程中,能动态地改变系统中的中断优行过程中,能动态地改变系统中的中断优先级结构,即在中断处理的一部分,禁止先级结构,即在中断处理的一部分,禁止低级中断,而在中断处理的另一部分,又低级中断,而在中断处理的另一部分,又能够允许低级中断,于是引入了对中断的能够允许低级中断,于是引入了对中断的特殊屏蔽方式。特殊屏蔽方式。 设置了特殊屏蔽方式后,用设置了特殊屏蔽方式后,用OCW1OCW1对屏蔽寄对屏蔽寄存器中的某一位复位时,同时也会使中断存器中的某一位复位时,同
41、时也会使中断服务寄存器服务寄存器ISRISR中的相应位清中的相应位清0 0,这样真正,这样真正开放了其它优先级别较低的中断请求开放了其它优先级别较低的中断请求。4.4.系统总线的连接方式系统总线的连接方式 当当8259A8259A以级联方式用在一个大的系统下时,以级联方式用在一个大的系统下时,就要求对数据总线进行驱动缓冲。缓冲方就要求对数据总线进行驱动缓冲。缓冲方式就是用来设定系统总线与式就是用来设定系统总线与8259A8259A数据总线数据总线之间是否需要进行缓冲。之间是否需要进行缓冲。非缓冲方式。非缓冲方式。 在指定非缓冲方式时,在指定非缓冲方式时,SP/ENSP/EN作为输入,用作为输入
42、,用来识别来识别8259A8259A是主控制器还是从属控制器。是主控制器还是从属控制器。缓冲方式。缓冲方式。 此方式下此方式下SP/ENSP/EN为输出,为输出,ENEN作为允许缓冲器作为允许缓冲器发送发送/ /接收的控制信号。接收的控制信号。 5. 5. 按照中断请求的方式分按照中断请求的方式分边沿触发方式边沿触发方式 8259A8259A将中断请求输入端出现的上升沿,作为将中断请求输入端出现的上升沿,作为中断请求信号,上升沿后中断请求信号,上升沿后 相应引脚,可以相应引脚,可以一直保持高电平。一直保持高电平。电平触发方式电平触发方式 8259A8259A将中断请求输入端出现的高电平作为将中
43、断请求输入端出现的高电平作为中断请求信号,在这种方式下,必须注意:中断请求信号,在这种方式下,必须注意:中断响应之后,高电平必须及时撤除,否则,中断响应之后,高电平必须及时撤除,否则,在在CPUCPU响应中断,开中断之后,会引起第二次响应中断,开中断之后,会引起第二次不应该有的中断。不应该有的中断。8259工作工作方式方式结束中断方式结束中断方式设置优先级方式设置优先级方式优先级固定方式优先级固定方式普通全嵌套普通全嵌套特殊全嵌套特殊全嵌套优先级循环方式优先级循环方式自动循环自动循环特殊循环特殊循环自动中断结束方式自动中断结束方式非自动中断结束方式非自动中断结束方式普通中断结束普通中断结束特殊
44、中断结束特殊中断结束屏蔽中断源方式屏蔽中断源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式中断触发方式中断触发方式边沿触发方式边沿触发方式电平触发方式电平触发方式数据线连接方式数据线连接方式缓冲方式缓冲方式非缓冲方式非缓冲方式ICW1ICW2ICW3ICW4OCW1OCW2OCW37.2.4 8259A编程编程 8259A是通过软件写入相应的命令字来设是通过软件写入相应的命令字来设定工作状态的。定工作状态的。8259A的编程分的编程分初时化编初时化编程程和和工作方式编程工作方式编程两类。两类。1.初时化编程初时化编程 8259A的初时化编程是通过程序写入初时的初时化编程是通过程序写入初时
45、化命令字化命令字ICW (Initial Command Word)来来设定其初始状态的,对设定其初始状态的,对8259A,初时化命令初时化命令字有四个,其中字有四个,其中ICW1、ICW2是必写的,是必写的, ICW3、ICW4视工作方式选择使用。视工作方式选择使用。 下面就下面就8259A在在8086CPU系统中的应用来系统中的应用来介绍各控制字的含义。介绍各控制字的含义。ICW1: 是初时化最先写入的控制字,此时要求是初时化最先写入的控制字,此时要求8259A的的A0引脚必须为引脚必须为“0”。 各位的含义:各位的含义:D7D5:仅对:仅对8080/8085有意义。有意义。8086/80
46、88系统中该内容可以为任意值。系统中该内容可以为任意值。D4:ICW1特征位。作为特征位。作为ICW1的命令字标的命令字标识,该位必须为识,该位必须为“1”。D7 D6 D5 D4 D3D2D1D0XXX1LTIM ADI SNGL IC4A00D3:触发方式位。:触发方式位。LTIM=1表示表示8259A的中的中断请求断请求IR端为电平触发方式。端为电平触发方式。 LTIM=0表示表示IR端为边沿触发方式(上升沿)。端为边沿触发方式(上升沿)。D2:仅对:仅对8080/8085有意义。有意义。8086/8088系系统中该内容可以为任意值。统中该内容可以为任意值。 ADI=XD1:级连标志。:
47、级连标志。SNGL=0多片;多片; SNGL=1单单片。片。D0:该位用来确定是否设置:该位用来确定是否设置ICW4。IC4=1表表示设置示设置ICW4, IC4=0表示不设置表示不设置ICW4。在。在8086/8088系统中必须写入系统中必须写入ICW4,该位必须,该位必须设置为设置为1。ICW2: 用于设定中断类型码。此时要求用于设定中断类型码。此时要求8259A的的A0引脚必须为引脚必须为“1”。 各位的含义:各位的含义:D7D3:表示中断类型码的高五位:表示中断类型码的高五位T7T3,由用户设定。由用户设定。D2D0:中断类型的低:中断类型的低3位,中断响应时由位,中断响应时由系统自动
48、填写。系统自动填写。D7D6D5D4D3D2D1D0A15/T7A14/T6A13/T5A12/T4A11/T3A10A9A8A01 在在8259A中中断类型码的高中中断类型码的高5位由用户自己设位由用户自己设定,低三位是系统根据中断源所对应的定,低三位是系统根据中断源所对应的IR位位自动填写的,其对应关系:自动填写的,其对应关系: IR0对应的中断源其中断类型码低三位对应的中断源其中断类型码低三位000; IR1对应的中断源其中断类型码低三位对应的中断源其中断类型码低三位001; IR2对应的中断源其中断类型码低三位对应的中断源其中断类型码低三位010; IR3对应的中断源其中断类型码低三位
49、对应的中断源其中断类型码低三位011; IR4对应的中断源其中断类型码低三位对应的中断源其中断类型码低三位100; IR5对应的中断源其中断类型码低三位对应的中断源其中断类型码低三位101; IR6对应的中断源其中断类型码低三位对应的中断源其中断类型码低三位110; IR7对应的中断源其中断类型码低三位对应的中断源其中断类型码低三位111。ICW3 ( SNGL=0时必须设置时必须设置) 用于级连方式的命令字,单片工作用于级连方式的命令字,单片工作SNGL=1时时,不需要设定。写入时要求不需要设定。写入时要求8259A的的A0引脚引脚必须为必须为“1”。 各位的含义(分主片和从片各位的含义(分
50、主片和从片ICW3 ):): 主片主片ICW3中的中的D7D0每一位对应每一位对应8259A的的8个外部中断请求信号个外部中断请求信号IR7IR0。当某一个中。当某一个中断请求信号引脚连接从片时,设置断请求信号引脚连接从片时,设置“1”;否;否则设置为则设置为“0”。主片主片ICW3A0D7D6D5D4D3D2D1D01IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 从片从片ICW3中的中的D7D3:不用。:不用。 从片从片ICW3中的中的D2D0:由该从片的:由该从片的INT与主与主片的哪个片的哪个IR引脚相连而定。引脚相连而定。从片从片ICW3A0D7D6D5D4D3D2D
51、1D0100000ID2 ID1 ID0ID2ID1 ID0IR0000IR1001IR2010IR3011IR4100IR5101IR6110IR7111100010000000011100000011主主8259从从8259从从8259IR3INTINTIR7ICW4: 是方式控制命令字,写入时要求是方式控制命令字,写入时要求8259A的的A0引脚必须为引脚必须为“1”。 该命令字是否需要写入由该命令字是否需要写入由ICW1中的中的IC4决定。决定。 若若IC4=1,表示设定,否则不设定。,表示设定,否则不设定。 各位的含义:各位的含义:D7D5:ICW4的特征位,必须为的特征位,必须为0
52、00。D4:设定中断嵌套方式。:设定中断嵌套方式。SF=1,特殊嵌套,特殊嵌套方式;方式;SF=0,一般嵌套方式。,一般嵌套方式。A01D7D6D5D4D3D2D1D0000SFXMBUF M/S AEOI PMD3:缓冲方式设定位。:缓冲方式设定位。BUF=1为缓冲方式;为缓冲方式; BUF=0表示表示非缓冲方式。表示表示非缓冲方式。 在非缓冲方式下,在非缓冲方式下,8259A的数据线直接与系的数据线直接与系统的数据线相连,其以统的数据线相连,其以SP/EN引脚为输入信引脚为输入信号,在多片级连时用于区分主片(主片接高)号,在多片级连时用于区分主片(主片接高)或从片(从片接低)。或从片(从片
53、接低)。 在缓冲方式下,在缓冲方式下,8259A的数据线通过总线驱的数据线通过总线驱动器与系统的数据线相连,其以动器与系统的数据线相连,其以SP/EN引脚引脚为输出信号,作为总线驱动器的启动信号。为输出信号,作为总线驱动器的启动信号。D2:在缓冲方式下用于区分主片还是从片。:在缓冲方式下用于区分主片还是从片。M/S1表示主片;表示主片;M/S0表示从片。表示从片。BUF=0,则该位不起作用。,则该位不起作用。D1:中断结束方式。:中断结束方式。AEOI=1,自动结束;,自动结束; AEOI=0,为,为EOI命令结束方式;命令结束方式; 自动结束是在中断响应自动结束是在中断响应INTA的第二个脉
54、冲的第二个脉冲的后沿,的后沿,8259A自动将中断服务寄存器自动将中断服务寄存器ISR中的对应位自动清除。中的对应位自动清除。 EOI命令结束方式是指在中断服务结束时必命令结束方式是指在中断服务结束时必须执行须执行EOI命令,清除中断服务寄存器命令,清除中断服务寄存器ISR中的对应位。分一般中的对应位。分一般(执行执行EOI指令)和特指令)和特殊(执行殊(执行SEOI指令指令)。 通过通过OCW2完成完成D0:指定系统命令。:指定系统命令。PM=1表示表示8086/8088系统;系统;PM=0表示表示8080/8085系系统。统。 以上我们讨论了以上我们讨论了8259A初时化命令的具体内初时化
55、命令的具体内容,在初时化编程中,这四个命令字必须按容,在初时化编程中,这四个命令字必须按顺序写入。顺序写入。 写入顺序:写入顺序:ICW1ICW2 ICW3ICW4。 其中其中ICW1、ICW2 是必须写入的。是必须写入的。 ICW3、ICW4是否写入取决于是否写入取决于ICW1中的控制位。级中的控制位。级连要写连要写ICW3,IC4=1要写要写ICW4。 因为四个命令字只有两个地址,因为四个命令字只有两个地址,A0=0写入的写入的是是ICW1。A0=1写入的是写入的是ICW2 、ICW3、ICW4。因此必须规定。因此必须规定ICW2 、ICW3、ICW4。的写入顺序。的写入顺序。写写ICW4
56、写写ICW1写写ICW2结束结束写写ICW3SNGL=1?NIC4=1?YYNA0=0A0=1A0=1A0=1【例【例7.1】设】设8259A在在单片工作单片工作,中断请求为,中断请求为边沿触发方式边沿触发方式,用于,用于8086系统系统中,采用缓冲中,采用缓冲方式,中断结束后采用命令结束方式。假设方式,中断结束后采用命令结束方式。假设8259A的端口地址为的端口地址为60H(A0=0)和和61H(A0=1)。(。(设设IR0IR7的中断类型的中断类型40H47H。)。)试对此试对此8259A进行初始化编程。进行初始化编程。 解:根据题意可知道写解:根据题意可知道写ICW1的地址的地址60H,
57、 ICW2ICW4的地址都是的地址都是61H(A0=1)。ICW1各位:各位:D7D0=00010011B=13HD7 D6 D5 D4 D3D2D1D00001LTIM ADI SNGL IC4A00 ICW2各位:中断类型码各位:中断类型码40H 单片工作不需要单片工作不需要ICW3 ICW4各位:各位:00001101B=0DH(采用(采用一般嵌一般嵌套方式套方式,缓冲方式缓冲方式,主片,主片,中断结束后采用命中断结束后采用命令结束方式令结束方式, 6086CPU系统系统)。)。A01D7D6D5D4D3D2D1D0A15/T7A14/T6A13/T5A12/T4A11/T3A10A9A
58、8A01D7D6D5D4D3D2D1D0000SFXMBUF M/S AEOI PM 8259A的初始化程序:的初始化程序:MOV AL, 13H;写;写ICW1 (00010011B)OUT 60H,ALMOV AL, 40H;写;写ICW2 (01000000B)OUT 61H,ALMOV AL, 0DH;写;写ICW4 (00001101B)OUT 61H,AL2.操作命令字操作命令字OCW (Operating Command Word) 用用ICW对对8259A的初始化编程后,就可以的初始化编程后,就可以用操作命令字用操作命令字OCW对对8259A进行操作了。进行操作了。操作命令字有
59、三个,分别为操作命令字有三个,分别为OCW1 OCW3。 操作命令字也受操作命令字也受A0引脚控制。引脚控制。OCW1: 用于设置和读取中断屏蔽寄存器。当读用于设置和读取中断屏蔽寄存器。当读OCW1时,屏蔽字寄存器内容被读出。时,屏蔽字寄存器内容被读出。8259A在刚初始化时,屏蔽位的状态是未在刚初始化时,屏蔽位的状态是未知的。知的。 要求要求8259A的的A0引脚必须为引脚必须为“1”。 各位的含义:各位的含义:D7D0:中断屏蔽控制位。:中断屏蔽控制位。M=1,中断请,中断请求被屏蔽;求被屏蔽;M=0,中断请求被打开。,中断请求被打开。A01D7 D6 D5 D4 D3 D2 D1 D0M
60、7 M6 M5 M4 M3 M2 M1 M0OCW2(中断结束和优先级循环方式控制字):中断结束和优先级循环方式控制字): 当当8259A未选择未选择AEOI(自动结束方式,(自动结束方式,ICW4的的D1=1)方式时被编程。在这种情况下,)方式时被编程。在这种情况下,OCW2选择选择8259A响应中断结束方式,清除响应中断结束方式,清除正在服务的中断寄存器正在服务的中断寄存器ISR所对应的位。所对应的位。 另外还可以控制中断优先级的循环。另外还可以控制中断优先级的循环。 各位的含义:各位的含义:D7:设定中断优先权是否循环。:设定中断优先权是否循环。R=1,为优,为优先权循环方式。先权循环方式。R=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 痛经课件流程教学课件
- 手机原理课件教学课件
- 护士课件英语教学课件
- 公司机密保密协议
- 2024年市场营销与协作合同
- 2024年城市供水管道铺设工程承包合同
- 2024可再生能源发电并网服务合同
- 2024年婚姻外遇协议书
- 2024年《夏令营老师与营员心理辅导协议》心理辅导内容与保密原则
- 2024年企业间产品生产与销售合同
- 公司员工劳保用品发放标准和管理办法
- 诗词大会训练题库十二宫格
- 困难职工帮扶救助申请表
- 机械设计课程设计说明书 11机电本 刘伟华
- 问卷1:匹兹堡睡眠质量指数量表(PSQI)
- 大黄具有抗菌作用
- 高速铁路桥涵工程桥上救援疏散通道施工方案
- 《企业水平衡测试通则》
- 《演讲的肢体语言》PPT课件
- 研究一亿有多大ppt课件
- 企业经营状况调查问卷
评论
0/150
提交评论