中断是计算机系统中十分重要的一种机制.doc

上传人:cn****1 文档编号:551674098 上传时间:2023-04-27 格式:DOC 页数:6 大小:41.50KB
返回 下载 相关 举报
中断是计算机系统中十分重要的一种机制.doc_第1页
第1页 / 共6页
中断是计算机系统中十分重要的一种机制.doc_第2页
第2页 / 共6页
中断是计算机系统中十分重要的一种机制.doc_第3页
第3页 / 共6页
中断是计算机系统中十分重要的一种机制.doc_第4页
第4页 / 共6页
中断是计算机系统中十分重要的一种机制.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《中断是计算机系统中十分重要的一种机制.doc》由会员分享,可在线阅读,更多相关《中断是计算机系统中十分重要的一种机制.doc(6页珍藏版)》请在金锄头文库上搜索。

1、中断是计算机系统中十分重要的一种机制。它是解决外部设备和系统连接的很好途径,有效地实现了外部设备与CPU的并行工作。在实际应用中,除了要考虑如何对中断控制器编程进行的问题,还要对采用中断方式进行I/O控制的接口电路进行设计。中断是一种信号,它告诉微处理器已发生了某种需要特别注意的事件,需要去处理或为其服务。在本课题中我们深刻的了解到了8259A的工作方式,工作原理和工作状况;同时知道了中断存在的重要意义,中断通俗的理解可以认为是“异常”,在有异常发生的情况下产生的情况,在两件摆在眼前的事物中选择更需要立刻执行响应的程序,即是在中断中所说的优先级。我们运用编程技术,将8259A芯片仿真式的展现出

2、来,用C+结合程序结构,编程演示其内部的工作机理。利用程序的设计,将芯片的工作原理通过实验平台给大家一个直观的演示,以便对中断的概念理解得更透彻。现今社会,计算机越来越普及,我们只知道计算机的外部结构和某部分软件是远远不够的,至少我们要对和我们日常生活打交道的朋友的一些重要内部情况。计算机有着许多的寄存器、接口器件、分析器等等。其中中断接口是特别重要的一个概念。每敲击一次键盘都相当于一次中断信号。而主管这个中断信号的就是计算机中的8259芯片。它最突出的特别是具有对中断服务程序入口地址的寻址能力,也就是当CPU响应中断申请后,通过8259A提供的中断类型号可以找到中断服务程序的入口地址,转移到

3、中断服务程序去执行。我们只有对8259A了解后才能进一步了解计算机系统。而我们在最开始了解到的计算机系统中只是知道可一些表面上的东西,实质上计算机是如何工作、我们为什么能通过键盘向计算机发出命令、打印机是怎么打印文件的等都不明白,通过这个仿真式的实验我们对计算机的内部系统等做个详细的剖析。键盘上的每一次击打键入都相当于一次信号的发出,对于计算机来说这每击一键都发出了一个中断信号,告诉CPU有“键盘输入”事件发生,要求CPU读入该键的键值;而打印每一个字符也是一次中断的过程。这些都需要中断控制器8259A协助CPU进行中断处理和完成工作的。中断方法是解决外部设备和系统连接的很好途径,它有效地实现

4、了外部设备与CPU的并行工作。在实际应用中,除了要考虑如何对中断控制器编程进行的问题,还要对采用中断方式进行I/O控制的接口电路进行设计。目前仿真式成为计算机实验的一个发展方向,因为它不需要硬件平台,避免了器件的磨损和开销,同时没有实验环境的时空限制,使演示更加生动,以便更好理解电路运行原理。8259A为28脚双列直插式芯片,可分为三组。.面向CPU的信号线:数据线(D0-D7)、地址线(CS、A0)和控制线(WR、RD、INT、INTA);.面向I/O设备的信号线:中断请求线(UR0-IR7);.面向同类芯片的信号线:级联控制线(SP/EN、CAS0-CAS2)。8259A有下列工作特点:1

