微机原理 第七章_第1页
微机原理 第七章_第2页
微机原理 第七章_第3页
微机原理 第七章_第4页
微机原理 第七章_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

第7章中断控制器博学审问慎思明辨笃行第7章中断控制器

§7.18259A的引脚信号、编程结构和工作原理

§7.28259A的工作方式

§7.38259A的初始化命令字和初始化流程

§7.48259A的操作命令字

§7.58259A使用举例

§7.6多片8259A组成的主从式中断系统

教学重点为:8259A的编程结构;

8259A的初始化流程;

8259A的初始化命令字与操作命令字;

8259A的实例;第7章中断控制器第7章中断控制器7.18259A的引脚信号、编程结构和工作原理7.1.18259A的外部信号和含义第7章中断控制器8259A的编程结构第7章中断控制器8259A的引脚计时键盘保留串口2

并口软盘打印机IOW18.2HzA0CS8259A总线A0数据线

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

INTA

INTR串口1第7章中断控制器7.1.28259A的编程结构和工作原理第7章中断控制器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

8259A的编程结构第7章中断控制器①

中断请求寄存器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第7章中断控制器②中断屏蔽寄存器IMR决定IRR中的中断申请是否进入优先级裁决器PR。

IMR对应位为0,允许中断申请进入优先级裁决器,

为1,不允许进入,中断申请被IMR屏蔽。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

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

10010100INTR第7章中断控制器③优先级裁决器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

10010100INTR④当前中断服务寄存器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

10010100INTR第7章中断控制器

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

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

通过INTA引脚发出两个负脉冲信号,从数据总线上获取中断类型号,进入中断响应的过程。第7章中断控制器①将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中锁存的中断申请信号。①

通过数据线,将被响应申请的中断类型号送给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响应中断的过程,

执行中断子程,处理中断源申请的功能。返回7.28259A的工作方式

8259A有多种工作方式,这些工作方式由程序初始化来设置,使用起来相当灵活。1.优先级设置方式(1)固定优先级(也称全嵌套方式)在全嵌套优先级方式中,8259A的中断优先级从IR0到IR7,即IR0优先级最高,IR7优先级最能低。这是最常用、最基本的工作方式。(2)特殊全嵌套方式与固定全嵌套方式基本相同,但在特殊全嵌套方式中,当正在处理某一级中断时,如果有同级的中断请求发生,8259A也会响应,从而开放了同级中断请求的特殊嵌套。这种方式主要用于8259A级联系统中,在这种系统中,主片设置为特殊全嵌套方式,从片设置为其它优先级方式,这样,某一从片的请求正在处理时,来自同一从片中的优先级较高的中断请求也能得到响应。第7章中断控制器(3)优先级自动循环方式优先级自动循环方式一般用于多个中断源优先级相同的情况下。在这种方式中,优先级队列是循环变化的,某一中断源得到中断服务后,优先自动降为最低。例如:在优先级自动循环方式中,优先级初始队列由高到低为:IR0、IR1、IR2、……、IR6、IR7,如果此时IR2端有中断请求,并予以响应,响应结束后,IR2的优先级自动降为最低,IR3的优先级为最高,这时,系统的优先级队列由高到低变为:IR3、IR4、IR5、IR6、IR7、IR0、IR1、IR2。(4)优先级特殊循环方式优先级特殊循环方式与优先级自动循环方式相比,唯一的区别在于:前者是优先级初始队列是程序编程来决定的,如果程序规定,IR4优先级最低,那么IR5优先级则最高;而后者的优先级初始队列开始是IR0优先级最高,IR7优先级最低。第7章中断控制器2.屏蔽中断源的方式按照中断源的屏蔽方式,8259A有以下两种工作方式:(1)普通屏蔽方式在8259A内部有一个8位屏蔽寄存器(OCW1),对应IR0~IR7的8个中断请求,可由程序设置将屏蔽寄存器中的任一位或几位置1,这样与之相对应的中断请求就被屏蔽了。当然,要清除屏蔽,只要将屏蔽寄存器(OCW1)中的对应位复位即可。(2)特殊屏蔽方式特殊屏蔽方式是当设置了特殊屏蔽方式后,对屏蔽寄存器(IMR)中的对应位置1

