第7章 中断控制器接口技术8259_第1页
第7章 中断控制器接口技术8259_第2页
第7章 中断控制器接口技术8259_第3页
第7章 中断控制器接口技术8259_第4页
第7章 中断控制器接口技术8259_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

7.1中断的基本概念7.2可编程中断控制器8259A7.38259A应用举例第7章中断控制器接口技术本章要点:8259A的编程结构和工作原理8259A的工作方式8259A的初始化命令字、操作命令字及其使用8259A的初始化流程和初始化编程主从式8259A中断系统的连接和工作原理一、什么是中断

中断:是指CPU在正常运行程序时,由于内部/外部事件或由程序的预先安排的事件,引起的CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕后,再返回去继续执行被暂时中断的程序的过程。二、中断源与中断识别

1.中断源

中断源:发出中断请求的外部设备或引起中断的内部原因。又分为外部中断、内部中断。

中断过程7.1中断的基本概念

中断源可细分为:

(1)外设中断:系统外部设备要求与CPU交换信息而产生的中断(2)指令中断:为了方便用户使用系统资源或调试软件而设置的中断指令(3)程序性中断:程序员的疏忽或算法上的差错。使程序在运行过程中出现的错误而产生的中断(4)硬件故障中断:计算机在运行过程中,硬件出现错误而引起的中断。

7.1中断的基本概念

中断类型总分类:

中断内部中断外部中断可屏蔽中断(外设中断、用户设定的中断)非屏蔽中断(电源故障中断)7.1中断的基本概念8086/8088的中断类型非屏蔽中断源中断逻辑INTO指令单步中断除法错误INTN指令CPUINTRNMI可屏蔽中断源8259A中断控制器IR0IR1IR2IR3IR4IR5IR6IR7外设中断源

INTA内部中断除法错中断指令中断溢出中断单步中断外部中断非屏蔽中断可屏蔽中断1.内部中断

内部中断是由于8088内部执行程序出现异常引起的程序中断除法错中断:向量号为0指令中断:向量号为n断点中断:向量号为3溢出中断:向量号为4单步中断:向量号为1内部中断的中断向量号已定2.外部中断

外部中断是由于8088外部提出中断请求引起的程序中断非屏蔽中断:向量号为2外部通过非屏蔽中断NMI请求,必须响应非屏蔽中断主要用于处理系统的意外或故障可屏蔽中断:向量号来自中断控制器外部通过可屏蔽中断INTR请求,由IF控制是否响应;响应时产生/INTA信号可屏蔽中断主要用于与外设交换数据IF控制可屏蔽中断的响应3、中断标志IF的状态IF=0:关闭可屏蔽中断关中断、禁止中断、中断屏蔽系统复位,使IF=0任何一个中断被响应,使IF=0执行指令CLI,使IF=0IF=1:打开可屏蔽中断开中断、允许中断、中断开放执行指令STI,使IF=14、中断源识别

由于在计算机中中断源众多,所以CPU响应中断后要设法寻找中断源,从而确定中断类型。以便转入相应的中断服务子程序中去执行中断服务。

CPU识别中断源的方法有两种:向量中断,查询中断。

向量中断是由中断向量来指示中断服务程序的入口地址。查询中断是采用软件或硬件查询技术来确定发出中断请求的中断源。7.1中断的基本概念三、中断向量与中断向量表

中断向量:是中断服务程序的入口地址。包括中断服务程序的段基址CS和偏移地址IP。在80x86系列计算机中把256种中断类型的服务程序地址放在存储器的00000H~003FFH处,共1024个字节单元,这段空间称为中断向量表。四、中断类型号与中断向量指针

中断类型(向量)号:是系统分配给每个中断源的代号,共有00H~0FFH号共256号。

中断向量号与中断向量指针的关系:中断类型号*4=中断向量的低字节的指针。

中断向量指针与中断号关系7.1中断的基本概念五、中断优先级排队

