第十一讲 8259

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV AL,13H OUT 20H,AL MOV AL,8 OUT 21H,AL MOV AL,0DH OUT 21H,AL 套 MOV AL,0FFH OUT 21H,AL ;OCW1,屏蔽所有中断 ;ICW1,单片, ;边沿触发,后跟ICW4 ;ICW2,送中断向量地址 ;ICW4,8086模式, ; 一般EOI,缓冲方式,全嵌
5.3 8259A可编程中断控制器 . 可编程中断控制器
(4)初始化命令字ICW4(A0=1) 定义了若干中断管理方式。
例如,在PC/XT机中,单片8259A,不需要 写ICW3,ICW1是通过20H端口写入的;ICW2和 ICW4是通过21H端口写入的,先写ICW2,紧接着 写ICW4,8259A内部自动将这两个命令字分别写 至不同的寄存器中。 例5.1 8259A的初始化程序如下:
3.在微处理器开中断状态下,则在当前指 令执行结束,发起两个中断响应周期,用两个 INTA信号作为中断响应信号。 4.第一个脉冲信号使IRR锁存功能失效, 暂不接收IR0~IR7线上的中断请求。将选中的优先 权最高的ISR位置位,对应的IRR位复位。 5.第二个脉冲信号使8259A经数据总线向 微处理器输送一个8位的中断类型码,并有效IRR 锁存功能,允许接收IR0~IR7线上的中断请求。
5.3.2 结构及引脚 . . 1. 引脚
5.3 8259A可编程中断控制器 . 可编程中断控制器
2. 寄存器及控制电路各部分功能
5.3.3 8259A管理中断过程 . . 管理中断过程 8088/8086系统8259A的中断管理过程如下: 1.当某中断源申请中断服务,通过引脚 IR0~IR7之一向8259A发出中断请求,中断请求寄 存器IRR的相应位置位。 2.若中断屏蔽寄存器IMR的相应位未被屏 蔽,则该中断源的中断请求被送到优先权裁决电 路。如果同时有多个中断源申请中断,8259接受 当前优先级最高的中断源的中断请求;如果允许 中断嵌套,8259接受比当前正在服务的优先级高 的中断源的中断请求,8259A通过INT引脚向微处 理器送出中断请求信号。
5.3 8259A可编程中断控制器 . 可编程中断控制器
5.3 8259A可编程中断控制器 . 可编程中断控制器
(1)初始化命令字ICW1 (A0=0,标志:D4=1)
(2)初始化命令字ICW2 (A0=1)
5.3 8259A可编程中断控制器 . 可编程中断控制器
(3)初始化命令字ICW3 (A0=1) 定义8259A的级联方式。
5.3.4 8259A的命令 的命令 初始化编程(ICW1~ICW4): 初始化编程 : 由微处理器向8259A送3~4个字节的初始化 命令字 ICW(Initialization Command Word)。在 8259A开始正常工作之前,必须先送初始化命令 字,用以设定8259A的基本工作方式,使其处于 初始状态,初始化操作开机只作一次。 工作方式编程(OCW1~OCW3): 工作方式编程 由微处理器向8259A送三个字节的操作命令 字 OCW(Operation Command Word) 。 以 规 定 8259A的工作方式,例如:设置中断屏蔽;结束 中断服务;改变优先权循环;读取中断状态等。 操作命令字可在8259A初始化以后的任何时间写 入,用以对中断处理过程实现动态控制。
ቤተ መጻሕፍቲ ባይዱ
6.微处理器将该中断类型码乘以4,获得其 在中断向量表中的地址指针,取出中断服务程序 的入口地址(包括段地址和段内偏移量) 并转去执 行。 7.若8259A工作在自动结束中断AEOI模式, 在第二个INTA脉冲结束时,使中断源在ISR中的 相应位复位;若8259A工作在一般或者特殊结束 中断,直至中断服务程序结束,微处理器向 8259A发出一般或者特殊EOI命令,才使ISR中的 相应位复位。
OCW2命令位编码功能: ·一般EOI命令(001):表示中断服务结束,中断服 务寄存器中置1的优先级最高ISRi位复位,优先级不循环。 ·特殊EOI命令(011):表示中断服务结束,由L2L1L0 编码指定的中断所对应的ISRi位复位,优先级不循环。 ·设置优先级循环命令(110):该命令可以改变系统 的中断优先级,L2L1L0编码有效并指定最低优先级。 ·一般EOI优先级循环命令(101):将使ISR寄存器中 最高优先级的ISRi位复位,并使其优先级变为最低。设置 OCW2时先关中断(CLI),在该命令之后开中断 (STI)。 ·特殊EOI优先级循环命令(111):由L2L1L0指定要 复位的且降为最低优先级的ISR位的编码。
5.3.5 8259A工作方式 . . 工作方式 1.中断级联(一个主8259A,若干个从8259A )
图5.21 8259A级联系统
2.中断嵌套 包括:全嵌套模式和特殊全嵌套模式。 (1)全嵌套模式:中断优先权是固定的, IR0优先权最高,IR7优先权最低(除非用优先权自 动循环来改变)。优先级高的中断请求可以嵌套低 级的中断服务。
8259A可编程中断控制器 5.3 8259A可编程中断控制器
Intel公司、专用管理中断、可编程芯片。 内部包括:中断源识别、中断源优先级裁 决和中断屏蔽等功能电路, 可编程设定: 中断请求方式; 中断嵌套方式; 中断结束方式; 中断优先级等。 可多片级联构成8级~64级优先中断管理系 统。
5.3.1 8259A基本功能 . . 基本功能 Intel 8259A是可编程的中断控制器。 主要功能: 1.具有8级优先权管理,通过级连可扩展至 64级优先权管理系统。 2.每一级中断源都允许产生中断也可以被屏 蔽。 3. 在中断响应周期,8259A可以向微处理器 提供被其选中的中断源的中断类型码,根据中断 类型码可以转至该中断源的中断服务程序。 4. 可 通 过 编 程 来 设 定 8259A 的 几 种 工 作 方 式。 。
2.写8259A的操作命令字OCW1~OCW3 初始化编程之后,8259A已可以按默认的工 作方式接受中断请求输入。在8259A工作期间可 使用操作命令字重新设置其工作方式、屏蔽某些 中断源或读状态信息 。 ( 1)操作命令字OCW1(A0=1) 该命令字用来设置或清除对中断源的屏蔽。 动态改变中断的优先级 。
读取ISR寄存器的程序如下: MOV AL,0BH ;OCW3,读ISR OUT 20H,AL NOP IN AL,20H ;读ISR寄存器 MOV AH,AL OR AL,AH ;ISR7~0是全为0? JZ DONE ;是,不作任何处理 MASK:IN AL,21H ;读IMR OR AL,AH ;屏蔽掉正在服务的中断源 OUT 21H,AL MOV AL,20 ;OCW2,发中断结束命令 EOI OUT 20H,AL DONE: ……
1.写初始化命令字ICW1~4 .写初始化命令字 MPU 用 一 条 输 出 指 令 向 8259A 写 入 一 个 命 令 字 , 其 D4=1,输出指令地址中A0=0, 则被解释为初始化命令字 1(ICW1)。ICW1启动了8259A 的初始化过程,即对8259A进 行复位: 由低到高边沿触发; 清零中断屏蔽寄存器; 优先级IR0最高,IR7最低; 清除特殊屏蔽模式,设置状 态读为IRR等。
( 2)操作命令字OCW3 (A0=0,标志 : D4D3=01) 该命令可以用来设置查询方式、特殊屏蔽方 式,以及用来读8259的中断请求寄存器IRR、中 断服务寄存器ISR、中断屏蔽寄存器IMR的当前状 态。
在PC机中,OCW命令的端口地址分别为:OCW1 为 21H;OCW2和OCW3为20H。 检查中断屏蔽寄存器程序如下: MOV AL,0 ;OCW1, IMR写入全0。 OUT 21H,AL IN AL,21H ;读IMR状态 OR AL,AL ;IMR=0? JNZ ERR ;若不为全0,则转出错程序 ;ERR MOV AL,0FFH ;OCW1,IMR写入全1 OUT 21H,AL IN AL,21H ;读IMR状态 ADD AL,1 ;IMR是不是全1 JNZ ERR ;若不是,则转出错程序ERR …… ERR:
(2)特殊全嵌套模式 用于级联系统中的主片8259A。当从8259A的一个中 断请求被响应后,若该从片有更高优先级的中断请求,则 会先响应级别更高的中断请求,服务完成后再返回级别低 的中断服务继续执行。 与全嵌套模式的两点不同: 1)当某一个从8259A有中断请求,MPU响应以后, 这个从8259A的中断并没有被屏蔽,换句话说,这个从 8259A中优先级高的中断源的中断申请仍可以产生(在全嵌 套模式中这样的中断是被屏蔽的)。 2)由于对主8259A可以指定中断优先级并且循环, 不能确定当前的最高优先级,因此当某个中断源中断服务 程序结束之前,必需向主/从8259A发送特殊EOI(中断结 束)命令,将指定的中断服务寄存器中某位复位。
图5.18 操作命令字OCW1
( 2)操作命令字OCW2 (A0=0,标志 : D4D3=00 ) 该命令字用来设置优先级是否进行循环、循 环的方式及中断结束的方式。
R、SL、EOI三位的不同组合决定了七种不同的工作方式,其中三种工作方式中要用 到OCW2的最低三位即L2、L1、L0,这3位二进制编码决定了8个中断源的某一个被特殊EOI 信号复位,或规定某一个的优先权最低。
(2)一般中断结束方式(一般EOI) 当8259A工作在全嵌套模式,则服务完成的 中断源的优先权最高,可以用一般EOI命令使它 ISR的相应位复位。在级联系统,主8259A 中IR0 优先权最高,IR7 优先权最低,因此只需将ISR中 最高置1位清除;而从8259A 的ISR7~0中只有一个 ISRi=1,可直接清除。一般中断结束命令通过写 OCW2设定为:00100000B(20H)。 例如:在PC/XT中,写OCW2的口地址为20H。 则在中断服务程序结尾执行下列指令: 例5.2 发中断服务结束命令 MOV AL,20H OUT 20H,AL IRET
·中断优先级循环控制位 。R=1起动优先级循环, 中断优先级循环控制位R。 中断优先级循环控制位 R=0停止优先级循环方式。 ·L2L1L0 有效标志位 。 SL=1,则L2L1L0 选择 有效标志位SL。 有效;若SL=0,则无效。 ·指定中断源编码 2L1L0 。 用于指定系统中最 指定中断源编码L 指定中断源编码 低优先级中断源的编码,或者指定某个中断源中断 服务结束,即清除其在中断服务寄存器中的对应位。 ·中断结束命令控制位 中断结束命令控制位EOI: : 中断结束命令控制位 ICW4的AEOI=1(自动EOI),8259A在第二 个中断响应周期将中断源的相应ISRi位复位。 ICW4的AEOI =0(非自动EOI),IRET前, 必须写一条OCW2命令字,置位EOI,将此中断源 对应的ISRi位复位。
3.中断结束方式 中断结束 (End Of Interrupter)命令(MPU → 8259A)的作用是:使这个中断源在ISR中的相 应位复位。 (1)自动中断结束模式(AEOI) 在ICW4 中设定这种模式,如果AEOI=1,则 在第二个中断响应周期信号的后沿8259A自动地 使中断源在ISR中的相应位复位。这是一种预置 中断结束的方式,当ISRi=0表示相应的中断源的 中断服务已完成,这种方式显然只能用于非中断 嵌套情况下。
第五章 微机接口技术
本章要求: 1. 掌握接口的概念、功能及一般设计方法。 2. 掌握四种I/O控制方式传输数据的工作过程。 3. 掌握中断、中断向量、中断向量表、中断 类型码等概念,MPU对中断的响应过程。 3. 了解可编程中断控制器8259A的内部结构 和功能,掌握其初始化命令字ICW1~ICW4和工作 命令字OCW1~OCW3的设置方法,并对常用的一 些工作方式会应用。 4. 掌握直接存储器存取(DMA)方式的工作 原理及相关概念;了解DMAC8237A的工作方式、 编程及应用。
相关文档
最新文档