微机原理与接口技术(第3版)课件汇 陈逸菲 第8-14章 中断技术与可编程中断控制器8259A-实验指导_第1页
微机原理与接口技术(第3版)课件汇 陈逸菲 第8-14章 中断技术与可编程中断控制器8259A-实验指导_第2页
微机原理与接口技术(第3版)课件汇 陈逸菲 第8-14章 中断技术与可编程中断控制器8259A-实验指导_第3页
微机原理与接口技术(第3版)课件汇 陈逸菲 第8-14章 中断技术与可编程中断控制器8259A-实验指导_第4页
微机原理与接口技术(第3版)课件汇 陈逸菲 第8-14章 中断技术与可编程中断控制器8259A-实验指导_第5页
已阅读5页,还剩876页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术第8章中断技术与可编程中断控制器8259A目录8.1中断的基本概念及其应用8.2中断系统的功能和中断优先级8.38086/8088的中断操作与响应8.4可编程中断控制器8259A8.58259A的应用举例主要内容问题导入中断的基本概念中断典型应用8.1中断的基本概念及其应用34案例视频1)采用何种数据传输方式?思考:无条件数据传输查询式数据传输中断式数据传输DMA数据传输只有一个输出端口,没有输入端口提供按键状态查询8086的非屏蔽中断引脚P20(7)8.1中断的基本概念及其应用问题导入5案例视频思考:2)灯的亮灭变化和哪条语句的执行有关?8.1中断的基本概念及其应用问题导入6看不懂?端口定义思考:2)灯的亮灭变化和哪条语句的执行有关?8.1中断的基本概念及其应用问题导入700H00000000端口OUT373思考:2)灯的亮灭变化和哪条语句的执行有关?向端口送出00H,点亮8个小灯8.1中断的基本概念及其应用问题导入8思考:2)灯的亮灭变化和哪条语句的执行有关?NOTAL8.1中断的基本概念及其应用问题导入9思考:3)什么时候会执行指令“NOTAL”呢?“死循环指令”8.1中断的基本概念及其应用问题导入10思考:3)什么时候会执行指令“NOTAL”呢?“死循环指令”while(1);按键按下执行“NOTAL”指令8.1中断的基本概念及其应用问题导入11思考:“死循环指令”4)为什么按键按下会使程序的执行发生跳转呢?8.1中断的基本概念及其应用问题导入12主要内容问题导入中断的基本概念中断典型应用8.1中断的基本概念及其应用中断基本概念13中断源断点中断服务程序中断服务子程序中断请求中断响应中断返回断点保护现场保护现场恢复主程序中断请求保护断点保护主程序现场,处理中断恢复主程序现场从断点处继续执行主程序相关概念见教材p1788.1中断的基本概念及其应用中断基本概念14主程序中断请求保护断点保护主程序现场,处理中断恢复主程序现场从断点处继续执行主程序主程序8.1中断的基本概念及其应用中断基本概念15主程序中断请求保护断点保护主程序现场,处理中断恢复主程序现场从断点处继续执行主程序断点在主程序的任意位置断点大概率在此中断服务程序8.1中断的基本概念及其应用16主要内容问题导入中断的基本概念中断典型应用8.1中断的基本概念及其应用8.1中断的基本概念及其应用中断典型应用17采用中断方式管理I/O设备实时处理故障处理系统调度人机对话多机通信中断是CPU与外设交换信息的一种方式,是CPU处理随机事件和外部请求的主要手段。按键的按压就是一个随机事件目录8.1中断的基本概念及其应用8.2中断系统的功能和中断优先级8.38086/8088的中断操作与响应8.4可编程中断控制器8259A8.58259A的应用举例19主要内容中断系统的基本功能中断优先级8.2中断系统的功能和中断优先级20中断系统的功能中断管理系统至少应具有以下功能:中断源识别

实现中断优先级排队能够正确处理中断的嵌套问题接收中断请求

主程序中断请求1保护断点保护主程序现场恢复主程序现场从断点处继续执行主程序处理中断1中断请求2保护现场1处理中断2恢复现场2返回中断1服务程序中断嵌套8.2中断系统的功能和中断优先级21中断系统的功能中断管理系统至少应具有以下功能:中断源识别

实现中断优先级排队能够正确处理中断的嵌套问题接收中断请求

依靠优先级判优逻辑确保CPU能按优先级响应中断请求软件判优硬件判优中断处理与返回8.2中断系统的功能和中断优先级22主要内容中断系统的基本功能中断优先级8.2中断系统的功能和中断优先级23软件查询法中断源1#4#5#8#82H接数据总线AB去CPU的中断请求输入端INTR地址译码器74LS2441Y11A12Y41A42A11G2G2A4RDM/IOD0D71、各中断源申请通过或门组合后与INTR连接。2、各中断源情况通过缓冲器从DB输入。INAL,82HP20(5)接收中断请求