当系统中有多个中断同时申请中断时,CPU在一个时刻只能响应并处理一个中断请求,排队的方法有:a.按优先级排队(固定优先级排队)b.循环轮流排队(循环优先级排队)。六、中断嵌套

当CPU正在处理某个中断源时,即正在执行中断服务程序时,会出现优先级更高的中断申请,CPU需要暂时中断当前正在执行的级别较低的中断服务程序,去处理级别高的中断,处理完后,再返回被中断了的中断服务程序继续执行。

7.1中断的基本概念7.2中断控制器8259AIntel8259A是可编程中断控制器可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的功能:中断优先权管理接受中断请求,中断屏蔽与开放提供中断类型号具有屏蔽与开放中断的功能

8259A特点:单片8259可处理8级中断级联时:最多可用9片处理64级中断8259A的片内寻址A0=1、0,两个端口地址8259A的引脚8259A的引脚

双列直插式芯片,28个引脚方波键盘保留串口2

硬盘软盘打印机IOW18.2HzA1CS8259A总线A0数据线

IORRDWR片选译码IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A级连情况INTAINT

INTA

INTR串口1

定时器(1)CS*片选输入信号线:输入有效的低电平时,CPU可以通过总线对8259A进行读写操作;输入无效的高电平时,芯片不选中不工作。(2)WE*写控制信号线:输入低电平时,CPU对8259A写入命令控制字。(3)RD*读控制信号线:输入低电平时,芯片将状态信息送到数据总线。(4)D0-D7数据总线:与系统总线相连,CPU通过数据总线交换信息(5)CAS0-CAS2级联信号线:8259A单片使用时无效。对于主片其输出信号,根据这3根线输出值的组合000-111(=i),确定连在主片引脚IRi的从片工作;对从片,根据输入的值000-111来决定本从片是否被选中。(6)GND地址线。(7)VCC电源线:+5V。(8)A08259A内部寄存器选择控制信号:与CPU的地址线A1相连,A0=0时对应寄存器ICW1、OCW2、OCW3,A0=1时,对应寄存器ICW2-ICW4、OCW1。(9)INTA*中断响应输入线:低电平有效,接收CPU送来的中断响应信号。(10)IR0-IR7外设中断请求信号线:连接外设的中断请求信号线,外设通过它向8259A进行中断请求,规定的优先次序为IR0>IR1>…..>IR7。(11)INT中断请求输出线:与CPU中断请求输入线INTR相连,向CPU进行中断请求。(12)SP*/EN*

主片从片允许线:作为输入,=1时则为主片,=0时则为从片;作为输出时,启动8259A到CPU之间的数据总线驱动器,后面进一步详述。8259A的编程结构8259A的编程结构SP/ENCA0CA1CA2IORIOW总线D0~D7数据线D0~D7INTAINTRA0片选译码A5~A9CSA0RD

INTAWRINT

I3I4ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片连接关系

ICW4

方式控制0111A010010100OCW1

中断屏蔽寄存器

IMR

00

OCW2

优先级设置、发EOI

01

OCW3特殊屏蔽,查询方式设置处理部分控制部分00000000

ISR当前中断服务寄存器PR优先级比较器VCCGND100A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断申请寄存器00000000

(1)数据总线缓冲器:双向3态缓冲器,8根数据线D0-D7是与微处理器总线的数据接口,通过它与CPU进行命令、数据的传送。(2)读写控制逻辑:接收CPU读写命令,将控制命令字送到8259A的相应命令寄存器中,将8259A控制寄存器的内容输出到总线上。(3)联级缓冲/比较器:多片8259A联级时,一片为主片其它片为从片,主片从片的CAS0-CAS2并接作为联级总线。从片将主片发来的信号编码与自己编码相同时表示从片被选中。(4)中断控制逻辑:管理8259A全部工作,未被屏蔽中断请求时,通过INT向CPU发中断请求,ISR值为“1”的相应位,发相应中断类型号,通过数据总线缓冲器送到系统总线上。