5、、1片8259A能管理8级中断,并且,在基本不增加其他电路的情况下,可以用9片8259A来构成64级的主从式中断系统。2、由于8259A是可编程的,所以使用起来非常灵活。实际系统中,可以通过编程使8259A工作在多种不同的方式。3、8259A用NMOS工艺制造,只需要一组5V电源。8259A具有以下主要功能: 具有8级优先权控制,通过级联可扩展至64级优先权控制; 每一级中断都可以屏蔽或允许; 在中断响应周期,8259A可提供相应的中断向量,从而能迅速转入中断服务程序; 8259A有几种中断管理模式,可以通过编程进行选择。其外部引脚图如1-1所示。可编程中断控制器中断控制器8259A是专门为控

6、制优先级中断而设计开发的芯片。用于实现中断优先管理、中断屏蔽。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。根据CPU发来的命令字定义和修改IRR中各中断源的优先级别,多个中断源同时请求中断时,可根据各中断源的优先级别判断并选择出最高的优先级别,进而判断该优先权是否高于正在处理的中断,若当前申请中断的最高优先权高于正在处理的中断级,则向CPU发出中断请求信

7、号。该分析器相当于一个优先级编码器和一个比较器电路,可实现中断判优及屏蔽的功能。按优先级设置方法可有如下四种方式:全嵌套方式;特殊全嵌套方式;优先级自动循环方式;优先级特殊循环方式。该课题是对8259A芯片的工作工程进行可视化的演示,同时需要把芯片自身的功能结合程序结构编程演示其内部的工作机理。同时使我们在学习编写程序的基础上明白计算机系统的内部的构造和系统。对于计算机使用者来说,我们常常只看到了计算机工作却不知道他是怎么进行和完成工作的,计算机的内部是又许多芯片组成的,每个芯片都有它必不可少的作用,本课题就是让你了解到各个不同芯片的作用、工作原理、工作方式和工作状况等。通过对每个芯片的了解从

8、而进一步的了解到计算机系统。笔者所做的是关于中断接口这一模块,而控制中断的芯片是8259A。它的主要作用是和CPU之间互相交换中断的信息,而8259A的中断屏蔽寄存器IMR可以屏蔽一个或几个IR的中断请求,它加强了对中断的控制能力。而且8259A是内部主动的初始化芯片,即是我们常说的仿真式的初始化,这是其一个重要的特点。在以前的学习过程中,我们对8259A这个芯片不是特别的了解,所以我们要通过对其内部的初始化编程、工作方式的编程、操作命令字的编程等将其统一起来。在这次研究中,我们为了更加明确真实的显示出芯片的工作状况和工作原理,我们用代码仿真式的编程出每个器件和芯片。使我们在不需要真实物品的情

9、况下同样能把整个中断或是其他的响应过程都真实的展现在大家的眼前。对于我们一整个小组而言,需要的是把各个芯片结合起来使计算机系统能完成各个响应,同时使其能在实验台上真实的演示,得到直观的视图。其中运用到C、C+、VC+6.0三种语言,在实验台这个平台上让我们对程序的流程及中断的工作方式得到详细的理解。所以我们运用类、对象等来表示该芯片响应外界传来的信号结合自身的功能和程序结构来演示其内部的工作机理。 在本课题我们最重点了解的是8259A芯片的功能,所以我们在这次编程过程中,对8259A进行了详细的编写。相当于把8259A作为了一个类,其中的功能成了被调用的函数。这便形成了访真式编程的中心思想。这

10、样既能得到相对应的芯片方便随时调用,同时也能简洁明了的将芯片的功能和如何实现的通过测试程序展现出来。2.3状态机的理解说明 状态机从设计的角度来讲就是指状态图,理解各个状态之间的迁移关系;从编码上讲,运用状态表或状态模式来实现演示芯片的工作过程。状态机用于对模型元素的动态行为进行建模,更具体地说,就是对系统行为2.4CPU与8259A之间的转换方式 按照8259A和系统总线的连接来分,有以下两种方式。(1) 缓冲方式 在多片8259A级连的大系统中,8259A通过外部总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下,8259的SP/EN输出信号作为缓冲器的启动信号,用来启动总线驱动器,在

