第06章 输入与输出中断_第1页
第06章 输入与输出中断_第2页
第06章 输入与输出中断_第3页
第06章 输入与输出中断_第4页
第06章 输入与输出中断_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

6.1输入输出接口概述

6.2CPU与外设数据传送的方式

6.3中断技术

6.48086/8088的中断系统和中断处理

第6章输入输出与中断

6.1输入输出接口概述计算机在应用中,必然同各种各样的外设打交道.外设与计算机的连接不能像存储器那样直接挂到总线(DB、AB、CB)上,而必须通过各自的专用接口电路(接口芯片)与主机连接.一、CPU与外设间的连接为什么需要I/O接口(电路)?微机的外部设备多种多样工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大它们不能与CPU直接相连必须经过中间电路再与系统相连这部分电路被称为I/O接口电路多种外设什么是I/O接口(电路)?I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路CPU接口电路

I/O设备二、接口电路的基本结构控制总线CB地址总线ABI/O接口电路数据控制状态数据总线DBCPU外设控制寄存器状态寄存器数据寄存器⑴数据寄存器输入数据寄存器:保存外设给CPU的数据输出数据寄存器:保存CPU给外设的数据⑵状态寄存器保存外设或接口电路的状态⑶控制寄存器保存CPU给外设或接口电路的命令接口电路的信息可分为3类:数据信息;状态信息;控制信息。(一)数据信息

数据信息包括:1)数字量2)模拟量3)开关量:(二)状态信息反映外设当前所处工作状态的信息,以作为CPU与外设间可靠交换数据的条件。(三)控制信息用于控制外设的启动或停止。(1)3种信息应通过不同的端口分别传送。如数据输入/输出寄存器(缓冲器)、状态寄存器与命令控制寄存器各占一个端口,每个端口都有自己的端口地址(2)外设的状态作为一种输入数据,而CPU的控制命令,是作为一种输出数据,从而可通过数据总线来分别传送。(3)端口地址由CPU地址总线的低8位或低16位地址信息来确定,CPU根据I/O指令提供的端口地址来寻址端口,然后同外设交换信息。不同外设具有的端口数各不相同,计算机中为每一个端口都赋予一个惟一编号——称为端口地址8088/8086CPU的I/O编址方式地址线上的地址信号用来区分:时为I/O地址I/O操作只使用20根地址线中的16根:A15~A0可寻址的I/O端口数为64K(65536)个I/O地址范围为0~FFFFH内存空间I/O空间FFFFF0FFFF80x86采用I/O端口独立编址一、程序传送CPU与外设之间的数据传送,通常采用以下3种I/O传送方式程序传送中断传送DMA传送CPU与外设间的数据交换在程序控制(即IN或OUT指令控制)下进行(一)无条件传送(又称同步传送)适用于总是处于准备好状态的外设以下外设可采用无条件传送方式:开关发光器件(如发光二极管、7段数码管、灯泡等)继电器步进电机优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较窄输入输出(无条件程序传送)原理图输入缓冲与输出锁存RD当CPU执行IN指令时,外设的数据是已准备好的,否则就会读错。

在CPU执行OUT指令时,必须确信所选外设的锁存器是空的适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。CPU在与外设交换数据前必须询问外设状态——“你准备好没有?”对外设的要求:应提供设备状态信息对接口的要求:需要提供状态端口优点:软件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢此条件是:在执行输入(IN指令)或输出(OUT指令)前,要先查询接口中状态寄存器的状态。输入时,由该状态信息指示要输入的数据是否已“准备就绪”;而输出时,又由它指示输出设备是否“空闲”,由此条件来决定执行输入或输出。(二)程序查询传送(条件传送——异步传送)1.程序查询输入入入

查询输入部分的程序:

POLL:INAL,STATUSPORT;读状态端口的信息TESTAL,80H;设“准备就绪”(READY)信息在D7位JZPOLL;未“准备就绪”,则循环再查INAL,DATA_PORT;已“准备就绪”(READY=1),则读入数据查询输出2.程序查询输出查询输出查询输出部分的程序:POLL:INAL,STATUS_PORT;查状态端口中的状态信息D7TESTAL,80HJNZPOLL;;D7=1即忙线=1,则循环再查MOVAL,STORE;否则,外设空闲,由内存读取数据OUTDATA_PORT,AL;输出到DATA地址端口单元