,同时使当前中断服务寄存器中的对应位自动清0,这样,不只屏蔽了当前正在处理的这级中断,还开放优先级较低的其它中断请求。因此,特殊屏蔽方式,总是在中断服务程序中使用。第7章中断控制器3.中断结束处理的方式在中断服务程序结束时,必经发出中断结束命令,使ISR中对应位复位,否则,系统便不能正常工作。使ISR对应位复位的动作称为中断结束处理。8259A有以下三种中断结束方式:(1)中断自动结束方式这种中断结束方式是最简单的方式,用于系统中只有一片8259A的情况。在这种方式中,系统一进入中断过程,在第二个中断响应信号INTA到来时,8259A会自动将当前中断服务寄存器ISR中的相应位复位。(2)普通(一般)中断结束方式该方式多用于全嵌套方式下。当CPU向8259A发出一条EOI命令时,8259A会把当前中断服务寄存器中的最高非零位复位。具体操作是,只要在程序中向8259A的偶地址端口写一个操作命令字OCW2,并使其中的EOI=1,SL=0,R=O即可。第7章中断控制器(3)特殊的中断结束方式这种方式是在程序中发出一条特殊的中断结束命令,具体指出要清除ISR中的哪一位。往往用于非全嵌套方式。具体操作是,在程序中向8259A的偶地址端口写一个命令字OCW2,并使其中的EOI=1,SL=1,R=0,此时L2,L1,L0这三位指出要清除ISR中的哪一位。需要指出的是,在级联系统中,一般不使用中断自动结束方式,而用非自动结束方式。而且,不管是使用普通中断结束方式,还是使用特殊的中断处理方式,在中断服务程序结束时,都必经发出两次中断结束命令,一次是对主片,一次是对从片。第7章中断控制器4.连接系统总线的方式根据8259A与系统总线的连接方式,可以分为缓冲方式和非缓冲方式两种:(1)缓冲方式在多片8259A级联的大系统中,8259A通过总线驱动器和数据总线相连,这种方式称为缓冲方式。在这种方式中,将8259A的SP/EN端和总线驱动器的允许端相连,8259A在输出状态字和中断类型码的同时,向SP/EN端输出一个低电平,此低电平信号作为总线驱动器的启动信号。(2)非缓冲方式在只有一片或几片8259A的系统中,8259A直接与CPU的数据总线相连,称为非缓冲方式。在非缓冲方式中,8259A的SP/EN端作为输入信号。在单片的8259A系统中,SP/EN端接高电平;在多片的8259A的系统中,主片的SP/EN端接高电平,从片的SP/EN端接低电平。第7章中断控制器5.引入中断请求的方式根据中断请求信号的引入方式,8259A有以下三种方式:(1)电平触发方式在电平触发方式中,8259A把中断请求输入端IR出现高电平作为中断请求信号。(2)边沿触发方式在边沿触发方式中,8259A把中断请求输入信号IR出现的上升沿作为中断请求信号。(3)中断查询方式

8259A可工作于查询方式来检查外部设备的中断请求。第7章中断控制器普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式数据线连接方式缓冲方式非缓冲方式第7章中断控制器7.38259A的初始化命令字和初始化流程7.3.18259A的初始化命令字

8259A有4个初始化命令字ICW1~ICW4,用来对8259A进行初始状态的设置。8259A在开始工作前必须写入;必须按照ICW1~ICW4顺序写入。1.ICW1(芯片控制初始化命令字)的格式和含义偶地址端口×——表示可以任意为1为0都可以(建议为0)1——只能为1。作为标志中断触发方式:LTIM=1,电平触发方式LTIM=0,边沿触发方式规定单片或级连方式:SNGL=1,单片方式SNGL=0,级连方式是否写入ICW4IC4=1,要写入ICW4IC4=0,不写入ICW4,即ICW4规定的位全为0ICW1:A0=0,D4=1第7章中断控制器2.ICW2(设置中断类型号初始化命令字)的格式和含义ICW2:A0=1奇地址端口设置中断向量号

T7~T3为中断向量号的高5位低3位为由8259A自动确定:

IR0为000、IR1为001、…IR7为111中断类型码的高五位是由ICW2的五位确定,低三位是由引入中断请求的引脚确定。例如:ICW2为40H,则8259A的IR0~IR7对应的8个中断类型码为40H、41H、42H、43H、44H、45H、46H、47H。第7章中断控制器3.ICW3(标志主片/从片的初始化命令字)的格式和含义奇地址端口ICW3:A0=1级连命令字主片8259A:IRi=1对应IRi接有从片;否则IRi没有连接从片从片8259A:ID0~ID2编码说明从片INT引脚接到主片哪个IR引脚第7章中断控制器4.ICW4(方式控制初始化命令字)的格式和含义ICW4:A0=1嵌套方式:特殊全嵌套方式(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)奇地址端口第7章中断控制器7.3.28259A的初始化流程1)ICW1写入偶地址端口,ICW2~ICW4写入奇地址端口。2)先依次写入命令字ICW1和ICW2。3)只有当ICW1中的SNGL=0时,才送ICW3。主片和从片均送ICW3,但它们的格式不同。4)只有当ICW1中的IC4=1时,才送ICW4。对8086/8088系统,ICW4总是需要设置的。综上所述,在微机系统中:采用单片8259A结构时,初始化要写入的预置命令字是:ICW1、ICW2和ICW4。而采用级连时,要写入的预置命令字是:ICW1、ICW2、ICW3和ICW4。第7章中断控制器第7章中断控制器ICW的设置方法:8259A在系统中占用二个端口地址,用A0来寻址ICW1:A0=0ICW2、3、4:A0=1,共用一个端口,所以区分这三个寄存器的唯一方法就是按照从ICW2~ICW4的排列顺序进行初始化的设置,否则易出现错误。

