第9章中断技术与中断控制器_第1页
第9章中断技术与中断控制器_第2页
第9章中断技术与中断控制器_第3页
第9章中断技术与中断控制器_第4页
第9章中断技术与中断控制器_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

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 INTRINTA接口设备3接

5、口设备2接口设备1菊花链逻辑电路中断回答集电极开路门(OC门)INT1+INT2+INT3+5VINTR=INT1+INT2+INT3当INTA信号沿菊花链行进时,最靠近CPU并发出INT请求的接口将首先拦截住INTA信号,并送出中断类型码,进入相应的中断处理程序;在服务完成后撤销其请求(解除对下一级的阻塞和封锁)。INTRINTA中断请求9 9.1.3 中断请求与中断屏蔽中断请求与中断屏蔽 2. 2. 中断屏蔽中断屏蔽 内部屏蔽:内部屏蔽: CPU不响应中断(关中断)不响应中断(关中断)中断屏蔽:中断屏蔽: 外部屏蔽:中断请求信号不能送到外部屏蔽:中断请求信号不能送到CPUn 可屏蔽中断可屏

6、蔽中断 :受:受IF控制 (IF为“1”时中断允许,IF为“0”时中断屏蔽)n 非屏蔽中断:不非屏蔽中断:不受受IF控制 (无论IF为“1”或为“0” 都允许中断) (但可设计外部屏蔽电路进行屏蔽)1. 中断请求中断请求 中断源向CPU发出的请求中断的信号叫中断请求。CPU在执行完每条指令后,自动检测中断请求输入线,以确定是否有外部发来的中断请求信号。 指内部屏蔽指内部屏蔽9.1.4 中断服务程序中断服务程序 n中断服务程序:中断服务程序:为完成中断源所期望的功能而编写的程序 。n中断服务程序的主要内容:中断服务程序的主要内容:在中断服务程序中,主要是进行输入/输出操作 或发出一系列控制信号

7、,这些具体操作构成了中断服务程序的主体。另外还有一些附加操作,因此:中断服务程序的主要内容有:中断服务程序的主要内容有:n保护现场 n开中断n具体中断处理具体中断处理 n关中断 n恢复现场 n开中断、中断返回 9.1.5 中断隐操作和中断向量中断隐操作和中断向量 n中断隐操作中断隐操作: CPU响应中断时,由内部硬件执行的一系列处理过程。响应中断时,由内部硬件执行的一系列处理过程。隐操作把隐操作把CPU引向中断服务程序引向中断服务程序n中断类型、中断向量、中断向量表:中断类型、中断向量、中断向量表:中断类型:中断源的编号中断类型:中断源的编号中断向量:中断服务程序的入口地址中断向量:中断服务程

8、序的入口地址中断向量表:内存中存放中断向量的区域中断向量表:内存中存放中断向量的区域以上三者关系:以上三者关系:中断向量在中断向量表中第一个单元的地址中断向量在中断向量表中第一个单元的地址=中断类型中断类型4 4第第1条可执行指令的条可执行指令的第第1个字节的地址个字节的地址9.1.6 中断响应过程中断响应过程 n对于可屏蔽中断,当对于可屏蔽中断,当CPU检测到有中断请求时,如检测到有中断请求时,如果满足响应条件就要予以响应。具体过程如下:果满足响应条件就要予以响应。具体过程如下: n关中断、保护断点关中断、保护断点 n保护现场保护现场 n开中断开中断 n具体中断处理具体中断处理 n关中断关中

9、断 n恢复现场恢复现场 n开中断、中断返回开中断、中断返回 属于隐操作属于隐操作属于中断服务程序属于中断服务程序可选择可选择可选择主主 体体9.2 8086/8088中断系统中断系统 n中断系统:实现中断的软件和硬件的总和。中断系统:实现中断的软件和硬件的总和。9.2.1 中断系统的基本功能中断系统的基本功能 n要求能判断中断源的优先级,并按优先权的要求能判断中断源的优先级,并按优先权的高低决定中断响应的顺序。高低决定中断响应的顺序。n要求中断系统能实现中断和返回。要求中断系统能实现中断和返回。n要求中断系统能实现中断嵌套,即高优先级要求中断系统能实现中断嵌套,即高优先级中断源的中断请求能中断

