第6章中北大学课件_第1页
第6章中北大学课件_第2页
第6章中北大学课件_第3页
第6章中北大学课件_第4页
第6章中北大学课件_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

第六章输入输出和中断技术6.1为什么要用接口电路接口概念计算机通过外围设备同外部世界通信或交换数据称为“输入/输出”.

把外围设备同微型计算机连接起来实现数据传送的控制电路称为“外设接口电路”,简称“外设接口”。(介于主机和外设之间的一种缓冲电路称为I/O接口电路).具体结构示意图见图所示:一.CPU与I/O接口

接口电路按功能可分为两类:①是使微处理器正常工作所需要的辅助电路:时钟信号或中断请求等;②是输入/输出接口电路:CPU与外部设备信息的传送(接收、发送)。最常用的外部设备:如键盘、显示装置、打印机、磁盘机等都是通过输入/输出接口和总线相连的,完成检测和控制的仪表装置也属于外部设备之列,也是通过接口电路和主机相连。二、为什么要用接口电路:需要分析一下外部设备的输入/输出操作和存储器读/写操作的不同之处:

存储器都是用来保存信息的,功能单一,传送方式单一(一次必定是传送1个字节或者1个字),品种很有限(只有只读类型和可读/可写类型),存取速度基本上和CPU的工作速度匹配.。

外部设备的功能多种多样的(输入设备,输出设备,输入设备/输出设备),信息多样(数字式的,模拟式的),信息传输的方式(并行的,串行的),外设的工作速度通常比CPU的速度低得多,而且各种外设的工作速度互不相同,这也要求通过接口电路对输入/输出过程起一个缓冲和联络的作用。注:接口电路完成相应的信号转换、速度匹配、数据缓冲等功能三.接口的功能(8种):⑴寻址能力:对送来的片选信号进行识别。⑵输入/输出功能:根据读/写信号决定当前进行的是输入操作还是输出操作。⑶数据转换功能:并行数据向串行数据的转换或串行数据向并行数据的转换。⑷联络功能:就绪信号,忙信号等。⑸中断管理:发出中斯请求信号、接收中断响应信号、发送中断类型码的功能。并具有优先级管理功能。⑹复位:接收复位信号,从而使接口本身以及所连的外设进行重新启动。⑺可编程:用软件来决定其工作方式,用软件来设置有关的控制信号。⑻错误检测:一类是传输错误。另—类是覆盖错误。注:一些接口还可根据具体情况设置其它的检测信息。I/O接口电路中最基本的接口电路有8259中断控制器接口电路,8255可编程并行接口电路、8253可编程定时/计数器、8251可编程串行接口电路、8237直接存储器存取电路(DMA),A/D,D/A转换器等。6.2接口与端口6.2.1CPU与外设之间的接口信息

CPU与一个外设交换信息,通常需要以下一些信号:

1.

数据(Data)

数字量——键盘等输入的数据;模拟量——如温度、压力、流量等;(需先经过A/D转换,将其变为数字量,由CPU处理后,再经过

D/A转换,变为模拟量,进行控制),这部分工作由接口电路来完成。开关量——如开关的合与断等。

2.状态信息(Status)输入时,输入设备的信息是否准备好(READY);

输出时,输出设备是否有空等(BUSY)。

3.控制信息(Control)控制输入输出设备的启动和停止等。6.2.2I/O端口控制方式一个I/O接口总要包括若干个端口,如数据端口、命令端口、状态端口、方式端口、操作结果端口、地址索引端口等。I/O端口也必须进行编址以便能被主机访问。在微机系统中,对I/O接口的端口编址有两种方法:端口统一编址和端口独立编址。一、端口独立编址独立编址方式的优点是:

I/O端口的地址码较短(一般比同一系统中存储单元的地址码短),译码电路比较简单,存储器同I/0端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计。独立编址方式的缺点:

需要有专用的I/O指令,而这些I/0指令的功能一般不如存储器访问指令那样丰富,所以程序设计的灵活性较差。典型系统

8086采用的就是这种方式OUT43H,AL二、统一编址统一编址方式的优点

