8259内部结构、引脚功能、工作方式和命令字

这篇具有很好参考价值的文章主要介绍了8259内部结构、引脚功能、工作方式和命令字。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  8259可编程中断控制器用于管理8086系列微机系统的外部中断请求,实现优先权的排队、提供中断类型码、屏蔽中断输入等功能。单片8259可以管理8级中断,如果采用级联方式。
1、8259的内部结构和引脚功能
  ⑴ 8259的内部结构:有8个部分组成。
8259内部结构、引脚功能、工作方式和命令字
① 中断请求寄存器(IRR):是一个8位的锁存寄存器,用来锁存外围设
备送来的IR0~IR7中断请求信号。当某一个IR端呈现高电平,该寄存器相应位置1
② 中断服务寄存器(ISR):是一个8位寄存器,用来存放已被CPU响应
的中断请求信号。
③ 中断屏蔽寄存器(IMR):是一个8位寄存器,用来对各中断请求设置屏蔽信息。当IMR=1时,禁止对应中断源产生中断。
④ 优先权判别电路(PR):用来识别各中断请求的优先级别。在多个中断
请求信号同时出现并经IMR允许进入系统后,先由PR选出其最高优先级的中断请求。
⑤ 读/写控制电路:接收来自CPU的读/写控制命令和片选控制信息。由片选信号和A0指定内部寄存器,CPU通过IN 和OUT指令读、写8259内部寄存器.
⑥ 数据总线缓冲器:是一个8位的双向三态缓冲器,使8259和CPU数据总线D7~D0直接挂接,完成命令和状态信息的传送,是8259与CPU交换数据的必经之路。
⑦ 控制电路:是8259内部的控制器,根据CPU对8259编程设定的工作方式产生内部控制信号,向CPU发出中断请求信号INT,请求CPU响应,同时产生与当前中断请求服务有关的控制信号,并在接收到来自CPU的中断响应信号后,将中断类型号送到数据总线。
⑧ 级联缓冲/比较器:用来实现多个8259的级联连接及数据缓冲方式。级联时,一个8259芯片为主片,最多能连接8个8259从片,因此最多可以实现对64级中断源的管理。
2、8259的引脚功能
              8259内部结构、引脚功能、工作方式和命令字
① D7~D0: 双向数据总线,是8259与CPU的数据信息通道。
② CS:片选信号线,输入,低电平有效。
③ :写信号,输入,低电平有效。
④ :读信号,输入,低电平有效。
⑤ CAS2~CAS0:3根级联线,主8259芯片与从8259
芯片的连接线。
⑥ / :双重功能线,主片或从片的设定/缓冲器
读/写控制。缓冲方式为输出,非缓冲方式为输入⑦ :中断响应信号线,输入
⑧ INT:中断请求信号线,输出
⑨ IR7~IR0:由外设或其他8259芯片输入的中断请求信号。
3、8259的工作方式
 ⑴ 中断结束方式
  当中断结束时,应将ISR的相应位复位,以清除正在被服务的记录。ISR的复位方式有以下几种:
① 非自动结束方式:当中断服务程序完成时,需提供一条EOI(中断结束)命令(通过配置工作命令字OCW2高3位提供EOI结束命令),使8259中ISR的相应位清除,让ISR只记录那些正在被服务而未服务完的中断。非自动中断结束有两种方式: 一般EOI方式、特殊EOI方式
  a、这种工作方式下,在任一级中断服务结束后,中断返回之前,安排一条一般EOI命令。执行该命令,则8259将ISR寄存器中级别最高的置1位清0。这种结束方式很简单,但只有在当前结束的中断总是位于未服务完的中断中级别最高的中断时,才能使用这种结束方式。
  b、当中断服务程序结束,给8259发送EOI命令的同时,将当前结束的中断级别也传送给8259,使8259将ISR寄存器中指定级别的相应位清0,这种结束方式适用于在中断服务程序中改变了中断源的原有的中断优先权的场合。在这种情况下,如果用一般EOI方式,则可能产生错误的ISR复位。
② 自动EOI方式
  这种方式在中断服务程序结束时,不需要提供EOI命令,而是由8259在中断响应周期的第2个中断响应信号INTA 结束时,自动执行一个EOI操作,将ISR寄存器中的相应位清0。缺点:采用这种结束方式,在任何一级中断的中断服务过程中,ISR相应位已复位,8259中没有留下任何标志,如果在此过程中出现了新的中断请求,则只要IF=1,不管新出现的中断级别如何,都将打断正在执行的中断服务程序而被优先执行,这就有可能出现低级中断打断高级中断或同级中断相互打断的现象,这种情况称为“重复嵌套”,由于重复嵌套的深度无法控制,很可能造成某些高级中断得不到及时处理的情况。
自动EOI和非自动EOI通过ICW4命令字的D1位进行设置。
⑵缓冲方式
   用来指定系统总线与8259数据总线之间是否需要进行缓冲。
  ① 缓冲方式:可以通过对8259编程设置其工作在缓冲方式下。
  ② 非缓冲方式:当设置8259芯片工作在非缓冲方式下时
  通过ICW4命令字的D2、D3位进行设置