10、低优先级中断源的中断源的中断请求能中断低优先级中断源的中断服务。中断服务。 9.2.2 8086/8088的中断系统的中断系统 非屏蔽中断(NMI) (2号) 外部中断 (硬件中断) 可屏蔽中断(INTR) 除法出错(0号) 内部硬件中断 单步跟踪(1号) 断点中断(3号) 内部中断 溢出中断(4号) 内部软件中断:INT n8086/8088的中断源分类:的中断源分类: 1. 8086/8088的中断系统结构的中断系统结构 8086/8088的中断系统结构如图所示。 非屏蔽中断请求中断逻辑INTn指令INTO指令除法出错单步中断8086/8088CPU可屏蔽中断请求8259ANMIINTR8

11、086/8088的中断系统的中断系统8086/8088的中断系统的中断系统 2. 2. 中断类型码与中断向量表中断类型码与中断向量表 n中断类型码中断类型码8086/8088为每个中断源指定的一个编号。n中断向量中断向量中断服务程序的入口地址。n中断向量表中断向量表把系统中所有的中断向量按中断类型码从小到大的顺序放到存储器的某一个区域所形成的一个表。n每个中断向量占用4 4个存储单元 ,8086/8088CPU的中断系统最多能处理256256个中断源。 8086/8088CPU以存储器的00000H-003FFH共1024个单元作为中断向量存储表。 8086/8088的中断系统的中断系统n中断

12、向量在中断向量表的存放次序中断向量在中断向量表的存放次序: 是按中断类型号顺序存放,共占4个单元。每个中断向量存放的首地址=中断类型号4。 CPU响应中断时,需把中断类型号N乘以4,得到中断向量的对应地址4N(该中断向量所占该中断向量所占4个字节单元的第一个字节单元的地址个字节单元的第一个字节单元的地址)。n中断向量的装入:中断向量的装入: 两个低字节单元的内容装入IP寄存器: IP= (4N,4N+1), 两个高字节单元的内容装入CS寄存器:CS = (4N+2,4N+3)。 外部(NMI、INTR):由接口提供n中断类型号中断类型号N的来源:的来源: 硬件中断:由内部硬件提供 内部 软件中

13、断:由中断指令提供8086/8088的中断系统的中断系统n例1:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址内存高地址 1E00 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)=

14、20Hn(0082H)=30Hn(0083H)=40H则:中断服务程序的入口地址为地 址 类 型 码 中 断 名 称 地 址 类 型 码 中 断 名 称 0 3 0 除 法 出 错 6 0 6 3 1 8 常 驻 B A S IC 入 口 4 7 1 单 步 6 4 6 7 1 9 引 导 程 序 入 口 8 B 2 不 可 屏 蔽 6 8 6 B 1 A 时 间 调 用 C F 3 断 点 6 C 6 F 1 B 键 盘 C T R -B R E A K 控 制 1 0 1 3 4 溢 出 7 0 7 3 1 C 定 时 器 报 时 1 4 1 7 5 打 印 屏 蔽 7 4 7 7 1 D

15、 显 示 器 参 数 表 1 8 1 B 6 保 留 7 8 7 B 1 E 软 盘 参 数 表 1 C 1 F 7 保 留 7 C 7 F 1 F 字 符 点 阵 结 构 参 数 2 0 2 3 8 定 时 器 8 0 8 3 2 0 程 序 结 束 , 返 回 D O S 2 4 2 7 9 键 盘 8 4 8 7 2 1 系 统 功 能 调 用 2 8 2 B A 保 留 8 8 8 B 2 2 结 束 地 址 2 C 2 F B 通 信 口 2 8 C 8 F 2 3 C T R L -B R E A K 退 出 地 址 3 0 3 3 C 通 信 口 1 9 0 9 3 2 4 标

16、准 错 误 出 口 地 址 3 4 3 7 D 硬 盘 9 4 9 7 2 5 绝 对 磁 盘 读 3 8 3 B E 软 盘 9 8 9 B 2 6 绝 对 磁 盘 写 3 C 3 F F 打 印 机 9 C 9 F 2 7 程 序 结 束 , 驻 留 内 存 4 0 4 3 1 0 视 频 显 示 I/O 调 用 A 0 F F 2 8 3 F 为 D O S 保 留 4 4 4 7 11 装 置 检 查 调 用 1 0 0 1 7 F 4 0 5 F 保 留 4 8 4 B 1 2 存 储 器 容 量 检 查 调 用 1 8 0 1 9 F 6 0 6 7 为 用 户 软 中 断 4 C

