微机-p中断基本概念_第1页
微机-p中断基本概念_第2页
微机-p中断基本概念_第3页
微机-p中断基本概念_第4页
微机-p中断基本概念_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

CPU暂停原来的程序而转去中断处理,处理好中断服务后再返回继续执行原来的程序,这样一个过程就是一个中断过程。能够引起CPU中断的事件称为中断源。8086可处理256个中断源采用中断向量管理中断服务程序中断向量就是中断服务程序的是IP,高字是CS。将所有中断源的中断向量集中地址地址,低字在0000h:0000h开始的空间,这个区域为中断向量表。地址范围是00000h-003ffh.中断源的

中断类型码0-FFH,256个。中断源的中断类型码获取0~4由硬件逻辑电路自动提供(除法错0,单步1,断点3,溢出4)INTN,指令提供INTR,由中断接口

在中断响应时向CPU提供。中断工作方式的工作过程中断请求中断排队中断响应,得到中断类型码根据中断类型码去中断向量表查找中断服务程序

地址(起始地址)以子程序方式调用中断服务程序(即要将本来下一条要执行的指令地址压入堆栈)保护现场,中断服务中断向量的设置INT21HAH=25HAL=类型码DS:段地址DX:偏移地址INT

21H直接用MOV传送指令要采用中断工作方式,需做的准备工作编写中断服务程序将1)的程序装入内存,得到起始地址将起始地址写入中断向量表(写入表中的位置由设计(安排)的中断类型号决定)data

segmentx

dw'a'intoffintsegintmsgdw? ;用于保存原中断向量将来恢复dw? ;用于保存原中断向量将来恢复db 'A

Instruction

Interrupt

!'db

0dh,0ah,0 ;要显示的信息s:code,ss:stackdata

endsstacksegmentdb

256

dup(?)stack

endscode

segmentassume

ds:dstart:movax,datamovds,axmovax,stackmovss,axmov

ax,3580hint

21hmov

intoff,bxmov

intseg,espush

ds;读出原中断向量;保存偏移地址;保存

地址mov

dx,offset

new80hmov

ax,seg

new80hmov

ds,ax;设置新中断向量mov

ax,2580hint

21hpop

dsmov

dx,offset

intmsgint

80hmov

dx,intoffmov

ax,intsegmov

ds,ax;中断调用;恢复原中断向量mov

ax,2580hint

21hmov

ax,4c00hint

21hnew80hstipush

axpush

bxpush

siproc;开中断,允许中断嵌套;保护现场mov

si,dxnew1:mov

al,[si]cmp

al,0jz

new2mov

bx,0mov

ah,0ehint

10hincsijmp

new1new2:;判是否串尾;调BIOS中断;恢复现场pop

sipop

bxpop

axiretnew80hcode

endsend

start;中断返回endp可编程中断控制器8259A8259A的功能In 8259A中断控制器是把中断源识别、中断优先权排队、中断 、中断向量提供等功能集于一身的, 于微机系统中断管理的大规模集成电路

。管理8个具有优先权的中断,通过级连可以扩展至64个。每个中断都可以设定

或开放。有多种中断优先权排队模式。当中断响应时,可提供相应的中断类型号,中断类型号可以由用户设定。可以通过编程设定或变更8259A的各种工作方式。8259A的CAS0CAS1CAS2SP/EN数据总线缓冲器D7~D0读/写控制逻辑级连缓冲/比较器结构和管脚INTA

INT中断服务寄存器(ISR)中断优先级裁决器(PR)中断

寄存器

(IMR)IR0~IR7中断请求寄存器(IRR)控制逻辑初始化命令寄存器组操作命令寄存器组RDWRCSA08259A的工作原理当一条或多条中断请求线IR0~IR7变高时,设置相应的中断请求寄存器IRR位。在8259A对中断优先权和中断

寄存器的状态进行判断之后,如某中断优先权最高且为允许中断状态,由INT引脚向CPU发中断请求信号INTR。若CPU处于开中断,则当前指令执行完后,CPU用INTA信号作为对INTR的响应,送回应答信号脉冲。8259A接到来自CPU的第一个脉冲时,把允许中断的最高优先级请求位置送入当前中断服务寄存器(ISR),并把IRR中的相应位复位。同时,8259A准备向数据总线发送中断向量。在8259A发送中断向量的最后一个脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个脉冲结束时复位ISR的相应位。在其他方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。8259A的管脚及其功能D7~D0:双向三态数据线,直接和系统数据总线的8位相连。IR0~IR7:中断请求输入线,通常IR0为最高优先权,IR7为最低优先权。INT:中断请求输出线,与CPU的INTR中断请求端连接。INTA:中断允许线,接受来自CPU的中断响应信号。CS,RD,WR:分别是片选、读命令、写命令信号线,它们相互配合实现对8259A中不同寄存器的读或写操作。

