8259A简介

article/2025/10/5 16:39:44

文章目录

  • 1中断简介
    • 1.1中断
    • 1.2禁止中断与中断屏蔽
    • 1.3中断嵌套
    • 1.4中断类型号和中断向量表
  • 2,8259A简介
    • 2.1 8259A介绍
    • 2.2 8259A内部结构
    • 2.3 8259A引脚
      • 2.3.1 与CPU相连的引脚
      • 2.3.2 与外设相连的引脚
    • 2.4 8259a可编程寄存器

1中断简介

1.1中断

定义:CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源,称处理紧急事务的程序为中断服务程序或中断处理程序
CPU中的中断源分为内中断和外中断,外中断又分为可屏蔽中断(INTR)和不可屏蔽中断(NMI)
在这里插入图片描述

1.2禁止中断与中断屏蔽

在某些情况下,CPU可能不允许响应可屏蔽中断INTR,此时当中断源向CPU申请中断后.CPU就不能终止当前正在运行的程序并转到中断服务程序,这种情况称为禁止中断。一般在 CPU内部有个中断允许触发器.只有当该触发器的状态为允许状态时 ,CPU才能响应外部中断,否则CPU禁止中断。中断允许触发器可以通过指令STI 进行置位和指令CLI进行复位,以达到CPU允许中断和禁止中断的目的。
在另外一种情况下,CPU不能响应几种特殊类型的中断,而其余的中断则可以响应,这就叫作中断屏蔽。
中断屏蔽可以通过中断屏蔽触发器来实现,将中断源对应的中断屏蔽触发器置1,则该中断源的中断请求被屏蔽,否则该中断源的中断请求被允许。中断允许触发器在CPU内部,其控制所有INTR中断源的允许与禁止。中断屏蔽寄存器在CPU外部,设置在中断控制器8259内部,其控制部分INTR中断源的允许与禁止。

1.3中断嵌套

当CPU正在处理某种类型的中断时,又有级别更高的新中断源申请中断,这时CPU就会暂停当前的中断服务程序,而转去执行新的中断处理,这种中断处理方式就叫作中断嵌套

1.4中断类型号和中断向量表

  1. 中断向量:中断服务程序的入口地址(首地址)
  2. 逻辑地址包括段地址CS和偏移地址IP(共32位)
  3. 每个中断向量占用4个字节
  4. 物理地址00000H开始,依次安排各个中断向量,向量号从0开始
  5. 256个中断占用1KB区域,就形成中断向量表
  6. 向量号为N的中断向量的物理地址=N×4
    在这里插入图片描述

2,8259A简介

2.1 8259A介绍

8259a:为8088、80286等CPU设计的一种可编程中断控制器PIC(Programmable Interrupt Controller),接收外部中断源的请求,在对中断源进行处理后向CPU发出中断请求,然后由CPU响应中断并处理
功能:
①管理8级中断,多片级连可扩展至64级;
②在中断响应周期提供相应的中断向量号
③可通过编程选择多种工作方式。

2.2 8259A内部结构

在这里插入图片描述
(1) 中断请求寄存器IRR (Interrupt Request Resgister)表示相应中断请求线是否有中断请求信号。保存8个中断请求信号,当相应的中断请求有中断请求时,该寄存器相应位置置1
(2) 中断服务寄存器ISR (In-Service Register)用于表示相应的中断是否正在服务中。当CPU正在处理某个中断源的中断请求时,ISR相应位置1
(3) 中断屏蔽寄存器IMR (Interrupt Mask Register) 用于对8个中断源进行屏蔽控制。当某位清零时,则相应的中断请求可以向CPU提出,否则不可以
1 —屏蔽,0 —允许
(4) 优先权电路PR(Priority Resigter):用于比较正在处理的中断和正在请求的中断源的优先级别,确定各中断请求的优先权。
(5) 控制逻辑:向CPU发送中断请求信号,并接受响应信号。控制逻辑有6个寄存器,ICW1–ICW4用来存放初始化程序的工作字方式,管理8259A的工作,OCW2—OCW3用来存放操作命令字,对中断过程进行控制
(6) 数据总线缓冲器:接收CPU的命令数据,发送状态信息及向量号。
(7) 读/写控制逻辑:接收CPU发来命令信号。实现对8259A的读/写操作
(8) 级联缓冲比较器:实现8259A的ID号的存储与比较。用以实现8259A芯片的级联,最高由8级拓展到64级