⑶ 嵌套方式
  嵌套方式用于8259进行优先级控制。
  ① 一般全嵌套方式:是指优先级高的中断可以打断低级中断服务。在这种方式下,由各个IRi 端引入的中断请求具有固定的中断优先级别,且优先级顺序由高到低依次为IR0 ~ IR7 。是8259初始化后自动进入的基本方式。
  ② 特殊全嵌套方式:主要用于级联方式。若不采用特殊全嵌套方式,则主8259芯片将把来自于同一个从8259芯片内的不同级别中断请求认为是同级的,而不予以响应。为了实现真正的全嵌套,在级联方式下就必须采用特殊的全嵌套方式。主8259可以响应同级或更高级的中断,即使中断发生在同一从片,也要分清从片内的各中断级别。
通过ICW4命令字的D4位进行设置
⑷ 中断屏蔽方式
  对优先级的管理还可采用设置中断屏蔽寄存器IMR的方式,有选择地对某一级或几级中断请求进行屏蔽。通过中断屏蔽有如下两种实现方式:
  ① 一般屏蔽方式:可以通过将中断屏蔽寄存器IMR中的某一位或某几位置1,将某一级或几级中断请求屏蔽掉。OCW1命令字进行控制
  ② 特殊屏蔽方式:可以实现在执行高优先级的中断服务程序时,允许响应低级中断源的中断请求,在这种方式下,解除了对低级中断的屏蔽,即仅对由IMR屏蔽的中断或本级中断进行屏蔽,而允许比它高或低的中断进入系统,从而使得任一级别的中断都有机会得到响应。通过OCW3命令字的D6位进行设置
⑸ 优先级的控制
  ① 固定优先级:是指8259的8个中断源中,IR0优先级最高,IR1优先级次之,依次降低,直到IR7优先级最低,这个顺序固定不变。用于各中断源的工作速度或重要性有比较明显差别的场合。
  ② 循环优先级:当8259引入的各中断源的重要性差别不是很明显时,希望中断级别不是固定不变的。8259将中断源IR0~IR7按下标序号顺序构成一个环(即中断源顺序环),优先级顺序依此环规定,有两种规定方式:
  自动优先循环级: 刚被服务过的中断源,其优先级别被改为最低级,而将最高优先级赋给原来比它低一级的中断源,其他中断源的优先顺序依中断源顺序环确定。
  指定优先循环级:在OCW2(工作命令字)中指定的中断源,其优先级别被设为最低级,其他中断源的优先顺序依中断源顺序环确定。
通过OCW2命令字的高三位位进行设置
4、8259命令字
⑴初始化命令字ICW1
  用于规定8259的连接方式(单片或级联)和中断源请求信号的有效形式(电平触发或边沿触发)。当CS =0、A0=0、D4=1时,表示当前写入8259的是ICW1命令字,其格式如图所示。
8259内部结构、引脚功能、工作方式和命令字
⑵初始化命令字ICW2
   用于设置中断类型码基值。所谓中断类型码基值,是指0级中断源IR0所对应的中断类型码,它是一个可被8整除的正整数。ICW2的格式如图所示。低三位根据当前CPU响应的中断是IR0~IR7中哪一个而自动确定的。
8259内部结构、引脚功能、工作方式和命令字
⑶ 初始化命令字ICW3。
  此命令字仅用于8259级联方式。它指明从8259芯片的INT引脚与主8259芯片的哪一个中断源请求信号(IR0~IR7中的哪一个)相连。
  主8259芯片的ICW3格式如图所示。
8259内部结构、引脚功能、工作方式和命令字从8259  从芯片的ICW3格式如图所示。
8259内部结构、引脚功能、工作方式和命令字初始化⑷命令字ICW4。
  只有当ICW1中的IC4(D0)=1时,才需设置ICW4命令字。对于8086系统, ICW4是必须设置的初始化命令字。D7~ D5特征标志,总为0
8259内部结构、引脚功能、工作方式和命令字工作
  8259的初始化从ICW1开始,然后顺序写入ICW2、ICW3、ICW4。
命令字OCW1
  用来设置中断源的屏蔽状态并写入IMR中,其格式如图所示。为1表示屏蔽
8259内部结构、引脚功能、工作方式和命令字
工作命令字OCW2
  用于控制中断结束方式及修改优先权管理方式。命令字格式如图所示。
8259内部结构、引脚功能、工作方式和命令字
8259内部结构、引脚功能、工作方式和命令字
工作命令字OCW3
   用于设定特殊的屏蔽方式和查询方式,及读取IRR/ISR寄存器等。命令字格式如图所示。
8259内部结构、引脚功能、工作方式和命令字
  CPU先用OUT指令将OCW3中D2位置了,然后用in指令进行查询,查询字与OCW3同一个地址,各位意义如下图所示
