• 【微机接口】中断控制器8259


            CPU只有一个引脚INTR接受外部的可屏蔽硬件中断请求,为了管理多个外部的中断源,设计了8259A中断控制器。

    8259A是可编程的中断控制器。

    (1) 一片8259A中断控制器可以管理8级外部中断,并最后向CPU提出中断请求。

    通过级联,采用1主8从的方式,可拓展管理64级中断。

    (2) 每一级中断都可以通过设置内部屏蔽字进行屏蔽或允许

    (3) 在中断响应周期,8259A可以向CPU提供相应的中断类型码

    8259A结构:

    (1)中断请求寄存器(8位)(IRR)

    IRR是一个8位寄存器,IRR的D0~D7位分别对应着IR0~IR7。

    IRR中的Di位置1,表明IRi引脚上有了中断请求信号。

    当中断请求被响应后,IRR相应位复位

    (2)中断屏蔽寄存器(8位)(IMR)

    8位,IMR的D0~D7位分别对应着IR0~IR7,。

    屏蔽字某位=1,则与该位对应的中断请求信号(IRRi位)不能被送到中断优先权电路。

    (3)优先权电路

    比较同时送达优先权电路的中断请求,哪一个级别最高。

    比较CPU正为之服务的中断源和刚进入优先权电路的中断源,哪一个级别更高。

    选出级别最高的中断源,然后通过INT端向CPU提出中断请求。

    (4)中断控制电路

    当判优电路选中一个中断源时,向CPU提出中断请求(INT)

    通过\overline{INTA}接受CPU送来的两个连续的负脉冲。

    (5)中断服务寄存器(ISR)

    Di为1,表示CPU正在准备IRi的服务程序。由1变0说明IRI的中断服务子程序执行完。

    所以ISR的每一位都是响应中断源的中断服务标志位。

    8259A的工作过程:

    (1)当引脚IR0~IR7有中断请求后,8259A中断请求寄存器ISR相应位置1。

    (2)没有被中断屏蔽寄存器屏蔽的中断请求将送到优先权电路判优。

    (3)选中优先级最高的中断源,然后通过从引脚INT向CPU发出中断请求信号。

    (4)CPU满足条件后,通过\overline{INTA}引脚向8259A发出两个负脉冲的中断响应信号。

    收到第一个中断响应信号后,使中断服务寄存器ISR与被选中中断源对应位置1,同时把中断请求寄存器相应位清0。

    收到第二个中断响应信号后,将中断源类型码n送到CPU

    ....保护现场、CPU转入中断服务子程序、恢复现场

    在执行IRET前,向8259A写中断结束命令字,使8259A的中断服务寄存器ISR相应位清0,表示中断请求服务完毕。

  • 相关阅读:
    深入浅出Spring(23)
    重磅!OpenAI发布GPT-4o,非常惊艳语音版ChatGPT!
    【电源专题】为开关稳压器选择正确的工作频率
    不要在问了!工作六年总结的Java面试题与经验
    人口大数据解决方案
    祝贺!Databend Cloud 和阿里云 PolarDB 达成认证
    【Linux】组管理命令
    1 开发环境搭建与初识Vue
    STM32 I2C详解
    Spring——bean的生命周期
  • 原文地址:https://blog.csdn.net/m0_52043808/article/details/127808379