8259A知识点

可编程中断控制器8259A

8259A芯片内部结构

8259A结构图

  1. 数据总线缓冲器
    这是一个双向8位3态缓冲器,由它构成8259A与CPU之间得数据接口,是8259A与CPU交换数据的必经之路。
  2. 读写控制电路
    用来接收来自CPU的读/写控制命令和片选控制信息。由于一片8259A只占两个I/O端口地址,可用末位地址码A0来选端口,端口的其他高位地址作为片选信号输入。当CPU执行OUT指令时,WR信号与A0配合,将CPU通过数据总线(D7~D0)送来的控制字写入8259A中有关的控制寄存器。当CPU执行IN指令时,RD信号与A0配合,将8259A中内部寄存器内容通过数据总线(D7~D0)传给CPU。
  3. 级联缓冲/比较器
    一片8259A只能接收八级中断从IR7~IR0输入,当引入的中断超过8级时,可用多片8259A级联使用,构成主从关系,对于8259A,级联信号CAS2~CAS0是输出信号,对于从8259A,CAS2~CAS0是输入信号。SP/EN是一个双功能信号,当8259A处于缓冲状态时,EN有效,表示允许8259A通过缓冲存储器输出。EN无效,表示CPU写8259A,当8259A处于非缓冲状态时,SP用作表明主从关系,SP=1表示是主8259A,SP=0表示是从8259A。
  4. 中断请求寄存器IRR
    这是一个8位寄存器,用来存放由外部输入的中断请求信号IR7~IR0.当某一个IRi端呈现高电平时,该寄存器的相应位置置“1”。
  5. 中断服务寄存器ISR
    这是一个8位寄存器,用来记录正在处理中的中断请求。当任何一级中断被响应,CPU正在执行它的中断服务程序时,ISR寄存器相应位置“1”,一直保持到该级中断处理过程为止,多重中断情况下,ISR寄存器中可有多位被同时置“1”。
  6. 中断屏蔽寄存器IMR
    这是一个8位寄存器,用来存放对各级中断请求的屏蔽信息。当该寄存器中某一位置“1”时,表示禁止这一级中断请求进入系统。通过IMR寄存器可实现对各级中断的有选择屏蔽。
  7. 优先权判别器PR
    当多个中断请求信号同时产生,由PR判定当前哪一个中断请求具有最高优先级,于是系统首先相应这一级中断,转去执行相应的中断服务程序。
  8. 控制电路
    它时8259A内部的控制器。根据中断请求寄存器IRR的位置情况和优先权判别器PR的判定结果,向8259A内部其他部件发出控制信号,并向CPU发出中断请求信号INT和接收来自CPU的中断相应信号INTA,控制8259A进入中断服务状态。

8259A芯片的工作方式

8259A有两种中断触发方式:电平触发方式和边沿触发方式,可由软件来定义。不管时采用什么方式引入中断,在中断响应周期内第二个INTA信号有效期间8259A应将当前被响应的中断类型码n通过数据总线D7~D0传送给CPU。
中断类型码的形成
由图中可看出,由一片8259A引入的8级中断请求的类型码肯定是连续的。
8259A中对中断优先权的管理,可概括为完全嵌套方式、自动循环方式和中断屏蔽方式。

  1. 完全嵌套方式
    完全嵌套方式是8259A被初始化后自动进入的基本工作方式,具有固定的中断级别。IR0具有最高优先级,IR7具有最低优先级,其他级顺序类推。
    8259A中断控制器8级中断嵌套过程
    在中断嵌套过程中,还要求CPU每响应一次中断进入中断服务程序后,应安排开中断指令(STI)及那个IF标志位置“1”,否则由8259A引入的高级中断将无法进入系统。当任何一级中断处理完毕,CPU应向8259A回送结束命令(EOI),以使8259A将ISR寄存器中相应位清"0",标志一级中断处理过程完全结束。
    (1)普通EOI方式:在中断服务程序的末尾向 8259A发出中断结束命令,自动清除 ISR中所有已置位的中断 优先级最高的那一位。
    (2)特殊EOI方式:在第二个 INTA响应信号的后沿由 8259A自动执行正常(普通)EOI操作,复位 ISR中已 置位的中断优先级最高的位
    (3)自动EOI方式:任何一级中断后,ISR寄存器相应位置置“1”,CPU将进入中断响应总线周期,在第2个中断响应信号(INTA)结束时,自动将ISR寄存器中相应位清“0”,被称作自动EOI方式。
  2. 自动循环方式
    每当任何一级中断被处理完,它的优先级就被改变为最低级,而将最高优先级赋给原来比它低一级的中断请求。
    (1)普通EOI循环方式:当任何一级中断被处理完后,CPU给8259A回送普通EOI命令,8259A接收到这一命令后将ISR寄存器中优先级最高的置“1”位清“0”,并赋给它最低优先级,其他中断请求的优先级别以循环方式类推。
    (2)自动EOI循环方式:任何一级中断响应后,在中断响应总线周期中,由第二个中断响应信号INTA的后沿自动将ISR寄存器中华响应位清零,并立即改变各级中断的优先权级别,改变方案与普通EOI循环方式相同。
    (3)特殊EOI循环方式:特殊EOI循环具有更大的灵活性,它可根据用户要求将低优先级赋给某一级中断源。
    特殊EOI循环方式举例
  3. 中断屏蔽方式
    对中断优先级管理还可以采用中断屏蔽方式,CPU在任何时候都可以安排一条清楚中断标志指令(CLI),将中断标志位清“0”,从此以后,CPU将禁止所有由INTR断引入的可屏蔽中断请求。它只能对所有的可屏蔽中断一起进行屏蔽,而无法有选择地对某一级或几级中断进行屏蔽。这种屏蔽操作可由8259A通过中断屏蔽寄存器来实现,有两种实现方式:
    (1)普通屏蔽方式:将中断屏蔽寄存器IMR中的某一位或某几位置“1”,即可将相应级的中断请求屏蔽掉。
    (2)特殊屏蔽方式:当CPU正在处理某级中断时,要求仅对本级中断进行屏蔽,而允许其他优先级比它高或低的SMM位的置位来使8259A进入这种特殊屏蔽方式。

