35 - 中断代理-8259A

---- 整理自狄泰软件唐佐林老师课程

查看所有文章链接:(更新中)深入浅出操作系统 - 目录

1. 问题

  • 不同外设如何向处理器发送中断信号?
  • 当多个外设同时产生中断时,如何进行处理?

2. 想像中的连接

在这里插入图片描述

  • 处理器有多少INTR引脚,能接入多少外设?
  • 处理器有必要与外设直接相连吗?

3. 处理器的中断代理(8259A)

在这里插入图片描述

  • 8259A 是处理器的中断功能模块,用于管理与裁决外部设备的中断请求。

3.1 8259A可编程中断控制器

  • 8259A是专为处理器设计的中断管理芯片
    • 可通过编程对8259A进行功能配置
    • 屏蔽外设中断,对中断进行优先级判决
    • 向处理器提供中断向量
  • 对8259A的编程控制是操作系统内核的重要工作

3.2 8259A芯片的内部结构

在这里插入图片描述

  • 中断屏蔽寄存器IMR 中的位与引脚一一对应:被设置为1的位,其对应引脚的中断被屏蔽;被设置为0的位,其对应引脚的中断被执行。
  • 中断请求寄存器IRR 中的位与引脚一一对应:被设置为1的位,代表其对应引脚有中断请求。(可以理解为需要被处理器响应的中断队列)
  • 优先级判别器PR:当多个中断同时发生时,找出优先级最高的中断
  • INT:选出优先级最高的中断请求后,发消息通知CPU
  • INTR:中断请求信号
  • INTA:中断响应信号,接收来自CPU的INTA接口的中断响应信号
  • 中断服务寄存器ISR 中的位与引脚一一对应:被设置为1的位,表明其对应的引脚的中断正在被处理。

3.3 中断响应流程

在这里插入图片描述

3.4 8259A工作方式

3.4.1 中断触发方式

  • 边沿触发(推荐)
    • 中断引脚电平变化的一瞬间认为中断申请过来(上升沿触发)
  • 电平触发
    • 中断引脚上的信号保持稳定电平一定时间后认为中断申请到来

3.4.2 数据连接方式

  • 非缓冲方式
    • 将8259A直接与数据总线相连
  • 缓冲方式
    • 将8259A通过总线驱动器和数据总线相连

3.4.3 中断优先方式

  • 固定优先级方式
    • 优先级由高到低的顺序是:IR0、IR1、IR2、……、IR7
  • 自动循环方式
    • 某一中断请求被响应后,该中断源优先级自动成为最低
  • 特殊循环方式
    • 通过编程指定某中断源优先级成为最低
    • 其它中断源优先级自动改变

3.4.4 中断嵌套方式

  • 完全嵌套方式(默认方式)
    • 执行中断服务程序期间,不响应本级中断和较低级中断
  • 特殊完全嵌套方式
    • 执行中断服务程序期间,可响应本级中断,不响应较低级中断

3.4.5 中断屏蔽方式

  • 普通屏蔽方式
    • 将IMR中的某一位或几位置为1,屏蔽掉相应级别的中断请求
  • 特殊屏蔽方式
    • 未被屏蔽的中断源均可在某个中断服务程序中被响应,即低优先级中断可以打断正在服务的高优先级中断

3.4.6 中断结束方式

  • 自动结束方式AEOI(只适用于非多重中断的情况)
    • 8259A自动清除ISR中已置位的优先级最高的位
  • 手动结束方式EOI
    • 在中断服务程序的最后,向8259A发中断结束指令,将ISR中响应的位清除,表明中断服务程序已完成

3.5 思考

  • 如何具体的设置和控制8259A?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uuxiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值