美文网首页
第七章 中断控制接口

第七章 中断控制接口

作者: XiaoShanHsj | 来源:发表于2019-01-06 19:56 被阅读0次

    7.1 8088中断系统

    256个中断,中断向量号位0~255

    7.1.1 8088的中断类型

    非屏蔽中断源NMI

    可屏蔽中断源INTR

    1.内部中断,8088内部执行程序出现异常引起的程序中断。

    (1)除法错中断

    (2)指令中断

    INT n是一个向量号为n的内部中断。通常是2字节指令,但是向量号为3的指令中断是1字节指令。

    (3)溢出中断

    INTO,溢出标志OF为1,则产生一个向量号为4的内部中断,称为溢出中断。

    (4)单步中断

    单步标志TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断

    2.外部中断

    (1)非屏蔽中断

    主要用于处理系统的意外或故障

    (2)可屏蔽中断

    7.1.2 8088的中断响应过程

    优先级从高到低为软件中断->非屏蔽中断->可屏蔽中断->单步中断

    图7-2 其中TEMP是为了识别单步中断

    8088各种中断源的优先级实际上是指被识别出来的先后顺序;多种中断同时请求时,最先响应的则可能是单步中断或NMI中断

    7.1.3 8088的中断向量表

    中断服务程序入口地址是一个逻辑地址,含有段地址CS和偏移地址IP,低字是偏移地址,高字是段地址,需占用4个字节,每4个字节为一个地址,256个中断需要1KB区域。

    7.2 内部中断服务程序

    (1)中断服务程序入口地址设置 DOS功能调用INT 21H,AH=25H

    入口参数:AL=中断向量号,DS:AX=中断服务程序入口地址

    (2)获取中断服务程序入口地址 DOS功能调用INT 21H,AH=35H

    入口地址:AL=中断向量号

    出口参数:ES:BX=中断服务程序入口地址

    7.3 8259A中断控制器

    一片8259A可以管理8级中断,通过多片级联可以扩展至64级

    7.3.1 8259A的内部结构和引脚

    1.中断控制     图7-4    表7-1

    3个8位可读写寄存器

    (1)中断请求寄存器:保存8条外界中断请求信号IR0~IR7的请求状态。Di表示IRi有中断请求

    (2)中断服务寄存器:保存正在被8259A服务着的中断状态。Di表示IRi正在被服务

    (3)中断屏蔽寄存器:保存对中断请求信号IR的屏蔽状态,Di表示IRi中断被屏蔽

    2.与处理器接口

    4个初始化命令字ICW、3个操作命令字OCW和4个状态字

    3.中断级联

    一个主8259A,若干个从8259A

    7.3.2 8259A的中断过程

    图7-5    第一个响应信号启动\overline{LOCK}信号,第二个响应周期用于读取外部送来的中断向量号。

    7.3.3 8259A的工作方式

    1.设置优先权方式

    (1)普通全嵌套方式,优先权从高到低一次位IR0、IR1……IR7。在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套。

    (2)特殊全嵌套方式,当处理某一级中断时,允许同级中断的嵌套。一般在级联时主片为特殊全嵌套方式。

    (3)优先权自动循环

    (4)优先权特殊循环

    2.结束中断处理方式,即使ISR某位复位

    (1)自动中断结束方式

    (2)普通中断结束方式,配合全嵌套优先权方式

    (3)特殊中断结束方式,配合循环优先权方式

    3.屏蔽中断源方式

    (1)普通屏蔽方式

    (2)特殊屏蔽方式,将IMR的Di置为1就会使ISR的Di置为0

    4.中断触发方式

    (1)边沿触发方式,上升沿

    (2)电平触发

    5.数据线连接方式

    (1)缓冲方式

    (2)非缓存方式

    7.3.4 8259A的编程

    可以分为初始化编程和中断操作编程

    1.初始化命令字ICW    图7-7

    必须按照ICW1~ICW4的顺序写入,其中ICW1和ICW2是必须送的,而ICW3和ICW4是由工作方式决定的

    (1)ICW1

    写入ICW1的条件是8259A的地址引脚A0=0以及ICW1的D4=1

    D0规定是否写入ICW4

    D1规定单片或级联方式,为1则是单片方式,不需要写入ICW3,为0则是级联方式,要写入ICW3

    D3规定中断触发方式,1为电平触发,0为边沿触发

    D4必须为1

    (2)ICW2

    中断向量字,用于设置中断向量号。T7~T3作为中断向量号的高5位,而低3位由8259A自动按IR输入端确定

    (3)ICW3,级联命令字

    对主片8259A:ICW3的每一位表示是否接有从片,对从片,第三位有效,表示接到主片的哪一个引脚上

    (4)ICW4,中断方式字

    D0表示选用的微处理器类型,本书中都为1

    D1表示采用自动中断结束(1)还是非自动中断结束(0)

    D2表示是主片(1)还是从片(0)

    D3表示数据线采用缓冲方式(1)还是非缓存方式(0)

    D4表示工作于特殊全嵌套方式(1)还是普通全嵌套方式(0)

    2.操作命令字OCW    图7-8

    工作期间可以随时接受操作命令字OCW,OCW1~OCW3,写入没有顺序要求

    (1)OCW1

    OCW1是屏蔽命令字,内容写入中断屏蔽器IMR

    OCW2是中断结束和优先权循环命令字,循环、设置优先级和中断结束三位配合使用,低三位位指定IR引脚

    OCW3是屏蔽和读状态命令字

    3.读取状态字

    OCW3中的RR和RIS(D1和D0)可以读取IRR和ISR,当A0引脚位高电平时读取的都是IMR

    查询字,OCW3中使P=1,如果查询字的I为1说明外设请求中断,低三位用于指示,如果I为0说明没有外设请求中断。

    4.命令字和状态字的区别方法

    A0=0时,可以写入ICW1,OCW2,OCW3并读取IRR,ISR和查询字,A0=1时,可以写入ICW2~ICW4,OCW1并读出IMR

    7.4 8259A在IBM PC系列机上的应用

    图7-9

    (1)利用上升沿作为中断请求IRQ的有效信号

    (2)IRQ0~IRQ7的中断向量号依次为08H~0FH,IRQ8~IRQ15依次为70H~77H

    (3)采用普通全嵌套优先权方式,中断优先权从高到低依次为IRQ0~IRQ2,IRQ8~IRQ15,IRQ3~IRQ7且不能改变

    (4)采用普通中断结束EOI方式,需要在中断服务程序最后发送EOI命令

    (5)一般采用普通屏蔽方式,通过写入IMR允许中断,

    IRQ9替代IRQ2

    相关文章

      网友评论

          本文标题:第七章 中断控制接口

          本文链接:https://www.haomeiwen.com/subject/rjtjrqtx.html