8259内部结构、引脚功能、工作方式和命令字
总结
8259内部结构、引脚功能、工作方式和命令字
这是本人对8259的理解和总结,欢迎给位大佬批评指正。文章来源地址https://www.toymoban.com/news/detail-487929.html

到了这里,关于8259内部结构、引脚功能、工作方式和命令字的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kafka 的内部结构和 kafka 的工作原理

    基本设置 让我们开始安装kafka。下载最新的 Kafka 版本并解压缩。打开终端并启动 kafka 和 zookeeper。 让我们在新的终端选项卡中创建一个主题。 如果您想知道上述命令是如何使用这些参数构造的,那非常简单。照做, bin/kafka-topics.sh --help 您将看到所有带有描述的参数。文件夹

    2024年02月09日
    浏览(61)
  • “深入探究JVM内部结构与工作原理:解析Java虚拟机“

    标题:深入探究JVM内部结构与工作原理 摘要:本文将深入探究Java虚拟机(JVM)的内部结构与工作原理。我们将介绍JVM的基本组成部分,包括类加载器、运行时数据区和执行引擎。同时,我们将通过一个示例代码来说明JVM内部结构与工作原理的具体应用。 介绍: Java虚拟机(

    2024年02月12日
    浏览(36)
  • “深入解析JVM内部结构与工作原理:揭秘Java虚拟机的奥秘“

    标题:深入解析JVM内部结构与工作原理:揭秘Java虚拟机的奥秘 摘要:本文将深入探讨Java虚拟机(JVM)的内部结构和工作原理,帮助开发者更好地理解JVM的运行机制,从而提高Java程序的性能和稳定性。 正文: 一、JVM概述 Java虚拟机(Java Virtual Machine)是Java程序的运行环境,

    2024年02月11日
    浏览(44)
  • 【MySQL】MySQL体系结构与内部组件工作原理解析(原理篇)(MySQL专栏启动)

    📫作者简介: 小明java问道之路,专注于研究 Java/ Liunx内核/ C++及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。         📫 热衷分享,喜欢原创~ 关注我会给你带来一些

    2024年01月15日
    浏览(57)
  • FPGA - 7系列 FPGA内部结构之CLB -02- CLB功能详解

    本文翻译自UG474第二章,主要对7系列FPGAs CLB结构进行详细介绍。这些细节对设计优化和验证很有帮助。 CLB 在 7 系列 FPGA 中按列排列。 7 系列是基于 ASMBL架构提供的独特柱状方法的第四代产品。ASMBL 架构 Xilinx 创建了高级硅模块块 (ASMBL) 架构,以支持具有针对不同应用领域优化

    2024年02月06日
    浏览(38)
  • FPGA引脚物理电平(内部资源,Select IO)-认知2

    引脚电平 The SelectIO pins can be configured to various I/O standards, both single-ended and differential. • Single-ended I/O standards (e.g., LVCMOS, LVTTL, HSTL, PCI, and SSTL) • Differential I/O standards (e.g., LVDS, Mini_LVDS, RSDS, PPDS, BLVDS, and differential HSTL and SSTL) 引脚种类 VCCO ,for PL 每个Bank对应一个电压,HP Bank VC

    2024年01月22日
    浏览(40)
  • vue项目打包_以生产环境prod模式打包_vue-cli-service 不是内部或外部命令,也不是可运行的程序---vue工作笔记0025

    打开命令行: 首先执行npm install  不执行会报错:   npm run build:prod --scripts-prepend-node-path=auto 然后再这样执行就是以生产环境模式打包了.

    2024年02月05日
    浏览(58)
  • # STM32系列-串口-uart-软件引脚内部上拉 或者 外部电阻上拉-原因问题的搜寻

    最近,在调试uart串口的时候,被要求,要在串口初始化的时候,将引脚设为上拉。由此想到了为什么要上拉这个问题,但上网查了资料,发现大部分都是是说RX应该上拉,但是为什么上拉,没有什么人说的清楚,于是想深入找下原因。 预先假设问题,知道自己要问什么,缕清

    2024年02月01日
    浏览(41)
  • Linux工作原理2常用基本命令和目录层次结构

    本章是对本书中你将遇到的Unix命令和工具的指南。 为什么是Unix命令?这不是一本关于Linux如何工作的书吗?当然是的,但Linux在本质上是一种Unix风格。在本章中,你会看到Unix这个词,而不是Linux,因为你可以把你学到的东西直接带到BSD和其他Unix风味的系统中去。我试图避免

    2024年02月06日
    浏览(52)
  • 7Z045 引脚功能详解

    本文针对7Z045芯片,详细讲解硬件设计需要注意的技术点,可以作为设计和检查时候的参考文件。问了方便实用,按照Bank顺序排列,包含配置Bank、HR Bank、HP Bank、GTX Bank、供电引脚等。 参考文档包括: ds191-XC7Z030-XC7Z045-data-sheet ds190-Zynq-7000-Overview ug585-Zynq-7000-TRM ug865-Zynq-7000-P

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包