识别中断源

8.2中断系统的功能和中断优先级24软件查询法查询程序的次序,决定了外设优先级的高低,先测试的中断源优先级最高。保护现场1#有请求吗?2#有请求吗?3#有请求吗?现场恢复中断返回为1#外设服务为2#外设服务为3#外设服务NNNYYY右图中1#,2#,3#外设的优先级排序如何?1#>2#>3#越先被查询的优先级越高优先级排队固定优先级8.2中断系统的功能和中断优先级25PINTR:PUSHAX ;现场保护 PUSHBX IN AL,82H ;从端口读入中断源请求的状态信号 MOV BL,AL ;保存在BL中FAN1: ROR BL,1 ;ROR指令把BL的最低位移入CF JC ISP1 ;CF=1表示1#中断源有中断请求FAN2:RORBL,1 JC ISP2 ;CF=1表示2#中断源有中断请求FAN3:ROR BL,1 JC ISP3 ;CF=1表示3#中断源有中断请求

FAN: POPBX ;现场恢复 POPAX

IRET ;中断返回ISP1: ;1#中断源的处理程序 JMPFANISP2: ;2#中断源的处理程序 JMPFANISP3: ;3#中断源的处理程序 JMPFAN

固定优先级26硬件判优法0#设备INTA0INTR01#设备INTA1INTR12#设备INTA2INTR2CPUINTAINTR0314256P21(1)P20(5)串行优先级排队模式8.2中断系统的功能和中断优先级27硬件判优法串行优先级排队模式0#设备INTA0INTR01#设备INTA1INTR12#设备INTA2INTR2CPUINTAINTR03142560110001111111接收中断请求

001000中断请求被响应11识别中断源

图中0#,1#,2#外设的优先级排序如何?离CPU越近优先级越高1封锁了后继设备18.2中断系统的功能和中断优先级28硬件判优法并行优先级排队模式优点:响应速度快缺点:扩展性不灵活。高低~74LS138Y0Y1Y2Y3Y4Y5Y6Y7G2AG2BG1CBA74LS148I7I6I5I4I3I2I1I0Y2Y1Y0STYEXYSINTR0INTR7来自CPU的INTA5VINTA0INTA7~10xxxxxx001INTA1INTR18.2中断系统的功能和中断优先级29专用硬件法专用硬件法用可编程中断控制器芯片来管理中断。通过编程可以设置或改变芯片的工作方式。使用灵活。CPUD0~D7INTAINTR中断控制器D0~D7IR0IR1IR7INTR0

设备0INTR1

设备1INTR7

设备7INTRINTA8.4节8.2中断系统的功能和中断优先级目录8.1中断的基本概念及其应用8.2中断系统的功能和中断优先级8.38086/8088的中断操作与响应8.4可编程中断控制器8259A8.58259A的应用举例31主要内容中断的分类中断类型码、中断向量和中断向量表中断响应过程与时序8.38086/8088的中断操作与响应中断分类32CPU中断逻辑除法错中断0型单步中断1型断点中断3型溢出中断4型INTn指令软件中断(内部中断)硬件中断(外部中断)NMI非屏蔽中断(2型)中断控制系统可屏蔽中断INTRP18⑨DEBUG的T命令DEBUG的G命令执行了软中断指令或由CPU本身引起的中断不受IF影响P20(7)P18⑧“1”IF=1时才可能被响应P20(5)关中断指令:CLI(IF=0)开中断指令:STI(IF=1)P58(表3.6-1)8.38086/8088的中断操作与响应中断分类33内部中断不需要外部硬件支持,不受IF控制在上述内部中断中,除单步中断外,其余都不可屏蔽。所有类型(内、外)的中断在其处理过程中,CPU会自动地把状态标志压入堆栈,然后清除TF和IF。8086/8088规定这些中断的优先级次序(高到低)为:内部中断、NMI、INTR,优先级最低的是单步中断。受

TF

位控制P18⑨在中断响应过程中:禁止单步中断和可屏蔽中断8.38086/8088的中断操作与响应34主要内容中断的分类中断类型码、中断向量和中断向量表中断响应过程与时序8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表35中断类型码8086/8088为每个中断源分配了一个0~255范围内的中断类型码。其中部分为专用中断,40H~FFH号中断原则上可以由用户程序安排使用。中断类型码中断功能中断类型码中断功能00H除法错中断04H溢出中断01H单步中断05H打印中断02HNMI中断08H电子钟定时中断03H断点中断09H键盘中断…………以上几个应该熟悉8.38086/8088的中断操作与响应36中断向量