任何对存储器数据进行操作的指令都可用于I/0端口的数据操作,不需要专用的I/0指令,从而使系统编程比较灵活;l/O端口的地址空间是内存空间的一部分,这样,l/O端口的地址空间可大可小,从而使外设的数目几乎可以不受限制。统一编址方式的缺点

l/O端口占用了内存空间的一部分,显然内存空间必然减少,影响了系统内存的容量;同时访问l/O端口同访问内存一样,由于访问内存时的地址长,指令的机器码也长,执行时间显然增加。典型系统

IntelMCS—51等系列单片微计算机就采用这种编址方式,这些微计算机中无专门的IN/OUT指令。

I/O指令:

•若端口地址在0~FFH

范围内,则用:

INAL,端口地址(输入)

OUT端口地址,AL(输出)如:INAL,KOU1OUTKOU2,AL

•若端口地址在0100~FFFFH

范围内,则用:

MOVDX,端口地址

INAL,DXOUTDX,AL

如:MOVDX,KOU100INAL,DX65F30200外设000000FFFFFF0100KOU1KOU2KOU311223344KOU100KOU101可寻址28=256个端口可寻址216=64K个端口11323201内存00000FFFFF6.2.3简单的输入输出接口芯片在外设接口电路中,经常需要对传输过程中的信息进行放大、隔离以及锁存,能实现上述功能的接口芯片最简单的就是缓冲器、数据收发器和锁存器。一、74系列器件

74系列器件是TI(德州仪器)公司生产的中小规模TTL集成电路芯片,这是一种低成本、工业民用产品,工作温度为00C—700C,从功能和速度分类有如下几类:·74xxx——标准TTL·74Lxxx——低功耗TTL·74Sxxx——肖特基型TTL.74LSxxx——低功耗肖特基型TTL.74ALSxxx——高性能型TTL.74Fxxx——高速型TTL

对于相同编号(XXX),不同类型的芯片,其逻辑功能完全一样。二、锁存器74LS37374LS373是一种8D锁存器,具有三态驱动输出。使能端G有效时,将D端数据打入锁存器中D门,当输出允许端OE有效时,将锁存器中锁存的数据送到输出端Q三、缓冲器74LS244

一种三态输出的八缓冲器和线驱动器1A1~1A4,2A1~2A4为输入,1Y1~1Y4,2Y1~2Y4为输出当1G有效(低电平)时:1Y1~1Y4输出等于1A1~1A4;当2G有效(低电平)时:2Y1~2Y4输出等于2A1~2A4;而当1G(或2G)为高电平时,输出1Y1—1Y4(或2Y1-2Y4)为高阻态。经74LS244缓冲后,输入信号被驱动,输出信号的驱动能力加大了。74LS244缓冲器主要用于三态输出的存储地址驱动器、时钟驱动器和总线定向接收器和定向发送器等。常用的缓冲器还有74LS240和741~241等。四、数据收发器74LS2456.3数据传送的控制方式按照I/O控制组织的演变顺序以及外设与主机并行工作的程度,微机系统中数据传送的控制方式主要有程序控制方式、DMA(直接存储器存取)方式和I/O处理机方式。6.3.1程序控制方式1.

程序直接控制方式

①无条件传送方式

②查询传送方式2.中断传送方式一、无条件传送方式

又称“同步传送方式”。主要用于外设的定时是固定的并且是已知的场合,外设必须在微处理器限定的指令时间内准备就绪,并完成数据的接收或发送。通常采用的办法是:把I/O指令插入到程序中,当程序执行到该I/O指令时,外设必定已为传送数据作好准备,于是在此指令时间内完成数据传送任务。无条件传送是最简便的传送方式,它所需的硬件和软件都较少。DatasegmentDtor

dw100dup(?)DataendsCodesegmentassumecs:code,ds:dataStart:movax,data

mov

ds,ax

mov

dx,0100leabx,dtor

xoral,alAgain:moval,dl

out20h,alcallneardelay1

moval,dhout20h,alcallneardelay2inax,10h

mov[bx],axincbxincbx

rcldh,1

jncagain例:采用同步传送的数据采集系统(8路采样)接口输入口输出口

movah,4ch