11、8259A与CPU之间进行信息交换。缓冲方式是用8259A的初始化命令字ICW4来设置的。 (2) 非缓冲方式 当系统中只有一片或几片8259A芯片时,可以将数据总线直接与系统数据总线相连,这时8259A处于非缓冲方式下。在这种方式下,8259A的SP/EN信号作为输入端设置,主片应接高电平,从片应接低电平。 CPU 有两条中断线,LINT0 和 LINT1。在8259A的配置中,LINT1 连到了“Non-Maskable Interrupt”(NMI),当检测到严重的、潜在的、不可恢复的错误时就会产生 NMI。之所以叫做“Non-Maskable Interrupt”是因为没有办法阻断它除

12、了处理器,没有谁能屏蔽它。引起 NMI 的一个典型的例子就是内存校验错。LINT0 被用作“Interrupt Input Line”(INTR),它连接在主 8259 的 INT 脚上。8259 通过使 INT 有效来将中断通知给系统。当 CPU 确认后,8259 通过总线向 CPU 发送一个8位的值(之前被 O/S 编程进了 PIC)。这个8位的值就是相应 IRQ 的中断向量。这个中断向量被用作 IDT 的索引来确定中断服务程序(ISR)的地址。然后,CPU 跳转到 ISR,进行服务此中断所需的处理。CPU与8259A之间通过数据线和控制线的直接连接,译码器和地址线的间接连接,同时有INT

13、和INTA之间的相互转换,其线路连接图如图2-4所示。 图 2-4 线路连接图3代码的编写工作以及说明3.1对代码的初步设计工作 在编写该课题时,我们首先需要明白8259A的主要功能。8259A可扩展外部中断源的数目,又有多种中断管理方式.在编写程序中,我们必须了解8259A与其他芯片不同的引脚及其功能。而8259A的主要引脚就是中断响应的引脚和判断中断优先级的引脚。它决定了8259A的一个特大功能就是响应中断。于是我们则需要对每个引脚的功能和在什么情况下哪个引脚做出怎样的反应进行详细的编程说明,同时我们一组的成员在Line、Dcomponent上的编写几乎是一致的,唯一的不同就是对芯片的解说

14、上,使他们都在D8259A.CPP下完成。在对代码的编写中,我们首先要把8259A这块代码从总系统中抽离出来,即建立一个新的DLL工程。这个总系统就是包含各个不同芯片的简单编程文件夹,我们需要在每个独立的芯片编程程序中根据实际情况、在编译后测试文件能更好的显示出器件原理的前提下对芯片编程进行调整和修改,同时我们需要知道做为器件功能演示的share文件夹,在编译代码的时候需要将share这个目录加入到编译环境下,然后在VC+6.0的模板下,重新建立一个新的工程,我们可以将其设为D8259DLL这么一个DLL工程。同时将原本系统中的D8259.h(头文件) 和D8259.cpp(源文件);line

15、.h和line.cpp;Dcomponent.h和Dcomponent.cpp文件都复制到新的D8259A的子文件中,*.h文件是一些变量、类、函数的定义,不能编译;*.cpp文件是.h文件的实现,可以进行编译。通过对程序的编译和链接我们会在建立的新的工程中有个DEBUG文件夹中得到有一个文件名为D8259DLL.dll的文件,这就是我们运行的结果。3.2对基类和派生类的主要函数的解释说明通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。3.2.1对基类中部分函数的解说 基类是相对于派生类而言的,是个相对的概念。任何一个类都能派生出一个新类,基类是对若干个派生类的抽象,基类抽取了它的派生类的公共特征。它具有三种继承方式,按关键字给予表示:public 表示公有基类;private 表示私有基类;protected 表示保护基类。Dcomponent中的OutSig(int iPinNo, int iSigVal)函数是一个基类函数,他是对引脚号与输入信号之间的关系已经各个不同的引脚在接收到不同信号的时所做出的不同响应。该基类中有些操作并未实现,我们可以通过其派生类,在对派生本代码需要用到C、C+和VC+

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号