中断服务程序的入口地址称为一个中断向量,由段基址CS和段内偏移量IP两部分组成。4个字节中断服务程序要执行的第1条指令的地址中断向量表在8086/8088中,所有中断服务程序的入口地址(中断向量)集中放在内存的最低1K区域(00000H~003FFH),构成一个中断向量表

8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表37中断向量表位于内存0段的0000H~03FFH的存储区内。8086/8088的中断向量表由三个部分组成:5个专用中断(0#~4#)27个系统使用或保留中断(5#~31#)224个用户定义中断(32#~255#)每个中断向量占4个内存单元前两个单元存放中断向量的偏移地址(IP)后两个单元存放中断向量的段地址(CS)物理地址的范围是多少?共256个8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表38类型0类型1类型2类型3类型4类型5类型63IPCS除数为零单步(TF=1)非屏蔽中断断点中断溢出(OF=1)类型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定时类型64类型65类型66类型67类型255100H104H108H10CH3FCH用户使用(192)中断服务程序入口地址表(中断向量表)中断服务程序入口地址在表中的起始地址=4×中断类型码中断向量8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表这几个应该熟悉39类型0类型1类型2类型3类型4类型5类型63IPCS除数为零单步(TF=1)非屏蔽中断断点中断溢出(OF=1)类型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定时类型64类型65类型66类型67类型255100H104H108H10CH3FCH用户使用(192)中断服务程序入口地址表(中断向量表)中断服务程序入口地址在表中的起始地址=4×中断类型码中断向量地址8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表40中断向量的查找设某个中断源的中断类型码为n。中断向量在中断向量表的起始位置:n×4中断向量位于中断向量表:n×4~n×4+3这四个单元内CPU会自动根据n值找到这个位置取出中断向量,依次装入IP和CS,从而转入相应的中断服务程序。8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表41某中断的中断类型号为68H,其中断过程为:(1)计算存放中断服务程序入口地址的地址=68H×4=1A0H;(2)取中断入口地址的段内偏移量装入IP,IP=2050H

,段码装入CS,CS=A000H;(3)转向中断服务程序;(4)中断返回502000A0001A0H001A2H001A4H存放地址=68H×4=1A0HIP=2050

CS=A000STIPUSHDSIRET中断服务程序A000H:2050HINT68HMOVAX,0①②③④中断类型号→中断向量表地址→中断服务程序入口地址中断向量表注意与RET区别8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表

例8.6-1根据下面所提供的某80x86微机内存中的数据,判断INT11H

中断服务程序的入口地址是

。A.F000:F84DB.A019:8ACCC.00F0:4DF8D.4DF8:00F0

中断向量地址=中断类型码×4=11H×4=0044H0000:0040B3188ACC4DF800F0-41F800F0C5188ACC0000:005039E700F0A0198ACC-2EE800F0D2EF00F0IPCS注意低字节在低地址,高字节在高地址(小尾顺序)中断类型号→中断向量表地址→中断服务程序入口地址分析:8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表类型码为________的中断所对应的中断向量存放在0000H:0040H开始的4个连续单元中,若这4个单元的内容分别为_________________,则相应的中断服务程序入口地址为5060H:7080H。中断向量表起始地址=中断类型码×4中断类型码=0040H/4=10H中断向量表80H70H60H50H10H×4=40H10H×4+1=41H10H×4+2=42H10H×4+3=43H8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表10H80H70H60H50H要掌握初始化方法,自己会编写初始化程序。由BIOS提供的中断服务,其中断向量是在系统加电后由BIOS负责初始化。由DOS提供的中断服务,其中断向量是在启动DOS后由DOS负责初始化。用户自己开发的中断服务程序,其中断向量由用户自己进行向量表的初始化。将中断服务程序入口地址写入中断向量表的相应位置8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表中断向量表的初始化45例8.3-1设某中断类型号为72H的用户程序的入口地址为USEINT,请初始化向量表。中断向量起始地址=72H×4=1C8HMOVAX,0MOVES,AX ;中断向量表位于内存0段MOVBX,01C8H ;中断向量的地址送BXMOVAX,OFFSETUSEINT;中断服务程序的入口偏移地址送AXMOVES:[BX],AX ;中断服务程序的入口偏移地址写入中断向量表INCBXINCBXMOVAX,SEGUSEINT ;中断服务程序的入口段地址送AXMOVES:[BX],AX ;中断服务程序的入口段地址写入中断向量表中断服务程序的过程名MOVAX,SEGUSEINTMOVES:[BX+2],AX直接装入法

为什么要用ES?8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表为了方便中断向量的读出和写入,DOS系统为此设计了两个子功能供用户程序调用。●

从中断向量表读取中断向量:“INT21H”的35H号子功能入口参数:AL=中断类型号;出口参数:ES:BX=中断向量●

把中断向量写入中断向量表:“INT

21H”的25H号子功能入口参数:AL=中断类型号;DS:DX=要写入的中断向量出口参数:无8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表中断向量表的初始化DOS系统调用法例8.3-2某用户设计了一个“定时中断服务程序”,其过程名为TIMER,取代系统原先的1CH型服务程序。这种情况下,用户要先对原有中断向量进行读出并保护以便恢复,然后才能设置新的中断向量。READ PROC MOV AL,1CH

MOV AH,35H INT 21H MOV WORDPTROLD1CHXL,BX MOV WORDPTROLD1CHXL+2,ES RETREAD ENDP中断类型号DOS系统功能号出口参数:中断向量的IP部分出口参数:中断向量的CS部分8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表事先定义的变量OLD1CHXLDD?WRITE PROC PUSH DS ;TIMER服务程序入口地址的段基址送AX MOV AX,CS ;(设TIMER的入口段基址与WRITE的相同)

MOV DS,AX

MOV DX,OFFSETTIMER ;TIMER服务程序入口地址的偏移量送DX MOV AL,1CH

MOV AH,25H

INT 21H POP DS RETWRITE ENDP如果段地址不相同,则MOVAX,SEGTIMER入口参数:中断向量的CS部分入口参数:中断向量的IP部分入口参数:中断类型号DOS系统功能号8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表中断向量表初始化在Proteus环境下能不能使用DOS系统调用法初始化中断向量表?8.38086/8088的中断操作与响应中断类型码、中断向量和中断向量表50主要内容中断的分类中断类型码、中断向量和中断向量表中断响应过程与时序8.38086/8088的中断操作与响应51主要内容8.38086/8088的中断操作与响应中断源的优先级排序硬件中断的响应过程和中断服务软件中断的响应过程和中断服务231中断源的优先级排序52取指令执行当前指令执行完?软件中断?NMI?INTR?TF=1?IF=1?取走中断类型码FR压栈TF→TEMPIF=0,TF=0CS、IP入栈中断向量表地址=类型码×4中断向量表地址取1字→IP中断向量表地址+2取1字→CSNYNNNYYYYNY各类中断源的优先级排序(响应次序)如何?见教材p1860型、3型、4型等保护断点8.38086/8088的中断操作与响应中断源的优先级排序53下面优先级最高的是

。A.NMI中断

B.INTR中断C.单步中断D.断点中断属于内部(软件)中断3型8086各类中断响应的顺序是:

软件中断→NMI端中断→INTR端中断→单步中断8.38086/8088的中断操作与响应54主要内容8.38086/8088的中断操作与响应中断源的优先级排序硬件中断的响应过程和中断服务软件中断的响应过程和中断服务231硬件中断的响应过程和中断服务55硬件中断指的是NMI引脚引入的非屏蔽中断

INTR引脚引入的可屏蔽中断CPU响应条件执行完现行指令CPU开中断(IF=1)执行完现行指令8.38086/8088的中断操作与响应硬件中断的响应过程56A.当前时钟周期

B.当前总线周期C.当前指令周期D.下一个指令周期当8086CPU的INTR=“1”,且中断允许标志IF=“1”时,则CPU完成

后,响应该中断请求,进行中断处理可屏蔽中断响应的两个条件1、CPU开中断(IF=1)2、执行完现行指令

8.38086/8088的中断操作与响应硬件中断的响应过程和中断服务578086/8088响应INTR的中断后,从INTA引脚连续发两个负脉冲,中断源在接到第二个负脉冲后,通过数据线发送中断类型码,CPU收到类型码后,进行如下操作:将中断类型码放入暂存器保存将标志寄存器的内容加入系统堆栈将IF和TF标志清零保护断点根据中断类型码取出中断向量,装入IP和CS转向中断服务程序。为什么?见p187见p21(1)8.38086/8088的中断操作与响应硬件中断的响应过程和中断服务硬件中断的响应过程58现场保护中断处理现场恢复中断返回不允许中断嵌套的结构为了使中断返回后能继续主程序的运行。用堆栈指令保护那些在主、子程序中均用到的通用寄存器。IRET指令:把中断响应时保护的标志寄存器内容恢复;把断点地址弹出送至IP和CS从而实现返回。见教材p189~1908.38086/8088的中断操作与响应硬件中断的响应过程和中断服务中断服务程序的结构59现场保护中断处理现场恢复中断返回允许中断嵌套的结构开中断关中断对于可屏蔽中断而言,不论中断返回前CPU是处于开中断还是关中断,返回后中断总是开放的。STICLI为什么?见p1888.38086/8088的中断操作与响应硬件中断的响应过程和中断服务中断服务程序的结构60中断类型码第一响应周期第二响应周期T1T2T3T4T1T2T3T4CLKALEINTAD7-D01.送出第1个中断响应信号,通知外部中断控制逻辑,CPU接受了中断请求2.送出第2个中断响应信号,启动外部中断控制逻辑,把中断类型码置于数据总线,CPU从数据总线读取中断类型码中断类型码通过数据总线低8位传送,外设的数据线必须挂接在808616位数据总线的低8位。端口地址必须为偶地址A0=0见教材p1898.38086/8088的中断操作与响应硬件中断的响应过程和中断服务硬件中断的时序IF=1(开中断)时,当INTR端加入中断请求信号(高电平有效)时,待当前指令结束后,CPU产生两个连续的中断响应总线周期,其时序关系如图613.保护断点和标志,将当前的FR、CS和IP内容依次压入堆栈,以便返回时恢复;4.将FR中的IF标志和TF标志清0;5.根据读取的中断类型码,控制转入中断服务程序入口教材p188图8.3-5请回去仔细理解8.38086/8088的中断操作与响应硬件中断的响应过程和中断服务硬件中断的时序62主要内容8.38086/8088的中断操作与响应中断源的优先级排序硬件中断的响应过程和中断服务软件中断的响应过程和中断服务23163软件中断的响应过程和中断服务INTn指令格式:INTn说明:产生一个中断类型号为n的软中断操作:①

标志寄存器入栈②

断点地址入栈:CS先入栈,然后IP入栈③

从中断向量表中获取中断服务程序入口地址,即 IP

(0:4n+1,0:4n) CS(0:4n+3,0:4n+2)FRCSIP栈底栈顶8.38086/8088的中断操作与响应中断指令64溢出中断指令格式:INTO说明:检测OF标志位。

当OF=1时,产生中断类型为4的中断;当OF=0时,不起作用。操作:①

标志寄存器入栈②

断点地址入栈:CS先入栈,然后IP入栈③

从中断向量表中获取中断服务程序入口地址,即 IP

(0000H:0010H) CS(0000H:0012H)8.38086/8088的中断操作与响应软件中断的响应过程和中断服务65中断返回指令格式:IRET说明:从中断服务程序返回断点处,并将标志寄存器的值从堆栈弹出,继续执行原程序。本指令用于中断服务程序中。操作:①

断点出栈:IP先出栈,CS后出栈②

标志寄存器出栈注意这一点与RET指令不同。中断服务程序返回一定要用IRET。FRCSIP栈底栈顶8.38086/8088的中断操作与响应软件中断的响应过程和中断服务66软件中断的响应过程用户程序(主程序)MOVAH,1INT21HMOVDL,ALNEXT:中断向量表34H12H00H20H21H×421H×4+121H×4+221H×4+3IRET21H型服务程序2000H:1234HNEXT的偏移地址NEXT的段基址标志寄存器的内容堆栈区①②IPCS③④⑤⑥8.38086/8088的中断操作与响应软件中断的响应过程和中断服务67软件中断的响应过程包括:除数为0引起的中断(0),单步中断(1),断点中断(3)和溢出中断(4)四种。系统初始化时已将相应的中断向量定位装配在中断向量表中。当中断发生时,只需直接查找中断向量表即可,其余动作与硬件中断相同。

8.38086/8088的中断操作与响应软件中断的响应过程和中断服务微机原理与接口技术第8章中断技术与可编程中断控制器8259A目录8.1中断的基本概念及其应用8.2中断系统的功能和中断优先级8.38086/8088的中断操作与响应8.4可编程中断控制器8259A8.58259A的应用举例70主要内容8259A的主要功能结构8259A的工作过程8259A的中断管理8.4可编程中断控制器8259A8259A的编程8259A的主要功能结构718.4可编程中断控制器8259A8259A的主要功能1片8259A可以管理8级中断,且可以多片级联,最多可以用9片构成64级的主从式中断管理。对任何一级中断都可以单独屏蔽。可以通过编程,使8259A工作在不同方式下,使用灵活。能根据编程提供中断源的中断类型码。8259A的主要功能结构728.4可编程中断控制器8259A8259A的引脚及功能中断请求中断响应数据线中断请求输入VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A28272625242322212019181716151234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND8259A的主要功能结构738.4可编程中断控制器8259A8259A的引脚及功能级联信号从设备编程/缓冲器允许引脚内部寄存器选择。A0=0:ICW1,OCW2,OCW3A0=1:ICW2~ICW4,OCW1片选信号读、写信号VCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A28272625242322212019181716151234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND8259A的主要功能结构748.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线888位的寄存器,用来接收来自IR0~IR7上的中断请求输入信号,当收到请求信号时就在IRR的相应位置位。外设产生中断请求的方式有两种:一种是边沿触发方式,另一种是电平触发方式。用户可根据需要通过编程来设置。010010018259A的主要功能结构758.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线88存放对中断请求的屏蔽信息。软件编程使得IMR的某位为“1”时,相应IRR中的中断请求被屏蔽;反之允许相应IRR中的中断请求进入中断优先级判别器PR。010010010000000101001000IR6IR38259A的主要功能结构768.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线88存放正在服务的中断源级别,当某个中断被响应后,CPU发出第一个INTA信号,ISR中的相应位置“1”,一直被保存到该中断处理结束。当多重中断时,ISR的多位同时被置1。00000010IR18259A的主要功能结构778.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线88对IRR保持的各中断请求(已屏蔽的除外)进行优先权判别,并在CPU的中断响应周期将其送ISR。在出现多重中断时,由PR判定是否允许所出现的中断去打断正在处理的中断,让优先级更高的中断优先处理。01001000

IR6IR3

00000010IR1>新的中断请求优先级低,不被响应8259A的主要功能结构788.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线8801001000

IR6IR3

10000000<10001000中断嵌套IR3IR78259A的主要功能结构798.4可编程中断控制器8259A8259A的内部结构ISR寄存器中断屏蔽寄存器IMR中断请求优先级编码器中断请求寄存器IRR比较器B0B1B2A>BA0A1A2ISR编码ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0INTD0……D7IR0IR1IR2IR3IR4IR5IR6IR7优先级裁决过程工作原理图10010010100000000001001010110000001011001000000000018259A的主要功能结构808.4可编程中断控制器8259A8259A的内部结构按照编程所设置的工作方式来管理8259A的工作。在IRR中有未被屏蔽的中断请求位时,它输出高电平的INT信号向CPU申请中断。在中断响应期间,它使ISR的相应位置位,并控制向CPU发送相应的中断类型码。在中断服务结束时,它按照编程指定的方式进行结束处理。IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线88中断类型码8259A的主要功能结构818.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线888位的双向三态缓冲器,用作8259A与系统数据总线的接口。用来传输初始化命令字、操作命令字、状态字和中断类型码。8259A的主要功能结构828.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线88

它接收来自CPU的读/写命令,完成规定的操作。具体动作由片选信号CS,地址输入信号A0,以及读(RD)和写(WR)信号共同控制。8259A的主要功能结构838.4可编程中断控制器8259A8259A的内部结构IR0IR1IR2IR3IR4IR5IR6IR7数据总线缓冲读/写控制逻辑级联缓冲比较控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)D7~D0CAS0CAS1CAS2CSRDWRA0SP/ENINTINTA内部数据总线88CAS0~CAS2是8259A相互间连接用的专用总线,用来构成8259A的主−从式级联控制结构。SP/EN:在缓冲方式下产生总线启动信号,以控制总线缓冲器的接收和发送.