例:在IBMPC机中,分配给中断控制器的端口地址为20H,21H。并且其8259A为单片系统。第7章中断控制器

INTA00EQU20H;8259A端口地址

INTA01EQU21H

。。。

MOVAL,13HOUTINTA00,AL;设ICW1,边沿触发,单片

MOVAL,08HOUTINTA01,AL;设ICW2,中断类型号00001HMOVAL,09HOUTINTA01,AL;设ICW4,非特殊全嵌,非8位系统,非中断自动结束00010011第7章中断控制器7.48259A的操作命令字

8259A有三个操作命令字OCW1~OCW3。在应用程序中设置,设置次序没有规定,对端口地址有严格规定,OCW1写入奇地址,OCW2、OCW3写入偶地址。1.OCW1(中断屏蔽操作命令字)的格式和含义OCW1:A0=1奇地址端口屏蔽命令字:中断屏蔽寄存器IMRDi=Mi对应IRi,为1禁止IRi中断;为0允许IRi中断。各位互相独立。第7章中断控制器2.OCW2(设置优先级循环方式和中断结束方式的操作命令字)的格式和含义偶地址端口OCW2:A0=0R:中断优先权控制R=1循环优先权R=0固定优先权SL=1L0~L2指明一个中断级EOI=1

结束中断指令L2~L0的3位编码指定IR引脚该命令字:产生中断结束方式和改变优先权顺序A0=D4=D3=0:是OCW2的标志位。第7章中断控制器A0=D7=D4=0,D3=1是OCW3的特征位,以便于与OCW1和OCW2相区别。3.OCW3(设置特殊屏蔽、中断查询、读操作命令字)的格式和含义OCW3:A0=0偶地址端口设置中断屏蔽方式ESMM特殊屏蔽模式允许位SMM特殊屏蔽模式位P

查询方式位,P=1,8259A依靠发送查询命令来获得外部设备的中断请求信息;P=0,处于非查询方式。RR读寄存器命令。RR=1,允许读IRR和ISR的值;RR=0,禁止读取。RIS读IRR或RIS的选择位。当RR=1时,RIS=1,允许读当前中断服务寄存器ISR的值;RIS=0,允许读中断请求寄存器IRR的值。第7章中断控制器7.58259A的使用举例【例】8259A在系统中的初始化编程。使用要求和特点如下:(1)一片8259A管理8级中断,(2)端口的地址范围为20H~3FH,实际使用20H和21H两个端口。(3)8个中断请求信号均为边沿触发。(4)采用固定优先级方式。(5)中断类型码的范围是:08H~0FH。非自动中断结束。硬件连接如图所示:第7章中断控制器8259A的初始化程序段:MOVAL,13H;写ICW1,单片8259A,边沿触发,需设ICW4OUT20H,ALMOVAL,08H;写ICW2,中断类型码的高五位为00001BOUT21H,ALMOVAL,01H;写ICW4,8086/8088系统,固定优先级,非自动中断结束OUT21H,AL采用中断结束命令的程序段:MOVAL,20H;写OCW2,向8259A发出普通EOI命令OUT20H,AL第7章中断控制器(1)初始化命令字(ICW1-ICW4)

决定8259A的工作方式

通常是在计算机系统启动时在初始程序设置,一旦设定,一般在系统工作过程不再改变。例开机后,BIOS将8259A初始化为:①

IR0~IR7中断申请信号为上升沿触发方式;②

IR0~IR7对应的中断类型号分别为08H~0FH;③优先级IR0最高,IR7最低;(2)操作命令字(OCW1,OCW2,OCW3)

在应用程序中设定,动态地控制CPU处理中断的过程(3)ISR和IRR存放当前8259A的状态

通过读取ISR和IRR的内容,可了解当前8259A工作情况小结第7章中断控制器(1)通过中断屏蔽寄存器IMR的读写,设置中断屏蔽字(2)

通过OCW2操作命令寄存器,发中断结束EOI命令要求掌握:通过往奇地址端口写入OCW1(IMR)内容实现对应位为0,允许该级中断申请进入对应位为1,禁止该级中断申请进入(1)设置中断屏蔽字第7章中断控制器IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

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

10010100INTR第7章中断控制器新增允许IR2的中断申请

INAL,21H;读入原IMR的内容

ANDAL,11111011B;D2=0,允许IR2的中断申请

OUT21H,AL;写入IMR禁止IR4的中断申请

INAL,21H;读入原IMR的内容

ORAL,00010000B;D4=1,禁止IR4的中断申请

OUT21H,AL;写入IMR例

已知IBMPC/XT系统中

8259A的奇地址端口地址为21H第7章中断控制器设置完成后的结果:IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发E

温馨提示

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

评论

0/150

提交评论