2.3 8259A引脚

在这里插入图片描述
8259A一共28个引脚,一组与CPU相连,一组与设备相连

2.3.1 与CPU相连的引脚

D7~D0:数据线,双向,三态。与系统的数据总线相连,与CPU进行信息交换
1,A0:奇/偶地址选择信号
2,/CS:片选信号,低电平有效,输入。决定8259A端口地址范围
3,/(WR):写控制信号,输入,低电平有效
4,/(RD):读控制信号,输入,低电平有效
5,INT:(Interrupt):中断请求信号,输出,高电平有效。与CPU的 INTR(Interrupt Request)相连,向CPU发出中断请求
6,/(INTA):Interrupt Acknowledgement 中断响应信号,输入,低电平有效,与CPU的/(INTA)相连,在CPU发出第二个/(INTA)信号时,8259A将最高级别的中断请求的中断类型码传给CPU

2.3.2 与外设相连的引脚

1,CAS2~CAS0:级联信号
2,/(SP)/ /(EN):从片开启/缓冲信号
3,+5V,GND:接地

2.4 8259a可编程寄存器

8259a在工作前要先接受初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3,
ICW1
在这里插入图片描述
ICW2
在这里插入图片描述
ICW3
在这里插入图片描述
ICW4
在这里插入图片描述


http://chatgpt.dhexx.cn/article/9OpJo1v4.shtml

相关文章

RTL8201-RMII电路

本文分享一下RTL8201如何用作RMII电路,无需外部晶体,时钟由主芯片产生。 RTL8201是常用的百兆电流型PHY,支持端口自动翻转(AUTO MDIX),如下框图 RMII相对MII来说,连接线更少,MII需要…

RDMA 、RoCE 、IB 、TCP、Ethernet

ROCE ROCE(Remote Direct Memory Access over Converged Ethernet)是一种网络技术,它结合了RDMA(远程直接内存访问)和以太网交换机的特性。ROCE允许主机之间通过以太网进行高效的直接内存访问,从而提供低延…

RTD2785T RTD2785R 2K eDP屏驱动芯片介绍

RTD2785T 支持VGA2HDMI2DP转eDP&LVDS 2K分辨率 支持按键菜单和Uart串口通信,用于工控MCU通过uart指令调节参数 文章转载: RTD2785T 2HDMI2DP转eDP&LVDS 2K方案设计-易显方案设计 (rtddisplay.com)

【RDMA】15. RDMA之RoCE Soft-RoCE

【RDMA】RDMA 学习资料总目录_bandaoyu的笔记-CSDN博客SavirRDMA 分享1. RDMA概述https://blog.csdn.net/bandaoyu/article/details/112859853https://zhuanlan.zhihu.com/p/1388747382. 比较基于Socket与RDMA的通信https://blog.csdn.net/bandaoyu/article/details/1128613993…

Uva509 RAID

我在这题卡了一天,心态有点小崩。不过最后AC的时候还是很开心的。 坑点:1.注意当两个及以上disc无法读取时,输入不合法。 2.当校验结果与预期ans不同时,输入不合法。 其它都为合法情况。 当合法时,校验块不能作为数据…

百度dueros人工智能-RDA5981(R01开发板)-学习心得-安装SDK(dueros的MbedOS系统)

R01开发板的代码及功能测试需要安装SDK才能正常测试,我们需要了解一点MbedOS系统的基本知识及R01开放板的硬件知识才能开始安装SDK的工作。 1.Mbed OS基础知识 Mbed OS是一个开放源码操作系统,专门用于为物联网(IoT)设备设计的ARM微控制器的平台:需要连接到互联网的低功率、…

百度dueros人工智能-RDA5981(R01开发板)-学习心得-入门及硬件连接

一.入门及硬件连接 自从2017年12月10号收到在深圳比特跳动技术有限公司的淘宝网上购买的百度dueros人工智能-R01开发板,当拆开快递包裹的时候,我本以为可以到手就玩,结果当场就懵了,配件如下图所示: 配件从左到右分别是MIC语音输入,天线,发声喇叭,R01开放板。看见这四…

从RDA5981A/B/C编译后map文件和datasheet分析内存分配情况