(5)中断服务寄存器ISR:用来存放所有正在进行的中断服务请求,某位若为1,表示为相应的中断源服务。进行优先比较,决定是否进行嵌套。(6)中断优先权电路PR:对保存在中断请求寄存器IRR中的各个中断请求,将最高优先权的中断对应位送到中断服务寄存器ISR中。(7)中断请求寄存器IRR:与接口的中断线IR0-IR7相连,外设通过这8根线向8259A发中断请求服务,每根线发来的信息,用一个相应的触发器位来保存,IR0-IR7中的某一根线输入高电平信号时,该寄存器的相应位为1。(8)中断屏蔽寄存器IMR:用来存放中断屏蔽字,IMR寄存器中的每一位,对IRR的相应位的中断请求起屏蔽作用,当IMR的某位为0时,允许对应的IRR寄存器的相应位的中断请求,进入中断优先权电路PR。8259A寄存器及I/O端口的识别8259A读写操作及地址CSRDWRA0功能8259A端口PC/XT机端口0010读IRR,ISR偶地址20H0011读IMR奇地址21H0100写ICW1,OCW2,OCW3偶地址20H0101写ICW2,ICW3,ICW4,OCW1奇地址21H011×无操作

1×××无操作

8259A的工作过程分两步:(1)处理外设中断申请,决定是否向CPU发中断申请信号。(2)若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号。(1)处理外设中断申请,决定是否向CPU发中断申请信号②中断屏蔽寄存器IMR决定IRR中的中断申请是否进入优先级裁决器PR。IMR对应位为

0,允许中断申请进入优先级裁决器,IMR对应位为1,不允许进入,中断申请被IMR屏蔽。①中断申请寄存器IRR锁存外部的中断申请。若IR0~IR7引脚上有中断申请,则将IRR相应位置1③

当前中断服务寄存器ISR

记录CPU正在响应的中断。ISR中的某位为1,表示CPU正在响应此级中断,ISR中的某位为0,表示CPU没有或已响应完此级中断,

优先级裁决器PR据新进入的中断申请和ISR的内容,决定是否发中断申请信号。如果进入的中断申请比ISR中记录的中断优先级高,则通过8259A的INT引脚向CPU发出中断请求信号;如果进入的中断申请不比ISR中记录的中断优先级高,同级或低级,则不向CPU发中断请求信号。①中断申请寄存器IRR锁存外部的中断申请。若IR0~IR7引脚上有中断申请,则将IRR相应位置1IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器00000000

10010100INTR11②中断屏蔽寄存器IMR决定IRR中的中断申请

是否进入优先级裁决器PR。IMR对应位为

0,允许中断申请进入优先级裁决器,IMR对应位为1,不允许进入,中断申请被IMR屏蔽。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTRIR0③

当前中断服务寄存器ISR

记录CPU正在响应的中断。ISR中的某位为1,表示CPU正在响应此级中断,即正在执行此中断源的中断子程序;ISR中的某位为0,表示CPU没有或已响应完此级中断,即不在执行此中断源的中断子程序。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTRIR0IR2④

优先级裁决器PR据新进入的中断申请和ISR的内容,

决定是否发中断申请信号。如果进入的中断申请比ISR中记录的中断优先级高,则通过8259A的INT引脚向CPU发出中断请求信号;如果进入的中断申请不比ISR中记录的中断优先级高,同级或低级,则不向CPU发中断请求信号。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTRIR0(2)若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号

CPU接收到INTR上的中断申请信号后:如果IF标志为0,则CPU不响应此中断申请信号,

即中断申请被IF屏蔽。如果IF标志为1,则处理完当前的指令后,进入中断响应周期:

通过INTA引脚发出两个负脉冲信号,从数据总线上获取中断类型号,进入中断响应的过程。向量类型

INTACLKAD7~AD0T1T2T3T4第一个中断响应周期T1T2T3T4第二个中断响应周期

8086CPU中断响应周期时序①将ISR中相应位置1,表示CPU响应此级中断。8259A在接收到第一个INTA中断响应信号后:001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级裁决器IRR中断申请寄存器10000001

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置10010100IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RDWR