中断是外设或其他中断源中止CPU当前正在执行的程序,而转向为该外设服务(如完成它与CPU之间传送一个数据)的程序,一旦服务结束,又返回原程序继续工作。CPU在每一条指令执行的结尾阶段,均查询是否有中断请求信号,若有,则暂停执行现行的程序,转去为申请中断的某个外设服务,以完成数据传送。二、中断传送CPU无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。大大提高了CPU的利用率。优点:CPU效率高,实时性好,速度快。缺点:程序编制较为复杂。特点:前面三种I/O方式都需要CPU作为中介:

外设CPU内存两个含义:

1)软件:外设与内存之间的数据传送是通过CPU执行程序来完成的; 2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。缺点:程序的执行速度限定了传送的最大速度(约为几十KB/秒)—解决:DMA传输DMA传输:

外设

内存外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒)DMA的数据传输形式:

基本的 MEM——I/O

和扩充的MEM——MEM I/O——I/O无条件传送流程查询传送流程DMA传送流程中断传送流程所谓中断源,即引起中断的事件或原因,或发出中断申请的来源一、中断概述(一)中断与中断源(1)外部设备(2)实时时钟:(3)故障源:(4)为调试程序设置的中断源:中断源的种类(二)中断系统及其功能

2.能实现优先权排队有可能出现两个或两个以上中断源同时提出中断请求3.高级中断源能中断低级的中断

1.设置中断请求触发器简单的中断过程应包括:中断请求、中断响应、中断处理和中断返回等环节。(一)中断源向CPU发中断请求信号的条件每一个中断源,要能向CPU发中断请求信号,首先应能由它的接口电路提出中断请求,且该请求能保持着,直至CPU接受并响应该中断请求后,才能清除它。为此,要求在每个中断源的接口电路中设置一个中断请求触发器A,由它产生中断请求,即QA=12.设置中断屏蔽触发器1.CPU开放中断2.CPU在现行指令结束后响应中断1.关中断2.保留断点3.保护现场4.给出中断入口(地址),转入相应的中断服务程序5.恢复现场6.开中断与返回8086/8088是由中断源提供中断类型号,并根据中断类型号在中断向量表中取得中断服务程序的起始地址(三)CPU响应中断及处理过程三、向量中断向量中断(VectoredInterrupt),是指通过中断向量来找中断入口地址进而转向中断服务程序的一种方法;而中断向量则是用来提供中断入口地址的一个地址指针四、中断优先权多个中断源,而CPU的可屏蔽中断请求线往往只有一条。

CPU可以通过软件查询技术或硬件排队电路两种方法来实现按中断优先权对多个中断源的管理也有专门用于协助CPU按中断优先权处理多个中断源的中断控制芯片6.48086/8088的中断系统和中断处理一、8086/8088的中断系统

8086/8088每个不同的中断都可以通过给定一个特定的中断类型号(或中断类型码)供CPU识别,来处理多达256种类型的中断。NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断可屏蔽中断请求n430121.可屏蔽中断(一)外部中断

INTR和NMI引脚上同时都有中断请求信号,则CPU将首先响应NMI引脚上的中断请求

NMI的中断类型号为22.非屏蔽中断在IBMPC机中的非屏蔽中断源有3种:系统板上RAM的奇偶校验错,

扩展槽中的I/O通道错浮点运算协处理器8087的中断请求

