




已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 输入输出和中断技术 n本章内容 n基本概念 n I/O端口的编址 n 输入输出的基本方法:无条件、查询、中断、DMA n中断 n中断基本概念 n8086/8088中断系统 n8259中断控制器 nDMA nDMA的基本概念 nDMA工作过程 nDMA的三种传输方式 6.1 输入/输出接口(I/O接口) n6.1.1 概述 n什么是I/O接口? 把外设连接到总线上的一组逻辑电路的总称 。实现外设与主机之间的信息交换。 nI/O接口要解决的问题 n速度匹配(Buffer) n信号电平和驱动能力(电平转换器、驱动器) n信号形式匹配(A/D、D/A) n信息格式(字节流、块、数据包、帧) n时序匹配(定时关系) nI/O接口的功能 nI/O地址译码与设备选择 n把选中的与总线相接,未选中的与总线隔离 (高阻态) n数据的缓冲与暂存 n缓解接口与CPU工作速度的差异 n对外设进行监测、控制与管理,中断 处理 n信号电平与类型的转换 n形式、格式、电平、功率、码制等 n6.1.2 I/O接口的编址方式 nI/O端口: I/O信息的三种类型:数据、命令、状态 。传送这三类信息的通道分别称为:数据端口(I 、O)、命令端口(O)、状态端口(I)。 n不同外设具有的端口数各不相同,计算机 中为每一个端口都赋予一个惟一编号称为端 口地址(或端口号、接口地址)。 n端口有两种编址方式:统一编址和独立编 址。 n1. 统一编址 n把外设接口与 内存统一进行编址 。各占据统一地址 空间的不同部分。 n优点 n指令统一, 灵活; n访问控制信 号统一。 n缺点 n内存可用地 址空间减小 0 地址空间(共1MB) 内存地址 (960KB) I/O地址 (64KB) FFFFFH EFFFFH F0000H n2. 独立编址 n外设地址空间和内存地址空间相互独立。 n优点:内存地址空间不受I/O编址的影响 n缺点:I/O指令功能较弱 n8088/8086 CPU的I/O编址方式 n采用I/O独立编址方式(但地址线与存储器共用 ) n地址线上的地址信号用 来区分: n 时为I/O地址 nI/O操作只使用20根地址线中的16根: A15 A0 n可寻址的I/O端口数为64K(65536)个 nI/O地址范围为0FFFFH n6.1.3 I/O端口地址的译码 n 、 、 A15 A0 nOUT指令将使总线的 信号有效 nIN指令将使总线的 信号有效 n当接口只有一个端口时,16位地址线一般应全部 参与译码,译码输出直接选择该端口;当接口具有多个 端口时,则16位地址线的高位参与译码(决定接口的 基地址),而低位则用于确定要访问哪一个端口。 例如: 某外设接口有4个端口,地址为2F0H 2F3H,则其基地址为2F0H,由A15A2译码得到, 而A1、A0用来确定4个端口中的某一个。 n6.1.4 I/O数据的传送方式 n并行 n一个数据单位(通常为字节)的各位同时传送 n速度快、距离短、成本高 n例:PC机的并行接口(通常用于连接打印机) n串行 n数据按位进行传送 n速度慢、距离远、成本低 n例: PC机的串行接口(通常用于串行通信) n6.2.1 接口电路的基本结构 6.2 简单接口电路 数据线 控制线 状态线 DB CB AB 数据输入寄存器 (or 三态门) 数据输出寄存器 (锁存器) 状态寄存器 (or 三态门) 命令寄存器 译码 电路 控制 逻辑 n数据输入/输出寄存器暂存输入/输出 的数据 n命令寄存器存放控制命令,用来设定接 口功能、工作参数和工作方式。 n状态寄存器保存外设当前状态,以供 CPU读取。 简单接口电路 n数据输入接口 n必须具有三态输出能力,以便与总线挂接 n外设有数据保持能力时可用三态门实现 n外设无数据保持能力时用三态输出的锁 存器实现 n数据输出接口 n常用锁存器实现 n三态门:高电平、低电平、高阻态 n通常一个器件中包含8个三态门 n常用芯片:74LS244(教材图6.3) n应用例子:开关接口 n工作波形图如下: A0A15 IOR# 译码输出 D0D7 开关状态 地址有效 简单的输入接口举例 n接口电路图如下: 83FCH 83FFH 译码器 n锁存器:由D触发器构成 n通常一个器件包含8个D触发器 n常用芯片:(教材图6.5、图6.6) n74LS273 n74LS374(具有三态输出的锁存器,内部结 构见图6.8) n应用例子:发光二极管接口 简单的输出接口举例 译 码 器 =1 =1 . . . . . . . . . +5V R D0 D7 CP Q0 Q7 . . . D0D7 A0A15 IOW# 74LS273 R 输入/输出接口综合应用例 子 n根据开关状态在7段数码管上显示数字或符号 n共阳极7段数码管结构见教材图6.10 n用74LS273作为输出接口,把数据送到7段数码 管 n74LS273的地址假设为F0H n用74LS244作为输入口,读入开关K0K3的状 态 n74LS244的地址假设为F1H n当开关的状态分别为00001111时,在7段数码 管上对应显示0F n(7段码表见下页) 符号 形状 7段码 .gfedcba 符号形状 7段码 .gfedcba 0 00111111801111111 1 00000110901100111 2 01011011A01110111 3 01001111B01111100 4 01100110C00111001 5 01101101D01011110 6 01111101E01111001 7 00000111F01110001 O1 I1 O2 I2 O3 I3 O4 I4 E1# K0K3 +5V G G2A G2B C B A 1 74LS244 D0 Q0 | Q1 D7 Q2 Q3 Q4 CP Q5 Q6 Q7 a b c d e f g DP 7406 反相器 74LS273Rx8 1 74LS138 D0D7 IOW# IOR# Y0 Y1 00F0H = 0000 0000 1111 0000 00F1H = 0000 0000 1111 0001 & 1 A7A4 A15A8 A3 A2 A1 A0 D0 D1 D2 D3 译码器 相应程序段如下: Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB7FH,67H,77H,7CH,39H,5EH,79H,71H LEABX, Seg7;取7段码表基地址 MOVAH, 0 GO:MOVDX, 00F1H;开关接口的地址为00F1H INAL, DX;读入开关状态 ANDAL, 0FH;保留低4位 MOVSI, AX;作为7段码表的表内位移量 MOVAL, BX+SI ;取7段码 MOVDX, 00F0H;7段数码管接口的地址为00F0H OUTDX, AL JMPGO 6.3 输入输出的控制方式 n主机与外设之间数据传送的控制方式有以 下四种: n无条件传送 n查询式传送 n中断方式传送 n直接存储器存取(DMA, Direct Memory Access) 6.3.1 无条件传送方式 n适用于总是处于准备好状态的外设 n以下外设可采用无条件传送方式: n开关 n发光器件(如发光二极管、7段数码管、灯 泡等) n继电器 n步进电机 n优点:软件及接口硬件简单 n缺点:只适用于简单外设,适应范围较窄 6.3.2 查询方式 n适用于外设并不总是准备好,而且对传送 速率、传送效率要求不高的场合。 nCPU在与外设交换数据前必须询问外设状 态“你准备好没有?” n对外设的要求:应提供设备状态信息 n对接口的要求:需要提供状态端口 n优点:软件比较简单 n缺点:CPU效率低,数据传送的实时性差 , 速度较慢 查询方式的流程图 超时? READY? 与外设进 行数据交换 超时错 读入并测试外设状态 Y N Y N 传送完 ? 防止死循环 复位计时器 N Y 注:多个外设时,查 询流程见教材图6.14 6.3.3 中断方式 nCPU无需循环查询外设状态,而是外部设 备在需要进行数据传送时才中断CPU正在 进行的工作,让CPU来为其服务。即CPU 在没有外设请求时可以去做更重要的事情 ,有请求时才去传输数据,从而大大提高 了CPU的利用率。 n优点:CPU效率高,实时性好,速度快。 n缺点:程序编制较为复杂。 6.3.4 DMA传输 n前面三种I/O方式都需要CPU作为中介: 外设 CPU 内存 两个含义: 1)软件:外设与内存之间的数据传送是通过 CPU执行程序来完成的(PIO方式); 2)硬件:I/O接口和存储器的读写控制信号、地 址信号都是由CPU发出的(总线由CPU控制)。 n 缺点:程序的执行速度限定了传送的最大 速度(约为几十KB/秒)解决:DMA传 输 nDMA传输: 外设 内存 n外设直接与存储器进行数据交换 ,CPU不 再担当数据传输的中介者; n总线由DMA控制器(DMAC)进行控制( CPU要放弃总线控制权),内存/外设的地址和 读写控制信号均由DMAC提供。 n优点:数据传输由DMA硬件来控制,数据 直接在内存和外设之间交换,可以达到很 高的传输速率(可达几MB/秒) 几个基本概念 n总线控制权、master、slave nDMAC编程周期:slave nDMAC控制总线进行数据传输周期:master nDMA的数据传输形式: 基本的 MEMI/O 和扩充的 MEMMEM I/O I/O DMA传送原理示意图 系统总线 CPUDMAC 存储器 外设接口 AEN IOW MEMW MEMR IOR MEMW MEMR IOW IOR AEN HOLD HLDA DRQ DACK AEN IOW IOR MEMW MEMR 外设发出DMA请求 DMAC向CPU申请总线 CPU响应,释放总线控制权 DMAC得到总线控制权,并发出DMA响应信号 由DMAC发出各种控制信号,控制外设与存储器之 间的数据传送 数据传送完后,DMAC撤销HOLD信号 CPU释放HLDA信号,并重新控制总线 nDMA控制器的工作过程 1)当外设准备好,可以进行DMA传送时,外设向 DMA控制器发出“DMA传送请求”信号(DRQ); 2)DMA控制器收到请求后,向CPU发出“总线请 求”信号HOLD,表示希望占用总线; 3)CPU在完成当前总线周期后会立即对HOLD信 号进行响应。响应包括两个动作:一是CPU将数据 总线、地址总线和相应的控制信号线均置为高阻态 ,由此放弃对总线的控制权。另一方面,CPU向 DMA控制器发出“总线响应”信号(HLDA)。 4)DMA控制器收到HLDA信号后,就开始控制总 线,并向外设发出DMA响应信号DACK; ,同时向外设发出I/O地址、 nDMA控制器的工作过程(续) 5)DMA控制器送出地址信号和相应的控制信号, 实现外设与内存或内存与内存之间的直接数据传送; 例如,向I/O接口发出读信号,同时往地址总线上发 出存储器的地址和存储器写信号和AEN信号,即可从 外设向内存传送一个字节。 6)DMA控制器自动修改地址和字节计数器,并判 断是否需要重复传送操作。当规定的数据传送完后, DMA控制器就撤销发往CPU的HOLD信号。CPU检 测到HOLD失效后,紧接着撤销HLDA信号,并在下 一时钟周期重新开始控制总线。 nDMA的三种传输方式: n连续传送(块传送) nDMAC申请到总线后,将一块数据传送完后 才释放总线,而不管中间DREQ是否有效。 n单次传送(每次传送一个字节) n每个DMA周期只传送一个字节就立即释放总 线。 n按需传送(猝发传送) n只要I/O接口的数据缓冲可用,就进行传送 。 Y N 允许DMA DMA请求? DMAC请求总线 CPU响应, DMAC获总线控制权 DMA传送一个字节 块结束? 地址增量,计数器减量 DMAC释放总线 Y n数据块传送 N N Y N 允许DMA DMAC请求总线 CPU响应, DMAC获总线控制权 DMA传送一个数据 块结束? 释放总线至少一个总线周期 地址增量,计数器减量 DMAC释放总线 Y n每次传送一个字节 测试I/O的DREQ DMA请求? N Y CPU响应, DMAC获总线控制权 DMA传送一个字节 块结束? 测试I/O的DREQ 有效? 地址增量,计数器减量 释放总线,请求中断 无效,释放总线 允许DMA DMA请求? DMAC请求总线 n按需传送 Y N Y N 一个总线周期 T DMAC控制总线,共传送n个数据 DMA1DMA2DMAn CPU重新控制总线CPU对总线控制 连续传送 T DMA共传送n个数据 DMA1DMA2DMAn 单次传送 DMA3 T 按需传送 DMA传送k个数据 DMA传送n-k个数据 FIFO可用FIFO满FIFO可用FIFO满 图例: DMA传输方式示意图: 6.4 中断技术 n6.4.1 中断的基本概念 n什么是中断? n与生活场景的比较 正在看书 电话铃响 接电话 继续看书 执行程序 事件发生 事件处理 继续执行程序 中断处理 中断请求及响应 实际场景计算机 中断返回 中断的定义 nCPU执行程序时,由于发生了某种随机 的事件(外部或内部),引起CPU暂时中 断正在运行的程序,转去执行一段特殊 的服务程序(称为中断服务程序或中断 处理程序),以处理该事件,该事件处 理完后又返回被中断的程序继续执行, 这一过程称为中断。 中断源 n引起CPU中断的事件中断源。例如: n外设请求输入输出数据,报告故障等 n事件掉电、硬件故障、软件错误、非法操作、 定时时间到等 n中断源分为:外部中断、内部中断 n内部中断:CPU内部执行程序时自身产生的中断 n外部中断:CPU以外的设备、部件产生的中断 n 8086/8088的外部中断信号:INTR、 NMI nINTR可屏蔽中断请求,高电平有效,受IF标 志的控制。IF=1时,执行完当前指令后CPU对它作出响 应。 nNMI非屏蔽中断请求,上升沿有效,任何时候 CPU都要响应此中断请求信号。 为何计算机中要引入中断? n提高数据传输率; n避免了CPU不断检测外设状态的过程,提 高了CPU的利用率。 n实现对特殊事件的实时响应。如多任务系 统操作系统中: n缺页中断 n设备中断 n各类异常 n实时钟,。等 中断过程 n五个步骤: n中断请求 n中断判优(有时还要进行中断源识别) n中断响应 n中断服务 n中断返回 以下以外部中断为主介绍这五个步骤。 1)中断请求 n外设接口(中断源)发出中断请求信号,送到 CPU的INTR或NMI引脚; n中断请求信号:边沿请求,电平请求 例如,NMI为边沿请求,INTR为电平请求 n中断请求信号应保持到中断被处理为止; nCPU响应中断后,中断请求信号应及时撤销。 n在8086/8088系统中,外设的中断要经过 8259A可编程中断控制器(PIC)的排队判优后向 CPU发出: (I/O接口) PIC CPU 2.1)中断源识别 n计算机中的中断源有很多,CPU必须识别 是哪一个设备产生中断。识别中断源有两 个方法: n软件查询。将中断信号从数据总线读入用 程序进行判别,如教材图6.17和图6.18。 n中断矢量法。由中断源提供中断类型号, CPU根据类型确定中断源。(8086/8088即采 用此种方法) 2.2)中断判优 n多个中断源产生中断,CPU首先为谁服务? 中断优先级排队问题。 n中断优先级控制要处理两种情况: n对同时产生的中断:应首先处理优先级别较高的中断;若优 先级别相同,则按先来先服务的原则处理; n对非同时产生的中断:低优先级别的中断处理程序允许被高 优先级别的中断源所中断即允许中断嵌套。 n中断优先级的控制方法 n硬件判优链式判优、并行判优(中断向量法) n软件判优顺序查询中断请求,先查询的先服务(即先查 询的优先级别高) n通常将中断判优与中断源识别合并在一起进行处理。 nx86系统中,这项任务由PIC和CPU共同完成。 INTAin CPU INTA INTR 外设1外设2 外设接口1 菊花链 逻辑电路 外设接口2 外设3 外设接口3 1 菊花链 逻辑电路 菊花链 逻辑电路 IREQIREQIREQ 中断确认 链式判优电路原理图(教材图6.18) INTAinINTAin 中断确认 中断确认 菊花链逻辑电路 INTAin IREQ INTR & =1 1 INTAout DB 三态门 中 断 向 量 码 E 外设接口 中断确认 菊花链 逻辑电路 3)中断响应 n在每条指令的最后一个时钟周期,CPU检 测INTR或NMI信号。若以下条件成立,则 CPU响应中断: n当前指令执行完。对INTR,还应满足以下 条件 n当前指令是STI和IRET,则下条指令也要执 行完。 n当前指令带有LOCK、REP等指令前缀时, 则把它们看成一个整体,要求完整地执行完; n对INTR,CPU应处于开中断状态,即IF=1 ; n当前没有复位(RESET)和保持(HOLD)信 号。 n若NMI和 INTR 同时发生,则首先响应NMI 。 3)中断响应(续) nCPU中断响应时,要做下述三项工作: n向中断源发出INTA#中断响应信号; n断点保护,包括CS、IP和PSW(FLAGS )。这主要是保证中断结束后能返回被中断的程 序。 n获得中断服务程序首地址(入口)。 如何得到中断处理程序的首地址? n固定入口法 n中断向量法 4)中断处理(中断服务) n中断服务子程序特点 n为”远”过程(类型为FAR) n要用IRET指令返回 n中断服务子程序要做的工作 n保护现场(PUSH regs) n开中断(STI) n进行中断处理 n恢复现场(POP regs) n中断返回(IRET) 5)中断返回 n执行中断返回指令IRET nIRET指令将使CPU把堆栈内保存的断点信 息弹出到IP、CS和FLAG中,保证被中断的程序 从断点处能够继续往下执行。 IPL IPH CSL CSH FLAGL FLAGH SP IPL IPH CSL CSH FLAGL FLAGH SP IP CS FLAG 进入中断服 务程序时 中断返回后 6.4.2 8088的中断系统 n与中断有关的控制线为:NMI、INTR、INTA# n8088系统的中断源 n内部中断 n除法溢出:类型号0,商大于目的操作数所能表达的 范围时产生。 n单步中断:类型号1,TF=1时产生(当前指令需执行 完) n断点中断:类型号3,这是一个软件中断,即INT 3 指令。 n溢出中断:类型号4,这是一个软件中断,即INTO指 令。 n软件中断:即INT n指令,类型号n(0-255)。 n外部中断 n非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU 必须响应它。 n可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU 才能响应。 内部中断 外部中断 除法错中断 溢出中断 单步中断 软件中断 非屏蔽中断 可屏蔽中断 256 个中 断源 NMI INTR 中断逻辑 软件中断指令 溢出中断 除法错 单步中断 非屏蔽中断请求 中断控 制器 8259A PIC 8086/8088CPU内部逻辑 断点中断 8086/8088中断源类型 可 屏 蔽 中 断 请 求 n 4 3 0 1 2 n8088系统采用中断类型(向量)码来识别不 同的中断源,每个中断源都有一个与它相 对应的中断类型码 。 n溢出、断点、除法溢出、单步、非屏蔽中 断的类型码为固定值 n软件中断的类型码由指令给出 n可屏蔽中断的类型码由PIC给出 nCPU响应INTR中断时,会产生两个中断响 应总线周期(教材图6.24),要求PIC在第2 个中断响应总线周期把中断类型码放到数 据总线上,供CPU读入。 中断向量表(IVT) n存放各类中断的中断服务程序的入口地址 (段和偏移) n表的地址位于内存的00000H003FFH, 大小为1KB,共256个入口 n每个入口占用4 Bytes,低字为段内偏移, 高字为段基址 n根据中断类型号获得中断服务程序入口的 方法: (n为中断类型号) n中断向量在IVT中的存放地址4n 8086/8088 CPU的中断响应 过程 n内部中断响应过程 n无INTA#周期 n中断类型码固定或由指令给出 n响应过程步骤: PUSH FLAG LET TEMP = TF CLEAR IF,TF PUSH CS PUSH IP (I P)=(TYPE*4+1):(TYPE*4+0) (CS)=(TYPE*4+3):(TYPE*4+2) 中断响应过程(续) n外部中断响应过程 n非屏蔽中断,与内部中断响应过程类似 n可屏蔽中断(时序见教材图6.24) INTA#(1),PIC进行优先级排队判优处理 INTA#(2),PIC把中断类型码放到DB上,由CPU读入 PUSH FLAG LET TEMP = TF CLEAR IF,TF PUSH CS PUSH IP (I P)=(TYPE*4+1):(TYPE*4+0) (CS)=(TYPE*4+3):(TYPE*4+2) 8088系统中各中断的优先 级 n优先级从高到低顺序如下: n内部中断 nNMI nINTR n单步中断 N Y N Y N N N N N YY 执行指令 执行完 否? 取指令 IF=1? 内部中 断? NMI ? INTR ? TF=1 ? 类型码=0255 类型码=2 类型码=1 中断响应, 读回类型码 FLAG入栈 TEMPTF TF=TF=0 CS、IP入栈 计算向量表地址 高字CS 低字IP 执行中断 服务程序 NMI? TEMP= 1? 转入中断服务程序 恢复CS和IP 恢复FLAGS 返回被中断 的程序 Y Y Y Y N IRET 指令的 操作 8086/8088的 中断处理流程 NMI、INTR、 单步和除法错 中断同时产生 时的中断处理 过程 DIV TF=1 IF=1 INTRNMI PUSH FLAGS、CS、IP CLEAR IF & TF,中断入口CS:IP 除法错 NMI(IF、TF = 0) PUSH FLAGS、CS、IP CLEAR IF & TF,中断入口CS:IP NMI中断处理程序 除法错中断处理程序 (IF、TF = 0) 返回 执行下条指令 识别出INTR (IF、TF = 1) 返回 INTR仍然有效 继续单步执行程序 INTR中断处理程序 INTR PUSH FLAGS、CS、IP CLEAR IF & TF,中断入口CS:IP 单步 (IF、TF = 0) PUSH FLAGS、CS、IP CLEAR IF & TF,中断入口CS:IP 单步中断处理程序 (IF、TF = 0) 返回 (IF、TF = 1) 返回 6.5 可编程中断控制器 8259A nPIC,Programmable Interrupt Controller n可对8个中断源实现优先级控制 n可扩展至对64个中断源实现优先级控制 n可编程设置不同工作方式 n根据中断源向x86提供不同中断类型码 n引脚分配及功能见教材图6.26 6.5.18259A的内部结构 n8259A的内部结构(教材图6.27) n中断请求寄存器IRR n保存从IR0IR7来的中断请求信号,某位=1表示对 应的IRi有中断请求 n中断服务寄存器ISR n保存所有正在服务的中断源,某位=1表示对应的IRi 中断正在被服务 n中断屏蔽寄存器IMR n存放中断屏蔽字,某位=1表示对应的IRi输入被屏蔽 n中断优先权判别电路 n确定是否向CPU发出中断请求,中断响应时确定ISR 的哪位应置位及把相应中断的类型码放到数据总线上 6.5.2 8259A的工作过程 n8259A对中断请求的处理过程如下: n当某IRi有效时,IRR相应位置1 n若有效的IRi未被屏蔽,则向CPU发出中断 请求 n检测到第1个INTA#信号后,置ISRi=1, IRRi=0 n检测到第2个INTA#信号后,把ISRi=1中最 高优先级的中断类型码放到DB上 n若工作在AEOI方式,在第2个INTA#结束 时,使ISRi复位;否则由CPU发出EOI命令使 ISRi复位 6.5.3 8259A的工作方式 n8259A的工作方式有如下几类: n中断优先方式与中断嵌套 n中断结束处理方式 n屏蔽中断源的方式 n中断触发方式 n级联工作方式 中断优先方式与中断嵌套 n中断优先方式 两类优先级控制方式:固定优先级和循环 优先级 n固定优先级方式 n所有中断请求IRi的中断优先级固定不变 n优先级排列顺序可编程改变 n加电后8259A的默认方式,默认优先级顺序 从高到低为IR0IR7 IR7IR6IR5IR4IR3IR2IR1IR0 7654321032107654 最低级 最高级最高级最低级 优先级 IR7IR6IR5IR4IR3IR2IR1IR0 默认优先级优先级可编程改变 中断优先方式与中断嵌套(续 ) n循环优先级方式 n中断源轮流处于最高优先级,即自动中断优 先级循环 n初始优先级顺序可用编程改变 n某中断请求IRi被处理后,其优先级别自动降 为最低,原来比它低一级的中断上升为最高级 IR7IR6IR5IR4IR3IR2IR1IR0 7654321021076543 最低级 最高级最高级最低级 ISR内容 IR7IR6IR5IR4IR3IR2IR1IR0 IR4的服务结束以前 0101000001000000 IR4的服务结束以后 ISRi 中断优先方式与中断嵌套(续 ) n中断嵌套方式 n在中断处理过程中允许被更高优先级的事 件所中断称为中断嵌套。8259A有两种中断嵌 套方式: n普通全嵌套方式(默认方式) 一中断正被处理时,只有更高优先级的事 件可以打断当前的中断处理过程而被服务。 n特殊全嵌套方式 一中断正被处理时,允许同级或更高优先 级的事件可以打断当前的中断处理过程而被服务。 注: 特殊全嵌套仅用于多个8259A级连时的 主8259A,而不能用于从属8259A或单8259A系 统。 中断结束处理方式 n当某一IRi中断被服务时,ISR中的相应位 ISRi=1。当服务结束后,则必须清零该 ISRi位。使ISRi=0是通过向8259A发出 中断结束命令(EOI命令)实现的。 n三种EOI命令 n自动EOI(AEOI)(自动EOI方式 ) n非指定EOI(NSEOI)(正常EOI方 式) n指定EOI(SEOI)(特殊EOI方式 ) nAEOI:在第2个INTA#结束时,由8259A 使ISRi自动复位; n因不保留当前正在服务的中断的状态,故 AEOI不能用于中断嵌套方式 nSEOI:由CPU发出一条SEOI命令,该EOI 命令中指出了所要复位的ISR的位号。 n用于特殊屏蔽方式 nNSEOI:由CPU发出正常EOI命令,该 EOI命令使ISRi=1的位中优先级最高的那一位 复位。 n用于普通全嵌套方式 中断服务程序 向从PIC发EOI命令 读从PIC的ISR 全0? 向主PIC发EOI命令 Y IRET 恢复现场 N n特殊全嵌套方式 下的EOI处理 n只有当从PIC的 中断全部处理完 后,才能向主PIC 发EOI命令 屏蔽中断源的方式 nIMR屏蔽字决定了允许或禁止某位IRi所对 应的中断:IMi=1 禁止, IMi=0 允许。 n特殊屏蔽方式: n提供了允许较低优先级的中断能够得到响 应的特殊手段。 n原理:假定当前正在处理IR6,先进入特殊 屏蔽方式,然后设置IM6=1。这时,除IR6外的所 有中断请求均能得到响应。 n特殊屏蔽方式中只能用SEOI命令结束中断 。 中断触发方式 n边沿触发 nIRi出现上升沿表示有中断请求 n电平触发 nIRi出现高电平表示有中断请求 n在第1个INTA#结束前,IRi必须保持高电平 级联工作方式 n单片8259A可支持8个中断源; n采用多片8259A级连,可最多支持64个中 断源。 n级连时只能有一片8259A为主片,其余的 均为从属片; n涉及到的8259A引脚包括: nCAS0-CAS2 nSP#/EN# nIRi nINT 级连电路连接方法 6.5.4 8259A的编程使用 n8259A的控制命令分为 n初始化命令字ICW nICW1ICW4 n向8259A写入ICW的过程称为初始化编程 n操作命令字OCW nOCW1OCW3 n向8259A写入OCW的过程称为操作方式编程 8259A内部寄存器的寻址方 法 CS#RD# WR#A0D4D3读写操作 010000 写OCW2 写OCW3 写ICW1 写ICW2,ICW3,ICW4,OCW1(顺序写入) 001 01x 1xx 001 0 1 xx 读出IRR、ISR 读出IMR n需要CS#、A0、RD#、WR#和D4、D3的配 合 n内部寄存器的访问方法如下表: 8259A的初始化顺序 n8259的初始化流 程如图 n注意次序不可 颠倒 写ICW1 写ICW2 级连? 写ICW3 需ICW4? 写ICW4 N N Y Y 8259A的控制命令字 n初始化8259A必须从ICW1开始 n写ICW1意味着重新初始化8259A n写入ICW1后,8259A的状态如下: n清除ISR和IMR(全0); n将中断优先级设成初始状态:IR0最高, IR7最低; n设定为一般屏蔽方式; n采用非自动中断结束方式; n状态读出逻辑预置为读IRR。 ICW1初始化字 nLTIM: 触发方式 n=1 高电平触发 n=0 上升沿触发 nSNGL: 级连控制 n=1 单片 n=0 级连 nIC4: ICW4控制 n=1 要写ICW4 n=0 不写ICW4(默认ICW4为全0) A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4 ICW2中断向量码 nT7T3: 中断向量码的高5位 nT2T0: 最低3位为中断源的序号IRn n000111分别对应IR0IR7 n由8259A根据中断源的序号自动填入 例如: 若ICW2命令字为48H,则IR0的中断向量 码为48H,IR7的中断向量码为4FH,等等。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x x ICW3级连控制字 n主片的级联控制字 nSi=1 对应IRi线上连接了从片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0 n从片的级联控制字 nID2ID0 标识码,说明本从片连接到主片 的哪个IR引脚上。 000111分别对应IR0IR7 。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0 ICW3级连控制字(续 ) nICW3必须与主从片的连接关系一致: 例如,主片的IR4与从片的INT线连接,则 主片的ICW3=10H,从片的ICW3=04H。 n中断响应时,主片通过级连线CAS2-CAS0 送出被允许中断的从片标识码,各从片用 自己的ICW3与CAS2-CAS0比较,二者一致 的从片才可发送中断向量码。 ICW4中断结束方式字 nSFNM: 特殊全嵌 套 1 特殊全嵌套方 式 0 一般全嵌套方 式 nAEOI: 自动EOI 1 自动EOI方式 0 非自动EOI方 式 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI 1 nBUF: 缓冲方式 M/S: 主/从缓冲选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论