INTAINTD0~D7INTR01把IRR中对应的位清0,清除IRR中锁存的中断申请信号。使IRR锁存允许,不予接受IR0~IR7上的中断请求信号;直到第二个负脉冲结束后,才又使IRR锁存禁止(输入输出透明)①

通过数据线,将被响应申请的中断类型号送给CPU。类型号由ICW2提供,在初始化8259A时已设定好。8259A在接收到第二个INTA中断响应信号后:001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级裁决器IRR中断申请寄存器10000001

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置10010100IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RDWR

INTAINTD0~D7INTR01②

CPU获得中断类型号后,进入CPU响应中断的过程,执行中断子程序,处理中断源申请的功能。ICW2①取中断类型号N②当前PSW的内容入栈③清IF、TF标志为0④当前CS的内容入栈⑤当前IP的内容入栈⑥取内存单元(0:N×4)字内容送IP取中断子程⑦取内存单元(0:N×4+2)字内容送CS

入口地址此时CS:IP指向中断程序的入口,开始执行中断程序。保存现场CPU响应中断过程:执行完中断子程中最后一条指令IRET后,返回被中断处,继续执行被中断的程序。8259工作示意图返回中断级连一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)CAS0IR0CAS1IR1CAS2IR2

IR3INTAIR4IR5INTIR6IR7SP/EN

CAS0INTA

CAS1

CAS2INT

IR0

IR1SP/ENIR7CAS0IR0CAS1IR1CAS2IR2

IR3INTAIR4IR5INTIR6IR7SP/ENINTAINTR+5V8259级联工作示意图8259级联工作示意图8259A的工作方式1.设置优先级的方式(1)全嵌套方式

(2)特殊全嵌套方式

(3)优先级自动循环方式

(4)优先级特殊循环方式

(1)完全嵌套方式:(FULLYNESTEDMODE)

在对8259进行初始化后,没有设置其它优先级方式,则自动按此方式工作.

特点:在全嵌套方式中,中断请求按优先级IR0~IR7级进行处理,IR0级中断的优先级最高。当一个中断请求被响应时,ISR中的对应位ISn被置“1”,8259A把中断类型码放到数据总线上,然后,进入中断服务程序。一般情况下(除了“中断自动结束”方式外),在CPU发出中断结束命令(EOI)前,此对应位一直保持为“1”-封锁同级或低级的中断响应,但并不禁止比本级优先级高的中断响应-实现中断“嵌套”。8259A的工作方式8259A的工作方式(2)特殊全嵌套方式(SPECIALFULLYNESTEDMODE-SFNM)在处理某一级中断时,不但允许优先级更高的中断请求进入,也允许同级的中断请求进入。用于主从结构的8259系统中,将主片设置为“特殊全嵌套方式”。通过ICW4的“SFNM”位可以设置此种方式。CPUIR0IR1IR7…IR0IR1IR7…8259(主片)8259(从片)(3)优先级自动循环方式(AUTOMATICROTATION)优先级是循环变化的(不希望有固定的优先级差别)-一个设备的中断服务完成后,其优先级自动降为最低,而将最高优先级赋给原来比它低一级的中断请求。开始时,优先级队列还是:IR0->IR7,若此时出现了IR0请求,响应IR0并处理完成后,队列变为:IR1,IR2,IR3,IR4

,IR5

,IR6

,IR7,IR0。若又出现了IR4请求,处理完IR4后,队列变为:系统中是否采用“自动循环优先级”,由 操作命令字OCW2来设定。8259A的工作方式8259A的工作方式(4)优先级特殊循环方式(SPECIFICROTATION)与“优先级自动循环方式”相比,只有一点不同,即可以设置开始的最低优先级。例如,设定IR4为最低优先级,那么IR5就是最高优先级,其余各级按循环方法类推。(OCW2:”110”)2.屏蔽中断源的方式(1)普通屏蔽方式通过对中断屏蔽寄存器(IMR)的设定,实现对相应位为“1”的中断请求的屏蔽。可通过OCW1使IMR的一位或几位置“1”。(2)特殊屏蔽方式