int21hDelay1procnearpushaxpushdx

movax,3ffhLoop2:mov

dx,0ffffhLoop1:dec

dx

jnzloop1

decax

jnzloop2popdxPopaxretDelay1endpCodeendsendstart二、查询式传送方式

CPU与I/O设备的工作往往是异步的,很难保证当CPU执行输入操作时,外设已把要输入的信息准备好了;而当CPU执行输出时,外设的寄存器(用于存放CPU输出数据的寄存器)一定是空的。所以,通常程序控制的传送方式在传送之前,必须要查询一下外设的状态,当外设准备就绪了才传送;若未准备好,则CPU等待。例:采用查询方式传送的数据采集系统(8路采样)Start:movdl,0f8h

;1111,1000启动A/D转换

leadi,detor

;输入数据存放地址

Again:moval,dl;

andal,0efh;AL=1110,1000,使D4=0

out4,al;停止A/D转换,

calldelay;

moval,dl;AL=1111,1000

out4,al

;启动A/D转换并选择模拟量A0poll:inal,2;输入状态信息

shral,1;

jncpoll;若未Ready,等待

inal,3;否则,输入数据

stosb

;将数据存入内存

incdl;取下一个模拟量

jneagain;状态端口数据口状态口控制口A7~A0

D06.3.2中断传送方式

.为提高cpu的工作效率和使cpu和外设以及外设间的并行工作,可采用中断传送方式。

.在中断传送方式中,通常是在程序中安排好在某一时刻启动某一台外设,然后CPU继续执行其主程序,当外设完成数据传送的准备后,向CPU发出“中断请求”信号,在CPU可以响应中断的条件下,现行主程序被“中断”,转去执行“中断服务程序”,在“中断服务程序”中完成一次CPU与外设之间的数据传送,传送完成后仍返回被中断的主程序,从断点处继续执行。传送流程演示6.3.3DMA(直接存储器存取)传送方式中断传送仍是由CPU通过程序来传送,每次要保护断点,保护现场需用多条指令,每条指令要有取指和执行时间。这对于一个高速I/O设备,以及成组交换数据的情况,例如磁盘与内存间的信息交换,就显得速度太慢了。所以希望用硬件在外设与内存间直接进行数据交换(DMA),而不通过CPU,这样数据传送的速度的上限就取决于存储器的工作速度。但是,通常系统的地址和数据总线以及一些控制信号线(例如I/O、等)是由CPU管理的。在DMA方式时,就希望CPU把这些总线让出来(即CPU连到这些总线上的线处于第三态——高阻状态),而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束等信号。这些都是由硬件实现的。传送流程演示(一)、DMA操作方法

1.周期挪用2.周期扩展3.CPU的停机方式(二)、DMA的传送方式

1.单字节方式:每次DMA请求只传送一个字节数据,每传送完一个字节,都撤除DMA请求信号,释放总线。

2.成组传送方式一个DMA请求可以传送一组信息,这一组信息的字节数由编程决定(在DMAC初始化时),只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放弃总线控制权,直到整个数组传送完。

3.请求传送方式又称查询传送方式。该方式的传送类似于成组传送方式,但每传送一个字节后,DMAC就检测DREQ,若无效,则挂起;若有效,继续DMA传送,直到:①一组信息传送结束;②外加信号强制DMAC中止操作。(三)、DMA控制器的基本功能DMAC是控制存储器和外部设备之间直接高速地传送数据的硬件电路,它应能取代CPU,用硬件完成图8-17所示的各项功能。具体地说应具有如下功能:(1)能接收外设的请求,向CPU发出DMA请求信号。(2)当CPU发出DMA响应信号之后,接管对总线的控制,进入DMA方式。(3)能寻址存储器,即能输出地址信息和修改地址。(4)能向存储器和外设发出相应的读/写控制信号。(5)能控制传送的字节数,判断DMA传送是否结束。(6)在DMA传送结束以后,能结束DMA请求信号,释放总线,使CPU恢复正常工作。,