先查看RDA5981的datasheet, 如下图,RDA5981芯片内部有三个RAM区域, I_SRAM,D_SRAM,I_cache, 还可以外挂PSRAM, 内存映射图解释: 在编译目录BUILD\UNO_81C\GCC_ARM\找到*.map文件, 可以搜索到如下地址情况: .data 0x00100080 .bss 0x001017a8 .stack …

RDA5981开发环境搭建

最近有商家在卖带有CC2530 Zigbee模块的板子(电子垃圾),我对Zigbee还不是特别感冒(没时间研究),倒是看中了同一个板子上的RDA5981模块。我这个人有个特点,没有研究明白的东西,不会轻…

Apache添加PHP模块重启apache服务报错

根据网上教程,在Apache中添加php模块: LoadModule php7_module C:\Program Files\php\php-7.3.4-Win32-VC15-x64\php7apache2_4.dll AddType application/x-httpd-php .php LoadModule php7_module modules/libphp7.so PHPIniDir C:\Program Files\php\…

linux上apache目录在哪,Linux下Apache目录明细

与Apache服务器相关的重要目录和文件如下: /etc/httpd/是Apache服务器的根目录 /etc/httpd/conf/httpd.conf是Apache服务器的主配置文件,其中包含指定文档root的配置 /var/www/html/是Apache服务器的文档根目录 /etc/init.d/httpd是Apache服务器启动脚本…

windows下apache简单配置php解释器

目录 1. apache部署 1.1. 下载安装包 1.2 安装 1.3 文件配置 1.4 进入cmd,执行httpd -k install -n apache 1.5 服务启动 1.6 服务验证 1.7 apache服务搭建至此结束。 2. php环境部署 2.1 php包下载 2.2 添加环境变量 3. apache下加载php解释器 3.1 编写…

宝塔面板定时重启apache、mysql、php5.6等Shell命令

定时重启apache service httpd restart 定时重启mysql service mysqld restart 定时重启php5.6 service php-fpm-56 restart 定时重启php5.7 service php-fpm-72 restart 还有一种定时重启php5.6的方法 /etc/init.d/php-fpm-56 restart 停止推送 php /www/wwwroot/y…

linux环境下,重启Apache服务httpd出现以下错误

重点查看红线圈出的错误信息 之后修改配置/etc/httpd/conf/httpd.conf未见,由错误信息已知是文件的355行组织了它重启,所以只需将其注释掉或者删掉即可。 保存文件 重新启动即可

重启apache下php,怎么重启apache

怎么重启apache? windows下重启Apache ● 首先右击“此电脑”,点击“管理”; ● 在打开的“计算机管理”程序中,双击“服务和应用程序”。 ● 在打开的“计算机管理”程序中,双击“服务”。 ● 在所有的服务列表中&…

安装、启动与停止Apache服务

安装、启动与停止Apache服务 安装Apache相关软件 [rootcentos7 ~]# rpm -q httpd [rootcentos7-1 ~]# mkdir /opt/centos //创建目录/opt/centos [rootcentos7-1 ~]# mount /dev/cdrom /opt/centos //挂载光盘到/opt/centos 下 mount: /dev/sr0 写保护…

Ansys里不同材料属性按照不同颜色显示出来

在plotctrls里面,有numbers的设置,按照材料或者实常数可以将不同部位编号。 编好号之后,就可以对所选的构件染色了 希望有所帮助。

AD生成BOM表_材料清单 (Bill of Material)

打开Altium Designer软件,然后在原理图界面(XXX.SchDoc),选择 Reports(报告)>> Bill of Materials(材料清单)。 显示如下界面: 选择所需要的BOM表表头,BOM表头_comment_Description_desi…

SAP HUM 如何将HU里的物料号换成另外一个物料号?

SAP HUM 如何将HU里的物料号换成另外一个物料号? 比如HU 183221204047,里面的物料号是10000191, 业务因故包错了物料号,希望在继续使用HU号码的前提下将物料号由10000191替换成10000192. 这意味着,需要将该HU拆掉,然后…

NetSuite关于客户料号的管理

NetSuite关于客户料号的管理 NetSuite关于客户料号的管理解决方案步骤 NetSuite关于客户料号的管理 NetSuite中有成熟的解决方案处理客户料号与系统物料编码对应的问题。主要需要安装bundle, ID为47193。 安装Bundle后,可以分配客户的料号与系统中物料…