17、 4 F 1 3 软 盘 /硬 盘 /I/O 调 用 1 A 0 1 F F 6 8 7 F 不 用 5 0 5 3 1 4 通 信 I/O 调 用 2 0 0 2 1 7 8 0 8 5 B A S IC 使 用 5 4 5 7 1 5 盒 式 磁 带 I/O 调 用 2 1 8 2 C 3 8 6 F 0 B A S IC 解 释 程 序 5 8 5 B 1 6 键 盘 I/O 调 用 3 C 4 3 F F F 1 F F 未 用 5 C 5 F 1 7 打 印 机 I/O 调 用 图9.2 IBM PC/XT的硬件中断控制逻辑 3. 3. 外部中断外部中断 图9.2 IBM PC/XT

18、的硬件中断控制逻辑 NMI外部外部屏蔽电路屏蔽电路协协处处理理器器运运算算错错RAM奇奇偶偶校校验验错错I/O校校验验错错n可屏蔽中断可屏蔽中断INTR n当8086/8088的INTR引脚上有一个正跳变信号时,便产生硬件可屏蔽中断请求,这种中断请求可以用指令进行屏蔽或允许。当INTR的请求被允许时,如果现行指令执行完,其它中断响应条件也满足, CPU就会从 引脚发出中断响应信号。这时,中断源要向CPU提供中断类型码,CPU得到类型码后自动从中断向量表中取得相应的中断向量,从而转去执行中断服务程序。INTAn非屏蔽中断非屏蔽中断NMI 当CPU的NMI引脚上来一个高电平时,CPU自动产生类型码

19、为2的中断,并由此转入相应的服务程序。由于NMI引脚上的请求不能被CPU屏蔽,故常用于紧急情况的故障处理。 图图9.3 8086/80889.3 8086/8088可屏蔽中断的响应过程可屏蔽中断的响应过程 旧 ( P S W )旧 ( C S )旧 ( I P )新 ( I P )新 ( C S )I R E T 指 令 使 I P C S和 P S W 弹 出 堆 栈当 前 的 P S W 、 C S和 I P 压 入 堆 栈P S WC SI PC P U 和 总 线控 制 逻 辑94871 0中 断 子 程 序按 中 断 的 程 序返 回 被 中 断 的 程 序开 中 断中 断 子 程

20、序 执 行堆 栈中 断 向 量内 存65( 4 * N ) 作 为 I P( 4 * N + 2 ) 作 为 C S清 除 I F 和 T F当 前 指 令 执 行 完后 C P U 进 行 中 断 应答21接 口 发 中 断 请 求 信 号S T I接 口3中 断 类 型 号 N 送 C P U数据总线控制总线 地址总线8086/8088的中断系统的中断系统 4. 内部中断内部中断 内部中断都是非屏蔽型的内部中断都是非屏蔽型的n除法出错中断是类型除法出错中断是类型0n单步中断为类型单步中断为类型1n断点中断是类型断点中断是类型3n溢出中断是类型溢出中断是类型4n指令中断指令中断INT n80

21、86/8088的中断系统的中断系统n8086/8088中断的优先权中断的优先权优先权按从高到低的顺序排列为:优先权按从高到低的顺序排列为:除法出错中断除法出错中断INT n溢出中断溢出中断NMIINTR断点中断断点中断单步。单步。 9.3 可编程中断控制器可编程中断控制器82C59A 9.3.1 82C59A的主要特性的主要特性 n82C59A内部结构和外部引脚与8259A完全兼容。n单一正5V电源,全静态工作(无需外加时钟)。n该芯片集中断源识别、判优、提供中断类型号于一体。n每片82C59A能管理8级中断。n每片82C59A可送出8个8位的中断类型号(自动中断向量转移功能)。n能用软件屏蔽

22、中断请求输入,通过编程可选择多种不同的工作方式,以适应各种系统的要求。1)通过82C59A级联,在不增加外部电路的情况下,最多可用9片82C59A级连管理64级中断。 属于中断源的外部屏蔽属于中断源的外部屏蔽9.3.2 82C59A的内部结构的内部结构 IR0IR7:中断请中断请求寄存求寄存器器IRR优优先先权权电电路路在服务在服务寄存器寄存器ISR中断屏蔽寄存器中断屏蔽寄存器 IMR控控 制制 逻逻 辑辑数据总线数据总线缓冲器缓冲器读读 / 写逻写逻辑辑级连缓级连缓冲冲 / 比较比较器器INTAINTRDBRDWRA0CSCAS0CAS1CAS2SP / EN内部总线82C59A的内部结构的