在非缓冲方式下,控制主片(高)和从片(低)8259A的主要功能结构848.4可编程中断控制器8259A8259A的内部结构若要CPU不响应可屏蔽中断,可以通过CPU的

寄存器中的

来实现。还可以通过设置中断控制器中的

寄存器来实现。当希望系统中有的可屏蔽中断被响应,有的不被响应,只能通过设置

来实现。8259A中断请求触发器(IRRi)IRi中断屏蔽触发器(IMRi)CPU中断逻辑开/关中断IF(中断允许触发器)101IF=1开中断可屏蔽中断IRi能被响应8259A的主要功能结构858.4可编程中断控制器8259A8259A的内部结构若要CPU不响应可屏蔽中断,可以通过CPU的

寄存器中的

来实现。还可以通过设置中断控制器中的

寄存器来实现。当希望系统中有的可屏蔽中断被响应,有的不被响应,只能通过设置

来实现。8259A中断请求触发器(IRRi)IRi中断屏蔽触发器(IMRi)CPU中断逻辑开/关中断IF(中断允许触发器)101IF=0关中断所有可屏蔽中断请求均被屏蔽8259A的主要功能结构868.4可编程中断控制器8259A8259A的内部结构若要CPU不响应可屏蔽中断,可以通过CPU的

寄存器中的