(SPECIALMASKMODE)将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置0。特殊屏蔽方式是只屏蔽与正在处理的中断相同级别的中断,不仅开放了级别高的中断,而且真正开放了其它级别较低的中断。

输出OCW3(ESMM=1,SMM=1)输出OCW1(使IMR对应于本级的位为“1”)…………输出OCW1(使IMR对应于本级的位为“0”)输出OCW3(ESMM=1,SMM=0)“中断级无效”设置撤销3.结束中断处理的方式(1)中断自动结束方式

(2)一般的中断结束方式

(3)特殊的中断结束方式

结束中断处理方式什么是8259A的中断结束?8259A利用中断服务寄存器ISR判断:某位为1,表示正在进行中断服务;该位为0,就是该中断结束服务。这里说明如何使ISR某位为0,不反映CPU的工作状态。8259A工作方式3.中断结束方式(ENDOFINTERRUPT-EOI)(1)中断自动结束方式(AUTOMATIC-AEOI方式)在第二个后沿,即完成把对应的ISR位复位。注意:AEOI方式是在中断响应后,而不是在中断处理程序结束后将ISR位清0。这样,在中断处理过程中,8259A中就没有“正在处理”的标识。此时,若有中断请求出现,且IF=1,则无论其优先级如何(比本级高、低或相同),都将得到响应。尤其是当某一中断请求信号被CPU响应后,如不及时撤销,就会再次被响应-“二次中断”所以,AEOI方式适合于中断请求信号的持续时间有一定限制以及不出现中断嵌套的场合。通过ICW4可以设置AEOI方式(AEOI=1)INTA8259A工作方式(2)一般(常规)中断结束方式适合于全嵌套方式。实现:在中断服务程序结束时,向8259A发常规中断结束命令(OCW2:EOI=1,SL=0,R=0)例:MOVAL,20H;OCW2=20HOUT20H,AL;端口地址=20H(偶地址)在全嵌套方式下,ISR中最高优先级的置“1”位,正对应于当前正在处理的中断,将其清“0”,就完成了当前正在处理中断的结束操作。…1011IR0IR78259A工作方式(3)特殊中断结束方式(SPECIFICEOI-SEOI)在非全嵌套方式下,无固定的优先级序列(使用设置优先权命令或特殊屏蔽方式),此时,根据ISR的内容就无法确定刚刚所响应(处理)的中断。这种情况下,就不能用上述的EOI方式进行中断结束处理,而必须用特殊的中断结束命令SEOI--用OCW2:EOI=1,SL=1,R=0,L2~L0.由L2~L0指定清除ISR中的哪一位。4.连接系统总线的方式(1)缓冲方式

(ICW4的BUF=1)8259A通过总线驱动器(如8286)和数据总线相连。在缓冲方式下,8259A的作为输出(有效),此时,由ICW4的M/S位来定义(标识)本8259A是主片还是从片。(2)非缓冲方式

即8259A直接与数据总线相连在“非缓冲方式下”,8259A的作为输入(有效)

此时,由端来标识本8259A是主片还是从片。在“非缓冲方式下”,ICW4的BUF=0,M/S位无意义。SP/ENENSP/ENSPSP/EN8259A缓冲方式下级连结构8259A非缓冲方式下级连结构

地址总线

控制总线

数据总线

CSA0DBINTA

INT

CAS0

8259A从控ACAS1

CAS2

SP/ENIRQ7┅

IRQ0

CSA0DBINTAINT

CAS0

CAS18259A主控

CAS2

IRQ7┅

IRQ0

SP/EN

76

5432

10

CSA0DB

INTA

INT

CAS0

8259A从控BCAS1

CAS2

SP/ENIRQ7┅

IRQ0

GND76543210

GND76543210

VCC76543210

CSA0DB

INTA

INT

CAS0