8259 的工作状态和操作方式.

命令有两种:

  1. 设置工作方式,初始化命令字(ICW1~ICW4)。ICW1~ICW4 是在计算机系统启动时由初始化程序设置的,一旦确定,在系统工作过程中,一般 不再改变。
  2. 控制操作,操作命令字(OCW1~OCW3)。OCW1~OCW3 是由应用程序设定的,用来对中断处理过程实现动态控制。
  3. 8259 的初始化命令字 ICW1~ICW4
    ● ICW1~ICW4 在初始化程序中设定,且在整个工作过程中保持不变。
    ● ICW1~ICW4 必须按顺序设定。
    ●ICW1 写入 8259 偶地址中(A0=0) 。
    ●ICW2~ICW4 写入 8259 奇地址中(A0=1)。

初始化命令字(ICW1~ICW4)

  1. ICW1 的格式及含义

8259AICW1格式

  1. ICW2 的格式及含义
    在写ICW1之后,对A0=1 的端口第一次写入的数据是 ICW2 。 中断类型码=(T7~T3)+ 中断源引入管脚编号 如:写入 20H,中断类型码为 20H~27H; 00100000 写入 40H,中断类型码为 40H~47H; 01000000 写入 45H,中断类型码仍为 40H~47H. 01000101 8259AICW2格式

  2. ICW3的格式及含义
    系统中有级联(ICW1.SNGL=0),在 ICW2 之后写 ICW3。 对于主片:置 1 的位表示对应的引脚 IR 有从片级联。 对于从片:用 D2~D0 表示和主片的对 应引脚级联。
    在这里插入图片描述

  3. ICW4的格式及含义
    对于8086/8088系统是必须设置的预置命令字。
    8259AICW4格式

例:

设某 8086 系统中使 用一片 8259A,其端口地 址为 210H、211H,若系统要求中断请求为电平触发,其 8 个中 断源的类型码为 60H~67H,不用缓冲方式,采用中断自动结束方式,试编写初始化程序段。
解:按要求确定初始化命令字

ICW1: 0 0 0 1 1 0 1 1 B=1BH 
ICW2: 0 1 1 0 0 0 0 0 B=60H 
ICW4: 0 0 0 0 1 0 1 0 B=0AH 

初始化程序段:

MOV DX,210H ;DX 指向偶地址端口
MOV AL,1AH ;
OUT DX,AL ;写入 ICW1 
MOV DX,211H ;DX 指向奇地址端口 
MOV AL,60H ; 
OUT DX,AL ;写入 ICW2 
MOV AL, 0AH 
OUT DX,AL ;写入 ICW4 

控制命令字(OCW1~OCW3)

8259A 有三个操作命令字 OCW1~OCW3,程序员可以使用这三个命令字在应用程序里随时改变 8259A 的工作方式,而且设置时,次序可以随意。但是对端口地址有严格要求,即 OCW1必须写入奇端口地址,OCW2和OCW3 必须写入偶端口地址。

  1. OCW1 的格式及含义—中断屏蔽字(IMR) 某一位为“1”时,对应这一位的中断请求 受到屏蔽。为“0”时开放该位中断。 如 OCW1=08H,则 IR3 管脚上的中断请求被屏蔽.

OCW1
2. OCW2 的格式及含义—设置优先级循环方 式和中断结束方式

OCW2

  1. OCW3-特殊屏蔽方式和查询方式操作字
    功能:
    ●设定特殊屏蔽方式;
    ●设置中断查询方式;
    ●设置对 8259 寄存器的读出。

在这里插入图片描述

8259A 初始化

MOV AL, 13H ;写 ICW1,单片,边沿 触发,要 ICW4
OUT 20H,AL 
MOV AL,8 ;写 ICW2,中断类型号从 8 开始 OUT 21H,AL MOV AL,0DH ;写 ICW4,缓冲工作方式,8088/8086 配置 
OUT 21H,AL 
MOV AL,0 ;写 OCW1,允许 IR0~IR7 全部 8 级中断请求 
OUT 21H,AL

  • 17
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值