来实现。还可以通过设置中断控制器中的

寄存器来实现。当希望系统中有的可屏蔽中断被响应,有的不被响应,只能通过设置

来实现。8259A中断请求触发器(IRRi)IRi中断屏蔽触发器(IMRi)CPU中断逻辑开/关中断IF(中断允许触发器)110IF=1开中断中断请求IRi被屏蔽标志IF位IMRIMR8259A的主要功能结构878.4可编程中断控制器8259A8259A的内部结构若要CPU不响应可屏蔽中断,可以通过CPU的

寄存器中的

来实现。还可以通过设置中断控制器中的

寄存器来实现。当希望系统中有的可屏蔽中断被响应,有的不被响应,只能通过设置

来实现。标志IF位IMRIMR标志寄存器的IF位相当于一个总开关,控制着所有可屏蔽中断是开放(IF=1)还是屏蔽(IF=0)IMR寄存器的每一位相当于一个分开关,独立控制单个可屏蔽中断是开放(IMRi=0)还是屏蔽(IMRi=1)。使用中断控制器的系统中,某个可屏蔽中断如果要被响应,两级“开关”都要开放中断。88主要内容8259A的主要功能结构8259A的工作过程8259A的中断管理8.4可编程中断控制器8259A8259A的编程8259A的工作过程898.4可编程中断控制器8259A单片8259A的工作过程IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0高位地址线IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A注:8086此为A1,8086的A0=0。8259A的工作过程908.4可编程中断控制器8259A单片8259A的工作过程IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0高位地址线IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)初始化命令寄存器组操作命令寄存器组(1)中断源通过IR0~IR7向8259A发中断请求,使得IRR的相应位置位。01000010总线8259A8259A的工作过程918.4可编程中断控制器8259A单片8259A的工作过程IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A(2)若此时IMR中的相应位为0,即该中断请求没有被屏蔽,则进入优先级排队。8259A分析这些请求,若条件满足,则通过INT向CPU发中断请求010000100100000000000000高位地址线当前无中断服务程序在执行。000000108259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A(3)