A0

:端口地址线。A0=0,为8259A偶地址端口,A0=1为8259A奇地址端口。CAS2~CAS0:级连信号线,对于主片8259A,它是输出线;而对于从片8259A,它是输入线。它们用于多片8259A的级连控制。SP/EN:主从/允许缓冲线,具有双向功能。作为输入还是输出,取决于8259A是否采用缓冲方式。8259A的工作方式1.优先级管理方式完全嵌套方式完全嵌套方式是8259A最常用、最基本的工作方式,也就是固定优先级方式。如对8259A初始化后没有设置其他优先级方式,8259A则默认为是该方式。在固定优先级方式中,8259A的中断优先级从IR0到IR7,IR0优先级最高,IR7优先级最低。当一个中断被响应时,只有比它的优先级更高的中断请求才会被响应。8259A的工作方式1.优先级管理方式特殊全嵌套方式特殊全嵌套方式与固定优先级方式基本相同,8259A管理的中断优先级从高到低的顺序依然是IR0、IR1、IR2、IR3、IR4、IR5、IR6、IR7。唯一的区别是除了允许更高优先级的中断请求进入嵌套外,还允许同级中断进入嵌套。8259A的工作方式1.优先级管理方式优先级自动循环方式优先级自动循环方式一般用于系统中多个中断源优先级相等的场合。在这种方式下,优先队列是变化的,一个外设得到中断服务后,它的优先级自动降为最低。8259A的工作方式1.优先级管理方式优先级特殊循环方式优先级特殊循环方式与优先级自动循环方式相比,只有一点不同,即在优先级特殊循环方式中,初始的最低优先级是由编程来确定的(OCW2),从而优先级队列及最高优先级中断也由此而定。例如,程序确定IR5为最低优先级,则优先级队列为IR6、IR7、IR0、IR1、…、IR5。8259A的工作方式中断源方式方式2.常规在常规方式中,8259A的每个中断请求输入端都可通过对与它对应的

位的设置被

,使该中断请求不能送到CPU。8259A的工作方式2.特殊特殊中断源方式方式方式除了设置IMR中相应位,也会清除ISR中相应位。8259A的工作方式3.中断结束(EOI)的处理方式中断自动EOI方式中断自动EOI是最简单的中断结束方式。在本方式下,系

进入中断过程,当第二个中断响应脉冲INTA

送到后,8259A就自动将当前中断服务寄存器ISR中的对应位清零。这样,尽管系统正在为某外设进行中断服务,但在8259A的ISR中却没有对应位指示。中断自动EOI方式的设置是在初始化时由初始化命令字ICW4的AEOI位置1实现的。8259A的工作方式3.中断结束(EOI)的处理方式常规中断EOI方式常规中断EOI方式用在全嵌套方式下,当CPU向8259A发出中断结束命令时,8259A就会将ISR中优先级最高的位复位(即当前正在进行的中断服务结束)。这种结束方式的设置很简单。只要在程序中往8259A的偶地址端口输出一个操作命令字

OCW2,并使OCW2中的EOI=1、SL=0、R=0即可。8259A的工作方式3.中断结束(EOI)的处理方式特殊中断EOI方式特殊中断结束方式用于非全嵌套方式下,用这种结束方式时,在程序中要

特殊中断结束命令,

当前中断服务寄存器ISR中的哪一位将被清除。实际上,也是通过往8259A的偶地址端口输出一个操作命令字OCW2,使OCW2的EOI=1、SL=1、R=0,此时

OCW2中的L2、L1、L0这三位就了究竟是对ISR中的哪一位进行清除。8259A的工作方式4.连接系统总线的方式缓冲方式在多片8259A级联的大系统中,8259A通过总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下,8259A的SP/EN端和总线驱动器的允许端相连,SP/EN端输出的低电平可作为总线驱动器的启动信号。8259A的工作方式4.连接系统总线的方式非缓冲方式当系统只有单片8259A或有几片8259A级联时,一般将8259A直接与数据总线相连,这种方式就称为非缓冲方式。这时8259A的SP