该电路的工作过程如下:当输入设备准备好一个字节数据时,发出选通脉冲STB,该信号一方面选通“数据缓冲寄存器”U2,把输人数据通过U2送人“锁存器”U3;另一方面将“DMA请求触发器”Ul置“1”,作为锁存器U3的准备就绪信号READY,打开锁存器U3,把输人数据送上数据总线;同时DMA请求触发器U1向DMAC发出DMA请求信号。然后,DMAC向CPU发出HOLD(总线请求)信号,CPU在现行总线周期结束后给予响应,发出HLDA信号,DMAC接到该信号后接管总线控制权,发出DMA响应和地址信息,并发出存储器写命令,把外设输人数据(经缓冲器U2、锁存器U3暂存在系统数据总线上)写到内存然后修改地址指针,修改计数器、检查传送是否结束,若未结束,则循环传送直到整个数据块传送完。在整个数据传送完后,DMAC撤除总线请求信号HOLD,在下一个T周期的上升沿,使HLDA变为无效。上述过程如图6—13的波形图所示。几种传送方式的比较:1.无条件传送:只能用于外部设备与CPU的动作同步时,否则出错。这种方式已较少使用。2.查询传送:

•接口简单,

•但在传送过程中,若外设数据没有准备好,则CPU一直在查询、等待,而不能做其他事情。CPU的效率低下。3.中断传送:

•只有当外设数据准备好时(向CPU发出请求),CPU才进行数据传送(在中断服务程序中),其余时间CPU可以做其他事情。CPU效率大大提高。

•但是,每传送一次数据,CPU都要执行一次中断服务程序,在中断服务程序中,除执行IN

和OUT

指令外,还要进行下列工作:保护断点、保护标志寄存器、保护某些通用寄存、恢复等一些工作,

95%的时间是额外开销,从而传送效率并不高。

4.DMA传送:

在DMAC的控制下,外设直接和存储器(也可外设与外设,存储器与存储器之间)进行数据传送,而不必经过CPU,传送速度基本取决于外设与存储器的速度,从而传送效率大大提高。6.4中断技术中断方式如果当外设将数据准备好后,CPU暂时停止当前的工作,进行与外设的数据交换,这显然要提高CPU的工作效率,也解决了慢速的外设与快速的CPU间在数据传输时的速度匹配的矛盾。

6.4.1中断的基本概念一、中断和中断源

所谓“中断”是指在CPU正常运行程序时,由于内、外部事件引起CPU暂时中止正在运行的程序,转而去执行请求CPU暂时中止的内、外部事件的服务程序,待该服务程序处理完毕后又返回到被中止的程序。

能够向CPU发出中断请求的中断来源称为“中断源”。常见的中断源为:

(1)一般的输入/输出设备,如CRT终端、行式打印机等;

(2)数据通道,如磁带、磁盘等;

(3)实时时钟,如定时器芯片8253等的定时输出作为定时中断请求信号;

(4)故障信号,如电源掉电等;

(5)软件中断,如为调试程序而设置的中断源。日常事务程序中断服务程序二、中断系统的功能为满足上述中断要求,中断系统应具有的功能可归结为中断处理和中断控制。

1.中断处理包括发现中断请求,响应中断请求、中断处理与中断返回。

2.中断控制主要是实现中断优先级的排队和中断嵌套三、中断的主要用途在微机系统中,中断的主要用途是:

(1)实现输入/输出操作;

(2)电源掉电或其他情况的报警;

(3)控制台或人工干预;

(4)多处理机系统中各处理机之间的协调;

(5)控制操作系统。四、可屏蔽中断与不可屏蔽中断

6.4.2中断处理过程一、CPU响应中断的条件1.设置中断请求触发器2.设置中断屏蔽触发器3.设置中断允许触发器的状态4.CPU在现行指令结束后响应中断

在满足上面三个条件的情况下,CPU在执行现行指令的最后一个机器周期(总线周期)的最后一个时钟周期(T状态)时,才测试中断输入线INT(或INTR),若发现中断请求有效,则把内部的中断锁存器置“1”,下一总线周期进入中断周期。具有中断屏蔽的接口电路二、中断响应的过程

1.关中断

CPU在响应中断后,发出中断响应信号INTA,同时内部自动地关中断,以禁止接受其他的中断请求。