CPU接收到中断请求信号后,如果满足条件,则进入中断响应,通过INTA引脚发出两个连续负脉冲。010000100100000000000000高位地址线000000108259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程93IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A(3)8259A收到第一个INTA时,做如下动作:010000100100000000000000①使IRR的锁存功能失效,到第二个INTA时再有效。第一个高位地址线000000108259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程94IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A010000100100000000000000②使ISR的相应位置位,表示已为该中断请求服务。00000010第一个高位地址线00000010(3)8259A收到第一个INTA时,做如下动作:8259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程95IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A0100001001000000③使IRR相应位清0,表明对应的中断请求被响应。0000001001000000第一个高位地址线(3)8259A收到第一个INTA时,做如下动作:8259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程96IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A(3)8259A收到第二个INTA时,做如下动作:01000000①把中断类型码送往数据总线。0000001001000000第二个中断类型码高位地址线8259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程97IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A01000000②如果8259A工作在中断自动结束方式,此时将清零ISR的相应位。0000001001000000第二个00000000高位地址线(3)8259A收到第二个INTA时,做如下动作:8259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程98IR7IR6IR5IR4IR3IR2IR1IR0中断服务寄存器(ISR)中断优先级分析器(PR)D7~D0IOWA0INTINTA8中断请求寄存器(IRR)D7~D0A0WRIORRDCSINTAINTR中断屏蔽寄存器(IMR)总线初始化命令寄存器组操作命令寄存器组8259A01000000③如果8259A工作在非中断自动结束方式,此时不清零ISR的任何位,只有在中断服务结束时发出中断结束命令才会使ISR中的相应位清零。0000001001000000第二个高位地址线(3)8259A收到第二个INTA时,做如下动作:8259A的工作过程8.4可编程中断控制器8259A单片8259A的工作过程99中断类型码n第一响应周期第二响应周期T1T2T3T4T1T2T3T4CLKALEINTAD7-D0初始化接口IRR锁存失效,不接收新的请求当前最高的ISR置位(响应中断)IRR相应位清零接口送出nCPU读入nIRR锁存有效,接收新的请求ICW2→D7~D0(中断类型码)若ICW4D1=1(中断自动结束方式),则相应ISR位自动清0。硬件中断时序8259A的工作过程8.4可编程中断控制器8259A级联使用时:示例:一个由3片8259A组成的级联系统至少要2片8259A(1片主片,1片从片),可管理15级外部中断。最多允许9片8259A级联(其中1片为主片,8片从片),可管理64级中断。

