




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 中断de魅力【主要内容】【主要内容】 9.1 9.1 计算机中断系统计算机中断系统 9.2 80869.2 8086的中断方式的中断方式 9.3 8259A9.3 8259A中断控制器中断控制器 9.4 9.4 应用及举例应用及举例 1. 熟悉8086的中断类型、中断响应过程、中断向量表 2. 掌握内部中断服务程序的编写 3. 理解8259A的内部结构、寄存器作用、中断过程 4. 掌握8259A的普通全嵌套优先权、普通中断结束、边沿触发方式 5. 了解的8259A的ICW和OCW,注意命令字和状态字的区别方法 6. 了解8259A在IBM PC系列机上的应用情况 7. 掌握外部中断服务
2、程序的编写【学习目的】【学习目的】 8086 CPU的中断系统 中断服务程序的编写 中断控制器8259A的作用【学习重点】【学习重点】【难点】【难点】 1.1.中断向量表的填写中断向量表的填写 2.2.8259A的ICW和OCW的使用 3.初始化编程中断的比喻中断的比喻6任何一件事情的发生都会中断任何一件事情的发生都会中断小林看电视的进程而去响应和小林看电视的进程而去响应和处理事件。例如,邮递员上门处理事件。例如,邮递员上门送信,小林必须去开门签收信送信,小林必须去开门签收信件,当事件处理完后,小林回件,当事件处理完后,小林回去接着看电视。这里,小林比去接着看电视。这里,小林比喻的就是喻的就是
3、CPU,而,而5个可能发个可能发生的事件为生的事件为CPU的的5个中断源个中断源. 9.1 中断系统的基本概念中断系统的基本概念一、什么叫中断?一、什么叫中断?中断申请主程序中断服中断服务程序务程序返回中断示意图所谓中断,是指这样一个过程:当CPU正在执行程序过程中,由于某一突然突然事件的发生,暂时中止暂时中止正在执行的程序,转去处理突然发生的事件( 执 行 中 断服务程序),处理完毕,再返回再返回原来被中止的程序继续运行。例例1:门铃响时,放下手中正在做的事情,跑去开门,招待客人;客人走后,接着做原来的事情。例例2:教师讲课过程中,同学遇有疑问,不同理解之处,随时向老师提问。问题:请同学们列
4、举类似问题:请同学们列举类似“中断中断”的例子。的例子。非预料事件是指事件发生的时间无法预知非预料事件是指事件发生的时间无法预知: : 即中断源何时产生中断不确定,是随机的。即中断源何时产生中断不确定,是随机的。但事件的性质及处理方法则是已知的,但事件的性质及处理方法则是已知的, 确定的确定的: : 即中断服务程序是事先编写好的即中断服务程序是事先编写好的, 只是何时执行未知。只是何时执行未知。中断源产生中断的随机性,使中断服务程序的执行中断源产生中断的随机性,使中断服务程序的执行也具有随机性也具有随机性: : 即何时执行中断服务程序不是在程序中安即何时执行中断服务程序不是在程序中安排好的。排
5、好的。1000:150H 、 、 、 、 、MOV AX, 0ADD AX, DXMOV DI , AX、 PUSH AX 、 、 IRETCPU在执行此指令时,在执行此指令时,某中断源发申请中断某中断源发申请中断;CPU在执行完该指令后,在执行完该指令后,转去执行中断子程转去执行中断子程地址地址1000:150H为断点为断点断点概念断点概念: :1000:150H 、 、 、 、 、MOV AH, 01INT 21HCMP AL, 0Dh、 PUSH AX 、 、IRET用指令调用中断程序用指令调用中断程序软件中断软件中断用指令用指令调用中断程序调用中断程序 早期早期中断概念的引入,中断概念
6、的引入, 是为解决是为解决CPU与外设间的速度匹配问题,与外设间的速度匹配问题, 提高提高CPU 的工作效率。的工作效率。 中断源主要是由外部硬件产生。中断源主要是由外部硬件产生。 当今的中断技术当今的中断技术, 不再限于外部硬件产生中断不再限于外部硬件产生中断( (称称硬件中断硬件中断或或外中断外中断 ) ), 还可由还可由CPU内部产生内部产生 ( (如被零除操作如被零除操作) ), 或者由程序预先安排,即由指令调用中断服务程序。或者由程序预先安排,即由指令调用中断服务程序。 (称(称软件中断软件中断或或内中断内中断)二、应用中断技术的优点二、应用中断技术的优点1.实现实现CPU 与外设的
7、并行工作,提高了与外设的并行工作,提高了 CPU 的效率。的效率。NYREADY?输入状态信息输入数据查询方式的数据输入中断方式的数据输入外设请求中断INTR有效主程序中断服务程序输入数据外设准备数据二、应用中断技术的优点二、应用中断技术的优点1. 实现实现CPU 与外设的并行工作,提与外设的并行工作,提高了高了 CPU 的效率。的效率。2. 实现实时处理。实现实时处理。3. 实现故障处理。实现故障处理。三、中断源三、中断源引起中断的原因,产生中断请求的来源。通常有以下几种:通常有以下几种:1. 一般的一般的I/O 设备,如键盘、打印机等。设备,如键盘、打印机等。2. 实时时钟。实时时钟。3.
8、 故障源。故障源。4. 为了调试程序而设置的中断。为了调试程序而设置的中断。(例如设置断点,单步运行等例如设置断点,单步运行等)四、中断系统的功能四、中断系统的功能计算机系统中,用于实现中断功能的硬件和软件的集合,称为中断系统。中断系统应解决如下问题:中断系统应解决如下问题:1. 中断请求信号的产生 ( 中断源如何申请中断?设中断请求寄存器)CPU如何响应?(如何知道有中断请求? 是否有求必应?响应后的处理过程?设中断屏蔽寄存器)3. 中断优先权问题(设中断优先权寄存器或软件查询)4. 中断的具体服务5. 中断服务完毕,如何返回原程序?五、实现中断优先权的方法五、实现中断优先权的方法 判断和确
9、定中断源的中断优先权,可以采判断和确定中断源的中断优先权,可以采用用软件软件和和硬件硬件两种方法。两种方法。当系统中有多个中断源存在时,若有几个中断源同时提出申请,CPU先响应谁先响应谁?当CPU正响应某一中断过程中,又有另外的中断源提出中断请求,CPU是否响应是否响应?为此提出了中断优先权的概念。为此提出了中断优先权的概念。优先权管理电路三态缓冲器译码锁存器GINTRD7 D0A15A0RD中 断 源 A中 断 源 B中 断 源 CM / IO1.用软件确定中断优先权用软件确定中断优先权软件查询流程图优先权管理电路三态缓冲器译码锁存器GINTRD7 D0A15A0RD中 断 源 A中 断 源
10、 B中 断 源 CIOM在 中 断 服 务 中读 入 请 求 状 态A 申 请 ?B 申 请 ?中 断 返 回为中断源A服务的程序段YC 申 请 ?为中断源B服务的程序段为中断源C服务的程序段YY 采用软件查询方式的特点:采用软件查询方式的特点: 询问的次序,即为优先权的次序。询问的次序,即为优先权的次序。 硬件简单。硬件简单。 由查询转至相应的服务程序的时间长,由查询转至相应的服务程序的时间长,尤其在中断源较多的情况。尤其在中断源较多的情况。(1)若CPU 未处理任何中断,则“ 优先权失 效” 信号为高,当任一中断源请求中断时,通过门2发出INTR 信号。128-3优先权编码器优先权寄存器A
11、 B比较器A2A1A0B2B1B0比较失效 中断请求0 中断请求1 中断请求2 7D7 D0INTR 编码器和比较器的优先权排队电路(2)若CPU 正在进行中断处理,当某一中断源请求中断时,能否向CPU 发出INTR信号,受比较器的控制。2.硬件方式硬件方式128-3优先权编码器优先权寄存器A B比较器A2A1A0B2B1B0比较失效 中断请求0 中断请求1 中断请求2 7D7 D0INTR 编码器和比较器的优先权排队电路12. 硬件方式硬件方式128-3优先权编码器优先权寄存器A B比较器INTIR0IR1IR2IR3IR4IR5IR6IR7六、六、8086CPU 响应外部中断的过程响应外部
12、中断的过程 CPU 在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR 或NMI 信号线。 下面以INTR 为例,说明8086 CPU 响应中断的过程。执行一条指令最后一个总线周期的最后一个T状态?有INTR?中断开放? (FR中的IF=1?)关中断 (置FR中IF=0)信号发INTA断号地址(CS. IP)入栈FR 入栈识别中断源,转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI (置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYesCPU自动完成上电复位后,IF=0,所以,这个叫保护断点这个叫保护现场(REGISTER)为什么要执行STI指令
13、?如何识别?如何进中断服务程序?这是中断中要做的事讨论:讨论:1. 为什么要在中断服务程序中执行STI 指令?2. STI 指令在中断服务程序中的不同位置时,对CPU 处理中断有何影响?1. 实现断点地址的保护与恢复。实现断点地址的保护与恢复。2. 实现现状信息的保护。实现现状信息的保护。3. 实现中断优先权的排队。实现中断优先权的排队。4. 实现中断的嵌套。实现中断的嵌套。中断服务2 (高优先级)主程序中断服务1中断过程由计算机的中断系统,配合用户设计的中断服务程序来实现。中断应具备以下功能:INT n 指令 中断逻辑非屏蔽中断请求中断控制系统(8259A)INT 3指令INTO指令单步中断
14、除数为0中断 可屏蔽中断请求NMIINTR硬件中断软件中断 9.2 8086CPU的中断系统的中断系统一、中断类型一、中断类型8 0 8 6 能处理256种中断,分为两大类:外部中断和内部中断。其中断分类如右图8086的中断分类(1) 非屏蔽中断非屏蔽中断 NMI (类型号为类型号为2) 有效,不受FR 中IF 的影响,常用于处理系统的重大故障。电源调电前的数据保护存储器读写错误的处理通过非屏蔽中断请求信通过非屏蔽中断请求信号向微处理器提出的中号向微处理器提出的中断请求,微处理器无法断请求,微处理器无法禁止,将在当前指令执禁止,将在当前指令执行结束予以响应,这个行结束予以响应,这个中断被称为非
15、屏蔽中断中断被称为非屏蔽中断(2) 可屏蔽的中断可屏蔽的中断INTR 高有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外设的中断。外部通过可屏蔽中断外部通过可屏蔽中断请求信号向微处理器请求信号向微处理器提出的中断,微处理提出的中断,微处理器在允许可屏蔽中断器在允许可屏蔽中断的条件下,在当前指的条件下,在当前指令执行结束予以响应,令执行结束予以响应,同时输出可屏蔽中断同时输出可屏蔽中断响应信号,这个中断响应信号,这个中断就是可屏蔽中断就是可屏蔽中断8086通常需要配合中断控制器通常需要配合中断控制器8259A共同处理可屏蔽中断共同处理可屏蔽中断可屏蔽中断主要用于主机与外设交换可
16、屏蔽中断主要用于主机与外设交换数据数据IF=1,CPU响应响应INTR引脚引脚上的中断上的中断请求请求 IF=0,CPU不响不响应应INTR引引脚上的中脚上的中断请求断请求通常由三种情况引起:(1) INT n 指令中断指令中断 (n 为中断类型号为中断类型号)(2) 处理处理CPU 某些错误的中断某些错误的中断 除法错中断 (中断类型号为0) 溢出中断 (INTO) (中断类型号为4)(3) 为调试程序设置的中断为调试程序设置的中断a 单步中断当FR 中TF = 1时,每执行一条指令,CPU 产生类型为1 的单步中断。b 断点中断设置断点实际上是把指令“INT 3” 插入到程序中,CPU 每
17、执行到断点处的“INT 3” 指令,便产生类型为3 的中断。二、中断优先级二、中断优先级8086 系统中,中断优先级的次序为:系统中,中断优先级的次序为:高低内部中断 (除法错、INTO、INT n)NMIINTR单步中断三、中断向量表三、中断向量表 CPU 响应中断后,如何得到中断服务程序的入口地址入口地址 (中断向量中断向量),转入到中断服务程序?8086CPU 通过建立中断向量表的方法解决。中断向量表中断向量表n8086CPU在内存的前1KB(地址00000H003FFH)建立一个中断向量表,存放256个中断服务程序的入口地址,每个地址占4个字节。前两个字节为中断服务程序偏移地址IP,后
18、两个字节为段地址CS。中断号乘以4得到中断服务程序入口地址的地址。类型255指针除数为0 单步非屏蔽断点溢出003FCH00000H00004H00008H0000CH00010HCSIP段地址偏移量这是本章的核这是本章的核心内容!心内容! 中 断 向中 断 向量量 (中断服务中断服务程 序 入 口 地程 序 入 口 地址址) 在表中的在表中的地址地址 = 中断中断类型号类型号 4中断向量表溢出中断0000 : 0014 H0000 : 0013 H0000 : 0010 H0000 : 000F H0000 : 000C H0000 : 000B H0000 : 0008 H0000 : 0
19、007 H0000 : 0004 H0000 : 0003 H0000 : 0000 H类型5类型255供用户定义的中断(共224个)0000 : 007 FH0000 : 007 EH0000 : 03 FFHCS IPCS IPCS IPCS IPCS IPCS IPCS IP专用的中断(共5个)保留的中断(共27个)类型32 类型31类型0类型4类型3类型2类型1除数为 0 中断非屏蔽中断单步中断断点中断这段话涉这段话涉及到两种及到两种地址。地址。四、中断向量的装入四、中断向量的装入很重要!这这32个中断向量个中断向量被被BIOS占用占用 中断矢量表并不常驻内存中断矢量表并不常驻内存 P
20、C系列各机型启动过程中,首先由系列各机型启动过程中,首先由ROM BIOS自测试代码自测试代码对对ROM BIOS控制的中断矢量进行初始化装入控制的中断矢量进行初始化装入 8086/8088系统:装入系统:装入01FH共共32个中断矢量个中断矢量 80286以上以上CPU系统:装入系统:装入077H共共120个中断矢量个中断矢量 若用户开发的应用程序采用若用户开发的应用程序采用INT N形式调用,则要将中断形式调用,则要将中断服务程序入口地址提前存入中断矢量表中所选定的单元中服务程序入口地址提前存入中断矢量表中所选定的单元中BIOS 负责负责01FH 共共32个中断向量的装入。个中断向量的装入
21、。用户若想装入自己的中断向量到向量表中用户若想装入自己的中断向量到向量表中的,可用以下方法:的,可用以下方法:1. 用用STOS 指令填空中断向量表指令填空中断向量表假设类型号为假设类型号为60H 的中断向量为的中断向量为 CLICLDMOVAX, 0MOVES, AXMOV DI, 4 60H; DI 指向表中对应位置指向表中对应位置MOVAX, OFFSET_INTR; 取偏移地址取偏移地址STOSW; ALDI, AHDI+1 ;DI+2DI MOV AX, SEG_INTR; 取段基址取段基址STOSWSTI SEG_INTR: OFFSET_INTR。2. 利用利用MOV 指令写入中
22、断向量指令写入中断向量 CLIMOVAX, 00HMOVES, AXMOVBX, 4 60H; BX 指向表中对应位置指向表中对应位置MOVAX, OFFSET_INTRMOVES:BX, AX; 装入编程地址装入编程地址MOVAX, SEG_INTRMOVES:BX+2, AX; 装入段基址装入段基址 方法方法1,2由用户直接操作中断向量表,由用户直接操作中断向量表,因此,要熟悉中断向量表的具体组织。因此,要熟悉中断向量表的具体组织。3. 利用利用DOS 功能调用功能调用“ INT 21H ” 的的AH = 25 H 装入中断向量装入中断向量MOVAL, 60H; 类型号类型号ALMOVAH
23、, 25H;功能号;功能号25HAHMOVDX, SEG_INTRMOVDS, DXMOVDX, OFFSET_INTR;DS:DX=中断向量中断向量INT21H 方法方法3由由DOS功能调用具体实现,中断功能调用具体实现,中断向量表对用户是透明的。向量表对用户是透明的。(1)将类型码乘)将类型码乘4,作为中断向量表的指针。,作为中断向量表的指针。(2)把标志寄存器入栈。)把标志寄存器入栈。(3)复制)复制TF,清,清IF和和TF,屏蔽新的,屏蔽新的INTR申请和申请和单步中断。单步中断。(4)保护断点()保护断点(CS和和IP进栈)。进栈)。(5)从中断向量表中取中断服务程序入口地址,)从中
24、断向量表中取中断服务程序入口地址,分别送分别送CS和和IP。(6)按新地址执行中断服务程序。按新地址执行中断服务程序。五、五、8086CPU 转入中断服务程序的过程转入中断服务程序的过程此部分可参考此部分可参考书上的图书上的图取内存单元取内存单元( 0 : N 4 )字内容送字内容送IP 取内存单元取内存单元( 0 : N 4 + 2 )字内容送字内容送CS8086转入中断处理程序的过程转入中断处理程序的过程:以以21H中断为例中断为例内内 存存中断向量表中断向量表0:0 3FFH1000:150h3000:200h0: N40: N4+20: 0000 、 、 0200h 3000h 、 、
25、 、 MOV AX, 0 ADD AX, DX MOV DI, AX、 MOV BX,CX、 IRET、类型类型N中断子程中断子程 某中断源发申请中断,某中断源发申请中断,申请执行类型号为申请执行类型号为N的中断子程的中断子程响应中断前响应中断前 SS:SP 响应中断后响应中断后SS:SP 堆栈堆栈执行执行IRET后后 (IP) (CS)(PSW)01501000(PSW)SS:SP (IP)=0200h(CS)=3000h0:3FFH0:0要明白在要明白在这个过程这个过程中,中,CPU做了什么,做了什么,你需要做你需要做什么什么 六、六、 8086CPU8086CPU中断响中断响应应流程流程
26、标志进栈保存TF,将IF、TF清0断点地址进栈查中断向量表,转中断服务程序保护现场中断服务恢复现场开中断,返回A复习:复习: CLI ;IF 0还记得?还记得? STI ;IF 1讨论:8086CPU如何获取中断类型号 由前面介绍知,当中断源产生中断请求后, 不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后,CPU内部硬件会自动完成响应中断的过程,共六个步骤,而第一步就是获取中断类型号。不同的中断源,不同的中断源,8086CPU获取中断类型号的方法不同。获取中断类型号的方法不同。但中断向量号是如何产生的呢?书本上并没有明确指出。但中断向量号是如何产生的呢?书本上并
27、没有明确指出。根据根据8088CPU对中断的分类,各中断获取类型号的方法对中断的分类,各中断获取类型号的方法CPU 执执行行除除零零或或 OF 为为 1 执执行行 INTO 指指令令 除除零零 固固定定类类型型号号 00H OF 为为 1 执执行行 INTO 指指令令 固固定定类类型型号号 04H使使用用 DEBUG 下下的的单单步步和和断断点点操操作作 单单步步 固固定定类类型型号号 01H 断断点点 固固定定类类型型号号 03H内内中中断断执执行行中中断断调调用用指指令令 INT N 由由指指令令中中给给出出 指指令令中中指指定定类类型型号号 N非非屏屏蔽蔽中中断断 引引脚脚 NMI 上上
28、有有中中断断申申请请信信号号(上上升升沿沿信信号号) 非非屏屏蔽蔽中中断断 固固定定类类型型号号 02H外外中中断断可可屏屏蔽蔽中中断断(参参看看中中断断响响应应时时序序图图) 当当 IF=1,引引脚脚 INTR 上上有有中中断断申申请请信信号号( (高高电电平平信信号号) ) CPU 按按中中断断响响应应周周期期时时序序,从从数数据据总总线线上上获获取取中中断断类类型型号号 可可屏屏蔽蔽中中断断 外外部部接接口口送送上上类类型型号号8259给出给出1. 8086CPU各种类型中断的优先级;各种类型中断的优先级;2. CPU响应响应INTR的条件;的条件;3. INTR与其它类型中断响应过程的
29、异同。与其它类型中断响应过程的异同。 请同学们总结:请同学们总结:子程序调用的保护与返回与中断调子程序调用的保护与返回与中断调用的保护与返回有什么相同与不用的保护与返回有什么相同与不同之处同之处 请同学们思考:请同学们思考:子程序子程序 RET RET源程序源程序INT NINT NDOS/BIOS例行程序例行程序IRETIRET主程序主程序 CALL SUBPCALL SUBP 1、写出分配给下列中断类型号在中断向量表中的物理地址。写出分配给下列中断类型号在中断向量表中的物理地址。(1) INT 12H (2) INT 8【课堂练习】【课堂练习】答案答案答(1)00048H (2)00020
30、H3、 给定(给定(SP)=0100,(SS)=0300,(,(FLAGS)=0240,以下存储单,以下存储单元的内容为(元的内容为(00020)=0040,(,(00022)=0100,在段地址为,在段地址为0900及及偏移地址为偏移地址为00A0的单元中有一条中断指令的单元中有一条中断指令INT 8,试问执行,试问执行INT 8指令后指令后,SP,SS,IP,FLAGS的内容是什么?栈顶的三个字是什么?对应的内容是什么?栈顶的三个字是什么?对应INT8的中断程序的地址是多少?执行完中断后返回地址是多少?的中断程序的地址是多少?执行完中断后返回地址是多少?答: (SP) = 00FA(SS)
31、 = 0300(IP) = 0040(FLAGS) = 0040答案答案答案答案2 、类型类型14H的中断向量在存储器的哪些单元里的中断向量在存储器的哪些单元里 答:14H*4 = 50H , (00050H)= 偏移地址,(00052H)= 段地址例例: 键盘中断的矢量号为键盘中断的矢量号为09H,它的中断服务程序入口,它的中断服务程序入口地址为地址为0BA9H:0125H,求(画出)它在中断矢量表中,求(画出)它在中断矢量表中的地址及相应单元内容的地址及相应单元内容 解解:键盘中断对应的中断矢量表位于:键盘中断对应的中断矢量表位于0000:0024H (09H4=24H)开始的开始的4单元
32、单元 这这4个单元的内容见表个单元的内容见表:注意注意他们他们之间之间的关的关系系IPCS例例:中断向量表是存放中断向量表是存放( )的存储区域。的存储区域。A.中断类型号中断类型号 B.中断服务程序入口地址中断服务程序入口地址 C.中断断点地址中断断点地址 D.程序状态字程序状态字例例:在在8086系统中,一个中断类型号为系统中,一个中断类型号为0DBH的中断服务子程序位于从的中断服务子程序位于从8100H:1234H开始的内存中,则相应的中断矢量所在的起始物理地址为开始的内存中,则相应的中断矢量所在的起始物理地址为( ),从该地址开始第一个存储单元存放的内容为(从该地址开始第一个存储单元存
33、放的内容为( ). 例例:中断类型码为中断类型码为15H的中断,其服务程序的入口地址一定存放在(的中断,其服务程序的入口地址一定存放在( )四个连续的单元中,若这四个单元的的内容为:四个连续的单元中,若这四个单元的的内容为:66H、50H、88H、30H,则,则其服务程序的入口地址为(其服务程序的入口地址为( ). 例例:下面是某下面是某8086微机内存中的部分数据,则中断类型号为微机内存中的部分数据,则中断类型号为12H的中断服务的中断服务程序的入口地址是多少?即此中断服务程序程序的入口地址是多少?即此中断服务程序CS:IP是什么?是什么?0000:0040 B3 18 8A CC 4D F
34、8 00 F0 41 F8 00 F0 C5 18 8A CC0000:0050 39 E7 00 F0 A0 19 8A CC 2E E8 00 F0 D2 EF 00 F0 A、41F8:00F0H B、F841:F000H C、00F0:41F8H D、F000:F841H. 9.3 8259A 可编程中断控制器可编程中断控制器 在微机系统中,可以使用在微机系统中,可以使用8259A 扩展扩展外部中断,外部中断,Intel 8259A 可编程中断控制器,可编程中断控制器,主要有以下功能:主要有以下功能:3. 在中断响应周期,在中断响应周期,8259A 可提供相应的中可提供相应的中断类型号
35、。断类型号。1. 1片片8259A 能管理能管理8级中断,通过级联用级中断,通过级联用9片片8259A可以构成可以构成64 级主从式中断系统。级主从式中断系统。2. 每一级中断可以屏蔽或允许。每一级中断可以屏蔽或允许。4. 可编程使可编程使8259A 工作在多种不同的方式。工作在多种不同的方式。一、一、8259A 的内部结构与引脚信号的内部结构与引脚信号 控制逻辑中断服务寄存器ISR优先权电路PR中断请求寄存器IRR中断屏蔽寄存器IMR读写控制逻辑级联缓冲比较器数据总线缓冲器D0D7RDWRCSA0CAS0CAS1CAS2ENSPINTAINTIR0IR1IR71. 数据总线缓冲器数据总线缓冲
36、器 8位、双向、三态,是8259A与 CPU 之间的数据接口。 D0D7直接与CPU 数据总线的低8位连结。2. 读读/写控制逻辑写控制逻辑。接高位地址的译码输出:CSA0:常常与地址信号线A0或A1相连。相连。、的与、WRRDCPUWRRD8259A有两个端口地址CPU 通常利用:OUT 指令,。配合写入有关的控制字与A0,CSWRIN 指令,有关寄存器的内容。内部配合读出与A8259A0,CSRD3. 中断请求寄存器中断请求寄存器 IRR 8 位,若IRi 有效(“1”, ),对应位置“1”,直到IRi 得到响应。因此,因此,IRRIRR记录外部中断源记录外部中断源IRIRi i的请求信息
37、。的请求信息。4. 中断服务寄存器中断服务寄存器 ISR8位,当IRi得到响应时,对应位置“1”。ISR 记录正在处理的IRi,当中断嵌套中断嵌套时,可能多位置“1”。因此,因此,ISR记录的是记录的是CPU对对IRi的响应情况。的响应情况。5. 中断屏蔽寄存器中断屏蔽寄存器 IMR8位,某位置“ 1”,对应IRi 禁止产生中断。因此,因此,IMR控制是否对控制是否对IRi进行屏蔽操作进行屏蔽操作。6. 优先权电路优先权电路实现优先权的判断与处理,采用编码器和比较器电路,如下图所示。8259A中的中断优先权电路比较器B0B0B0ABA0A1A2中断请求优先级编码器中 断 屏 蔽 寄 存 器 I
38、MR中断请求寄存器IRRISR 编 码 器1&INTD0 D1 D2 D3 D4 D5 D6 D7IR0IR1IR2IR3IR4IR5IR6IR7图7-12中断优先权电路比较器B0B0B0ABA0A1A2比较器B0B0B0ABA0A1A2中断请求优先级编码器中 断 屏 蔽 寄 存 器 IMR中断请求寄存器IRR中断请求寄存器IRR中断请求寄存器IRRISR 编 码 器1&INTD0 D1 D2 D3 D4 D5 D6 D7IR0IR1IR2IR3IR4IR5IR6IR7图7-12中断优先权电路7. 控制逻辑控制逻辑(1)由IRR 和PR 的情况,向8259A 其它部件发出控制信
39、息。(2)向CPU 发出INT 信号,接收CPU INTA信号。8. 级联缓冲级联缓冲/比较器比较器可以实现8259A的级联,扩展外中断。(1) CAS2、CAS1、CAS0 引脚 主主8259A: CAS2CAS0 输出,输出被输出,输出被 响应的从片的标志码。响应的从片的标志码。问题:问题:8259A级联时,如何确定主级联时,如何确定主8259A的的IRi接有从片,从片接入主接有从片,从片接入主8259A的的IRi?8259A从片 A 8259A主片8259A从片 B INTCAS0CAS1CAS2 IR0INTCAS0CAS1CAS2 IR0 INTCAS0CAS1CAS2 IR7 IR
40、6 IR3 IR0 SP/EN SP/ENIR7CS A0 INTACS A0 INTACS A0 INTAIR7SP/ENIR7ABCBDBGND GND Vcc 从从8259A: CAS2CAS0 输入,接收主片发出的标志码,输入,接收主片发出的标志码,与自己的标志码比较。若相等,下一个与自己的标志码比较。若相等,下一个INTA信号到来信号到来时,将中断类型号送至数据总线。时,将中断类型号送至数据总线。从片A标志码:011,从片B标志码:110主从主从INT的接法不的接法不一样一样(2) SP / EN引脚 当当8259A 工作于非缓冲方式工作于非缓冲方式 (直接与直接与CPU 的的DB
41、相连相连)主片 , 1SP 从片 , 0SP SP为输入,是主从芯片定义引脚。 当当8259A 工作于缓冲方式工作于缓冲方式 (通过总线缓冲器与通过总线缓冲器与 CPU 的的DB 相连相连)EN为输出,用于CPU与8259A传送数据信息时启动数据总线驱动器。DBDBCPU数据总线驱动器8259AENOE此时,主从芯片的定义由ICW4中的M/S实现。8259A 的引脚图VccA0IR7IR6IR5IR4IR3IR2IR1IR0INTCAS212345678910111213142827262524232221201918171615INTAENSPWRRDCSD7D6D5D4D3D2D1D0CA
42、S0CAS1GND图7-138259A 引脚图VccA0IR7IR6IR5IR4IR3IR2IR1IR0INTCAS212345678910111213142827262524232221201918171615INTAENSPWRRDCSD7D6D5D4D3D2D1D0CAS0CAS1GND图7-138259A 引脚图图:图: 8259A的引脚的引脚 双列直插式芯片,双列直插式芯片,28个引脚个引脚 (参看教材图(参看教材图6-37)方方 波波键键 盘盘保保 留留串串 口口2 硬硬 盘盘软软 盘盘打印机打印机IOW18.2HzA0CS8259A总线总线A0数数 据据 线线 IORRDWR片片
43、选选译译码码IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+ 5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INTA INTR串串 口口1 定时器定时器图图8259A的编程结构的编程结构SP/ENCA0CA1CA2IORIOW总线总线D0D7数数 据据 线线D0D7INTAINTRA0片片选选译译码码A5A9CSA0RD INTAWRINT 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片连接关系主从片连接关系 ICW4 方式控制方式控制0111A01 0 0
44、1 0 1 0 0OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级设置、发优先级设置、发EOI 0 1 OCW3特殊屏蔽特殊屏蔽,查询方式设置查询方式设置处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器VCCGND1 10 00 0A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断中断申请申请寄存器寄存器000 0 0 0 0 0 二、二、8259A 的中断处理过程的中断处理过程下面以8259A单片使用为例,说明其中断处理过程。1、当一条或多条中断请求线IR0 IR7变高变高时
45、,设置相应的IRR位。2、PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。3、CPU响应中断时,送回应答信号 INTA 。4、8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。5、在8259A发送中断类型号的后一个INTA 脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个 INTA 脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。为
46、什么为什么ISR必须复位必须复位三、三、8259A 的工作方式的工作方式 8259A有多种工作方式,这些工作方式可以通过初始化命令字(ICW1ICW4)和操作命令字(OCW1OCW4)来设置。1. 引入中断请求的方式引入中断请求的方式 边沿触发方式边沿触发方式。以上跳沿向8259A请求中断,上跳沿后可一直维持高电平,不会再产生中断。 电平触发方式电平触发方式。以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断。 中断查询方式中断查询方式。外设通过8259A申请中断,但8259A却不使用INT信号向CPU申请中断,CPU用软件查询确定中断源,并为其服务。2. 连接系统总线的
47、方式连接系统总线的方式 在大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总线连接的方式称缓冲器方式缓冲器方式。 在小系统中,则8259A不需要总线缓冲器而是将其直接接至数据总线。8259A与这种不需总线缓冲器而直接连到系统总线的方式称非缓冲器方式非缓冲器方式。3. 屏蔽中断源的方式屏蔽中断源的方式 普通屏蔽方式普通屏蔽方式。利用操作命令字OCW1,使屏蔽寄存器IMR中的一位或几位置1来屏蔽一个或几个中断源的中断请求。若要开放某一个中断源的中断请求,则将IMR中相应的位置0。 特殊屏蔽方式特殊屏蔽方式。在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中
48、断请求被响应,此时可采用特殊屏蔽方式。它可通过OCW3的D6D511来设定。4. 优先级排队的方式优先级排队的方式 全嵌套方式全嵌套方式。在此种方式下中断优先级按0 7顺序进行排队,只允许中断级别高的中断源去中断中断级别低的中断服务程序。 特殊全嵌套方式特殊全嵌套方式。它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同级中断同级中断请求的特殊嵌套(8259A级联使用时,某从片的级联使用时,某从片的8个中断源对主片个中断源对主片来说,可以认为是同级的来说,可以认为是同级的)。特殊全嵌套方式用于多片级联。 优先级自动循环方式优先级自
49、动循环方式。在这种方式下,优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低。其初始的优先级顺序规定为IR0,IR1,IR7。该方式用在系统中多个中断源优先级相等的场合。 优先级特殊循环方式优先级特殊循环方式。这种方式与优先级自动循环方式唯一的区别是,其初始的优先级顺序不是固定IR0为最高,然后开始循环,而是由程序指定IR0 IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。5. 结束中断的处理方式结束中断的处理方式 自动中断结束方式自动中断结束方式。在中断服务程序中,中断返回之前,不需发中断结束命令就会自动清除该中断源所对应的ISR位(实际上在CPU发第二个
50、信号时,8259即自动消除ISR中的对应位)。这种方式用在多个中断不会嵌套的系统中。 非自动中断结束方式非自动中断结束方式。在中断服务程序返回之前,必须发中断结束命令才能使ISR中的当前服务位清除。四、四、8259A 的初始化命令字的初始化命令字 8259A 初始化编程时,有四个初始化命令字ICW(Initialiation Command Word),即ICW1ICW4 ;8259A工作期间,有三个操作命令字OCW(Operation Command Word),即OCW1OCW3。8259A 只有两个端口地址 A0=0 偶地址端口1 奇地址端口因此,对8259A读/写操作时,要注意控制字写
51、入的端口地址写入的顺序有关的标志位1. ICW1(IRi 触发方式,是否单片使用,是否写入ICW4)01LTIM SNGL IC4A0D7D6D5D4D3D2D1D0标志位标志位 LTIM:规定IRi的触发方式1高电平触发0 触发= SNGL:是否单片使用1单片使用0级联使用= IC4:是否写入ICW41后面写入ICW40不写入ICW4= 例例:某8086微机系统中,使用单片8259A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H,21H,则其初始化命令字ICW1应为:0001001113H,设置ICW1的指令为:MOVAL,13HOUT20H,AL2. ICW2(中断类型号的
52、高5位)(中断类型号的低3位由8259A 自动编码产生)1T7T6T5T4T3A0D7D6D5D4D3D2D1D0IRi 对应中断类型号的高5位T7 T6 T5 T4 T3 T2 T1 T0由ICW2规定0 0 00 0 10 1 01 1 1IR0IR1IR2IR7例例:某PC机中8个可屏蔽中断(IR0 IR7)的类型号为08H 0FH,A01,端口地址为21H,则ICW2为:08H,设置ICW2的指令为:MOVAL,08HOUT21H,AL3. ICW3(级联时,主从芯片的级联引脚)若ICW1 中SNGL=1不写入ICW30写入ICW3(1) 写给主片的写给主片的ICW3Si = 1, 表
53、示主片IRi上接有从片。1S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0(2) 写给从片的写给从片的ICW3ID2 ID1 ID0该从片 0 0 0接入主片的IR0 0 0 1接入主片的IR1 1 1 1接入主片的IR7100000ID2ID1ID0A0D7D6D5D4D3D2D1D0从片的标志码 例:某例:某8086微机系统中,主片微机系统中,主片8259A的的IR2,IR6引脚上分别接有从片引脚上分别接有从片8259A,则主、从片的,则主、从片的ICW3初始初始化命令字设置如下:化命令字设置如下:主片初始化命令字:主片初始化命令字:(口地址设为口地址设为20H, 21
54、H)MOVAL,44H;44H为主片的为主片的ICW3,表示其,表示其IR6,IR2上接有从片上接有从片OUT21H,AL ;将;将ICW3写入奇地址端口写入奇地址端口从片从片1的初始化命令:的初始化命令:(口地址为口地址为30H,31H)MOVAL,02HOUT31H,AL从片从片2的初始化命令:的初始化命令:(口地址为口地址为40H,41H)MOVAL,06HOUT41H,AL4. ICW4100SFNM BUFM/SAEOI1A0D7D6D5D4D3D2D1D00标志位用于8088/ 8086系统0 正常的完全嵌套方式1 特殊的完全嵌套方式(1) SFNM: 规定规定8259A中断的嵌套
55、方式中断的嵌套方式(单片使用时,两种方式一样。)SFNM= 正常的完全嵌套方式正常的完全嵌套方式高级的中断 特殊的完全嵌套方式特殊的完全嵌套方式同级的或高级的中断注意:级联使用时,某一从片的注意:级联使用时,某一从片的IRIRi i对对主片来说是同级的主片来说是同级的( (同级中断同级中断) )。此处,要理解同级中断的概念此处,要理解同级中断的概念!(to CPU)INTAINT从8259AIR7IR6IR0IR7IR6IR0INTAINTCAS0CAS1CAS2CAS0CAS1CAS2主8259AINTA(from CPU)INTR例如:例如:若主、从若主、从8259A工作于固定优先权方式,
56、从片工作于固定优先权方式,从片的优先级为的优先级为IR0IR1 IR7。但对主片来说,从。但对主片来说,从片的片的IR0 IR7 是同级的。是同级的。1缓冲方式0非缓冲方式(2) BUF=(3) M/S 当8259A 工作于缓冲方式时 (BUF=1) , M/S用于定义主、从芯片。1主8259A0从8259AM/S = 当8259A工作于非缓冲方式时 (BUF = 0),SP引脚为输入,用于定义主从芯片,此时 M/S 不起作用。(4) AEOI: 规定中断的结束方式规定中断的结束方式(如何使如何使ISR中对应位清中对应位清0) AEOI = 1 自动中断结束方式 当CPU 发出第二个 后,IS
57、R 中的相应位复位,此时,不能实现中断嵌套。INTA AEOI = 0 非自动中断结束方式 由程序发出EOI 命令 (由8259A 的OCW 实现),使ISR 中相应位复位。五、五、8259A 的初始化编程逻辑的初始化编程逻辑用ICW1设置:是否级联?请求信号的触发方式后面是否用ICW4用ICW2设中断类型码是否为级联方式?本片为主片吗?设ICW3各位对应IR0IR 7 的连接状况设ICW3 高5位为0;低3位为标识码用ICW4 吗?用 ICW4 设:为特殊全嵌套方式? 为缓冲方式? 为自动EOI方式? 为8086/8088系统?ENDNYNNY8259A的初始化流程的初始化流程注意:级联注意
58、:级联使用时,主、使用时,主、从从8259A都都要作初始化要作初始化操作。操作。MOVAL, 13H; ICW1=0001,0011B, 边沿触发边沿触发,单片使用单片使用, ; 要要 ICW4.OUT20H, ALMOVAL, 08H; ICW2=08H, IR0IR7对应的中断类型号对应的中断类型号; 为为08H0FHOUT21H, ALMOVAL, 09H; ICW4=09H, 正常的嵌套方式正常的嵌套方式,; 非自动中断结束方式非自动中断结束方式OUT 21H,AL六、六、8259A 的操作命令字的操作命令字 对8259A 进行初始化编程后,8259A作好了接收中断请求输入的准备,在8
59、259A 工作期间可由操作命令字OCW1OCW3 规定其各种工作方式。1. OCW1(中断屏蔽操作命令字)(中断屏蔽操作命令字)设置或清除IMR 的各个位。1A0D7D0M7M0 Mi=1 表示IRi被屏蔽 例例:设OCW106H,则表示IR1,IR2 两 个引脚上的中断申请被屏蔽,其他的中断申请 (IR0,IR3IR7)则得到允许。8259A编程指令为:MOV AL,00000110B ;OCW1屏蔽字OUT 21H,AL ;屏蔽字写入奇地址口 ;的 OCW1寄存器2. OCW2 (优先权循环方式和中断结束方式优先权循环方式和中断结束方式操作命令字操作命令字)0RSL EOI00L2L1L0
60、A0D7D6D5D4D3D2D1D0标志位有两个作用:SFNM 一般方法:令SL = 0, EOI =1 将OCW2写入8259A后,将刚刚被服务的IRi对应位复位。 特殊方法:令 SL = 1, EOI = 1写入OCW2后,使L2L1L0指定的位复位。L2 L1 L00 0 00 0 11 1 1D0D1D7ISR中的DiIR0IR1IR7对应的IRi R = 0 固定优先权方式IR0 IR1 IR7 R = 1, SL = 0 优先权自动循环方式例: IR7IR6IR5IR4IR3IR2IR1IR0初始优先权为:76543210若ISR =01010000则 当 I R4 服务完毕后,优先权为:2107
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夫妻同意增加房产协议书
- 小区套房转让合同协议书
- 山东环保补偿协议书样本
- 回迁户买卖合同补充协议
- 小车带司机租赁合同范本
- 应届生签第三方合同范本
- 土地置换合同转让协议书
- 高一下学期化学必修第二册师生互动提升计划
- 婚纱店旗袍租售合同范本
- 守厂工人合同协议书范本
- 数据挖掘与机器学习全套教学课件
- SYT 6968-2021 油气输送管道工程水平定向钻穿越设计规范-PDF解密
- 中医护理进修脑病科汇报
- 养老机构入住护理、风险评估表、计划表、记录、告知书等健康档案护理记录模板
- 汽车传感器的原理与应用课件
- 《健康评估技术》课件-7.《发绀》
- 《分析化学总复习》课件
- 《生物试卷分析》课件
- 皮肤科常见疾病瘙痒症护理的课件
- 2023年湖北黄石新港(物流)工业园区总工会协理员招考聘用笔试历年难易错点考题荟萃附带答案详解
- 电力电子技术(第3版)PPT全套完整教学课件
评论
0/150
提交评论