2.保护断点

把断点处的IP(指令指针)值和CS值(段基值)压人堆栈保留理完后能正确地返回主程序断点。

3.识别中断源CPU要对中断请求进行处理,必须要找到相应的中断服务程序(处理中断的程序)的人口地址,这就是中断源的识别。识别中断源有两种方法:

(1)查询中断

(2)向量中断4.保护现场

为了不使中断服务程序的运行影响主程序的状态,必须把断点处有关寄存器(指在中断服务程序中要使用的寄存器)内容以及标志寄存器的状态,压人堆栈保护。

5.执行中断服务程序

6.恢复现场

即把中断服务程序执行前压人堆栈的现场信息弹出恢复到原寄存器及标志寄存器。

7.开中断与返回

开中断放在返回之前,目的是返回主程序后能继续响应新的中断请求。6.4.3中断优先级当多个中断源同时向CPU申请中断时,CPU必须决定先为那个中断源服务.共有3种方法软件查询法确定中断优先级硬件查询法确定优先级中断优先级编码电路一、软件查询确定中断优先级在查询方式中询问的次序即为优先级的次序,不需要有判断优先级的硬件排队电路。其缺点是在中断源较多的情况下由询问到转至相应的中断服务程序的人口时间较长。多个中断源共用同一中断请求端或门中断请求触发器,高有效软件查询法识别中断源二、硬件查询确定优先级来自CPU的“中断响应”信号从A设备开始串行地往下传送,当A设备有“·中断请求”时,则“中断响应”信号在门A2处被封锁,不再下传,使后面的设备得不到CPU的“中断请求”信号。外设的中断优先级由其在链式排队电路中的先后次序来决定。读中断矢量EN高有效高电平有效优先控制失效控制中断屏蔽寄存器0-开中断请求触发器1-有请求三、中断优先级编码电路6.4.4中断的嵌套执行低级中断时被高级中断所中断称中断嵌套有中断嵌套时的中断服务程序编程注意事项屏蔽同级及低级中断中断服务过程中开放中断恢复现场时关中断恢复现场后开中断6.4.58086/8088的中断系统8086/8088中断系统的特点:矢量中断能处理256个中断源(图)内部中断外部中断外部中断6.4.5.1外部中断一、可屏蔽中断INTRIF标志可屏蔽中断有2个INTA周期,第一个周期响应中断请求,第2个周期读中断类型号二、不可屏蔽中断NMI用来处理紧急或灾难性事件电源掉电存储器读写错总线奇偶校验错不执行中断响应周期有固定的中断类型号26.4.5.2内部中断溢出中断溢出标志置位时引起该中断有固定的中断类型号4(执行INTO产生)除法错中断除法运算的商大于目的操作数字长能表示的范围中断类型号0(自动产生)INTn中断(软中断)执行INTn指令时引起的中断断点中断INT3指令时产生中断单步(陷阱)中断TF标志置1时(将标志与0100H相或),每执行一条指令产生一次中断,用于调试中断类型号1(每执行完一条指令自动产生)内部中断的特点:除单步中断外均不可屏蔽不执行中断响应周期除软中断外都有固定的中断类型号除单步中断外,所有内部中断都比外部中断优先级高.中断优先级中断优先级除法错,INTn,INT0NMIINTR单步最高最低movbl,0idiv

bl

;除数BL=0,产生除法错中断movax,200hmovbl,1divbl

;商=200H,不能用AL表达 ;产生除法错中断⑴除法错中断在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断例如:例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试⑵单步中断若单步中断TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断⑶断点中断设置断点的专用指令,其操作码为单字节0CCH,助记符为INT3movax,2000haddax,7000h

;2000H+7000H=9000H,溢出:OF=1into ;因为OF=1,所以产生溢出中断⑷溢出中断在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个向量号为4的内部中断,被称为溢出中断例如:例如:DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT3指令实现的⑸软中断在执行中断调用指令INTn时产生的一个向量号为n(0~255)的内部中断,称为指令中断,其中向量号为3的指令中断比较特别(生成一个字节的指令代码:11001100),常用于程序调试,被称为断点中断6.4.5.3中断向量表中断向量表是存放中断服务程序入口地址的表格中断向量表存放在内存的0000段,0000偏移处,共1024字节每个中断向量占4个字节,低地址放IP高地址放CS1)定义:所谓中断向量,实际上就是中断处理子程序的入口地址,每个中断类型对应一个中断向量