多片8259A级联的工作过程8259A的工作过程8.4可编程中断控制器8259A主IR0~IR2>从A的IR0~IR7>主IR4~IR5>从B的IR0~IR7>主IR78259A从片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A从片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址总线译码译码译码控制总线数据总线中断申请(输出)62154id:011id:110多片8259A级联的工作过程8259A的工作过程8.4可编程中断控制器8259A级联时,从片上中断源的请求与响应过程:从片上的中断源通过IR0~IR7向从8259A发中断请求,使得IRR的相应位置位。IRR00000001多片8259A级联的工作过程8259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程若此时IMR中的相应位为0,即该中断请求没有被屏蔽,则进入优先级排队。8259A分析这些请求,若条件满足,则通过INT向主8259A发中断请求。IRR00000001IRR00001000IMRxxxxxxx08259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程

主8259A收到请求后若满足条件则通过INT向CPU发中断请求。8259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程

CPU接收到中断请求信号后,如果满足条件,则进入中断响应,通过INTA引脚发出两个连续负脉冲,该INTA信号送给所有的8259A。8259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程在各8259A收到第一个INTA时,使各自的IRR的锁存功能失效(目的是防止此时再来中断导致中断响应的错误),到第二个INTA时再有效。8259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程主片收到第一个INTA后使对应的ISR位置,并通过CAS0~CAS2输出当前被响应的中断源所属从片的设备代码ID。8259A从片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A从片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址总线译码译码译码控制总线数据总线中断申请(输出)62154011BISR000010008259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程