8259A从控BCAS1

CAS2

SP/ENIRQ7┅

IRQ0

CSA0DB

INTA

INT

CAS0

8259A从控BCAS1

CAS2

SP/ENIRQ7┅

IRQ0

CSA0DB

INTA

INT

CAS0

8259A从控BCAS1

CAS2

SP/ENIRQ7┅

IRQ0

CSA0DB

INTA

INT

CAS0

8259A从控BCAS1

CAS2

SP/ENIRQ7┅

IRQ0

5.引入中断请求的方式(1)边沿触发方式

由IRi上由低电平向高电平的跳变来触发“中断请求触发器”。由ICW1的LTIM位可以设置中断触发方式。(2)电平触发方式

由IRi上的有效电平来触发“中断请求触发器”。(3)中断查询方式

中断查询方式的特点:不向CPU发中断请求信号CPU内部的中断允许触发器复位CPU要使用软件查询来确认中断源8259A工作方式*“中断查询”方式特点:既有中断的特点,又有查询(Polling)的特点。外设仍然向8259A发中断请求信号,要求CPU服务。CPU的IF=0,不响应外部的中断请求(对CPU的中断请求信号不起作用)此时,CPU需要用软件查询方法来确认中断源,从而实现对设备的服务先向8259A发查询命令(pollcommand)OCW3:00001100P8259A的工作方式紧接着执行一条读指令(IN指令),读出专门的“中断状态字”:当8259A收到P=1的查询命令后,在下一个信号将使ISR的相应位置“1”,就像收到了一样,并把上述的“中断状态字”送到数据总线上,由CPU读入AL。0A0IR----W2W1W0D7D01:有设备请求服务;0:无设备请求服务。当前最高优先级的中断请求RDINTA8259A的工作方式普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式数据线连接方式缓冲方式非缓冲方式8259A的的编程对8259A的各种操作是由CPU来控制的。CPU的命令分为两大类:一类是初始化命令字ICW,另一类是操作命令字OCW。CPU对8259A的ICW操作,是由A0、RD、WR、CS等信号来共同控制的。1.初始化命令字ICW说明: 初始化命令字ICW最多有4个。

8259A在开始工作前必须写入。 必须按照ICW1~ICW4顺序写入。

ICW1和ICW2是必须送的。

ICW3和ICW4由工作方式决定。D7D6D5D4D3D2D1D08259A的初始化命令字和操作命令字(1)ICW1(初始化字)×××1LTIM×SNGLIC4D7D6D5D4D3D2D1D0×——表示可以任意为1为0都可以(建议为0)1——只能为1,作为标志中断触发方式:LTIM=1,电平触发方式LTIM=0,边沿触发方式规定单片或级连方式:SNGL=1,单片方式SNGL=0,级连方式是否写入ICW4IC4=1,要写入ICW4IC4=0,不写入ICW4,即ICW4规定的位全为08259A的的编程(2)ICW2(中断向量字)T7T6T5T4T3×××D7D6D5D4D3D2D1D0设置中断向量号T7~T3为中断向量码的高5位低3位由8259A自动确定:IR0为000、IR1为001、……、IR7为1118259A的的编程(2)ICW2的格式和含义①ICW2是任选的;②ICW2高5位影响中断类型码,而中断类型码的低3位由IR0~IR7决定(3)ICW3(级联命令字)S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字主片8259A:Si=1对应IRi接有从片;否则IRi没有连接从片从片8259A:ID0~ID2编码说明从片INT引脚接到主片哪个IR引脚8259A的的编程例:主片8259A的IR3和IR6接了2个从片.

主片端口地址:20H,21H;1#从片端口地:A0H,A1H

试设置ICW3.主片:ICW3=01001000B=48H从片1#:ICW3=00000011=03H从片2#:ICW3=00000110=06H