端作为输入端,在单片8259A系统中,EN端接高电平;在多片系统时,主片的SP

端接高电平;从片的EN

端接低电平8259A的工作方式5.中断触发方式电平触发方式8259A工作于电平触发方式时,把中断请求输入端的高电平作为中断请求信号。边沿触发方式在边沿触发方式下,8259A将中断请求输入端IR出现的上升沿作为中断请求信号。该中断请求得到触发后可以一直保持高电平。8259A的工作方式5.中断触发方式查询方式8259A也可以用查询方式来检查请求中断的设备。查询命令是在OCW3中的P位为1时发出的,8259A接到查询命令后,把随后一次CPU读操作(

CS=0,RD

0)当作中断响应信号。

中断请求,就把相应的ISR位置位,并读该中断级别。从发出查询命令的写脉冲(

WR

)开始,到读出查询结果的读脉冲(

RD)为止,这段时间中断被冻结。I:有无中断标志。有中断时I=1,否则I=0。W2~W0:请求中断的优先级别的二进制码。查询字格式第31页D7D6D5D4D3D2D11————W2W1W0D08259A的工作方式6. 8259A的级联在微型计算机系统中用一片8259A与CPU相连。这片8259A又与下一层的多至8片的8259A相连,称为级联。与CPU相连的8259A称为主片,下一层的8259A称为从片。在级联结构中,从片的INT输出端接至主片的IR输入端,由主片的INT向CPU发中断请求,且所有8259A的CAS2、CAS1、CAS0互连,在主片为输出信号,在从片为输入信号,这三条信号线的编码用于选择从片。8259A的工作方式6. 8259A的级联特殊全嵌套方式有如下两个特点:当某从片的中断请求进入服务时,主片的优先权控制逻辑不封锁这个从片,从而使来自从片的较高优先级IR中断请求能够被主片识别,并向CPU发出中断请求信号INT。中断服务程序结束时,必须用

检查被服务的中断是否是该从片中唯一的中断请求。操作过程为:先向从片发一个中断结束命令EOI,清除已完成服务的IS位;然后读出ISR内容,检查它是否为0。如为0,表示该从片只有一个中断请求得到响应,则向主片发送一个EOI命令,清除与从片对应的IS位;如从片ISR不为0,则不向主片发送EOI命令。8259A的初始化编程8259A的编程设置分为两部分:初始化编程8259A工作之前,必须设置2~4个字节的初始化命令字ICW,使8259A处于初始化工作方式的就绪状态。工作编程8259A初始化设置之后,根据需要可以向8259A设置相关操作命令字OCW,实现8259A的相关操作。8259A的控制字1.初始化命令字:8259A有4个初始化命令字ICW1~ICW4,用于设置8259A的初始状态。◆初始化命令字ICW1——

控制字ICW1对8259A复位,给出是单片还是多片级连等设定。◆初始化命令字ICW2——中断类型号命令字ICW2设定8259A管理的8个中断类型号的高5位。◆初始化命令字ICW3——主/从片初始化字ICW3定义8259A级连系统中主/从片的级连信息。◆初始化命令字ICW4——方式控制字ICW4给出8259A的工作系统,中断程序是否需要输出EOI命令等设定。ICW1ICW1是A0=0为标志,表示必须写入偶地址中。

D7~D5:这几位在8088/8086系统中不用,可为任意值。

D4:D41和A00是ICW1的标志,表示当前操作的是ICW1。D3(LTIM):设定中断请求信号IR的触发方式。

D2(ADI):在8088/8086系统中该位不用,可为任意值。

D1(SNGL):单片/级联方式指示。

D0(IC4):指示初始化过程中是否使用ICW4。A00A7A6A51LTIMADISNGLIC4控制初始化命令字,必须写入8259A的偶数地址端口。D7

D6

D5

D4

D3

D2

D1

D0ICW2ICW2是ICW2是一个中断向量字节。在8088/8086系统下,它是中断类型码,编程时用ICW2设置中断类型码高5位T7~T3(即D7~D3),而D2~D0的值恒为零。中断类型码的高5位就是ICW2的高5位,而低3位是由引入中断请求的引脚IR0~IR7决定。例如:ICW2为20H,则8259A的IR0~IR7对应的8个中断类型码为20H、21H、22H、23H、24H、25H、26H、27H。A01A15/T7A14/T6A13/T5A12/T4A11/T3A10A9A8控制初始化命令字,必须写入8259A的奇数地址端口。D7