CPU响应单步中断后将自动把状态标志压入堆栈,然后清除TF和IF标志位中断返回时TF位又被重新恢复(TF=1),所以CPU在中断返回以后仍然处于单步工作方式(二)内部中断3.单步中断——类型1当TF被置位(TF1)时,8086/8088处于单步工作方式,即CPU每执行完一条指令后就自动地产生一个类型1的内部中断PUSHFPOPAXORAX,0100HPUSHAXPOPFPUSHFPOPAXANDAX,0FEFFHPUSHAXPOPFTF置位TF复位4.断点中断——类型3断点中断指令主要用于软件调试中,程序员可用它在程序中设置一个程序断点。5.用户定义的软件中断——类型n由用户定义的双字节的中断指令INTn,其第1个字节为INT的操作码,第2个字节n是它的中断类型号1、FLAG压入堆栈2、清除IF,TF3、保护断点CS,IP4、取中断入口地址转入中断服务程序(三)内部中断的特点(1)内部中断由一条INTn指令直接产生,其中断类型号n或者包括在指令中,或者已由系统预先定义。(2)除单步中断以外,所有内部中断都不能被屏蔽。(3)所有内部中断都没有中断响应INTA机器总线周期,这是因为内部中断不必通过查询外部来获得中断类型号。(4)除了单步中断以外,所有内部中断的优先权都比外部中断的优先权高

怎么取中断入口地址?(中断向量表P218)1、内存低地址部分中有中断入口地址表2、中断入口地址表(中断向量表)用4个字节存放着中断向量的值3、中断向量实际上即为中断服务程序的入口地址,包括CS和IP4、一个中断向量占4个单元低地址的两个字节单元存放中断服务程序入口地址的偏移量(IP)-低字节在前(低地址),高字节在后(高地址)高地址的两个字节单元存放中断服务程序入口地址的段地址(CS)-低字节在前(低地址),高字节在后(高地址)。中断向量在中断向量表是按中断类型号顺序存放的,所以每个中断向量的地址可由中断类型号×4计算出来把中断类型号N乘以4,得到中断向量的对应地址4N(该中断向量所占4个字节单元的第一个字节单元的地址),然后把由此地址开始的两个低字节单元的内容装入IP寄存器:IP

(4N,4N+1),再把两个高字节单元的内容装入CS寄存器:CS(4N+2,4N+3)

8086/8088可以处理256种中断,对每种中断都指定一个中断类型号(也称中断向量号),每个中断类型号与一个中断服务程序的入口地址相对应。

256个中断向量要占256*4=1024个字节单元,地址编号从00000H-003FFH5个专用中断(类型0~类型4),它们有固定的定义和处理功能;

27个保留的中断(类型5~类型31)。占0000:0014H~0000:007FH,共108个字节单元。这个区域供系统使用,不允许用户自行定义。

224个用户可定义的中断(类型32~类型255)。占0000:0080H~0000:03FFH单元;使用时,要由用户自行填写相应的中断入口地址。(其中有些中断类型已经有了固定用途,例如,类型21H的中断已用作MS-Dos的系统功能调用)。例1:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址内存高地址1E000H+0A00H1EA00H中断类型号3×4=000CH中断服务程序…....1E(CSH)00(CSL

)0A(IPH

)00(IPL

)…….若中断类型号为8,它指出中断向量表的第9个入口,则这个向量的第1字节的地址为:类型号8×4=32=00100000B=20H若类型8中,安排的CS=1000H,IP=0200H,则它们形成的服务程序的入口地址为10200H。例2.中断类型号为20H,中断服务程序的入口地址存放在0000:0080H开始的4个单元中。若:(0080H)=10H(0081H)=20H(0082H)=30H(0083H)=40H则:中断服务程序的入口地址为例3.中断类型号为23(17H),中断服务程序的入口地址为:2340:7890H,由于中断类型号17H对应的中断向量存放在0段的0000:005CH(17H×4=5CH)处,所以有:(005CH)=(005DH)=(005EH)=(005FH)=01011100B左移2位:00010111B5CH二、8086/8088的中断处理过程

(1)~(5)步是CPU的内部处理(由硬件自动完成)

所有内部中断(除法错、INTn、INT0、单步)以及NMI中断不需要从数据总线上读取中断类型码,而INTR中断需读取中断类型码,中断类型码由发出INTR信号的接口提供。中断的基本过程可分为:中断请求,中断响应,中断处理和中断返回。按预先设计安排的中断优先权来响应中断在一般情况下,都要待当前指令执行

温馨提示

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

评论

0/150

提交评论