《中断技术与中断控制器.ppt》由会员分享,可在线阅读,更多相关《中断技术与中断控制器.ppt(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第9章章 中断技术与中断控制器中断技术与中断控制器 9.1 中断技术概述中断技术概述 9.2 8086/8088中断系统中断系统 9.3 可编程中断控制器可编程中断控制器82C59A9.4 高档微机中断系统高档微机中断系统 9.1 中断技术概述中断技术概述n9.1.1 什么是中断什么是中断 (概念)n在程序运行中,系统出现了某种紧急事件,CPU必须中止现行程序,转去处理此紧急事件(执行中断服务程序),并在处理完毕后再返回运行程序的过程。n一个完整的中断过程包括:n中断请求;中断请求;n中断判优;中断判优;n中断响应;中断响应;n中断处理;中断处理;n中断返回中断返回。n“中断请求中断请求”是
2、指中断源是指中断源(引起中断的事件或设备引起中断的事件或设备)向向CPU发出的请求中断的发出的请求中断的要求;要求;n“中断判优中断判优”当有多个中断源发出中断请求时,需要通过适当的办法当有多个中断源发出中断请求时,需要通过适当的办法(软件的;软件的;硬件的;软、硬件结合的硬件的;软、硬件结合的)决定究竟先处理哪个中断请求;决定究竟先处理哪个中断请求;n“中断响应中断响应”是指是指CPU中止现行程序转至中断服务程序的过程;中止现行程序转至中断服务程序的过程;n“中断处理中断处理”就是指就是指CPU执行中断服务程序,完成中断请求所要求的操作;执行中断服务程序,完成中断请求所要求的操作;n“中断返
3、回中断返回”执行完中断服务程序后,返回到原先被中断的程序。执行完中断服务程序后,返回到原先被中断的程序。9.1.2 中断源及其优先级中断源及其优先级n9.1.2 中断源及其优先级中断源及其优先级 n中断源中断源:发出中断请求的外部设备或内部原因。发出中断请求的外部设备或内部原因。n中断优先级:中断优先级:按照任务的轻重缓急给中断源排队。按照任务的轻重缓急给中断源排队。排队方法有:排队方法有:n软件查询法软件查询法(需要少量硬件需要少量硬件)简单排队电路:如菊花链式简单排队电路:如菊花链式 (daisy chain)优先级电路优先级电路n硬件排队电路:硬件排队电路:可编程中断控制器可编程中断控制
4、器(如如8259)(1)软件查询法)软件查询法n把各个外设的中断请求信号“相或”,产生一个总的INT信号n当CPU响应中断后,进入中断处理程序,在中断处理程序的开始部分安排一段查询程序。n优点:优点:省硬件n缺点:缺点:中断响应慢中断源及其优先级中断源及其优先级中断源及其优先级中断源及其优先级(2)菊花链优先级排队电路)菊花链优先级排队电路中断请求INT1INT2INT3CPU INTR接口设备3接口设备2接口设备1菊花链逻辑电路中断回答集电极开路门(OC门)INT1+INT2+INT3+5VINTR=INT1+INT2+INT3当INTA信号沿菊花链行进时,最靠近CPU并发出INT请求的接口
5、将首先拦截住INTA信号,并送出中断类型码,进入相应的中断处理程序;在服务完成后撤销其请求(解除对下一级的阻塞和封锁)。INTRINTA中断请求99.1.3 中断请求与中断屏蔽中断请求与中断屏蔽 2.2.中断屏蔽中断屏蔽 内部屏蔽:内部屏蔽:CPU不响应中断(关中断)不响应中断(关中断)中断屏蔽:中断屏蔽:外部屏蔽:中断请求信号不能送到外部屏蔽:中断请求信号不能送到CPUn 可屏蔽中断可屏蔽中断:受:受IF控制(IF为“1”时中断允许,IF为“0”时中断屏蔽)n 非屏蔽中断:不非屏蔽中断:不受受IF控制(无论IF为“1”或“0”都允许中断)(但可设计外部屏蔽电路进行屏蔽)1.中断请求中断请求
6、CPU在执行完每条指令后,自动检测中断请求输入线,以确定是否有外部发来的中断请求信号。指内部屏蔽指内部屏蔽9.1.4 中断服务程序中断服务程序 n中断服务程序:中断服务程序:为完成中断源所期望的功能而编写的程序。n中断服务程序的主要内容:中断服务程序的主要内容:在中断服务程序中,主要是进行输入/输出操作 或发出一系列控制信号,这些具体操作构成了中断服务程序的主体。另外还有一些附加操作,因此:中断服务程序的主要内容有:中断服务程序的主要内容有:n保护现场 n开中断n具体中断处理 n关中断 n恢复现场 n开中断、中断返回 9.1.5 中断隐操作和中断向量中断隐操作和中断向量 n中断隐操作中断隐操作
7、:CPU响应中断时,由内部硬件执行的一系列处理过程。响应中断时,由内部硬件执行的一系列处理过程。隐操作把隐操作把CPU引向中断服务程序引向中断服务程序中断类型、中断向量、中断向量表:中断类型、中断向量、中断向量表:中断类型:中断源的编号中断类型:中断源的编号中断向量:中断服务程序的入口地址中断向量:中断服务程序的入口地址中断向量表:内存中存放中断向量的区域中断向量表:内存中存放中断向量的区域以上三者关系:以上三者关系:中断向量在中断向量表中第一个单元的地址中断向量在中断向量表中第一个单元的地址=中断类型中断类型4 4第第1条可执行指令的条可执行指令的第第1个字节的地址个字节的地址9.1.6 中
8、断响应过程中断响应过程 n对于可屏蔽中断,当CPU检测到有中断请求时,如果满足响应条件就要予以响应。具体过程如下:n关中断、保护断点 n保护现场 n开中断 n具体中断处理 n关中断 n恢复现场 n开中断、中断返回 属于隐操作属于隐操作属于中断服务程序属于中断服务程序可选择可选择可选择主主 体体9.2 8086/8088中断系统中断系统 n中断系统:实现中断的软件和硬件的总和。中断系统:实现中断的软件和硬件的总和。9.2.1 中断系统的基本功能中断系统的基本功能 n要求能判断中断源的优先级,并按优先权的高低决定中断响应的顺序。n要求中断系统能实现中断和返回。n要求中断系统能实现中断嵌套,即高优先
9、级中断源的中断请求能中断低优先级中断源的中断服务。9.2.2 8086/8088的中断系统的中断系统 非屏蔽中断 外部中断 (硬件中断)可屏蔽中断 除法出错 内部硬件中断 单步跟踪 断点中断 内部中断 溢出中断 内部软件中断:INT n8086/8088的中断源分类:的中断源分类:n1.8086/8088的中断系统结构 8086/8088的中断系统结构如图9.1所示。8086/8088的中断系统的中断系统8086/8088的中断系统的中断系统n2.2.中断类型码与中断向量表中断类型码与中断向量表 n中断类型码中断类型码8086/8088为每个中断源指定的一个编号。n中断向量中断向量中断服务程序
10、的入口地址。n中断向量表中断向量表把系统中所有的中断向量按中断类型码从小到大的顺序放到存储器的某一个区域所形成的一个表n每个中断向量占用4 4个存储单元,8086/8088CPU的中断系统最多能处理256256个中断源。8086/8088CPU以存储器的00000H003FFH共1024个单元作为中断向量存储表 8086/8088的中断系统的中断系统n中断向量在中断向量表的存放次序中断向量在中断向量表的存放次序:是按中断类型号顺序存放,共占4个单元。每个中断向量存放的首地址=中断类型号4。CPU响应中断时,需把中断类型号N乘以4,得到中断向量的对应地址4N(该中断向量所占该中断向量所占4个字节
11、单元的第一个字节单元的地址个字节单元的第一个字节单元的地址)。n中断向量的装入:中断向量的装入:两个低字节单元的内容装入IP寄存器:IP=(4N,4N+1),两个高字节单元的内容装入CS寄存器:CS=(4N+2,4N+3)。外部(NMI、INTR):由接口提供n中断类型号中断类型号N的来源:的来源:硬件中断:由内部硬件提供 内部 软件中断:由中断指令提供8086/8088的中断系统的中断系统n例1:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址内存高地址 1
12、E00 0 H+0A0 0 H 1EA0 0 H中断类型号34000CH.00(IPL)0A(IPH)00(CSL)1E(CSH).中断服务程序中断服务程序8086/8088的中断系统的中断系统n例2.中断类型号为20H,中断服务程序的入口地址存放在0000:0080H开始的4个单元中。若:n(0080H)=10H n(0081H)=20Hn(0082H)=30Hn(0083H)=40H则:中断服务程序的入口地址为图9.2 IBM PC/XT的硬件中断控制逻辑 n3.3.外部中断外部中断 图9.2 IBM PC/XT的硬件中断控制逻辑 NMI外部外部屏蔽电路屏蔽电路协协处处理理器器运运算算错错
13、RAM奇奇偶偶校校验验错错I/O校校验验错错8086/8088的中断系统的中断系统n非屏蔽中断非屏蔽中断NMI 当CPU的NMI引脚上来一个高电平时,CPU自动产生类型码为2的中断,并由此转入相应的服务程序。由于NMI引脚上的请求不能被CPU屏蔽,故常用于紧急情况的故障处理。8086/8088的中断系统的中断系统n可屏蔽中断可屏蔽中断INTR n当8086/8088的INTR引脚上有一个正跳变信号时,便产生硬件可屏蔽中断请求,这种中断请求可以用指令进行屏蔽或允许。当INTR的请求被允许时,如果现行指令执行完,其它中断响应条件也满足,CPU就会从 引脚发出中断响应信号。这时,中断源要向CPU提供
14、中断类型码,CPU得到类型码后自动从中断向量表中取得相应的中断向量,从而转去执行中断服务程序。图图9.3 8086/80889.3 8086/8088可屏蔽中断的响应过程可屏蔽中断的响应过程 8086/8088的中断系统的中断系统n4.内部中断内部中断 内部中断都是非屏蔽型的n除法出错中断是类型0n单步中断为类型1n断点中断是类型3n溢出中断是类型4n指令中断INT n8086/8088的中断系统的中断系统n8086/8088中断的优先权中断的优先权优先权按从高到低的顺序排列为:优先权按从高到低的顺序排列为:除法出错中断除法出错中断INT n溢出中断溢出中断NMIINTR断点中断断点中断单步。
15、单步。9.3 可编程中断控制器可编程中断控制器82C59A 9.3.1 82C59A的主要特性的主要特性 1)82C59A内部结构和外部引脚与8259A完全兼容。2)单一正5V电源,全静态工作(无需外加时钟)。3)该芯片集中断源识别、判优、提供中断类型号于一体。4)每片82C59A能管理8级中断。5)每片82C59A可送出8个8位的中断类型号(自动中断向量转移功能)。6)能用软件屏蔽中断请求输入,通过编程可选择多种不同的工作方式,以适应各种系统的要求。7)通过82C59A级联,在不增加外部电路的情况下,最多可用9片82C59A级连管理64级中断。属于中断源的外部屏蔽属于中断源的外部屏蔽9.3.
16、2 82C59A的内部结构的内部结构 IR0IR7:中断请中断请求寄存求寄存器器IRR优优先先权权电电路路在服务在服务寄存器寄存器ISR中断屏蔽寄存器中断屏蔽寄存器 IMR控控 制制 逻逻 辑辑数据总线数据总线缓冲器缓冲器读读/写写逻辑逻辑级连缓级连缓冲冲/比比较器较器INTAINTRDBRDWRA0CSCAS0CAS1CAS2SP/EN内部总线82C59A的内部结构的内部结构n1.1.数据总线缓冲器数据总线缓冲器:8位双向三态缓冲器。CPU向82C59A写入的命令字传送的信息:CPU从82C59A读取的状态字 82C59A向CPU提供的中断类型码n2读读/写逻辑写逻辑:内部地址译码和操作控制
17、。接收来自CPU的读/写命令,完成规定的操作。操作过程由 、A0、和 输入信号共同控制。82C59A的内部结构的内部结构n3.3.级联缓冲级联缓冲/比较器比较器:用于82C59A的级联和缓冲方式级连方式:传送从82C59A的编号。第1个 期间,识别ID标志;第2个 期间,该从片向CPU提供中断类型码。缓冲方式:输出局部数据总线允许信号。82C59A的内部结构的内部结构n4.4.中断请求寄存器(中断请求寄存器(IRRIRR):连接中断源 接收并寄存中断请求信号。(有请求时,IRR中相应位置“1”)。n5.5.中断屏蔽寄存器(中断屏蔽寄存器(IMRIMR):屏蔽中断源 82C59A的8级中断请求独
18、立地加以禁止或允许(当某位被置“1”时,与之对应的中断请求被屏蔽)。82C59A的内部结构的内部结构n6.6.优先级分析器(优先级分析器(PR):判断优先级。检查中断服务寄存器(ISR)的状态,判别有无优先权更高的中断正在接受服务,若无,则把中断请求寄存器(IRR)中优先权最高的中断请求送入中断服务寄存器。n7.7.中断服务寄存器(中断服务寄存器(ISR):寄存正在被响应的中断。正在被服务的所有中断级,包括尚未服务完而中途被更高级的中断打断了的中断级,他们在ISR中的对应位被置“1”,响应完后立即清“0”。n8.8.控制逻辑控制逻辑:按设置的工作方式控制82C59A的全部工作。有中断请求 IR
19、R相应位置“1”若中断未屏蔽 送PR 判优判优 送送ISR(相应位置“1”)向CPU发出INT信号 若满足响应条件 CPU 发回INTA信号 82C59A向CPU传送中断类型码 中断响应完成 ISR相应位清“0”9.3.3 8282C59AC59A引脚功能引脚功能 n82C59A的外部引脚 8282C59AC59A外部特性外部特性n82C59A的引脚可分为三个部分:n与CPU的接口引线n与外设的接口引线n用于级联的接口引线 1.82C59A与与CPU的接口引脚的接口引脚 nD7D0:数据线,数据线,双向,三态。传送的信息:控制字、状态字、中断类型码。nA A0 0:地址线,地址线,输入。偶地址
20、端口:3个控制字,3个状态字 寻址82C59A内部的端口:奇地址端口:4个控制字n :写信号,:写信号,输出,低高电平有效。n :读信号,:读信号,输出,低高电平有效。n :片选信号,:片选信号,输出,低高电平有效。nINTINT:中断请求信号,中断请求信号,输出,高电平有效。用于由82C59A向CPU发出中断请求,连接CPU的可屏蔽中断请求输入端INTR。n :中断响应信号,:中断响应信号,输出,低电平有效。用于接收CPU送回的中断响应负脉冲。连接CPU控制总线的 。OCW1,ICW2,ICW3,ICW4ICW1,OCW2,OCW3IRR,ISR,中断查询字CS RD WR A0 D4 D3
21、 读写操作 0 1 0 0 1 写ICW1 0 1 0 1 写ICW2、ICW3、ICW4、OCW1 0 1 0 0 1 0 写OCW2 0 1 0 0 0 1 写OCW3 0 0 1 0 读IRR/ISR 0 0 1 1 读IMR8259的读写功能的读写功能8282C59AC59A外部特性外部特性 3.82C59A级联时的接口引线级联时的接口引线 nCAS2CAS0:级连引脚,双向。用来构成82C59A的主从式级联控制结构,传送从片标志。n :从片编程/允许缓冲器信号,双向,低电平有效。主片SP=“1”当82C59A工作在缓冲方式时:输入SP信号功能:功能:从片SP=“0”=“0”允许 当8
22、2C59A工作在缓冲方式时:输出缓冲器允许信号 =“1”禁止2.82C59A与外设的接口引线与外设的接口引线 IR0IR7:中断请求,输入,高电平或上升沿有效。用于接收从外设来的中断请求信号。每个引脚分别连接一个中断源的 中断请求输出端或连接一个82C59A从片的INT端(级联方式时)。9.3.4 82 82C59AC59A的控制字的控制字 n82C59A共有共有7个控制字个控制字n4个初始化命令字(ICW1ICW4)n3个操作命令字(OCW1OCW3)n82C59A共有共有4个状态字个状态字 IRR寄存器内容、ISR寄存器内容、IMR寄存器内容 中断查询字8282C59AC59A的控制字的控
23、制字n1.1.初始化命令字初始化命令字 n初始化命令字通常是系统开机时,由初始化程序填写的,而且在整个系统工作过程中保持不变。n初始化命令字有四个ICW1、ICW2、ICW3、ICW4。写入顺序为ICW1、ICW2、ICW3、ICW4其中:是否写入ICW3和ICW4,由ICW1决定。nICW1的格式和含义 ICW1:芯片控制初始化命令字。:芯片控制初始化命令字。写入82C59A的偶地址端口。初始化命令字初始化命令字ICW1写入后,写入后,8259内部完成初始化过程:内部完成初始化过程:(1)清除ISR和IMR寄存器;(2)指定中断优先级R0 R7;(3)从方式的地址置成7;(4)特殊屏蔽方式复
24、位;(5)自动EOI循环方式复位;(6)边沿触发器复位。8282C59AC59A的控制字的控制字ICW1IC4SNGLADI0*1LTIM*A0D7 D6 D5 D4 D3 D2 D1 D001不写ICW4写ICW401级联,写ICW3单片,不写ICW3=0(不用)8088/8086不用标志位0=边沿触发方式1=电平触发方式ICW1的格式和各位的定义如下:的格式和各位的定义如下:当当ICW4=00H时,不写时,不写8282C59AC59A的控制字的控制字nICW2的格式和含义 ICW2:是设置中断类型码的初始化命令字是设置中断类型码的初始化命令字 写到8259A的奇地址端口 其格式和各位定义如
25、下:ICW2 D7 D6 D5 D4 D3 D2 D1 D0A11/T31A0A10A15/T7A14/T6A13/T5A12/T4A9A8自动填入中断类型码高5位 D7 D6 D5 D4 D3 D2 D1 D0IR7 T7 T6 T5 T4 T3 1 1 1IR6 T7 T6 T5 T4 T3 1 1 0IR5 T7 T6 T5 T4 T3 1 0 1IR4 T7 T6 T5 T4 T3 1 0 0IR3 T7 T6 T5 T4 T3 0 1 1IR2 T7 T6 T5 T4 T3 0 1 0IR1 T7 T6 T5 T4 T3 0 0 1IR0 T7 T6 T5 T4 T3 0 0 0写入
26、写入82C59A的中断向量的中断向量8282C59AC59A的控制字的控制字nICW3的格式和含义ICW3:标志主片:标志主片/从片的初始化命令字从片的初始化命令字 写到82C59A的奇地址端口 只有在一个系统中使用了两片以上82C59A并级联时,才需要写入ICW3 8282C59AC59A的控制字的控制字主片主片ICW3:规定哪一个IR引脚接有从片 接有从片:其对应位设置为“1”IRi 未接有从片:对应位设置为“0”例如:主82C59A的IR0、IR3上分别接有从片,则主片的ICW3=00001001。ICW31A0D7 D6 D5 D4 D3 D2 D1 D0IR2IR5 IR4 IR3I
27、R7 IR6IR1 IR08282C59AC59A的控制字的控制字n从片从片ICW3:表明从片接在主片的哪一根IR线上。ICW31A0D7 D6 D5 D4 D3 D2 D1 D0ID200000ID1 ID0ID2ID1ID0从片所接的引脚000IR0001IR1111IR7ICW4:方式控制初始化命令字 写入奇地址端口ICW4PMAEOIM/S10SFNM BUF00A0D7 D6 D5 D4 D3 D2 D1 D00=一般全嵌套方式1=特殊全嵌套方式=非缓冲方式,此时若用级联,由SP/EN确定主从片。=缓冲方式,本片为从片=缓冲方式,本片为主片0 1 01 101选用80858086/8
28、08801正常EOI方式自动EOI方式 ICW4的格式和含义的格式和含义8282C59AC59A的控制字的控制字n2.2.操作命令字操作命令字 n操作命令字在82C59A应用程序中使用,可在初始化后根据需要随时写入,并且在写入次序上没有严格的要求。n操作命令字有3个,OCW1OCW38282C59AC59A的控制字的控制字nOCW1中断屏蔽字中断屏蔽字OCW1:中断屏蔽操作命令字写入82C59A的奇地址端口其格式和各位定义如下:OCW1M01A0D7 D6 D5 D4 D3 D2 D1 D0M7 M6 M5 M4 M3 M2 M1中断屏蔽字:Mi=1 屏蔽中断屏蔽中断IRiMi=0 允许中断允
29、许中断IRi8282C59AC59A的控制字的控制字nOCW2 控制中断结束和优先级循环方式的命令 OCW2:设置优先级循环方式和发中断结束命令 写入偶地址端口 其格式和各位定义如下:L00A0D7 D6 D5 D4 D3 D2 D1 D0RSL EOI00L2L1OCW2标志位指定指定IRi0 不发中断结束命令1 发中断结束命令L2L0无效 0L2L0有效 1固定优先级 0 旋转优先级 1 IR0至IR7优先级动态变化优先级从高到低为IR0IR7R SL EOI 操作操作0 0 0 固定优先级,不发中断结束命令固定优先级,不发中断结束命令0 0 1 固定优先级,发一般中断结束命令固定优先级,
30、发一般中断结束命令0 1 0 无操作无操作0 1 1 固定优先级,发特殊中断结束命令固定优先级,发特殊中断结束命令1 0 0 普通旋转优先级,不发中断结束命令普通旋转优先级,不发中断结束命令1 0 1 普通旋转优先级,发一般中断结束命令普通旋转优先级,发一般中断结束命令1 1 0 特殊旋转优先级,不发中断结束命令特殊旋转优先级,不发中断结束命令21 1 1 特殊旋转优先级,发特殊中断结束特殊旋转优先级,发特殊中断结束命令命令R、SL、EOI编码表L2 L1 L0 IR 0 0 0 IR0 0 0 1 IR1 0 1 0 IR2 0 1 1 IR3 1 0 0 IR4 1 0 1 IR5 1 1
31、 0 IR6 1 1 1 IR7L2、L1、L0编码表(1)中断结束命令中断结束命令 普通EOI结束方式:8259A收到EOI结束命令后,自动将ISR中级别最高的置“1”位清“0”。特殊EOI结束方式:正常EOI是自动清除级别最高的ISR位,而特殊EOI则清除有L0L2指定的ISR位。自动AEOI结束方式:某中断被响应后,ISR对应位被置1,但CPU在中断响应的第二个负脉冲将ISR的对应位清0。此时,尽管CPU对某个外设正在进行中断服务,但在8259A中无指示,低级别的中断可打断高级中断,产生重复嵌套,嵌套深度无法控制。在级联方式下,一般用非自动结束方式,中断结束时,要发两次中断结束命令,一次
32、是对主片,另一次是对从片。特殊循环:循环初态为:由L2L0编码设定最低优先级。例:若设定IR3对应的设备优先级最低,则IR4对应的设备优先级最高。(3)优先级循环)优先级循环自动循环:循环初态为:IR0最高IR最低。IR77IR66IR55IR44IR33IR22IR11IR00默认优先级IR74IR63IR52IR41IR30IR27IR16IR05优先级循环(2)优先级设定命令)优先级设定命令nOCW3特殊屏蔽方式和查询方式命令字特殊屏蔽方式和查询方式命令字OCW3的功能有三个:设置和撤消特殊屏蔽方式;设置设置和撤消特殊屏蔽方式;设置中断查询方式;设置对中断查询方式;设置对82C59A内部
33、寄存器的读出命令内部寄存器的读出命令写入偶地址端口 其格式和各位定义如下:RIS0A0D7 D6 D5 D4 D3 D2 D1 D00ESMM SMM01PRROCW30*:无效10:下次RD有效读IRR11:下次RD有效读ISR1:查询8259A状态0:不查询标标志志位位0*:无效10:不设置特殊屏蔽方式11:设置特殊屏蔽方式1.中断查询字:查询有无中断请求查询字的格式及其各位含义:9.3.5 82C59A的状态字的状态字 哪个引脚有请求查询字W00A0D7 D6 D5 D4 D3 D2 D1 D0IW2W1无请求 0有请求 10 0 0 IR00 0 1 IR10 1 1 IR20 1 1
34、 IR3 1 0 0 IR4 1 0 1 IR5 1 1 0 IR61 1 1 IR7 2.状态字IRR:其内容表明哪个输入引脚有中断请求3.状态字ISR:其内容表明哪个中断正在被服务IRR0A0D7 D6 D5 D4 D3 D2 D1 D0ISR0A0D7 D6 D5 D4 D3 D2 D1 D04.状态字IMR:其内容表明哪个中断请求被屏蔽IMR1A0D7 D6 D5 D4 D3 D2 D1 D09.3.6 82C59A的工作方式的工作方式 n1.1.中断屏蔽方式中断屏蔽方式 n普通的中断屏蔽方式普通的中断屏蔽方式 优先权低的中断请求不能打断优先权高的中断服务。OCW3中的ESMM=0,n
35、特殊的中断屏蔽方式特殊的中断屏蔽方式 无论CPU是否正在处理较高级的中断,只要未被屏蔽的中断请求到来(可能是较低级的),CPU都会响应,就像优先权不起作用一样。OCW3中的ESMM=1 82C59A的工作方式的工作方式n2.2.中断嵌套方式中断嵌套方式 n非特殊全嵌套方式非特殊全嵌套方式(普通全嵌套方式)低级或同级中断请求,不能打断高级的中断服务 。ICW4的SFNM=0 n特殊全嵌套方式特殊全嵌套方式 在级联情况下,主片能实现同级中断嵌套。ICW4的SFNM=1 82C59A的工作方式的工作方式n3.3.设置优先级的方式设置优先级的方式 n固定优先级固定优先级 82C59A的8个中断源 的优
36、先级固定为IR0IR1IR7。OCW2的R=0n旋转优先级旋转优先级 82C59A的8个中断源的优先级别随着中断响应的结束动态变化。优先权旋转分为两种形式:n优先级自动旋转方式优先级自动旋转方式n优先级特殊旋转方式优先级特殊旋转方式 82C59A的工作方式的工作方式n优先级自动旋转方式优先级自动旋转方式 82C59A被初始化后的优先级自动安排为从高到低依次是IR0IR7,以后则按旋转方式工作。n优先级特殊旋转方式优先级特殊旋转方式 自动旋转方式不同的是,在82C59A被初始化后,并不自动安排中断源的优先级,而是要用命令字OCW2的L2L0三位的编码指定一个最低最低优先级,以后则按旋转方式工作。
37、82C59A的工作方式的工作方式n4.4.中断结束方式中断结束方式 当一个中断服务程序完成时,必须给82C59A发一个命令,复位ISR中的对应位,用以表示中断服务已经完成。82C59A可工作在不同的中断结束方式:n非自动中断结束非自动中断结束n自动中断结束自动中断结束 82C59A的工作方式的工作方式n非自动中断结束:软件结束中断服务。(最后)非自动中断结束:软件结束中断服务。(最后)必须在中断服务程序返回前用软件向82C59A发EOI结束命令:n第一,若是非级联方式,只需发一个第一,若是非级联方式,只需发一个EOIEOI命令。命令。n第第二二,若若是是级级联联方方式式,除除了了给给主主828
38、2C59AC59A发发EOIEOI命命令令之之外外,还要给从还要给从8282C59AC59A发发EOIEOI命令。命令。n第第三三,非非特特殊殊的的EOIEOI命命令令:8282C59AC59A工工作作在在非非特特殊殊全全嵌嵌套套方方式式,则则被被服服务务的的中中断断源源就就是是优优先先权权最最高高的的,那那么么,只需用一般的只需用一般的EOIEOI命令使它在命令使它在ISRISR的相应位复位。的相应位复位。n第四,特殊的第四,特殊的EOIEOI命令:命令:8282C59AC59A工作在特殊全嵌套方式,工作在特殊全嵌套方式,8282C59AC59A不能确定刚结束的中断源的等级,此时应该用不能确
39、定刚结束的中断源的等级,此时应该用OCWOCW2 2的的L L2 2L L0 0三位的编码来指定复位哪一位。这就是特三位的编码来指定复位哪一位。这就是特殊的中断结束命令。殊的中断结束命令。82C59A的工作方式的工作方式n自动中断结束命令:硬件结束中断服务。(最前)自动中断结束命令:硬件结束中断服务。(最前)将ICW4中的AEOI位设置为1。它不是靠软件发结束命令EOI=1来复位ISR中的对应位,而是在刚一响应中断时的第二个 期间就由此 的后沿(上升沿)使82C59A自动复位ISR中的对应位。只适用于82C59A的单片使用,中断请求不频繁,并且没有中断嵌套的情况。82C59A的工作方式的工作方
40、式n5.5.查询中断方式查询中断方式 查询方法:向82C59A写入OCW3,并使P=1 从偶地址端口读入查询字 其格式和定义如下:I是中断特征位,I=182C59A有中断请求;I=082C59A没有中断请求,可查询别的82C59A片子。在I=1时,W2W0的编码表明当前优先级最高的中断请求是哪一个。W2W0=000111分别对应IR0IR7。82C59A的工作方式的工作方式n6.6.读取状态方式读取状态方式 读取方法:当当RIS=1时,读时,读ISR的内容的内容当OCW3的P=0,RR=1时:当当RIS=0时,读时,读IRR的内容的内容注意:注意:从偶地址端口偶地址端口读入 屏蔽寄存器屏蔽寄存
41、器IMR的内容随时可以从的内容随时可以从奇地址端口奇地址端口读出,读出,而不用发读命令。而不用发读命令。82C59A的工作方式的工作方式n7.7.级联方式级联方式 在较大的微机应用系统中,可用多片82C59A级联来扩展中断源。一个主82C59A最多可级联8个从82C59A,从而把中断源扩展到64个。若ICW1中的SNGL位为0,表示为级联方式。在这种方式下,典型的硬件连接如图9.7所示,图图9.7 级联方式的连接电路级联方式的连接电路 CS A0 D7-D0 INTA INTCAS0CAS1CAS2SP/EN IR7 IR6-IR0从8259 1#CS A0 D7-D0 INTA INTCAS
42、0CAS1CAS2SP/EN IR7 IR6-IR0从8259 2#CS A0 D7-D0 INTA INTCAS0CAS1CAS2SP/EN IR7 IR6-IR0主8259GNDGNDVcc地址总线(16)控制总线数据总线82C59A的工作方式的工作方式n8.8.连接系统总线的方式连接系统总线的方式 n缓冲方式缓冲方式 当82C59A在一个大系统中使用时,82C59A通过总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下,存在对总线驱动器的选通问题。为此,将82C59A的 引脚和总线驱动器的允许端相连。n非缓冲方式非缓冲方式 非缓冲方式是相对于缓冲方式而言的。当系统中只有单片使用或有少
43、数几片级联而系统又不大时,82C59A的数据线可直接与CPU系统的数据总线相连,而不用接驱动器。这时 为输入端。9.3.7 82C59A的编程的编程 n82C59A的编程分为两种:n初始化编程:复位后写入初始化编程:复位后写入n工作方式编程:需要时写入工作方式编程:需要时写入n读取状态编程:需要时读出读取状态编程:需要时读出n系统复位后,由初始化程序对8259置入初始化命令字ICW。初始化后可通过发出操作命令字OCW来定义8259A的操作方式,实现对8259A的控制。初始化命令字只发一次,操作命令字可以重置,以动态改变8259A的操作与控制方式。表表9.2 82C59A的读的读/写操作写操作
44、82C59A的编程的编程n1.1.初始化编程初始化编程 初始化编程是由CPU向82C59A写入24个字节的初始化命令字ICW。目的是让82C59A开始正常工作之前处于起始点。82C59A的初始化顺序是严格的。Y 当当CPU向向82C59A的偶地址端的偶地址端口写入一个命令字,且口写入一个命令字,且D4=1时,则时,则被被82C59A内部逻辑解释为初始化命内部逻辑解释为初始化命令字令字ICW1,启动启动82C59A中的初始中的初始化顺序,紧接着向奇地址端口写入化顺序,紧接着向奇地址端口写入的一个字则被认为是的一个字则被认为是ICW2。这两个这两个命令字是必须写的,而命令字是必须写的,而ICW3和
45、和ICW4是否要写入,则视情况而定。若是否要写入,则视情况而定。若是级联使用(即是级联使用(即SNGL=0),),那么那么下一个向奇地址写入的命令自动辩下一个向奇地址写入的命令自动辩认为认为ICW3,否则不必写入。如果根否则不必写入。如果根据系统要求所确定的据系统要求所确定的ICW4不等于不等于00H,那么继那么继ICW3之后,向奇地址之后,向奇地址端口写入的必定是端口写入的必定是ICW4。当当ICW4=00H,即即ICW1中的中的 IC4=0,不必写入不必写入ICW4。NICW1ICW2级联方式?ICW3需要ICW4?ICW4NY例9.1:设某8088系统中使用一片82C59A,其端口地址为
46、210H、211H,若按系统要求,中断请求为电平触发,其8个中断源的类型号为60H67H,试编写初始化程序段。n解:n按要求确定初始化命令字:ICW1:00011011B ICW2:01100000B(只有前5位有效)ICW4:00000001B 例9.1:n初始化程序段:MOV DX,210H ;DX指向偶地址端口MOV AL,1BH ;写ICW1OUT DX,ALMOV DX,211H ;DX指向奇地址端口MOV AL,60H ;写ICW2OUT DX,ALMOV AL,01H ;写ICW4OUT DX,AL82C59A的编程的编程n2.2.工作方式编程工作方式编程 n工作方式编程是CPU
47、向82C59A写入操作命令字OCW1、OCW2和OCW3,它们的作用是规定82C59A的工作方式。工作方式命令字(即操作命令字)是在82C59A已经初始化以后的任何时间写入的,并且写入顺序没有任何限制。例9.2:n某个以8088为CPU的数据采集系统中,使用两片82C59A接成主从控制器,主片的端口地址为20H和21H,中断类型码为60H67H,从片的端口地址为408H和409H,中断类型号为68H6FH。按系统要求,所有中断请求采用边沿触发,普通屏蔽,主片用特殊全嵌套,从片用非特殊全嵌套方式,一般结束,优先权自动旋转方式。n硬件接线如图9.9所示。n试对这两片82C59A进行初始化,并设置它
48、们的工作方式。图图9.9 例例9.2硬件接线图硬件接线图 例9.2:n解:n确定初始化命令字和操作命令字:ICW1:00010001B(主、从片相同)ICW2:01100000B主片,01101000B从片 ICW3:10000000B主片,00000111B从片 ICW4:00010001B主片,00000001B从片 OCW1:写入ICW后,82C59A自动将IMR清零,因此,如开放所有中断请求,则不必再写入OCW1。在使用中要改变这种情况时可随时写入。OCW2:10000000B(主、从片相同)OCW3:00001000B(主、从片相同)例9.2:n编程:编程:MOV AL,11H ;写
49、主片ICW1OUT 20H,ALMOV DX,408H ;写从片ICW1OUT DX,ALMOV AL,60H ;写主片ICW2OUT 21H,ALMOV DX,409H ;写从片ICW2MOV AL,68HOUT DX,ALMOV AL,80H ;写主片ICW3OUT 21H,ALMOV AL,07H ;写从片ICW3OUT DX,ALMOV AL,11H ;写主片ICW 4OUT 21H,ALMOV AL,01H ;写从片ICW4OUT DX,ALNOV AL,80H ;写主片OCW2OUT 20H,ALMOV DX,408H ;写从片OCW2OUT DX,ALMOV AL,08H ;写主
50、片OCW3OUT 20H,ALOUT DX,AL ;写从片OCW39.3.8 82C59A应用举例应用举例n1.IBM PC/XT中以中以82C59A为核心的中断逻辑为核心的中断逻辑82C59A的编程的编程n2.2.应用举例应用举例 例例9.3:在IBM PC/XT的62芯总线的IRQ2端输入一中断请求信号,该信号可由8253产生,也可由分频电路产生。要求每中断一次,CPU响应后CRT上显示一串字符“THIS IS A 82C59A INTERRUPT!”,并且中断10次后返回DOS。例例9.3:n已知:IBM PC/XT内82C59A的端口地址是20H和21H,并已初始化成边沿触发、普通屏蔽