每个从片均收到这一设备代码并和自身的代码进行比较。8259A从片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A从片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址总线译码译码译码控制总线数据总线中断申请(输出)62154011B8259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程8259A从片ACSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A从片BCSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0…………GND8259A主控制器CSSP/ENINTAINTCAS0CAS1CAS2A0IR7IR0IR7IR0……3VCC地址总线译码译码译码控制总线数据总线中断申请(输出)62154011B与主片送出的代码一致的从片则清零被响应的中断源的IRR位,置位被响应的中断源的ISR位,并做好把自身被响应的中断源的类型码送到数据总线的准备。IRR0000000100000000ISR00000001中断类型码n8259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程在第二个INTA脉冲有效期间,由被选中的从8259A将中断类型码送上数据总线。CPU在中断响应周期的第二周期读取类型码,并生成中断向量表的地址,然后从向量表中读出中断向量转入相应的中断服务程序。中断类型码n8259A的工作过程8.4可编程中断控制器8259A多片8259A级联的工作过程中断类型码n第一响应周期第二响应周期T1T2T3T4T1T2T3T4CLKALEINTAD7-D0初始化接口IRR锁存失效,不接收新的请求当前最高的ISR置位(响应中断)IRR相应位清零级联CAS2~0主片→从片接口送出nCPU读入nIRR锁存有效,接收新的请求ICW2→D7~D0(主片,从片)若ICW4

的D1=1(中断自动结束方式),则相应ISR位自动清0。硬件中断时序8259A的工作过程8.4可编程中断控制器8259A若有40个外部中断请求信号,至少需要

片8259A中断控制器来管理。85+(85)1

=43个(6片)从片主片84+(84)1

=36个(5片)从片主片6典型题:已知8259A片数,求在级联方式下最多管理几级中断。已知中断源个数,求最少需要多少片8259A来管理。主要内容8259A的主要功能结构8259A的工作过程8259A的中断管理8.4可编程中断控制器8259A8259A的编程难点8259A的中断管理8.4可编程中断控制器8259A中断优先级管理1中断结束管理2中断嵌套管理3中断屏蔽管理4中断优先级管理8.4.38259A的中断管理固定优先级方式8259A复位后自动处于固定优先级方式,8个中断源的优先级别是固定的,依次为IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7。循环优先级方式设置为此方式后瞬时优先级为IR0>IR1>IR2>IR3>IR4>IR5>IR6>IR7,一旦某中断源的请求被响应后它就变成最低优先级,它的下一级上升为最高优先级。当前正在服务IR2被响应后,优先级顺序为:IR3>IR4>IR5>IR6>IR7>IR0>IR1>IR2

中断优先级管理8.4.38259A的中断管理特殊循环优先级方式在设置8259A为循环优先级的同时,还指明循环起始时的最低优先级。查询排序优先级方式一般用于中断级数多于64级的场合。由程序读取8259A的查询字来判断该8259A的中断源是否有请求。指明IR4优先级最低后,优先级顺序为:IR5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论