23、内部结构 1. 1. 数据总线缓冲器数据总线缓冲器 : 8位双向三态缓冲器。位双向三态缓冲器。 CPU向82C59A写入的命令字传送的信息: CPU从82C59A读取的状态字 82C59A向CPU提供的中断类型码2读读/写逻辑写逻辑 :内部地址译码和操作控制。内部地址译码和操作控制。 接收来自CPU的读/写命令,完成规定的操作。操作过程由 、A0、 和 输入信号共同控制。 CSWRRD82C59A的内部结构的内部结构3. 3. 级联缓冲级联缓冲/比较器比较器: : 用于82C59A的级联和缓冲方式INTAINTA级连方式:传送从82C59A的编号。 第1个 期间,识别ID标志; 第2个 期间,

24、该从片向CPU提供中断类型码。缓冲方式:输出局部数据总线允许信号。82C59A的内部结构的内部结构 4. 4.中断请求寄存器(中断请求寄存器(IRRIRR):连接中断源 接收并寄存中断请求信号。(有请求时,IRR中相应位置“1”)。5.5.中断屏蔽寄存器(中断屏蔽寄存器(IMRIMR):屏蔽中断源 82C59A的8级中断请求独立地加以禁止或允许(当某位被置“1”时,与之对应的中断请求被屏蔽)。 6.6.优先级分析器(优先级分析器(PR):判断优先级。 检查中断服务寄存器(ISR)的状态,判别有无优先权更高的中断正在接受服务,若无,则把中断请求寄存器(IRR)中优先权最高的中断请求送入中断服务寄

25、存器。 82C59A的内部结构的内部结构7.7.中断服务寄存器(中断服务寄存器(ISR):寄存正在被响应的中断。 正在被服务的所有中断级,包括尚未服务完而中途被更高级的中断打断了的中断级,他们在ISR中的对应位被置“1”,响应完后立即清“0”。8.8.控制逻辑控制逻辑 :按设置的工作方式控制82C59A的全部工作。 有中断请求 IRR相应位置“1” 若中断未屏蔽 送PR 判优判优 送送ISR(相应位置“1”) 向CPU发出INT信号 若满足响应条件 CPU 发回INTA信号 82C59A向CPU传送中断类型码 中断响应完成 ISR相应位清“0”9.3.3 8282C59AC59A引脚功能引脚功

26、能 n82C59A的外部引脚 引脚可分为三个部分:n与CPU的接口引线n与外设的接口引线n用于级联的接口引线 C SW RR DD7D6D5D4D3D2D1D0C A S0C A S1G N DVC CA0I N T AI R7I R6I R5I R4I R3I R2I R1I R0I N TS P / E NC A S28 2 C 5 9 A123457891 01 11 21 461 32 82 72 62 52 42 22 12 01 91 81 71 52 31 6 1. 82C59A与与CPU的接口引脚的接口引脚 nD7D0:数据线,数据线,双向,三态 。 传送的信息:控制字、状态字

27、、中断类型码。nA A0 0:地址线,地址线,输入。偶地址端口: 3个控制字,3个状态字 寻址82C59A内部的端口: 奇地址端口: 4个控制字, 1个状态字n :写信号,:写信号,输出,低高电平有效。 n :读信号,:读信号,输出,低高电平有效。 n :片选信号,:片选信号,输出,低高电平有效。 nINTINT:中断请求信号,中断请求信号,输出,高电平有效。 用于由82C59A向CPU发出中断请求,连接CPU的可屏蔽中断请求输入端INTR。n :中断响应信号,:中断响应信号,输出,低电平有效。 用于接收CPU送回的中断响应负脉冲。连接CPU控制总线的 。 WRRDCSINTAOCW1,ICW

28、2,ICW3,ICW4ICW1, OCW2, OCW3IRR, ISR,中断查询字INTAIMRCS RD WR A0 D4 D3 读写操作 0 1 0 0 1 写ICW1 0 1 0 1 写ICW2、 ICW3 、ICW4、OCW1 0 1 0 0 0 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 :

29、从片编程/缓冲器允许信号,双向,低电平有效。 主片SP=“1” 当82C59A工作在非缓冲方式时:输入SP信号功能:功能: 从片SP=“0” =“0”允许 当82C59A工作在缓冲方式时:输出缓冲器允许信号 =“1”禁止ENSP/ENEN2. 82C59A与外设的接口引线与外设的接口引线 IR0IR7:中断请求,输入,高电平或上升沿有效。 用于接收从外设来的中断请求信号 。每个引脚分别连接一个中断源的 中断请求输出端或连接一个82C59A从片的INT端(级联方式时)。9.3.4 82 82C59AC59A的控制字的控制字 n82C59A共有共有7个控制字个控制字n4个初始化命令字(ICW1-I

30、CW4)n3个操作命令字(OCW1-OCW3)n82C59A共有共有4个状态字个状态字 IRR寄存器内容、ISR寄存器内容、 IMR寄存器内容、中断查询字8282C59AC59A的控制字的控制字1. 1. 初始化命令字初始化命令字 n初始化命令字通常是系统开机时,由初始化程序填写的,而且在整个系统工作过程中保持不变。n初始化命令字有四个ICW1、 ICW2、 ICW3、 ICW4。写入顺序为ICW1、ICW2、 ICW3、 ICW4其中:是否写入ICW3和ICW4,由ICW1决定。nICW1的格式和含义 ICW1:芯片控制初始化命令字芯片控制初始化命令字。 写入写入82C59A的偶地址端口。的

31、偶地址端口。初始化命令字初始化命令字ICW1写入后,写入后,8259内部完成初始化过程:内部完成初始化过程:(1)清除ISR和IMR寄存器; (2)指定中断优先级R0 R7;(3)从片的地址置成7; (4)特殊屏蔽方式复位;(5)自动EOI循环方式复位;(6)边沿触发器复位。8282C59AC59A的控制字的控制字ICW1IC4SNGLADI0*1LTIM*A0D7 D6 D5 D4 D3 D2 D1 D001不写ICW4写ICW401级联,写ICW3单片,不写ICW3=0(不用)8088/8086不用标志位0=边沿触发方式1=电平触发方式ICW1的格式和各位的定义如下:的格式和各位的定义如下

32、:当当ICW4=00H时,不写时,不写8282C59AC59A的控制字的控制字nICW2的格式和含义 ICW2:是设置中断类型码的初始化命令字是设置中断类型码的初始化命令字写到写到8259A的奇地址端口的奇地址端口, ,其格式和各位定义如下:其格式和各位定义如下: 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

33、 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写入写入82C59A的中断向量的中断向量主片主片ICW3:规定哪一个IR引脚接有从片 接有从片:其对应位设置为“1”IRi 未接有从片:对应位设置为“0” 例如:主82C59A的IR0、IR3上分别接有从片,则主片的ICW3=00001001。 ICW31A0D7 D6 D5 D4 D3 D2 D1 D0IR2IR5 IR4 IR3IR7

34、IR6IR1 IR0nICW3的格式和含义ICW3:标志主片标志主片/从片的初始化命令字从片的初始化命令字 写到82C59A的奇地址端口 只有在一个系统中使用了两片以上82C59A并级联时,才需要写入ICW3 8282C59AC59A的控制字的控制字n从片从片ICW3: 表明从片接在主片的哪一根IR线上。ICW31A0D7 D6 D5 D4 D3 D2 D1 D0ID200000ID1 ID0ID2ID1ID0从片所接的引脚000IR0001IR1111IR7ICW4: :方式控制初始化命令字方式控制初始化命令字 写入奇地址端口写入奇地址端口ICW4PMAEOIM/S10SFNM BUF00A

35、0D7 D6 D5 D4 D3 D2 D1 D00= 一般全嵌套方式1= 特殊全嵌套方式= 非缓冲方式,此时若用级联,由SP/ EN确定主从片。= 缓冲方式,本片为从片= 缓冲方式,本片为主片0 1 01 101选用80858086/808801正常EOI方式自动EOI方式 ICW4的格式和含义的格式和含义8282C59AC59A的控制字的控制字2. 2. 操作命令字操作命令字 n操作命令字在操作命令字在82C59A应用程序中使用,可在应用程序中使用,可在初始化后根据需要随时写入,并且在写入次序初始化后根据需要随时写入,并且在写入次序上没有严格的要求。上没有严格的要求。n操作命令字有操作命令字

36、有3个,个,OCW1OCW38282C59AC59A的控制字的控制字nOCW1中断屏蔽字中断屏蔽字OCW1: :中断屏蔽操作命令字中断屏蔽操作命令字写入82C59A的奇地址端口,其格式和各位定义如下: OCW1M01A0D7 D6 D5 D4 D3 D2 D1 D0M7 M6 M5 M4 M3 M2 M1中断屏蔽字:Mi=1 屏蔽中断屏蔽中断IRiMi =0 允许中断允许中断IRi8282C59AC59A的控制字的控制字nOCW2 控制中断结束和优先级循环方式的命令控制中断结束和优先级循环方式的命令 OCW2: : 设置优先级循环方式和发中断结束命令设置优先级循环方式和发中断结束命令 写入偶地

37、址端口写入偶地址端口 其格式和各位定义如下:其格式和各位定义如下: 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 固定优先级,发一般中断结束命令固定优先级,发一般中断结束命令0 1 0 无操作无操作0 1 1 固定优先级,发特殊中断结束命令固定优先级,发特殊中断结束命令1

38、 0 0 普通旋转优先级,不发中断结束命令普通旋转优先级,不发中断结束命令1 0 1 普通旋转优先级,发一般中断结束命令普通旋转优先级,发一般中断结束命令 1 0 特殊旋转优先级,不发中断结束命令特殊旋转优先级,不发中断结束命令1 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 0 IR6 1 1 1 IR7L2、L1、L0编码表(1) 中断结束命令中断结束命令 普通EOI结束方式:8259A收

39、到EOI结束命令后,自动将ISR中级别最高的置“1”位清“0”。 特殊EOI结束方式:正常EOI是自动清除级别最高的ISR位,而特殊EOI则清除由L0L2指定的ISR位。 自动AEOI结束方式:某中断被响应后,ISR对应位被置1,但CPU在中断响应的第二个负脉冲将ISR的对应位清0。此时,尽管CPU对某个外设正在进行中断服务,但在8259A中无指示,低级别的中断请求可打断高级别的中断服务,可能产生重复嵌套,嵌套深度无法控制。 在级联方式下,一般用非自动结束方式,中断结束时,要发两次中断结束命令,一次是对主片,另一次是对从片。IR77IR66IR55IR44IR33IR22IR11IR00默认优

40、先级IR74IR63IR52IR41IR30IR27IR16IR05循环优先级(2)优先级设定命令)优先级设定命令特殊循环:循环初态为:由L2L0编码设定最低优先级。例:若设定IR2对应的设备优先级最低,则IR3对应的设备优先级最高。(3)优先级循环)优先级循环普通循环:循环初态为:IR0最高 IR最低。nOCW3特殊屏蔽方式和查询方式命令字特殊屏蔽方式和查询方式命令字OCW3的功能有三个:设置和撤消特殊屏蔽方式;设置中设置和撤消特殊屏蔽方式;设置中断查询方式;设置对断查询方式;设置对82C59A内部寄存器的读出命令内部寄存器的读出命令 写入偶地址端口,其格式和各位定义如下: RIS0A0D7

41、 D6 D5 D4 D3 D2 D1 D00ESMM SMM01PRROCW30* :无效10下个读命令为读IRR11下个读命令为读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 IR3 1 0 0 IR4 1 0 1 IR5 1 1 0 IR61 1 1 I

42、R7 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的工作方式的工作方式 1.1.中断屏蔽方式中断屏蔽方式 普通的中断屏蔽方式普通的中断屏蔽方式(高级服务能屏蔽低级请求) 优先权低的中断请求不能打断优先权高的中断服务。OCW3中的ESMM=0 特殊的中断屏蔽方式特殊的中断屏蔽方式 (高级服务不能屏蔽

43、低级请求) 无论CPU是否正在处理较高级的中断,只要未被屏蔽的中断请求到来(可能是较低级的),CPU都会响应,就像优先权不起作用一样。ESMM=1且SMM=1 82C59A的工作方式的工作方式2.2.中断嵌套方式中断嵌套方式 n普通全嵌套方式普通全嵌套方式 低级或同级中断请求,不能打断高级的中断服务。ICW4的SFNM=0 n特殊全嵌套方式特殊全嵌套方式 在级联情况下,主片能实现同级中断嵌套。ICW4的SFNM=1 82C59A的工作方式的工作方式3.3.设置优先级的方式设置优先级的方式 n固定优先级固定优先级 82C59A的8个中断源的优先级固定为IR0IR1IR7。OCW2的R=0n旋转优

44、先级旋转优先级 82C59A的8个中断源的优先级别随着中断响应的结束动态变化。 OCW2的R=1 优先权旋转分为两种形式:n优先级自动旋转方式优先级自动旋转方式: :初态为初态为IR0IR1IR7。n优先级特殊旋转方式优先级特殊旋转方式: :初态由初态由OCW2的L2L0指定最低级。82C59A的工作方式的工作方式4.4.中断结束方式中断结束方式 当一个中断服务程序完成时,必须给82C59A发一个命令,复位ISR中的对应位,用以表示中断服务已经完成。82C59A可工作在不同的中断结束方式: 普通中断结束:ICW4中的AEOI=0非自动中断结束非自动中断结束 且OCW2中的EOI=1 特殊中断结

45、束:ICW4中的AEOI=0 OCW2中的SLSL=1且EOI=1自动中断结束自动中断结束 ICW4中的AEOI=1结束的中断由结束的中断由OCW2的L2L0指定n非自动中断结束:软件结束中断服务。(非自动中断结束:软件结束中断服务。(最后最后) 必须在中断服务程序返回前用软件向82C59A发EOI 结束命令:n第一,若是非级联方式,只需发一个第一,若是非级联方式,只需发一个EOIEOI命令。命令。n第二,若是级联方式,除了给主第二,若是级联方式,除了给主8282C59AC59A发发EOIEOI命令之命令之外,还要给从外,还要给从8282C59AC59A发发EOIEOI命令。命令。n第三,非特

46、殊的第三,非特殊的EOIEOI命令:命令:8282C59AC59A工作在非特殊全嵌工作在非特殊全嵌套方式,则被服务的中断源就是优先权最高的,那么,套方式,则被服务的中断源就是优先权最高的,那么,只需用一般的只需用一般的EOIEOI命令使它在命令使它在ISRISR的相应位复位。的相应位复位。n第四,特殊的第四,特殊的EOIEOI命令:命令:8282C59AC59A工作在特殊全嵌套方工作在特殊全嵌套方式,式,8282C59AC59A不能确定刚结束的中断源的等级,此时应不能确定刚结束的中断源的等级,此时应该用该用OCWOCW2 2的的L L2 2L L0 0三位的编码来指定复位哪一位。这就三位的编码

47、来指定复位哪一位。这就是特殊的中断结束命令。是特殊的中断结束命令。 82C59A的工作方式的工作方式n自动中断结束命令:硬件结束中断服务。(自动中断结束命令:硬件结束中断服务。(最前最前) 将ICW4中的AEOI位设置为1。它不是靠软件发结束命令EOI=1来复位ISR中的对应位,而是在刚一响应中断时的第二个 期间就由此 的后沿(上升沿)使82C59A自动复位ISR中的对应位。 只适用于82C59A的单片使用,中断请求不频繁,并且没有中断嵌套的情况。 INTAINTA82C59A的工作方式的工作方式5. 5. 查询中断方式查询中断方式 查询方法:向82C59A写入OCW3,并使P=1 从偶地址端

48、口读入查询字查询字W00A0D7 D6 D5 D4 D3 D2 D1 D0IW2W1无请求 0有请求 10 0 0 IR00 0 1 IR10 1 1 IR20 1 1 IR3 1 0 0 IR4 1 0 1 IR5 1 1 0 IR61 1 1 IR7 82C59A的工作方式的工作方式6.6.读取状态方式读取状态方式 读取方法: 当当RIS=1时,时,读读ISR的内容的内容当OCW3的P=0,RR=1时: 当当RIS=0时,时,读读IRR的内容的内容注意:注意:从偶地址端口偶地址端口读出 屏蔽寄存器屏蔽寄存器IMR的内容随时可以从的内容随时可以从奇地址端口奇地址端口读出,读出,而不用发读命令

49、。而不用发读命令。82C59A的工作方式的工作方式7. 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 INTCAS0CAS1CAS2SP/EN IR7 IR6- -IR0从8259 2#CS

50、A0 D7-D0 INTA INTCAS0CAS1CAS2SP/EN IR7 IR6- -IR0主8259GNDGNDVcc地址总线(16)控制总线数据总线82C59A的工作方式的工作方式8. 8. 连接系统总线的方式连接系统总线的方式 n缓冲方式缓冲方式 ICW4的BUF=1 当82C59A在一个大系统中使用时,82C59A通过总线驱动器和数据总线相连,这就是缓冲方式。在缓冲方式下,存在对总线驱动器的选通问题。为此,将82C59A的 引脚与总线驱动器的允许端相连。此时为输出。 n非缓冲方式非缓冲方式 ICW4的BUF=0 非缓冲方式是相对于缓冲方式而言的。当系统中只有单片使用或有少数几片级联

51、而系统又不大时,82C59A的数据线可直接与CPU系统的数据总线相连,而不用接驱动器。这时 为输入端。 ENSP/ENSP/主机8259 A总线驱动器ENSP/9.3.7 82C59A的编程的编程 n82C59A的编程分为:的编程分为:n初始化编程:初始化编程: 复位后写入复位后写入n工作方式编程:需要时写入工作方式编程:需要时写入n读取状态编程:需要时读出读取状态编程:需要时读出A0 D4 D3 RD WR CS 输入操作(读) 0 0 1 0 IRR、ISR或查询字数据总线(注1) 输出操作(写) 0 0 0 1 0 0 0 0 1 1 0 0 0 1 x 1 0 0 1 x x 1 0

52、0 数据总线OCW2(写OCW2) 数据总线OCW3(写OCW3) 数据总线ICW1(写ICW1) 数据总线OCW1、ICW2、ICW3 、ICW4(注2) 断开功能 X X X 1 1 0 X X X X X 1 数据总线为三态(无操作) 数据总线为三态(无操作) 表表9.2 82C59A的读的读/写操作写操作 82C59A的编程的编程1. 1. 初始化编程初始化编程 初始化编程是由初始化编程是由CPU向向82C59A写入写入24个字个字节的初始化命令字节的初始化命令字ICW。目的是让目的是让82C59A开始正开始正常工作之前处于起始点。常工作之前处于起始点。8282C59AC59A的初始化

53、顺序是严的初始化顺序是严格的格的 。Y 当当CPU向向82C59A的偶地址端口写入的偶地址端口写入一个命令字,且一个命令字,且D4=1时,则被时,则被82C59A内内部逻辑解释为初始化命令字部逻辑解释为初始化命令字ICW1,启动启动82C59A中的初始化顺序;中的初始化顺序; 紧接着向奇地址端口写入的一个字则紧接着向奇地址端口写入的一个字则被认为是被认为是ICW2。这两个命令字是必须写的;这两个命令字是必须写的; 而而ICW3和和ICW4是否要写入,则视情是否要写入,则视情况而定。若是级联使用(即况而定。若是级联使用(即SNGL=0),),那么下一个向奇地址写入的命令自动辩认那么下一个向奇地址

54、写入的命令自动辩认为为ICW3,否则不必写入;否则不必写入; 如果根据系统要求所确定的如果根据系统要求所确定的ICW4不等不等于于00H,那么继那么继ICW3之后,向奇地址端口之后,向奇地址端口写入的必定是写入的必定是ICW4。NICW1ICW2级联方式?ICW3需要ICW4?ICW4NY解:按要求确定初始化命令字: ICW1:00011011B ICW2:01100000B(只有前5位有效) ICW4:00000001B 例例9.1:设某8088系统中使用一片82C59A,其端口地址为210H、211H,若按系统要求,中断请求为电平触发,其8个中断源的类型号为60H67H,试编写初始化程序段

55、。初始化程序段:初始化程序段: MOV DX,210H ;DX指向偶地址端口 MOV AL,1BH ;写ICW1 OUT DX,AL MOV DX,211H ;DX指向奇地址端口 MOV AL,60H ;写ICW2 OUT DX,AL MOV AL,01H ;写ICW4 OUT DX,AL82C59A的编程的编程2.2.工作方式编程工作方式编程 n工作方式编程是工作方式编程是CPU向向82C59A写入操作命写入操作命令字令字OCW1、OCW2和和OCW3,它们的作用它们的作用是规定是规定82C59A的工作方式。工作方式命令的工作方式。工作方式命令字是在字是在82C59A已经初始化以后的任何时间

56、已经初始化以后的任何时间写入的,并且写入顺序没有任何限制。写入的,并且写入顺序没有任何限制。 例9.2:n某个以8088为CPU的数据采集系统中,使用两片82C59A接成主从控制器,主片的端口地址为20H和21H,中断类型码为60H67H,从片的端口地址为408H和409H,中断类型号为68H6FH。按系统要求,所有中断请求采用边沿触发,普通屏蔽,主片用特殊全嵌套,从片用非特殊全嵌套方式,一般结束,优先权自动旋转方式。n硬件接线如图9.9所示。n试对这两片82C59A分别进行初始化,并设置它们的工作方式。 CAS2CAS1CAS0CAS2CAS1CAS08259A(主 )8259A(从 )WR

57、RDD7D0INTAA0WRRDD7D0INTAA0CSIR7IR6IR5IR4IR3IR2IR1IR0VCCSP/ENGNDINTVCCSP/ENGNDINTIR7IR6IR5IR4IR3IR2IR1IR0CS+5中 断 请 求 输 入接 译 码 电 路 输 出接 译 码 电 路 输 出接 A0接 INTA接 IOW接 IOR接 DB接 CPU的 INTR图图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 ;写主片ICW1OUT 20H,ALMOV DX

温馨提示

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

评论

0/150

提交评论