微机原理学习笔记 |
您所在的位置:网站首页 › 中断屏蔽的概念 › 微机原理学习笔记 |
中断系统
目录 中断系统 一、中断的基本概念 中断源 开中断和关中断 中断优先权 中断向量表 中断过程 二、8086中断系统 中断源 可屏蔽中断周期 中断向量表 中断过程 三、可编程中断控制器8259A及其应用(原理、过程) 8259A中断控制器的基本功能 8259A的基本结构 8259A的引脚 8259A工作方式 8259A的编程★ 一、中断的基本概念当CPU正常运行程序时,用户通过某种方式向CPU请求为自己服务,CPU接收请求暂时中断正在运行的程序,转去执行用户服务程序,执行完毕后再返回被中断的程序。这一过程被称为中断。 中断可以提高CPU与外设交换数据的效率。 中断源能够导致CPU产生中断的来源就是中断源。 中断源分类: ①硬中断源——硬中断:外部电路在CPU引脚上产生的中断。 ②软中断源——软中断:CPU执行程序的过程中产生的中断请求。 硬中断源可以不止一个这取决于CPU有多少个可以接收硬中断请求的引脚。 软中断可以只是一条软中断指令,在8086CPU系统当中,经常使用“INT 21H”指令,他将中止执行当前程序,转而去执行相应的DOS功能调用程序。 开中断和关中断中断分为条件中断和无条件中断,中断源也可以分为条件中断源和无条件中断源。 通过对中断标志IF的置位来切换开中断和关中断的状态,IF=1为开中状态,IF=0为关中状态。 中断优先权中断优先级:当多个中断源同时向CPU申请中断时,为了能够有序的处理多个中断申请,给每个中断源确定一个中断级别。 中断嵌套:如果CPU在执行中断服务程序时,又接受了新的中断申请,就会打断正在执行的中断服务程序,为新的中断源服务。 中断嵌套也是要有规则的:只有高优先级的中断可以打断低优先级中断服务,低优先级中断或者同优先级中断一般不允许实现中断嵌套。 软件查询实现中断优先级排队CPU响应中断之后,从数据总线读入锁存器的内容,并按照中断源的优先级从高到低进行查询,这样就可以实现高优先级的申请首先得到响应。 方法:移位法(循环移位类指令)、屏蔽法(逻辑类指令)。 优缺点: 优点是简单、应用面广;缺点是不够灵活,需要变动时需对整个服务程序进行修改。 2.硬件电路实现中断优先级排队
从图中可以看出,中断源从左向右,等级由高到低,离CPU越近,优先级越高。 工作过程: ①外部向CPU请求中断。 ②CPU给出中断应答信号,高电平有效。 ③排队电路选择最高级别的中断,三态锁存器选通,将其锁存的中断源标识传送到CPU的数据总线上。 ④CPU读入中断源标识,调用相应的中断服务子程序。 优缺点: 硬件电路实现中断优先权排队的优点是中断响应快,使用灵活。每个中断源都有自己的中断服务子程序,不会相互影响,增加或者减少中断源都很方便。 缺点是接口电路比较复杂。特别是每个中断源需要有自己的标识,在8086CPU系统中这个标识称为中断类型号,还必须建立这个中断类型号和中断服务子程序的一一对应关系。 中断向量表中断向量表的IP地址为中断标识号n*4,该地址存储的为中断标识号为n的中断服务程序入口地址。 中断过程二、8086中断系统 (一)中断源 8086CPU系共有256个中断类型,对应中断类型号为00H~FFH。
可屏蔽中断只有在CPU为开中断状态下才可以响应。 当标志IF=1时,是开中断状态。执行指令“STI”,使得IF=1 当标志IF=0时,是关中断状态。执行指令“CLI”,使得IF=0 8086CPU中断优先级: 除法溢出中断——INT n——INTO——NMI——INTR——单步中断(最低) 可屏蔽中断周期中断响应周期需要两个总线周期。 可屏蔽中断的接口电路,在收到第一个应答信号后,立即向CPU传送相应外设的中断类型号。 数据总线的低八位读中断类型号。 中断向量表8086的中断向量表位于存储器的0~3FFH地址,共1024字节。 8086的中断向量表中存放的是中断服务程序的入口地址。1024个字节用来存放256个中断服务程序的入口地址。每个中断号分配4个字节。低地址的2个字节是中断入口的IP(偏移地址),高地址的2个字节是中断入口的CS(段地址)。 例:如果在DEBUG环境中观察到8086CPU中断向量表(部分)的内容: -D 0000:0000 002F↙ 0000:0000 9E 0F C9 00 FF 13 F4 0C-16 00 44 09 F5 13 F4 0C 0000:0010 65 04 70 00 56 3F 00 12-40 E1 00 F0 6F EF 00 F0 0000:0020 00 00 00 CC 28 00 44 09-3A 00 44 09 52 00 44 09 试问中断类型号n=5的中断服务程序入口地址是多少? 解:偏移地址=(5*4)=(0014H)= 3F56H 段地址=(5*4+2)=(0016H)= 1200H 中断服务程序的入口地址= 1200H*10H+3F56H=15F56H 中断过程中断申请:NMI、INTR都是高电平有效。 中断响应:无论是哪一种中断申请,8086都要在执行完当前指令后,开始响应中断。 SP-2→SP,FR→(SP);标志寄存器入栈 IF=0、TF=0;关中状态,TF=0 SP-2→SP,CS→(SP);CS入栈保护 SP-2→SP,IP→(SP);IP入栈保护 (n*4)→IP,(n*4+2)→CS;CPU指针转移到中断服务子程序的入口。 TF——单步标志(Trace Flag)。又称跟踪标志。该标志位在调试程序时可直接控制CPU的工作状态。当TF=1时为单步操作,CPU每执行一条指令就进入内部的单步中断处理,以便对指令的执行情况进行检查;若TF=0,则CPU继续执行程序。 中断处理 :执行中断服务程序。如果希望允许中断嵌套,在中断服务程序的开始时,写一条开中断指令(STI)。 中断返回 :用IRET指令 IRET指令的功能: IP←(SP), SP←SP+2 CS←(SP), SP←SP+2 F←(SP), SP←SP+2 IRET指令从堆栈取出断点地址,赋值给CS和IP寄存器,同时恢复中断服务前标志寄存器的内容。
中断服务程序: INTER1 PROC FAR PUSH AX PUSH BX ;保护现场 ...... PUSH BX PUSH AX ;恢复现场 IRET INTER1 ENDP 三、可编程中断控制器8259A及其应用(原理、过程)8259A是可编程(记忆功能)中断控制器,实际上就是一种中断接口电路。 (一)8259A中断控制器的基本功能①单片8259可以接8个中断源,多片8259级联后,最多可以连接64个中断源。 ②可以设置中断源的中断类型号(ICW2),在CPU响应中断后,能自动地向CPU发送中断类型号。 ③能管理中断源的优先级,并有固定优先级(全嵌套方式)和循环优先级(相等优先级)两种。 ④可以对8个中断源进行屏蔽或不屏蔽(OCW1)。 说明: ①多片级联之后,最多可以由9片8259构成,1个主片,8个从片,8*8=64个中断源。 5片级联时,4个从片可以管理32个中断源,主片还剩余4个接口,共可管理36个中断源。 ②8259对中断源进行屏蔽与条件屏蔽不同。条件屏蔽为在8086CPU内判断是否响应;而8259屏蔽直接在该芯片内开放或者禁止。 (二)8259A的基本结构主要模块: 中断请求寄存器IRR:保存还没有得到处理的外部中断源的申请。 中断服务寄存器ISR:登记哪些中断源的申请正在被CPU响应。 优先级分析器PR:有多个中断源申请中断时,优先级分析器判定谁是最高优先级,可以优先服务;或者决定是不是可以中断嵌套。 中断屏蔽寄存器IMR:IMR共有8位,每一位控制一个外部中断源申请。 读写逻辑:其接收CPU发来的读写控制信息,以完成控制信息的写入和状态信息的读出。地址线A0对内部端口进行寻址。 基本工作过程: ①外部设备将中断申请信号加入IR0~IR7; ②如果中断屏蔽寄存器IMR对于加入的中断申请没有屏蔽,中断申请存入IRR寄存器; ③优先级分析器对中断申请进行优先级分析,对于最高优先级的申请,清除它在IRR寄存器中的登记,并将ISR寄存器的相应位置1,向CPU发出中断申请; ④CPU响应中断,发回应答信号,收到应答信号后,8259A向CPU发送中断类型号; ⑤CPU调用中断服务子程序,进入中断服务,在中断服务子程序的最后,向8259A发送结束中断命令,收到命令后,8259A清除ISR寄存器中相应位的1,一次中断过程结束。 (三)8259A的引脚
:输入,低电平有效,片选信号。片选信号有效时,8259A和CPU的数据线连通,可以和CPU交换信息。片选信号无效时,8259A的数据线处于高阻状态。CS应该连接到译码器的输出,决定对8259A寻址时的高位地址。 A0:输入,接CPU的地址线,用来对8259A内部端口寻址。A0=0选择一个端口,A0=1选择另一个端口。 8259A内部可访问的寄存器不止两个,不能只通过A。地址的不同来进行区分,还要配合其他的方法。这是8259A内部端口寻址的一个特点。 (四)8259A工作方式①中断结束方式 复位ISR寄存器中的登记,表明一次中断服务的结束。 自动结束中断:8259A在CPU发送第二个INTA应答信号的后延,自动清除被响应的中断在ISR寄存器中的登记,把登记的“1”复位为“0”. 非自动结束中断:在中断服务子程序结束之前,向8259A发送一个结束中断命令。 ②优先权管理方式★★★ 全嵌套方式:对于8个中断源,从IR0接入的中断源优先级最高,从IR7接入的中断源优先级最低,优先级固定。 循环优先级方式:非固定优先级方式。一旦某个中断请求被响应了,这个中断输入对应的优先级就降到最低,原来比这个输入低一级的输入的优先级升位最高,其余各个输入对应的优先级仍然依次排列。 例如:IR5的输入请求被响应了,IR5的输入优先级变为最低,原来低一级的输入IR6的优先级上升为最高,其余依次排列。如: IR6——IR7——IR0——IR1——IR2——IR3——IR4——IR5 特殊全嵌套方式: 在级联方式下,它允许同级中断的嵌套。 例:对于下边的级联芯片,从8259A的IR7中断服务期间,又收到从IR4的申请,对主8259A的IR6是同级 ,IR4可以中断响应。 特殊全嵌套方式只适用于主8259A的优先级管理,从8259A还是要用全嵌套方式。 (五)8259A的编程★ 初始化命令字(ICW1~4):每个初始化命令字要写到8259A的不同的端口。①ICW1初始化命令字 写入端口:A0 功能:设置中断触发方式,规定初始化过程是否需要ICW3/ICW4。 表明初始化命令字是ICW1的特征有两个: 任何时候向8259A写入具有以上两个特征的命令字,8259A都认为是ICW1,开始一次新的初始化过程. ②ICW2初始化命令字 写入端口:AO=1 功能:写入8个中断源的中断类型号的高5位。 对于中断类型号的低三位,IR0~IR7输入的中断源中断类型号的低三位分别是000—111.(存在对应关系) ICW2是紧接着ICW1写入到8259A中的命令字,是8259A初始化过程中必须写入的命令字。 ③ ICW3初始化命令字 写入端口:A0=1 功能:在多片8259A的系统中,说明主、从8259A之间的连接关系。 从ICW3的低三位通过编码的方式主8259A的接入端,如D2D1D0=011,则连接的主8259A的IR3端。 ④ ICW4初始化命令字: 写入端:A0=1 功能:设置8259A的中断结束方式等。 自动结束中断与非自动结束中断。 初始化过程: (2)操作命令字(OCW1~3) 初始化过程结束后所写入的命令字都是操作命令字。每个操作命令字写入的次数和时间顺序都是没有限定的。 8259A有3个操作命令字:OCW1、OCW2和OCW3。 ①OCW1命令字 功能:设置中断屏蔽寄存器。
②OCW2命令字 功能:设置中断优先级管理方式,向8259发送中断结束字(EOI) ③OCW3命令字 主要功能:确定下一次读出是IRR还是ISR OCW3也有两个特征位,D4=0和D3=1,以便和ICW1和0CW2区分。
8259A初始化编程 例:2片8259A级联,从片的INT接主片的IR2。端口地址:主片20H、21H,从片A0H、A1H。主片和从片均采用边沿触发。主片采用特殊全嵌套方式,从片是全嵌套方式。采用非缓冲方式,主片接+5V,从片接地。主片的中断类型号为08H~0FH,从片的中断类型号为70H~77H。写出主8259A和从8259A的初始化程序段。 主8259A MOV AL,11H ;ICW1,边沿触发,多片,需ICW4(P197) OUT 20H,AL MOV AL,08H ;ICW2,中断类型码 OUT 21H,AL ;写端口地址不同,A0 MOV AL,04H ;ICW3,IR2接从片 OUT 21H,AL MOV AL,11H ;ICW4,非缓冲,特殊全嵌套,非自动结束 OUT 21H,AL; 从8259A MOV AL,11H ;ICW1,边沿触发,多片,需ICW4 OUT A0H,AL MOV AL,70H;ICW2,中断类型码 OUT A1H,AL MOV AL,02H ;ICW3,INT接主片的IR2 OUT A1H,AL MOV AL,01H ;ICW4,非缓冲,全嵌套,非自动结束 OUT A1H,AL一、中断服务程序(单级中断) INTER1 PROC FAR PUSH AX PUSH BX ;保护现场(寄存器) ……. POP BX POP AX ;恢复现场(寄存器) IRET INTER1 ENDP二、写中断矢量表(设中断类型号为0AH) 方法1:XOR AX, AX MOV DS, AX MOV DI, 0028H ;0AH*4=0028H MOV AX, OFFSET INTER1 ;P91 MOV [DI], AX ;(0028H)=AX,偏移地址 MOV AX, SEG INTER1 MOV [DI+2], AX ;(002AH)=AX,段地址 STI ;IF=1 LAST: HLT JMP LAST方法2:;利用DOS功能调用写中断矢量表,功能号为25H(P188)。 ;入口参数(AL中断类型号、DS:DX中断服务程序入口 ;地址) MOV AX, SEG INTER1 MOV DS, AX MOV DX, OFFSET INTER1 MOV AL,0AH MOV AH, 25H INT 21H STI LAST: HLT JMP LAST |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |