中断控制器

    多个外部中断源共享中断资源,必须解决相应的一些问题,例如CPU芯片上只有一个INTR输入端,多个中断源如何与INTR连接、中断矢量如何区别、各中断源的优先级如何判定等。可编程中断控制器8259A就是为此目的而设计的,它可以接收多个外部中断源的中断请求,并进行优先级判断,选中当前优先级的中断请求,并将此请求送到CPU的INTR端。当CPU响应中断并进入中断服务程序的处理过程后,中断控制器仍负责对外部中断请求的管理。

8259A的内部结构

    8259A的内部结构由以下几部分组成:
    (1)数据总线缓冲器。是一个8位双向三态缓冲器,通常与数据总线的低8位相连,是8259A与CPU间交换数据的接口,交换的数据有8259A向CPU输入的数据、状态信息及CPU向8259A发送的数据、命令、控制字,都要经过数据总线缓冲器。
    (2)读/写控制电路。用来接收CPU发送的读写命令、片选信号以及端口选择信号,实现CPU对8259A的读/写操作。当CPU执行OUT指令时,信号有效。
    (3)级联缓冲器/比较器。一片8259A只能接收8级中断输入,超过8级时,可以多片级联构成主从关系的中断系统。
    (4)中断请求寄存器IRR。中断请求寄存器IRR用来存放外部输入的中断请求信号。
    (5)中断屏蔽寄存器IMR。IMR是一个8位寄存器,用来存放对各级中断请求的屏蔽信息。
    (6)中断服务器寄存器ISR。ISR是8位寄存器,与8级中断相对应,用来记录正在处理的中断请求。
    (7)优先级盘判别器PR。用来管理和识别各中断请求信号的优先级别。
    (8)控制电路。是8259A的内部控制器,控制8259A芯片的内部工作过程。

外部引脚和内部结构

    8259A的外部引脚信号
    8259A采用NMOS工艺制造,使用单一5V电源,是具有28个引脚的双列直插式芯片,其外部引脚除电源和地以外其他各引脚信号的功能如下:
    :双向数据线,三态,直接与系统数据总线相连,实现与CPU的数据交换。在较大系统中,一般通过总线驱动器与系统数据总线相连。
    :外部中断请求信号输入端,中断请求信号可以是电平触发方式也可以是边沿触发,具体由编程决定。8级中断请求信号输入引脚,当有多片8259A形成级连时,从片的INT与主片相连。
    在8088系统中,数据总线为8位,8259A的数据也是8位,所以将地址总线的  直接连到8259A的  便可分配给8259A一个奇地址和一个偶地址,从而满足8259A编程时对端口地址的要求。

概念

    多个外部中断源共享中断资源,必须解决相应的一些问题,例如CPU芯片上只有一个INTR输入端,多个中断源如何与INTR连接、中断矢量如何区别、各中断源的优先级如何判定等。可编程中断控制器8259A就是为此目的而设计的,它可以接收多个外部中断源的中断请求,并进行优先级判断,选中当前优先级的中断请求,并将此请求送到CPU的INTR端。当CPU响应中断并进入中断服务程序的处理过程后,中断控制器仍负责对外部中断请求的管理。例如当某个外部中断请求的优先级高于当前正在处理的中断的优先级时,中断控制器会让它通过送到CPU的INTR端,从而实现中断嵌套。反之,对其他级别较低的中断则予以禁止。
    可编程中断控制器8259A可用于管理8级优先权中断,将9片8259A级联可构成最多可达64级优先权的中断管理系统。8259A具有多种工作方式,自动提供中断服务程序入口地址。

中断控制器相关词条