第9.1中断8259
- 格式:ppt
- 大小:1.85 MB
- 文档页数:75
总结介绍8259中断控制器8259中断控制器Overview前言8259A芯片是一个中断管理芯片,中断的来源除了来自于硬件自身的NMI中和来自于软件的INT n指令造成的软件中断之外,还有来自于外部硬件设备的中断,这些中断的可屏蔽的。
这些中断也都通过PIC(Programmable Interrupt Controller)进行控制,并传递给CPU。
一个8259A芯片最多可接收8个中断源,但由于可以将2个或多个8259A芯片进行级连(cascade),并且最多可以级链到9个,所以最多可以接64个中断源。
如今绝大多数的PC 都拥有2个8259A,这样最多可以接收15个中断源。
通过8259A可以对单个中断源进行屏蔽。
在一个8259A芯片上有如下几个内部的寄存器:1.Interrupt Mask Register(IMR)。
2.Interrupt Request Register(IRR)。
3.In Service Register(ISR)。
IMR被用作过滤被屏蔽的中断,IRR被用作暂时放置未被进一步处理的Interrupt,当一个Interrupt正在被CPU处理时,此中断被放置在ISR中。
除了这几个寄存器之外,8259A还有一个单元叫做Priority Resolver,当多个中断同时发生时,Priority Resolver根据它们的优先级,将最高优先级的优先传递给CPU。
工作原理当一个中断请求从IR0到IR7中的某根线到达IMR时,IMR首先判断IR是否被屏蔽,如果被屏蔽,则此中断请求被丢弃;否则,则将放入IRR中。
在此中断请求不能进行下一步处理之前,它一直被放置在IRR中。
一旦发现处理中断的时机已到,Priority Resolver将从所有被放置于IRR中的中断中挑选出一个优先级最高的中断,将其传递给CPU去处理。
IR号越低的中断优先级级别越高,比如IR0的优先级是最高的。
8259A通过发送一个INTR(Interrupt Request)信号给CPU,通知CPU有一个中断到达。
80x86的中断系统一:概述1、中断的分类1)硬件中断有硬件引起的中断。
硬件中断又分成两种:可屏蔽中断不可屏蔽的中断2)软件中断INT N指令、异常、陷进。
2、中断的实质实际上中断是一种引起程序运行的方式。
可以这样说:什么叫中断呢?就是停止当前程序的执行,转而执行另一个程序。
3、函数调用方式执行程序与中断执行程序有什么区别呢?函数调用:调用函数是程序的入口地址包含在指令中。
中断服务程序的入口地址在中断向量表中。
在获得所执行程序的入口地址的方式不一样。
二:在实模式下的中断的基本术语1、中断向量中断向量就是中断服务程序的入口地址。
他包括两个方面的内容。
一方面:段地址CS的内容另一方面:偏移地址IP的内容因此:一个中断向量是由两个部分构成的,每个部分是2个字节。
总共是4个字节。
2、中断向量表在实模式下,将所有的中断向量存储在从00000H~003FFH容量为1K字节的一张表中。
3、中断向量号在i386的系统中,为每一个中断从00H~0FFH分配一个编号N,这个编号叫中断向量号。
总共有256个中断向量号。
综上所述,中断向量表的结构如下图:4、如何通过中断向量号找到中断服务程序的入口地址呢?找中断入口地址就是找CS和IP。
我们已经知道中断向量号N。
IP 4NCS 4N+25、软中断的执行过程INT 68H 为例:1)将FLAG状态标志寄存器入栈2)将FLAG状态标志寄存器IF = 0,禁止CPU响应外部中断源中断。
3)将N乘以4,得到中断向量N在中断向量表中的首地址。
4)将CPU的IP入栈,将地址为(4N+1)和(4N)的内存单元中的内容存入CPU的IP。
5)将断点的CS入栈,将地址为4N+3和4N+2的内容存入到CPU的CS寄存器中。
6)执行中断服务程序。
7)中断服务程序执行IRET指令,A、将(SP+1,SP)中的内容存入CSSP = SP+2B、(SP+1,SP)中的内容存入IP,SP=SP+2C、(SP+1,SP)中的内容存入FLAG,SP= SP+2。
8259有4个初始化控制字,3个操作控制字。
三个重要的寄存器:中断服务寄存器、中断屏蔽寄存器、中断请求寄存器中断请求寄存器:发出中断请求的设备中断屏蔽寄存器:被屏蔽中断的设备中断服务寄存器:正在被响应中断的设备8086处理器芯片有INTR和NMI引脚,用来接收中断请求,会通过INTA引脚来发回中断响应。
INTR是可以屏蔽的中断,NMI是不可屏蔽的中断。
都是输入高电平时有效。
INT 02H是已经分配的NMI中断。
INTR接收的中断的处理程序没有在中断向量中初始化,需要我们自己初始化。
INT 00:除法出错INT 01:单步执行也可以把TF标志位设置为1,标志寄存器不能直接进行赋值,所以要通过堆栈来赋值。
INT 03:断点中断遇到INT 03则中断程序执行INT 04:有符号数溢出中断指令:INTO,如果OF为1,则执行INT 04中断如何编写自己的中断服务程序AH = 35H,INT 21H,可以获取中断向量表中,中断号为AL的中断服务程序的入口地址。
返回值在ES和BX中。
AH = 25H,INT 21H,可以设置中断向量表,可以把我们写的中断服务程序的入口地址写入到中断向量表中。
入口地址通过DS:DX传递进去。
中断服务程序的返回是IRET中断的优先级一般情况下会给不同的IO设备分配不同的优先级,如果同时有中断请求,则先处理优先级高的中断请求。
优先级低的中断请求在执行的时候,优先级高的中断请求可以把优先级低的中断请求打断。
中断屏蔽位:对于不同优先级的中断请求假设有4个中断设备,则设置4个位表示这4个设备发出的请求是否能被响应,如果该位是1,则不能响应,如果是0则能够响应。
8259芯片:可编程中断控制器8086处理器只有一个INTR来接收中断请求信号,如果直接接收则只能接收一个外设的中断请求。
用8259芯片来扩展。
8259可以接收8路中断请求信号,IR0最低,IR7最高8259是处理器的一个外设,也需要分配端口地址。
可编程中断控制器8259详解
中断系统的使用极大的提高了CPU的利用率。
中断是一种机制,这种机制实现的过程可分为请求-->响应-->服务-->返回。
可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片。
其内部结构及引脚图如下:
中断申请的过程可大概描述为:中断源发生-----》(此中断未被屏蔽)中断优先级判定(高于正在服务的中断则打断)------》向cpu发送中断请求-----》cpu 回复一个inta告诉中断申请成功------》中断服务寄存器相应的位置位,表示这个中断正在被执行---------》当收到cpu的第二个inta的时候,中断逻辑单元把中断号发给cpu,cpu调用相应的中断程序执行------》发送中断号时,将ISR的相应位复位(利用完了就复位,主要是把中断号拿出来。
如果不复位,则每次逻辑电路放在总线上的中断号就会出错),表示执行完毕。
其内部涉及的关键型寄存器有:中断请求寄存器,中断屏蔽寄存器,中断优先级判别寄存器,中断服务寄存器。
对于8259A的各个模块的官方描述如下:。
实验九中断特性及8259应用编程实验实验目的1.认识TDN86/51系统的中断特性。
2.掌握8259中断控制器的工作原理3.掌握8259可编程中断控制器的应用编程4.学习掌握8259级连方式的使用方法5.学习在接口实验单元上构造连接实验电路的方法实验设备1.TDN86/51或TDN86/88教学实验系统一台2.排线、导线若干实验内容及步骤(一)系统中的8259芯片1.8259A可编程中断控制器介绍中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A 的级连,能构成多达64级的矢量中断系统。
8259A的内部结构和引脚如图9-1所示。
8259A的编程,就是根据应用需要将初始化命令ICW1-ICW4和操作命令字ICW1-ICW3分别写入初始化命令寄存器组和操作命令寄存器组。
写初始化命令字ICW的流程如图9-2所示,ICW1-ICW4各命令字格式如表9-1所示,OCW1-OCW3各命令字格式如图9-3所示。
2.系统中的8259A芯片系统中的8259A芯片工作于单片方式,但可由用户扩展成接连方式。
其线路如图9-4所示。
图中的圈点表示此为排针形式引出脚。
(注:以下线路中的圈点均为排针形式引出脚,以后不再另作说明)。
系统启动时,8259A被初始化,其初始化是通过系统中的初始化程序设置初始化命令字ICW来实现的。
系统初始化时,规定0#和4#中断源分别提供给实时钟和与PC微机联机的串口通讯,用户可以使用其余的中断源。
在进入监控后,只有4#中断源处于开启状态,其他中断源都被屏蔽了。
中断矢量地址与中断符号之间的关系如下表。
3.接口实验单元中的级连实验用8259A芯片除系统中的8259A芯片外,在接口实验单元中专门提供了另一片8259A芯片,以便进行8259A级连实验。
8259中断控制实验报告实验报告:8259中断控制实验一、实验目的:学习和掌握8259中断控制器的工作原理和使用方法。
二、实验设备:计算机、8259中断控制器芯片、连接线、示波器等。
三、实验原理:1.8259中断控制器简介8259是Intel公司推出的一个通用中断控制器芯片,它可以管理多种设备的中断请求,并对中断请求进行优先级排序和处理。
8259具有级联功能,可以通过级联实现更多的设备中断管理。
2.8259工作原理8259中断控制器有两个主要模块:中断请求译码器和中断向量地址寄存器。
中断请求译码器用于判断中断请求的优先级,按照优先级排序,将中断请求发送给CPU。
中断向量地址寄存器用于存储中断向量的地址,CPU根据中断向量的地址来执行相应的中断服务程序。
3.8259中断控制器的寄存器8259中断控制器有多个重要的寄存器,包括中断屏蔽寄存器、中断请求寄存器、中断服务地址寄存器等。
中断屏蔽寄存器用于屏蔽或打开特定中断请求。
中断请求寄存器用于存储当前的中断请求状态。
中断服务地址寄存器用于存储中断向量的地址。
四、实验内容:1.配置8259中断控制器将8259中断控制器连接到计算机,并通过连接线将适当的引脚连接到需要中断控制的设备上。
2.编写中断服务程序根据实验要求,编写相应的中断服务程序,并将其存储在中断服务地址寄存器指定的内存地址中。
3.设置中断向量地址将中断向量的地址存储在中断向量地址寄存器中,使CPU能够根据中断请求执行相应的中断服务程序。
4.测试中断控制功能通过测试设备向8259中断控制器发送中断请求,观察计算机是否能正确处理中断请求,并执行相应的中断服务程序。
五、实验结果与分析:经过以上实验步骤,我们成功配置了8259中断控制器,并编写了相应的中断服务程序。
在测试过程中,通过向8259中断控制器发送中断请求,我们观察到计算机正确地处理了中断请求,并执行了我们编写的中断服务程序。
这表明我们成功地完成了8259中断控制实验。
8259中断控制器实验的实验报告实验报告:8259中断控制器实验一、实验目的本实验的目的是通过对8259中断控制器的实验,掌握和理解8259中断控制器的原理、工作原理和使用方法。
通过实验能够进一步了解中断控制器的中断分配和中断处理等功能。
同时还能够通过实验,对中断优先级以及中断的屏蔽和响应进行深入了解。
二、实验原理1.8259中断控制器简介8259中断控制器是用于管理和控制多个硬件设备的中断请求的重要芯片。
它是一个具有8个中断请求输入和8个中断向CPU输出的优先级解码器。
中断控制器主要由两个部分组成:中断请求器部分和中断控制器部分。
中断请求器部分用于产生中断请求信号,而中断控制器部分用于优先级解码和中断分配。
2.8259中断控制器的工作原理8259中断控制器可以管理多个硬件设备的中断请求,同时对中断信号进行优先级判断和派发给CPU进行相应处理。
当一些硬件设备发生中断时,会发送中断请求信号给8259中断控制器,然后8259将根据中断请求的优先级判断是否屏蔽或者响应该中断请求。
3.8259中断控制器的使用方法在使用8259中断控制器时,首先需要设置中断控制器的工作模式和中断请求的优先级,然后对中断控制器的屏蔽和响应进行相应的配置。
使用中断控制器时,还需要对中断服务程序进行适当的编程,以实现中断的处理逻辑。
三、实验步骤1.实验前的准备工作(1)准备实验所需的开发板和8259中断控制器。
(2)将8259中断控制器与相应的硬件设备连接。
(3)准备PC机和开发板的通信线缆。
2.8259中断控制器的设置和初始化(1)通过编程方式将8259中断控制器设置为特定的工作模式。
(2)设置中断请求(IRQ)的优先级。
3.中断服务程序的编写(1)根据需求编写中断服务程序,即中断处理逻辑。
(2)将中断服务程序与8259中断控制器的相应中断请求进行关联。
4.实验结果的观察和分析(1)观察测试硬件设备的输出结果。
(2)分析实验结果,判断是否成功实现中断控制和处理。
8259中断实验报告8259中断实验报告概述:8259中断控制器是一种重要的硬件设备,用于管理和处理计算机系统中的中断请求。
本实验旨在通过对8259中断控制器的实际应用,深入理解中断的概念、工作原理和实现方法。
实验目的:1. 了解中断的基本概念和作用;2. 掌握8259中断控制器的工作原理;3. 熟悉8259中断控制器的编程方法;4. 实现一个简单的中断处理程序。
实验设备:1. 计算机;2. 8259中断控制器;3. 开发工具。
实验步骤:1. 硬件连接:将8259中断控制器与计算机主板相连,确保连接正确稳定。
2. 编程准备:打开开发工具,创建一个新的工程,选择适当的编程语言。
3. 初始化8259中断控制器:在程序中调用相应的函数,设置8259中断控制器的工作模式、中断向量表等。
4. 编写中断处理程序:根据实际需求,编写一个简单的中断处理程序,例如键盘输入中断处理程序。
5. 编译、链接和调试:对程序进行编译、链接,生成可执行文件,并进行调试,确保程序的正确性和稳定性。
6. 实验结果分析:运行程序,观察中断处理程序的执行情况,分析中断的触发条件、处理过程和效果。
实验心得:通过本次实验,我深入了解了中断的概念和作用,掌握了8259中断控制器的工作原理和编程方法。
在实际操作中,我遇到了一些问题,例如连接错误、程序调试等,但通过不断尝试和调整,最终成功实现了一个简单的中断处理程序。
这次实验对我来说是一次很好的学习机会,不仅加深了对中断的理解,还提高了我的编程能力和问题解决能力。
总结:中断是计算机系统中一个重要的概念,对于提高系统的响应速度和处理效率具有重要意义。
8259中断控制器作为中断管理和处理的关键设备,其工作原理和编程方法需要我们深入了解和掌握。
通过本次实验,我对中断和8259中断控制器有了更深入的理解,并通过实际操作加深了对中断处理程序的编写和调试的经验。
这对我今后的学习和工作都具有重要的参考价值。
8259中断控制实验一.实验目的1. 掌握8259 中断控制器的工作原理。
2. 掌握系统总线上IR1,IR2 中断请求的应用编程方法。
二.实验设备IA-32 架构的微机系统及应用教学平台一套。
三.实验原理3.1 中断控制器8259简介中断控制器8259 是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。
它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。
8259 的内部结构和引脚如图1 所示。
图 1 8259 内部结构和引脚图8259 的命令共有7 个,一类是初始化命令字,另一类是操作命令。
8259 的编程就是根据应用需要将初始化命令字ICW1-ICW4 和操作命令字OCW1- OCW3 分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4 各命令字格式如图2所示,OCW1-OCW3各命令字格式如图3 所示,其中OCW1 用于设置中断屏蔽操作字,OCW2 用于设置优先级循环方式和中断结束方式的操作命令字,OCW3 用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259 内部寄存器的读出命令。
图 2(a) ICW1格式图 2(b) ICW2格式图 2(c) ICW3格式图 2(d) ICW4格式图 3 OCW 命令字格式3.2 8259寄存器及命令的控制访问在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表1所示。
表 1 8259 寄存器及命令的访问控制3.3 EPC 微机系统中的8259在80x86 系列EPC 微机系统中,系统中包含了两片8259 中断控制器,经级连可以管理15 级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表2 示。