南航微机原理第6章_第1页
南航微机原理第6章_第2页
南航微机原理第6章_第3页
南航微机原理第6章_第4页
南航微机原理第6章_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

第6章输入/输出和中断

输入/输出及接口输入/输出的传送方式中断技术

80X86/Pentium中断系统

8259A可编程中断控制器中断程序设计

计算机

外设接口键盘鼠标CRT打印机绘图仪存贮器功能单一:(1)传送方式单一(传送一个字节)(2)品种单一,RAM、ROM(控制信号确定)(3)格式单一(并行数字信号)(4)工作速度匹配外设功能复杂:(1)仅作输入、仅作输出、入/出兼作。(2)格式多种(并串),位数多种(3)外设品种繁多(光、机、电、声、磁等)(4)信号形式有脉冲、模拟量或数字量(5)速度不匹配6.1输入/输出及接口为什么外设不能象存贮器一样直接挂在CPU上?

6.1输入/输出及接口6.1.1I/O信息的组成

(1)数据信息——要交换的数据本身①数字量:按一定的编码标准(2#,ASCII码)由若干位组合所表示的数或字符。如:键盘、CRT、打印机等设备与CPU交换的信息。②模拟量:现场信息(如温度、压力、流量、位移等非电量)经过传感器而转换成的电量(电压、电流)。模拟量经过A/D、D/A转换器在CPU与外设间交换。③开关量:一位2#信息:0、1。如:开关的断开与闭合;控制电机的启、停等。通常这些开关量要经过相应的电平转换才能与计算机连接。数据信息、状态信息及控制信息(2)状态信息——在CPU与外设之间交换数据时的联络信息。对输入接口,CPU是否准备好接收数据,“READY”准备好?对输出接口,外设是否准备好接收数据,“BUSY”外设忙吗?(3)控制信息——CPU发给外设的命令信息。

如:设置I/O设备工作模式的信息等。CPU通过发送控制信息控制外设的工作。数据的传送可采用并行(n位同时传送)

串行(一位一位地传送)6.1.2I/O接口概述I/O接口的功能①对输入/输出数据进行缓冲、隔离和锁存;②完成信息格式的变换,如串-并转换等;③实现电气特性的匹配;④选择设备或地址译码等。2.I/O接口的构成实现各寄存器端口寻址操作

实现接口电路中的各寄存器端口的读/写操作和时序控制实现对CPU数据总线速度和驱动能力的匹配端口从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的寄存器,又称为I/O端口。各I/O端口由端口地址区分。按存放信息的不同,I/O端口可分为三种类型

数据端口:用于存放CPU与外设间传送的数据信息

状态端口:用于暂存外设的状态信息

控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。CPU对外设输入/输出的控制,

是I/O接口概述通过对接口电路中各I/O端口的读/写操作完成。6.1.3I/O端口的编址I/O端口独立编址(I/O映射方式)指主存地址空间和I/O端口地址空间相互独立,分别编址。CPU通过指令来区分是访问I/O口还是存储单元。例:Intel的80X86系列、Z80系列优点:主存和I/O端口的地址可用范围都比较大。

缺点:I/O指令的功能一般比较弱,在I/O操作中必须借助CPU的寄存器进行中转。2.端口与存储器统一编址(存储器映射方式)指I/O端口与存储器共享一个寻址空间,又称为统一编址。在这种系统中,CPU可以用同样的指令对I/O端口和存储器单元的进行访问。例:motorola的M6800系列、日立H8S单片机系列优点:对I/O口的访问灵活方便,有利于提高端口数据的处理能力。

缺点:I/O端口占用了主存地址,相对减少了主存的可用范围。8086/8088通过改变M/IO、IO/M来区分对MEM还是对I/O操作。用IN和OUT指令传送数据。在80X86CPU中,若用直接寻址方式寻址外设,可寻址256个端口;当用DX间接寻址外设,则端口地址是16位的,可寻址216=64K个端口地址。I/O地址的译码与存储器地址译码原理相同,但具备自己的特点:I/O地址空间足够大,容忍一定程度的浪费;I/O访问的频度远低于存储器访问,而且不同的外设其操作互相独立,所以编址时不太强调地址的连续。I/O寻址通常采用的是部分译码。对于8086系统而言,最低端的地址线A0往往不参与译码,选择其中的偶地址作为I/O地址。80X86采用I/O与MEM分别独立编址。PC/XT、PC/AT的I/O空间分配见书表6-1Pentium系列微机系统的I/O空间分配见书表6-2

在PC/XT中,扩展总线上用A9~A0作为外设端口译码(部分译码方式),共可寻址210=1K个端口。当A9=0时,寻址主机板上的512个端口。当A9=1时,寻址I/0卡上的512个端口。

80386微处理器或此后的微处理器构成的微机系统,采用全译码的方法,端口为64K个字节端口或32K个字端口。I/O端口地址选用的原则自行设计接口电路或给微机系统添加接口卡时,必须避免端口地址发生冲突。申明保留的地址,不要使用。用户可使用300H--31FH地址。6.1.3I/O端口的编址6.1.4简单的I/O接口I/O接口硬件分类不可编程可编程

8253定时/计数器

8259中断控制器

通用接口

8257DMA8250、8251串行接口芯片或

8255、8155并行接口芯片软盘控制器8271、8272

专用接口

CRT8275

键盘显示8279

不可编程的I/O接口属简单的I/O接口,典型的芯片是三态缓冲器和数据锁存器。

如:74LS244,245;74LS373,374

增强总线的负载能力并隔离简单的I/O接口1.三态缓冲器

在总线结构的微机系统中,任一时刻只能有一个设备利用总线进行数据传送,输入设备的数据线应通过三态门与系统相连。

常用缓冲器:74LS244(单向),74LS245(双向)。2.数据锁存器

输出设备利用锁存器接受CPU输出的数据。使某输出设备锁存器的控制端处于触发状态,数据通过该锁存器。当触发信号消失,数据锁存在锁存器中,外设侧数据不随总线侧数据的变化而变化,使慢速的外设有足够的时间处理数据。常用锁存器:74LS373,低电平锁存,高电平直通

74LS273,上升沿将数据Di输出简单的I/O接口上升沿将上升沿之前的数据打入273,并由273输出。6.2输入/输出的传送方式在微型计算机系统中,CPU与外设之间进行信息交换,其输入和输出的传送方式一般可分为三种:程序控制的输入和输出中断控制的输入和输出直接存储器存取(DMA)6.2.1

程序控制的输入和输出程序控制的输入和输出方式是指在程序中安排相应的I/O指令来控制输入和输出,完成和外设之间信息交换的传送方式。在这种方式中何时进行数据的传送是预先知道的,所以可以根据需要把有关的I/O指令插入到程序中相应位置。无条件传送方式和查询传送方式

(1)无条件传送方式(同步传送方式)实现方法:CPU不查询外设工作状态,与外设速度的匹配通过在软件上延时完成,在程序中直接用I/O指令,完成与外设的数据传送。特点:适用于外设动作时间已知,在CPU与外设进行数据传送时,外设保证已准备好的情况。软硬件十分简单,适用于慢速外设。输出时用373或374,373是低电平锁存,高电平直通!若用273,则在上升沿输出并锁存数据。【例6-1】采用无条件传送方式的I/O接口电路,实现发光二极管显示开关的开合状态。NEXT:MOV DX,PORT_IN IN AL,DX ;通过输入接口读入开关状态

NOT AL OUT DX,AL ;通过输出接口控制发光二极管显示

CALL DELAY JMP NEXT

无条件传送方式(同步传送方式)该例中输入接口和输出接口使用相同的口地址,不会出现矛盾。(2)查询传送——一种CPU主动、外设被动的I/O操作方式实现方法:

特点:避免了对端口的“盲读”、“盲写”,数据传送的可靠性高,并且硬件接口相对简单。缺点是CPU工作效率低,I/O响应速度慢;

输出:CPU对“外设BUSY?”进行查询,不忙,输出。输入:CPU查“外设数据READY?”,若准备好,读入。

外设要求:状态口和数据口在有多个外设的系统中,CPU的查询顺序由外设的优先级确定。

①查询输入(当外设数据准备好,读入)输入状态信息READY?输入数据NY编写查询式输入程序如下:IN_TEST: IN AL,STATUS;读入状态信息

TESTAL,80H ;检查READY是否为1 JZ IN_TEST ;条件不满足,继续查询

IN AL,DATAS;条件满足,读入数据②查询输出(当外设空闲时,输出)编写查询式输出程序如下:

MOV BX,OFFSETSTOREOUT_TEST: IN AL,STATUS ;读入状态信息

AND AL,80H ;检查BUSY位

JNZ OUT_TEST ;BUSY则等待

MOV AL,[BX] ;空闲,则从缓冲区STORE中取数据

OUT DATAS,AL ;输出数据

INC BX准备输出数据读状态端口

输入数据BUSYNY6.2.2中断控制的输入和输出发申请发申请中断服务程序中断服务程序中断方式下CPU执行程序流程外设CPU被动而外设主动的I/O操作方式,较大地提高了CPU的工作效率,并使系统具有了实时处理功能中断传送方式的特点1.CPU和外设大部分时间处在并行工作状态,2.中断传送方式提高了CPU的效率。中断工作过程外设需要CPU服务时外设→I/O接口→向CPU发中断请求,INTR=H(中断请求有效)CPU执行完当前指令后,(注:若IF=1)CPU→I/O接口→外设发中断响应,/INTA=LCPU执行中断服务程序,CPU←→I/O接口←→外设读写数据接口特点:

避免了CPU反复低效率的查询,适用于CPU任务繁忙、而数据传送不太频繁的系统中。

缺点是硬件电路和处理过程都比较复杂;(中断控制芯片)只在CPU响应外设的中断申请后,进入数据传送的过程。中断可被响应的条件:中断请求触发器置位;CPU内部开放中断;CPU未处理更高级中断;CPU现行指令执行完进行传送的中断服务程序是预先设计好的中断请求是外设随机向CPU提出的CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚中断传送是一种效率更高的程序传送方式:使用中断方式时:外设准备数据,CPU执行程序,CPU与外设并行工作;一旦外设准备就绪,外设向CPU发中断申请,CPU暂停原程序执行,响应中断,进行数据传输。此时,CPU与外设是串行工作。中断控制的输入输出

DMA时,CPU让出总线(如AB、DB、IO/M、RD、WR等)由DMAC接管后,用DMA方式的工作过程为:

CPU设置DMAC的工作方式,将存贮区首址、传送字节数DMAC的内部Reg。②

外设向DMA控制器发出DMA请求,DMA控制器向CPU发出HOLD信号。

中断方式虽提高了CPU的效率,但仍然是通过CPU执行程序来实现数据传送。

缺点:①大量的数据在磁盘与内存间交换需大量的时间。②高速I/O设备时或成组数据交换时,显得速度太慢。早期DMA仅限于外设内存间,随着大规模集成电路技术的发展,还可在外设外设间,内存内存间进行DMA传送。6.2.3直接数据通道传送(DMA方式)希望在外设与内存间直接传送数据,这就是DMA方式。DMA的速度取决于MEM的工作速度。③

CPU接收到HOLD信号后,在现行的机器周期结束后发出HLDA信号,暂停正在执行的程序,且放弃对三总线的控制。④

DMA控制器DMAC回应外设,表示响应该请求。⑤

DMAC向存贮器送存贮单元地址,并分别向外设及内存送IOR及MEMW,完成一次字节传送。⑥数据块长度计数器减一,重复⑤,直到传送完毕。⑦DMA结束,撤消DMA请求(HOLD变低),CPU再次恢复对总线控制权。DMA

传送方式过程CPUDMAC内存外设总线响应总线请求流程图为:无条件传送:慢速外设,需与CPU保持同步查询传送:

简单实用,效率较低中断传送:

外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销DMA传送:

DMAC控制,外设直接和存储器进行数据传送,

适合大量、快速数据传送传送方式的比较:6.3中断技术6.3.1中断的基本概念

中断——是一种使CPU终止正在执行的程序而转去处理特殊事件的操作。1.中断源——引起中断的事件外部中断源:①I/O设备,如键盘、显示器(CRT)、打印机等。②数据通道,如磁盘、采样电路等。③实时钟,如外部所需的定时电路等。④故障源,如掉电、存储器奇偶校验错等。内部中断源:①CPU指令执行产生的异常,如被0除、溢出、单步执行等。②执行INT软件中断指令,如80x86微机系统中DOS功能调用INT21H、BIOS中断调用INT10H等。中断源产生中断的随机性,使中断服务程序的执行也具有随机性,即何时执行中断服务程序不是在程序中安排好的。2.中断处理过程(以可屏蔽中断处理为例)(1)中断请求硬件中断(INTR或NMI);软中断:除数为0、溢出…。(2)中断判优在多个中断源情况下,由设计者将它们事先排队(硬件),当同时到达时,CPU根据优先级,处理当前优先级最高的中断源。中断判优的另一作用是决定是否可能实现中断嵌套。(3)中断响应

①IF=1,且INTR有请求

②送出INTA,外设将中断类型码DB

③中断类型码×4,找出中断入口地址,转中断服务。(4)中断处理①保护现场②开中断,IF=1,保证可以实现中断嵌套③执行中断服务④关中断(IF=0),恢复现场(5)中断返回

IRET恢复断点CS、IP

恢复标志寄存器6.3.2中断优先权1.软件排优:中断优先级由软件查询顺序决定

可事先给各中断源安排一个中断优先级次序,当多个中断源同时申请时,按优先级从高到低的次序来处理。①将各中断源的中断申请信号“或”(线与)起来,作为INTR信号;②同时将各申请信号(1)经状态端口读入CPU进行判断,判断时的先后顺序即优先权次序。这段查询程序应安排在中断服务程序的开始。CPU查询优点:硬件简单,无需判断和确定优先权的硬件排队电路,随时可修改优先级。缺点:软件查询,耗费时间,影响中断响应的实时性。2.硬件排优⑴硬件排忧电路(菊花链电路)⑵专用硬件方式——可编程中断控制器越靠近CPU的接口,中断优先级别越高。设某中断源请求中断“1”

则INTR=1;

CPU→INTA(0)。第一级菊花链逻辑电路输出中断应答信号(1);同时输出(0)到下一级菊花链逻辑电路;第二级菊花链逻辑电路输出中断应答信号(0);同时输出(1)到下一级菊花链逻辑电路;1015V00011111000011根据中断优先权处理中断的一般原则1.不同级别中断发生,按级别高低处理。2.当处理低级别的中断过程中,遇到高级别的中断,暂停低,转高的服务。3.当处理高级别的过程中,遇到低级别或同一级别的中断,不予理睬,待处理完后再服务低级别。4.同一级别按先后排队。⑵专用硬件方式

——可编程中断控制器(在PC机中解决中断优先权管理)6.480X86/Pentium中断系统6.4.1中断结构1.外部中断(1)非屏蔽中断由NMI引脚出现中断请求信号CPU产生的中断称为非屏蔽中断。它不受中断允许标志IF的限制,其中断类型号固定为2。当NMI引脚上出现上升沿触发时,表示非屏蔽中断请求信号有效,CPU内部会把该信号锁存起来,但要求该信号的有效高电平持续2个时钟周期以上。

CPU在执行完当前指令后立即响应中断请求。在PC机中:MEM或I/O通道有奇偶校验错或8087/80287产生异常都会产生NMI。(2)可屏蔽中断由外部设备产生,从CPU的INTR端引入高电平触发。可屏蔽中断受中断标志IF的影响,在IF=1,INTR=1的情况下,CPU可响应。

CPU响应时送出两个INTA脉冲,外设则送出中断类型码CPU。2.内部中断CPU根据某条指令或者对标志Reg中某个标志位的设置而产生,或由CPU本身启动(除法出错),与外部硬件无关。(1)除法出错中断——0型中断

CPU执行除法指令DIV、IDIV时,若发现除数为0或商超过了存放它的Reg所能表示的范围,则产生0型中断。其中断处理由操作系统安排。(2)

单步调试中断——1型中断若TF=1,则CPU就处于单步工作方式。常用于程序调试。注:①当执行一条指令使TF=1,则下条指令立即产生1型中断,

进入单步中断后TF=0,IF=0②在X86系统中,无将TF置1的指令。(配合PUSHF和POPF)(3)

INTO指令——4型中断若算法操作结果产生溢出(OF=1),则执行INTO指令后立即产

生一个中断类型号为4的中断。(4)INTn指令一般为双字节指令。但INT3——断点中断为单字节指令。在单步中断服务过程中不会再引起单步中断。以上 1,2,3中断类型码自动形成:0,1,4。所有软中断(除单步中断)不受FR的影响80386及以上CPU来说,也可将中断源分为中断与异常两类,异常可归为三类:失效、陷阱和终止。失效:它在引起失效的指令启动之后、执行之前被检测到,且在处理异常的中断服务完成后返回该条指令,重新启动并执行完毕。陷阱:它是在产生陷阱的指令执行完后才被报告,且其中断服务程序结束后是返回到主程序中该条指令的下一条指令。终止:则是一种对引起异常的指令的确切位置无法确定的异常。中断类型码

X86共有256个中断源,中断类型码:0~255。6.4.2中断向量表中断向量表

256个中断源对应256个中断服务程序,将所有这些子程序的入口地址(中断向量)

按序排放在一起,形成一个中断向量表。中断向量表位于CPU内存区的最低1K字节

(0段0单元开始)。每个中断向量占4个字节:

4×256=1024(即00000H~003FFH)存放时:中断程序入口地址的偏移量(IP,16位)在前,中断处程序入口地址的段地址(CS,16位)在后。显然有:中断向量地址指针=4×中断类型码例:N=8中断向量地址=4×8=32,即0020H.

从表中,知道了中断类型号,便可计算出相应的中断向量在表中存放的位置,称为中断向量表地址,或称为中断向量指针。从中断向量表地址中取出中断向量,便得到了该中断类型号的中断服务程序入口地址。一般:若类型码为N,则从0000:4×N单元读一个字IP,从0000:4×N+2单元读一个字CS。使用时应选择系统不用而为用户保留的中断类型码。1.内部中断响应过程(1)

当内部中断发生时,或由INTn指令获得中断类型码,或是按预定方式得到中断类型码(专用中断:0、1、3、4);(2)将类型码×4,作为中断向量表的指针;(3)FR(PSW)入栈保护,此操作类似于PUSHF;(4)清除IF和TF标志(0→IF、0→TF,屏蔽新的INTR中断和单步中断);(5)把断点处的IP和CS值压入堆栈:先压入CS值,再压入IP值;(6)取中断向量(中断服务程序的入口地址),分别送至CS和IP。按新的地址执行中断服务子程序。6.4.3中断响应过程内部中断的特点:进入中断时,不需要执行中断响应周期去获得中断类型码。除单步中断外,内部中断无法用软件禁止,不受IF的影响。内部中断没有随机性,由指令在程序中的位置决定。除单步中断外,内部中断优先级高于硬件中断。2.外部中断响应过程(1)非屏蔽中断响应中断类型码为2。当NMI发生时,CPU在执行完当前指令后,转去中断类型码为2的中断服务子程序。响应过程(除中断类型码获得方式外)同内部中断。

CPU提供,不是外设提供。(2)可屏蔽中断响应

在INTR线上的请求信号(高电平)必须保持到当前指令

的结束。当INTR线有效且IF=1,则CPU在当前指令执行完毕后,响应外部中断请求,转入中断响应周期。中断响应周期有2个,每个响应周期由4个T组成,中间以空闲状态(2~3个)隔开。见书246页图6-23。在每个中断响应周期,CPU都往引脚INTA发一个负脉冲信号;

请求中断的外设在收到第2个INTA时,将中断类型码→DB(通常由8259传送)。获得中断类型码后,则转入中断处理过程(同内部中断)。

INTR共执行7个总线周期。见书247页①~④。

3.中断响应及处理过程举例

设某输入设备数据准备就绪后向CPU申请可屏蔽中断,中断类型码为80H,中断响应后执行的服务子程序名为INTPROC。程序开始,首先应对中断向量表进行安排,即先进行中断初始化。程序如下:…CLIPUSH DSMOV AX,0000H ;中断向量指针的段基址MOV DS,AX MOV BX,0200H ;中断向量指针的偏移量MOV AX,OFFSETINTPROC MOV [BX],AX ;偏移量→中断向量表MOV AX,SEGINTPROCMOV [BX+2],AX ;段基址→中断向量表POP DSSTI…(1)INTR有效,外设申请中断

…MOV AX,2000HADD AX,AX (2)当前指令结束后,CPU响应中断,执行中断响应总线周期,获得中断类型码(80H)1234:5678 MOV [SI],AX(3)当前FR内容压栈,IF=TF=0

(4)断点CS(1234H)、IP(5678H)压栈 (5)查中断向量表,中断向量送CS、IP

(6)执行中断服务处理程序

INTPROC PROC … … MOV DX,DPORT IN AL,DX … … IRET INTPROC ENDP

(7)执行IRET指令,恢复断点,恢复FR IP=5678H,CS=1234H,回到断点执行

开中断后,执行任何指令期间都有可能接受到中断申请。假设执行下列程序中的ADD指令时收到中断申请,且IF=1,则CPU响应中断。4.各类中断的优先权

1.实模式下的中断与异常80386及其以上微处理器工作于实模式时,与8086/8088一样。可定义256个中断向量,中断向量表在系统物理存储器的最低1K字节区。中断类型及各类中断处理流程也基本相同。书248页表6-4:8086~PentiumCPU在部分PC机中的中断分配表。

6.4.480386/80486/PentiumCPU中断系统

2.保护模式下的中断与异常:与实模式相比有三点不同CPU根据中断类型号从中断描述符表IDT而不是中断向量表获取中断服务程序入口的有关信息。断过程中要对被中断的程序代码进行保护若有出错码,还要将出错码压入堆栈。(1)中断描述符表IDT的起始位置通过中断描述符表寄存器IDTR设置,置于内存的任意区域。在整个系统中,IDT只有一个。它的作用同样是通过类型号引导程序转移到中断或异常处理程序中去。IDT包含的是门描述符而不是中断向量。门描述符可以是中断门、陷阱门或任务门。IDT最多允许有256个门描述符,标为门0~门255,对应256种中断类型。2.

保护模式下的中断与异常(2)获得中断服务程序地址使用陷阱门或中断门描述符进入中断服务程序入口。具体步骤见书249页①~④

(3)中断响应及异常处理

①需要通过类型号判断所要索引的门描述符是否超出IDT的界限。若超出,则引起一般保护异常错误。②从IDT中取得对应的门描述符后要进行一些相关检查。③在保护模式下,除了可通过中断门或陷阱门实现由当前任务进行中断处理以外,也允许通过任务门实现由另一个任务完成中断处理。中断响应时堆栈的变化情况6.58259A可编程中断控制器中断申请管理接口的主要功能:向CPU的引脚INTR发中断申请信号当有多个外设同时发出中断请求时,能按照一定的优先级顺序,向CPU发出中断申请,使CPU能优先响应优先级最高的外部设备中断申请。送中断类型号在CPU中断响应周期,针对不同外设的中断请求,向CPU传送不同的中断类型号,使CPU执行相应的中断子程序。在IBMPC机由8259A可编程中断控制器来完成。8259是PIC(可编程中断控制器),集:中断源优先级排队、辨认、提供中断类型码为一体,对其编程,可管理8级中断,级联时共可管理到最多64级中断。中断申请管理接口INT中断申请接口1网络接口2硬盘接口3软盘接口4打印机8088CPUINTRIF8259A的功能单片8259可以管理8级硬件中断,用9片级联,组成主从方式,可以管理64级中断。每一级中断都可以由软件屏蔽或允许。能判别芯片的IRi输入端是否收到一个有效的中断请求。若未被屏蔽,判其优先级。对优先级高的中断源送INTR→CPU,并提供相应的中断向量号→

CPU。几种工作方式可通过编程进行选择。6.5.18259A芯片的内部结构与引脚中断请求寄存器(IRR,8位锁存器)用来锁存外设送来的IR7~IR0中断请求信号。中断屏蔽寄存器(IMR,8位Reg

用来设置中断请求屏蔽信号。IMR第i位置1,则与它对应的IRi中断申请被屏蔽。中断服务寄存器(ISR,8位Reg

)存放当前正在服务的中断级。

由优先权判别电路根据IRR中各请求位优先级别和IMR中屏蔽标志,将允许中断的最高优先权请求位,选通到ISR中。在处理某级中断的整个过程中,ISR中与它对应的位始终保持1,只有服务完,在返回之前,才由中断结束命令EOI将其清0。不进行中断服务的ISR各位恒等于0。8259A的内部结构优先级分析器用来识别和管理各中断请求信号的优先级别。控制逻辑控制逻辑电路中,有一组初始化命令字Reg:ICW1~ICW4一组操作命令字Reg:OCW1~OCW3。系统刚开始时,初始化命令字送8259A,以后过程中将保持不变,操作命令则用来在过程中控制中断操作。

数据总线缓冲器——三态缓冲器8259A与CPU的数据总线接口。控制逻辑按编程设定方式管理8259A的全部工作。读/写电路——完成来自CPU的读写命令,及与片选信号CS与A0(0或1)决定访问片内某个Reg。通过OUT指令,WR有效,把命令字写入ICW和OCW。通过IN指令,RD有效,将IRR、ISR或IMR内容通过数据总线读入CPU。级联缓冲/比较器(用于多片8259之间的连接)

主—从结构中,作为主设的8259A,CAS2~CAS0是输出线,作为从设的8259A,CAS2~CAS0是输入线,两者互连。

SP/EN——从片编程/缓冲器允许信号线,是个双功能引脚。①缓冲器方式,输出信号,控制缓冲器传送方向。②非缓冲器方式,它是输入信号,用于规定8259A是主(SP=1)还是从(SP=0)。在只有一片8259A的系统中,SP/EN接高电平。8259A各引脚见书P252,图6-27。CS:是片选信号,其为低电平时,可对芯片读写。A0:与CS及WR或RD配合去读写8259的内部寄存器,可直接接CPU的某位地址线。INT:中断请求信号,接CPU的INTR。INTA:中断允许线,接CPU的INTA。双列直插式芯片,28个引脚。

键盘保留串口2

硬盘软盘打印机IOW18.2Hz方波A0CS8259A总线A0数据线

IORRDWR片选译码IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCA0CA1CA2GND+5V20~3FH用于多片8259A级连情况INTAINT

INTA

INTR串口1

上电后,由CPU执行一段程序对8259初始化(通过输入初始化命令字实现)。完成初始化后,8259A处于就绪状态。当外设发出中断请求后,其对外部中断请求的处理过程如下:

①若有若干IRi=1,则IRR中相应位置1。②若对应IMR中的相应位为0(只要有一位为0),则8259A向CPUINTR。

③若IF=1,则CPU在执行完当前指令后,发:INTA8259A。④ISR中对应当前最高优先权的位为1,且IRR中相应的位清0。

6.5.28259A芯片的工作过程及工作方式1.8259A芯片的工作过程⑤CPU发第二个INTA8259A,8259ADB上送8位的向量号N(即中断类型号,初始化8259A时已设定好)。

CPU做:N×4从中断向量表中取出中断服务程序的入口地址。⑥若8259A为AEOI(自动结束中断),则在第二个INTA尾,ISR中相应的位复位。否则,至中断服务程序结束,发出EOI命令使ISR中相应位复位。CPU进入响应中断的过程,继而执行中断子程序。①取中断类型号N②

当前PSW的内容入栈③清IF、TF标志为0④当前CS的内容入栈⑤当前IP的内容入栈⑥

取内存单元(0:N×4)字内容送IP

取中断子程⑦

取内存单元(0:N×4+2)字内容送CS

入口地址此时CS:IP指向中断程序的入口,开始执行中断程序。保存现场与断点CPU响应中断过程:执行完中断子程中最后一条指令IRET后,返回被中断处,继续执行被中断的程序。中断优先级固定

IR0IR1IR2IR3IR4IR5IR6IR7

高低

响应某中断请求,并服务于该中断源时,与它同级或低级的中断源的申请被屏蔽,而优先级比它高的中断源的申请可以响应。用ISR中相应位表示该中断源正在被服务。②特殊全嵌套方式(适用于8259级联的情况)

CPU

主8259AINT从8259AIR0IR1IR7IR0IR1IR7……特殊全嵌套普通全嵌套(1)中断嵌套方式①普通全嵌套方式——常用方式,又称全嵌套方式,适用于单片8259的情况。特征:2.8259A芯片的工作方式级联时,必须采用特殊的全嵌套方式。

主片编程为特殊全嵌套方式:

当处理一级中断时,如果有同级的中断请求,也会给予响应。否则:当从片8259IR2有中断请求,若主片是普通全嵌套方式,则会屏蔽从片上的IR0、IR1(比IR2优先级高)中断请求。

这是因为从片上的8个IRi变成了主片的同一级。

而采用了特殊全嵌套方式后,对来自同一从片的较高优先级请求则不会屏蔽。

EOI从从ISR是否全为0

EOI主NYIRET在从片的中断处理程序快结束时,应给

8259A发EOI(中断结束)命令,方法是:

(a)向从片发EOI;

(b)读从片的ISR内容:

若为0,表示从片只有一个中断源申请中断,再向主片发一个EOI命令。

若不为0,表示从片存在两个以上的中断源在申请中断,则不应发EOI给主片。(2)中断优先权循环方式

一个系统的优先权比较复杂,所以不能总规定IR0高…IR7低。8259A设计了两种改变优先权的方法。①自动循环方式——适用于设备的优先权相等情况

当一个设备受到中断服务后,它的优先级自动降到最低,其相邻的中断请求则变成最高的了。

例如:

IR0IR1IR2IR3IR4IR5IR6IR7

初始高低

若IR4有中断请求,则处理IR4后,IR5成为最高优先级,优先级次序为:IR5IR6IR7IR0IR1IR2IR3IR4

IR4左循环至最低优先级。

(3)中断结束处理方式

当中断请求得到响应时,ISR中相应位置1,中断服务结束时,必须使这个位复位以标识中断处理结束。这个中断结束是指8259结束中断,而不是CPU结束执行中断服务程序。②普通中断结束(EOI)——适用于全嵌套方式

当8259A工作在全嵌套方式时,则当前服务过的中断源就是中断优先权最高的源,可以用非特殊(普通)的EOI使它在ISR中的相应位复位。

这个命令加在中断服务程序的末尾处。①自动中断结束(AEOI)——只能用于不要求中断嵌套的情况在第二个INTA的后沿,8259A自动把ISR的对应位清除。②特殊循环方式——适用于中断源的优先级需要任意改变的情况通过OCW2命令字设置当前的最低优先级IR5,使得有:

IR6IR7IR0…IR5。

不管是普通、还是特殊的中断结束方式,在级联系统中,中断结束必须发送两次EOI:

一次给从片,一次给主片。(向从片发EOI后,须检查从片中的所有申请中断的源是否全服务过。只有都服务过了,才能向主8259送另一个EOI命令)。(4)屏蔽中断源方式——通过IMR编程可允许或禁止中断①普通屏蔽方式

通过命令字OCW1设置IMR某位或某几位为1,则屏蔽其中断请求。该位置0,则允许该级中断。③特殊结束中断方式(SEOI)——非全嵌套方式下

当8259A工作在非全嵌套模式时,8259A可能不能确定刚服务的源的等级,就要用特殊的EOI命令,在此中指出要清除哪个ISR位。(5)中断触发方式①电平触发方式

8259A的引脚IRi上出现高电平表示有中断请求。②边沿触发方式

8259A的引脚IRi上出现上升沿表示有中断请求。用特殊屏蔽方式可以做到:屏蔽当前中断级(IMR对应位为1);ISR中相应位复位,则较本级低的中断源申请可以得到响应。②特殊屏蔽方式——用于开放较低级中断请求

在8259中,当一个中断请求被响应时,ISR对应位置1。在该位未复位时,8259A会禁止所有优先级比它低的中断。

普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式总结:8259A是可编程中断控制器,对其编程可以分为两部分:①初始化编程:由CPU向8259A送2~4个字节的初始化命令字

ICW(InitializationCommandWord)。在8259A工作之前,必须写入初始化命令字使其处于准备就绪状态。②操作方式编程:由CPU向8259A送三个字节的操作命令字

OCW(OperationCommandWord),以规定8259A的操作方式

OCW可在8259A已经初始化以后的任何时间内写入。在8259A工作期间,OCW规定或设置其工作方式,动态地控制CPU处理中断的过程。6.5.38259A命令字

I3I4ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制处理部分控制部分00000000

ISR当前中断服务寄存器PR优先级裁决器IRR中断申请寄存器00000000

中断屏蔽寄存器IMROCW2

10010100

00

01

OCW3OCW18259A中断控制器

8259A内部有9个可读写的寄存器4个初始化命令寄存器

ICW1、ICW2ICW3、ICW43个操作命令寄存器

OCW1(IMR)

OCW2、OCW3

当前中断服务寄存器ISR

中断申请寄存器IRR

I3I4ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制处理部分控制部分00000000

ISR当前中断服务寄存器PR优先级裁决器IRR中断申请寄存器00000000

中断屏蔽寄存器OCW2

10010100

00

01

OCW3OCW18259A中断控制器D0~D7A0CSRDWR80111A0100A08259A有两个I/O端口地址对9个寄存器的读写均通过这两个端口实现

写入数据的特征位

写入的先后顺序区分是对哪个寄存器进行操作根据

A0=0偶地址端口

A0=1奇地址端口8259A有4个初始化命令字ICW1~ICW4,用于接受CPU对8259的初始化命令。ICW1和ICW2是必须送的,ICW3和ICW4由工作方式决定。1.8259A的初始化命令字ICW(1)ICW1(初始化字)

特征:A0=0,ICW1中D4=1ICW1启动了8259A中的初始化顺序,自动发生以下事件:

①对中断请求信号边沿检测电路复位;②清IMR、ISR;③指定IR0优先级最高;④设定为普通屏蔽方式;⑤设定为非自动结束中断方式。

IC4SNGL

ADILTIM

1

A5

A6

A7

0A0D7D6D5D4D3D2D1D0偶地址

1=需要ICW40=不需要ICW4

1=单片

0=级联调用地址间隔:

1=间隔为4,80X86中不用

0=间隔为81=电平触发

0=边沿触发中断向量地址的A7~A5

(只用于8080/8085)取0识别码ICW1

0000例:设8259A端口地址20H、21HMOVAL,13HOUT20H,AL中断为边沿触发,系统中一片8259A,要设ICW4.ICW1例:设8259A端口地址20H、21HMOVAL,13HOUT20H,AL中断为边沿触发,系统中一片8259A,要设ICW4.ICW1IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器100

00001

10010100INTR(2)ICW2(中断类型码字)

写入时A0=1。当已知某中断源的中断类型码时,应填入ICW2,但其中高5位有效,低3位系统自动填入。

1

T3

T4

T5

T6

T7A0奇地址中断类型自动填入IR0000IR1001…IR7111(3)ICW3(级联控制字)

若系统中只有一片8259A,则不用ICW3;若有多片8259A级连,则主8259A和每一片从8259A都必须使用ICW3。

8259A最多允许有一片主8259A和8片从8259A级连,使中断源扩展至64个,这时主片与从片8259A的ICW3是不同的。

仅当ICW1中D1为0才需写ICW3.

S0

S1

S2

S3

S4

S5

S6

S7

1主片A0D7D6D5D4D3D2D1D0奇地址对应每位Di表示IRi中断请求线上有无从片1:有

0:无从片ID0ID1ID2

0

0

0

0

0

1A0D7D6D5D4D3D2D1D0奇地址无作用,常取0000001…110111相应于主片IRi(i=0~7)级联的从片编码例:ICW3=F0H,表示IR7~IR4上有从片,IR3~IR0上无从片。(4)ICW4(方式控制字)定义8259是工作于8080/8085模式,还是工作于80X86模式,及中断服务程序是否需要EOI命令(用以清除ISR,允许其他中断)等。μPMAEOI

M/SBUFSFNM

0

0

0

1A0D7D6D5D4D3D2D1D0奇地址

1=80X86模式

0=8080/8085模式

1=自动EOI0=普通EOI0X:非缓冲方式

10:缓冲方式/从

11:缓冲方式/主

1=特殊的全嵌套方式

0=普通的全嵌套方式由ICW1决定是否要ICW4例:MOVAL,0DHOUT21H,AL普通全嵌套,普通EOI,缓冲方式。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器100

00001

10010100INTR在写入ICW1~ICW4后,8259A就绪,可接收中断请求信号,若不再写入OCW,则处于全嵌套中断工作方式。2.8259A的操作命令字OCW在写入ICW1~ICW4后,8259A就绪,可接收中断请求信号,若不再写入OCW,则处于全嵌套中断工作方式。全嵌套中断工作方式的特点:①优先级固定IR0…….IR7

高低②当CPU为某中断源服务时,ISR相应位置1。这时8259不再响应同级或低级的中断请求,直到高级中断服务完毕,再执行一条EOI命令为止。③当高级中断请求到来,且IF=1,CPU转高级中断服务。这时低级中断服务的ISR位不复位,而高级中断的ISR位又置1。当高级中断服务完毕,发EOI命令以及IRET,高级中断源对应的ISR位复位,程序返回到低级中断程序的断点处,又继续执行低级中断服务程序。(1)OCW1(屏蔽控制字)

IMR相应位置1,屏蔽;IMR相应位置0,开放。该工作字放置于程序的任何地方,实现对某些中断的屏蔽或开放,也就实现了对优先权的改变。

M0

M1

M2

M3

M4

M5

M6

M7

1A0D7D6D5D4D3D2D1D0奇地址中断屏蔽1=置屏蔽0=复位屏蔽

若需改变上述8259A的中断控制方式,或为了屏蔽某些中断,以及读出8259A的一些状态信息,如IRR、ISR、IMR的内容,则必须写入操作命令字OCW。工作命令字OCW1~OCW3,写入顺序上无特别要求。端口地址有严格规定:OCW1写入奇地址端口(A0=1),

OCW2和OCW3写入偶地址端口(A0=0)。(2)OCW2(中断结束和优先权循环控制字)

设置优先级是否循环,循环方式,中断结束方式。

L0

L1

L2

0

0EOI

SL

R

0A0D7D6D5D4D3D2D1D0偶地址8259A的几种不同工作方式OCW2标志位000001…110111①系统中最低优先级的编码②SL=1时,要清除ISR中的哪一位。中断优先方式:1按左循环方式0非循环方式

IR0(高)…IR7(低)决定L2L1L0是否有效:1有效,指出最低优先级。0无效,当前被服务的中断源左循环到最低优先级。中断结束命令位:1ISR中相应位复位0在ICW4中给出

AEOIR:中断优先权是否循环

0:优先级固定,IR0最高,IR7最低。

1:优先级左循环,当前刚被服务的中断源轮为最低优先级。SL:特殊循环

0:当前被服务的中断源循环到最低优先级,D2~D0无意义。

1:D2~D0有效,指出最低优先级的中断源。EOI:中断结束命令

1:使ISR中的相应位复位。当ICW4中的AEOI=0

时,必须给出一个EOI。

0:在ICW4已给出AEOI.D2~D0:

①给定该系统中最低优先级的编码。②在OCW2给出特殊的中断结束命令时,指明具体要清除当前

ISR中的哪一位。R,SL,EOI三位组合可形成8259的几种不同的工作方式,见P259。

L0

L1

L2

0

0EOI

SL

R

0A0D7D6D5D4D3D2D1D0RIS

RR

P

1

0SMMESMM

0

0A0D7D6D5D4D3D2D1D0偶地址未定义,常取0OCW3标志是否工作于特殊屏蔽模式1中断查询命令0非查询命令

在下一个RD脉冲10读IRR(从A0=011读ISR端口)决定下一个操作是否是读操作10复位11置特殊屏蔽(3)OCW3(屏蔽和读状态控制字)①设置特殊屏蔽方式

D6D510复位为普通屏蔽方式

11置为特殊屏蔽方式②查询中断请求查询外部事件是否有中断请求。

i)写OCW38259A,其中D2=1ii)读查询字(对同一地址)D0D1D2

I1:有中断请求0

温馨提示

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

评论

0/150

提交评论