D6

D5

D4

D3

D2

D1

D0ICW31IR7IR6IR5IR4IR3IR2IR1IR0对8259A初始化时,是否需要设置ICW3,取决于ICW1中的

SNGL位的状态。SNGL=0表示8259A工作于级联方式,需用ICW3设置8259A的状态。主片和从片的ICW3格式和含义是不同的。A0

D7

D6

D5

D4

D3

D2

D1

D0A01D7D6主片8259A的ICW3格式D5

D4

D3D2D100000ID2ID1ID0D0从片8259A的ICW3格式ICW4只有在ICW1中的IC41时才使用ICW4。A01

0

0

0

SFNMBUF M/S

AEOI

µPMD7~D5:ICW4的标识码,总为0。D4(SFNM):为1时表示工作于特殊的全嵌套方式;为0时表示工作于一般全嵌套方式。D3(BUF):指示是否工作于缓冲方式,由此决定了SP/EN的功能。

D2(M/S):表示在缓冲方式下本片为主片还是从片。

D1(AEOI):指定是否为自动中断结束方式。D0(μPM):用于

8259A在16位机系统中使用,还是在8位机系统中使用。D7D6D5D4D3D2D1D08259A的初始化设置流程注意:1ICW

应写入8259A

的0偶地址端口(A

=0)ICW

ICW

ICW2

3

4应写入8259A的奇地址端口(A0=1)No写ICW1(A0=0)写ICW2(A0=1)级连?写ICW3(A0=1)要ICW4

?写ICW4(A0=1)初始化结束NoYesYes【例】以IBM-PC/XT微型计算机中使用的单片8259A为例,试对其进行初始化设置。在IBM

PC/XT微型计算机中,8259A的ICW1和ICW4的端口地址分别为20H、21H。初始化设置的程序段如下:MOVAL,

13HOUT20H,

AL;设置ICW1(中断请求信号采用边沿触发方式;单MOVAL,

18H片;8259A

,后面使用ICW4);设置ICW2(将中断类型码高5位指定为00011)OUT21H,

ALMOVOUTAL,

0DH21H,

AL;设置ICW4(不用特殊全嵌套方式;不用中断自动结束;方式为用缓冲方式,工作于8088/8086系统)8259A的控制字2.8259A的操作命令字对8259A用初始化命令字初始化后,就进入工作状态了,准备接受IR输入的中断请求信号。在8259A工作期间,可通过操作命令字(OCW)来使它按不同的方式操作。

8259A的操作命令字有3个,可独立使用。操作命令字OCW1——OCW1用来设置/清除对中断源的操作命令字。若OCW1的Di为1,则对应的中断被

;若Di为0,则对应的中断被开放。操作命令字OCW2——中断方式命令字OCW2用来设置优先级是否进行循环、循环的方式,以及中断结束的方式。操作命令字OCW3——状态操作命令字OCW3用来设置查询方式、特殊

方式,以及用来读8259A的中断请求寄存器IRR、中断服务寄存器ISR的当前状态等。8259A的操作命令字OCWOCW1OCW1用来设置8259A的

中断操作,直接对中断存器IMR的相应

位进行设置

。寄A01D7D6D5D4D3D2D1M7M6M5M4M3M2M1M0D0OCW1的格式A0=1为标志位,表示要求把OCW1写入8259A的奇地址端口。M7~M0分别对应IR7~IR0,如某一位M=1,将

相应的IR输入,它产生中断输出信号INT;反之,M=0则清除

状态,允许对应的IR输入产生INT输出,请求CPU进行服务。OCW1【例】若要IR5、IR4和IR1引脚上的中断,而让其余的中断得到允许。试确定其中断

操作命令字。OCW1为32H。OCW2A0:为标志位。表示要求把OCW2写入8259A的偶地址口。

R:优先级方式控制位。R1为循环优先级,R0为固定优先级。

SL:决定OCW2中L2~L0位是否有效。SL1为有效;SL0,L2~L0无效。EOI:中断结束命令位。在非自动中断结束命令的

温馨提示

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

评论

0/150

提交评论