8086的中断系统是以位于内存0段的0~3FFH区域的中断向量表为基础的,中断向量表中最多可以容纳256个中断向量。

中断向量并不是任意存放的。一个中断向量占4个存储单元,其中前2个单元存放IP且低位在前,高位在后,后2个单元存放CS,同样也是低位在前、高位在后。按照中断类型的序号,对应的中断向量在内存的0段0单元开始有规则地进行排列。重点:由中断类型号如何求中断向量。2)8086中断类型号的获取方法有两种方法获取类型号。第一种是用指令直接获取。对于类型号0~4的中断,由于8086CPU已规定了产生中断的原因,所以可以直接获取类型号。而INTN类型的中断可以由指令直接得到中断类型号。第二种是由外部引入的INTR中断,当CPU响应中断时必须由硬件提供中断类型号。在可屏蔽中断响应周期进行到第二个周期时,类型号放入数据总线,CPU从数据总线上获取类型号。中断向量:中断服务程序的入口地址(首地址),逻辑地址含有段地址CS和偏移地址IP(32位)每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节

8086微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始256个中断占用1KB区域,就形成中断向量表向量号为N的中断向量的物理地址=N×4向量号255的CS值用户中断(向量号255)3FCH向量号255的IP值……向量号2的CS值非屏蔽中断(向量号2)008H向量号2的IP值向量号1的CS值单步中断(向量号1)004H向量号1的IP值向量号0的CS值除法错中断(向量号0)000H向量号0的IP值8086的中断向量表一、8086中断过程——内部中断过程

1)首先将状态寄存器的内容压入堆栈中。2)置TF=0,暂停单步中断,并置IF=0,用以屏蔽以后的可屏蔽中断。3)断点地址CS:IP压入堆栈。4)识别中断源,首先获取中断类型号,并将其乘4,得到存储中断向量的起始地址,进而取得中断向量。将中断向量中的高地址的字送入CS寄存器,将低地址的字送IP寄存器中。6.4.5.48086中断过程5)执行中断服务程序。6)中断服务程序最后一条指令为IRET,这条指令的功能保证了从堆栈中弹出断点IP和CS的内容,并存入各自的寄存器中,并接着弹出状态寄存器的内容,恢复断点的状态标志。7)CPU按CS和IP指示的内容正确地返回了程序的断点处,程序从断点处继续运行二、8086中断过程——非屏蔽中断过程1)CPU一旦响应了中断请求,首先将状态寄存器的内容压入堆栈中。2)置TF=0,暂停单步中断,并置IF=0,用以屏蔽以后的中断。3)断点地址CS:IP压入堆栈。4)识别中断源,首先由中断类型号02H查中断向量表读取中断服务程序的入口地址到CS和IP中。5)执行中断服务程序。6)执行中断返回指令IRET,这条指令的功能保证了从堆栈中弹出断点IP和CS的内容,并存入各自的寄存器中,并接着弹出状态寄存器的内容,恢复断点的状态标志。7)CPU按CS和IP指示的内容正确地返回了程序的断点处,程序从断点处继续运行。三、8086中断过程——可屏蔽中断过程

1)执行中断响应周期发出中断响应信号,从数据总线读取中断类型号。

2)如果当时IF=0,那么可屏蔽的中断源被屏蔽。当IF=1时,CPU在执行完当前指令(有重复前缀的字符串操作指令除外)后将响应它所收到的中断请求。如果有几个中断源同时请求中断,则CPU只响应其中优先级最高的。

3)CPU一旦响应了中断请求,首先将状态寄存器的内容压入堆栈中。

4)置TF=0,暂停单步中断,并置IF=0,用以禁止CPU响应新的可屏蔽中断请求。

5)将指示断点的指令指针寄存器IP及代码段寄存器CS的内容压入堆栈。