主片ICW3的初始化程序段:MOVAL,48HOUT21H,AL1#从片ICW3的初始化:MOVAL,03HOUT0A1H,AL(4)ICW4(中断方式字)000SFNMBUFM/SAEOIμPMD7D6D5D4D3D2D1D0嵌套方式:特殊全嵌套方式(SFNM=1)普通全嵌套方式(SFNM=0)数据线的缓冲方式:缓冲方式(BUF=1)非缓冲方式(BUF=0)主片/从片选择:主片(M/S=1)从片(M/S=0)中断结束方式:自动中断结束(AEOI=1)非自动中断结束(AEOI=0)微处理器类型:16位80x86(

PM=1)8位8080/8085(

PM=0)8259A的的编程初始化流程对初始化流程的几点说明①ICW1写入偶端口,ICW2~ICW4写入奇端口②ICW1~ICW4的设置次序固定③ICW1和ICW2须设置,ICW3和ICW4非必须④

在级联时,主片和从片各设置ICW32.操作命令字OCW说明:8259A工作期间,可以随时接受操作命令字OCW。OCW共有3个:OCW1~OCW3。写入时没顺序要求,需要哪个OCW就写入那个OCW。D7D6D5D4D3D2D1D08259A的的编程(1)OCW1(屏蔽控制字)M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字内容写入中断屏蔽寄存器IMRDi=Mi对应IRi,为1禁止IRi中断;为0允许IRi中断。各位互相独立。8259A的的编程(2)OCW2(中断结束和优先级循环控制字)RSLEOI00L2L1L0D7D6D5D4D3D2D1D0D7:R=1,优先级循环方式;

R=0,非循环方式。8259A的的编程D6:=1,用L2、L1、L0指定中断等级。D5(EOI):=1,在中断服务完毕,发中断结束命令,使当前ISR的对应位ISn复位。

D5(EOI):=0,不发EOI。D4D3:=00,特征位L2~L0的3位编码指定IR引脚OCW2的功能(1)设置优先级循环方式(2)组成两类中断结束命令: 一般的中断结束命令 特殊的中断结束命令表:OCW2的组合控制方式(3)OCW3(屏蔽和读状态控制字)0ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM设置中断屏蔽方式ESMM=1,SMM=1,置特殊屏蔽方式,8259A脱离当前优先级方式.ESMM=1,SMM=0,撤销特殊屏蔽方式8259A的的编程D4D3=01,特征位P、RR和RIS规定随后读取的状态字含义(3)OCW3的格式(A0=0)用于提供查询方式,特殊屏蔽方式,读状态等操作1.查询中断:

P=1时,表示查询。例:IR4引脚上有中断请求,CPU执行一条输入指令,从偶地址端口读得以下查询字:8259A的的编程2.读状态OCW3=00001010B,RR=1,RIS=0,读IRR;OCW3=00001011B,RR=1,RIS=1,读ISR。若要读IMR,不须设OCW3的查询命令。3.特殊屏蔽方式操作ESMM=1,SMM=1,置特殊屏蔽方式,8259A脱离当前优先级方式.ESMM=1,SMM=0,撤销特殊屏蔽方式4.关于8259A的读出操作,可以读四个方面的内容读“中断状态字”(“查询字”):先写入P=1的OCW3查询命令字用偶地址读(INAL,20H)读IRR:先写入OCW3(RR=1,RIS=0)用偶地址读(INAL,20H)读ISR:先写入OCW3(RR=1,RIS=1)用偶地址读(INAL,20H)随时可用奇地址读IMR(INAL,21H)7.38259A使用举例

1.关于中断全嵌套方式的例子2.关于如何使用中断结束命令的例子

两个重要结论:①中断处理程序执行STI指令才允许嵌套②

中断处理程序如执行STI指令,并清除对应的ISn位,则未必符合优先级规则

8259A的使用例:单片使用8259A的初始化(1)要求:IBMPC/XT8259A,单片,边缘触发,全嵌套方式,设定0级中断类型码为08H.

端口地址:20H,21H.(2)硬件连接:CAS2~CAS0不用,SP/EN接+5V.(3)初

温馨提示

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

评论

0/150

提交评论