6)识别中断源,首先获取中断类型号,并将其乘4,得到存储中断向量的起始地址,进而取得中断向量。

7)将中断向量中的高地址的字送入CS寄存器,将低地址的字送IP寄存器,于是开始执行中断服务程序。

8)中断服务程序最后一条指令为IRET,这条指令的功能保证了从堆栈中弹出断点IP和CS的内容,并存入各自的寄存器中,并接着弹出状态寄存器的内容,恢复断点的状态标志。

9)CPU按CS和IP指示的内容正确地返回了程序的断点处,程序从断点处继续运行。6.5可编程中断控制器8259AIntel8259A是可编程中断控制器PIC可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择6.5.18259A的内部结构和引脚6.5.18259A的内部结构和引脚1.中断控制中断请求寄存器IRR保存8条外界中断请求信号IR0~IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求中断服务寄存器ISR保存正在被8259A服务着的中断状态Di位为1表示IRi中断正在服务中;为0表示没有被服务中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态Di位为1表示IRi中断被屏蔽(禁止);为0表示允许2.与处理器接口

A0RD*WR*CS*功能

0100110000101010×110×××1写入ICW1、OCW2和OCW3写入ICW2~ICW4和OCW1读出IRR、ISR和查询字读出IMR数据总线高阻状态数据总线高阻状态3.中断级连一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)CAS0IR0CAS1IR1CAS2IR2

IR3INTAIR4IR5INTIR6IR7SP/EN

CAS0INTA

CAS1

CAS2INT

IR0

IR1SP/ENIR7CAS0IR0CAS1IR1CAS2IR2

IR3INTAIR4IR5INTIR6IR7SP/ENINTAINTR+5V8259级联工作示意图返回8259级联工作示意图返回6.5.28259A的中断过程CAS0~CAS2D0~D7SP/ENIR0~IR7CPU响应周期8259A工作波形INT第一个周期T1T2T3T4ALECLK

第二个周期T1T2T3T4第一个前保持为高电平

INTALOCK8259级联工作示意图返回6.5.38259A的工作方式普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式数据线连接方式缓冲方式非缓冲方式1.设置优先权方式普通全嵌套方式8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、……IR7中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,至到中断结束(ISR的Di位复位)在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套特殊全嵌套方式优先权自动循环方式优先权特殊循环方式2.结束中断处理方式什么是8259A的中断结束?8259A利用中断服务寄存器ISR判断:某位为1,表示正在进行中断服务;该位为0,就是该中断结束服务。这里说明如何使ISR某位为0,不反映CPU的工作状态。2.结束中断处理方式自动中断结束方式普通中断结束方式配合全嵌套优先权方式使用当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会把所有正在服务的中断中优先权最高的ISR位复位特殊中断结束方式配合循环优先权方式使用CPU在程序中向8259A发送一条特殊中断结束命令,这个命令中指出了要清除哪个ISR位3.屏蔽中断源方式普通屏蔽方式将IMR的Di位置1,则对应的中断IRi被屏蔽,该中断请求不能从8259A送到CPU如果IMR的Di位置0,则允许IRi中断产生特殊屏蔽方式将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置04.中断触发方式边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号电平触发方式中断请求端出现的高电平是有效的中断请求信号5.数据线连接方式缓冲方式8259A的数据线需加缓冲器予以驱动8259A把SP*/EN*引脚作为输出端,输出允许信号,用以锁存或开启缓冲器非缓冲方式SP*/EN*引脚为输入端若8259A级连,由其确定是主片或从片6.5.48259A的编程初始化编程8259A开始工作前,必须进行初始化编程给8259A写入初始化命令字ICW中断操作编程在8259A工作期间可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作还可以读取8259A的信息,以便了解他的工作状态1.初始化命令字ICW初始化命令字ICW最多有4个8259A在开始工作前必须写入必须按照ICW1~ICW4顺序写入ICW1和ICW2是必须送的ICW3和ICW4由工作方式决定D7D6D5D4D3D2D1D0写ICW1A0=0,D4=1写ICW2A0=1SNGL=1

IC4

温馨提示

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

最新文档

评论

0/150

提交评论