输入输出和中断技术_第1页
输入输出和中断技术_第2页
输入输出和中断技术_第3页
输入输出和中断技术_第4页
输入输出和中断技术_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

输入输出和中断技术1、I/O接口输入输出(I/O)是微机系统与外部设备进行信息交换的过程。输入输出设备称为外设,微机通过它们与外界进行数据交换。因I/O设备种类繁多,CPU并不与I/O设备直接进行信息交流,而是通过I/O接口进行。I/O接口是连接CPU和I/O设备之间的桥梁。它不仅包括接口的电路,还包括接口电路的管理驱动程序。

1)接口的功能

2)接口传递的信息

3)I/O端口的编址方法第2页,共51页,2024年2月25日,星期天接口的功能设置I/O接口的必要性——I/O设备的多样性使CPU与I/O设备交换信息比CPU与存储器交换信息更为复杂,表现在:1)I/O设备工作速度不同;2)数据字长多样;3)处理的信号不同(模拟或数字信号、并行或串行);4)所需的控制信号不同。I/O接口在它连接的CPU与I/O设备之间起转换作用。第3页,共51页,2024年2月25日,星期天I/O接口I/O的功能输入输出数据的缓冲和锁存 输出接口有锁存环节 输入接口有缓冲环节信号形式和数据格式的变换 I/O端口寻址、控制信号产生电气特性匹配I/O信息数据信息:数字量、模拟量、开关量状态信息控制信息第4页,共51页,2024年2月25日,星期天接口传递的信息接口传递的基本信息是数据信息,除此之外,还传递状态信息和控制信息。不同的信息用不同的I/O端口区分。端口:端口是构成I/O接口的基本单元。数据信息:CPU与I/O设备传递的基本信息。状态信息:反映I/O设备当前工作状态的信息,如输出设备是否空闲,输入设备是否数据准备好等。控制信息:CPU通过接口传递给I/O设备的命令信息,用以控制I/O设备的工作,如启动、停止等。第5页,共51页,2024年2月25日,星期天I/O接口的构成端口的分类:数据端口状态端口控制端口端口:I/O接口通常设置有若干个寄存器,用来暂存CPU和外设之间传输的数据、状态和控制信息,接口内的寄存器通常被称为端口。第6页,共51页,2024年2月25日,星期天I/O端口的编址存储器映象编址I/O单独编址属性统一编址单独编址应用motorola的M6800系列,iMCS51系列80X86,MCS96系列,Z80系列特点1.I/O端口相当于内存的一部分,使内存容量减小2.对I/O端口的读/写与对存储器的读/写相同,所有可对内存操作的指令对I/O端口均可使用3.指令系统中不专设I/O指令1.端口与存储器分别独立编址,端口不占用内存空间2.设有专门的I/O指令对端口进行读写,内存操作的指令不能用于I/O端口因CPU要访问I/O接口,必须对I/O端口进行编号,即给予I/O端口不同地址以区分它们。第7页,共51页,2024年2月25日,星期天I/O接口的编址独立编址统一编址第8页,共51页,2024年2月25日,星期天80X86CPUI/O端口编址在80X86CPU中,可用的端口地址线:A0~A15,可以寻址216=64K个端口。在IBMPC/XT中,实际参与端口寻址地址线:A0~A9,可以寻址1K个I/O端口。参见P246表6.2:PC/XT的I/O空间分配。在PC/XT中采用的系统总线标准:PC总线。其中:AEN引脚信号表示:当为高电平时,CPU让出总线控制权,给DMA控制器掌管系统总线。第9页,共51页,2024年2月25日,星期天简单I/O接口三态缓冲器输入设备通过数据总线向CPU传送数据,首先需通过缓冲器进行缓冲隔离,当CPU选通缓冲器时,才将数据送到数据总线上,而其他的输入设备此时与总线隔离。数据锁存器当CPU把数据送给输出设备时,只在总线周期的T2~T4时间内数据总线上送出数据,而外设的读取数据的速度比较慢,因此必须利用锁存器及时地把数据总线上的数据锁存起来。总线周期结束后,CPU将去做后续的工作。第10页,共51页,2024年2月25日,星期天简单输入接口举例MOV DX,218HIN AL,DX第11页,共51页,2024年2月25日,星期天简单输出接口举例MOV DX,219HOUT DX,AL在硬件上保证:只在CPU执行向219H端口输出数据时,锁存器处于触发状态,其输出随输入变化,而CPU执行其它指令时,锁存器均处于锁存状态,其输出不随输入变化,第12页,共51页,2024年2月25日,星期天I/O指令累加器AL/AX与I/O端口间的数据传送。输入指令IN:

直接寻址

IN AL,PORT ;(AL)←(PORT) IN AX,PORT ;(AL)←(PORT)

;(AH)←(PORT+1)

间接寻址

IN AL,DX ;(AL)←(DX) IN AX,DX ;(AL)←(DX)

;(AH)←(DX+1)输出指令OUT:MOVAL,[2000H];存储器读操作

INAL,48H;I/O读操作

MOV[4000H],ALOUT48H,AL第13页,共51页,2024年2月25日,星期天最小模式下,I/O端口的读、写周期

与读、写存储器的过程相似,不同之处:1.IO/M变高,CPU操作I/O端口。2.端口的地址信号出现在A15~A0上,A19~A16全为低电平。第14页,共51页,2024年2月25日,星期天8088CPU最小模式下,I/O端口读写周期时序

MOVDX,218HMOVDX,219HINAL,DX;读操作OUTDX,AL;写操作第15页,共51页,2024年2月25日,星期天2、I/O传送方式不同的传送方式适用不同的I/O设备、不同的工作环境:程序控制的输入与输出中断控制的输入与输出直接存储器访问方式(DMA)第16页,共51页,2024年2月25日,星期天程序控制的输入与输出

程序传送方式以CPU为中心,数据传送的控制来自CPU,通过执行预先编制的输入/输出程序实现数据传输。程序传送方式可分为无条件传送和查询传送方式。1.无条件传送方式

要求:输入操作时,指定的I/O端口已准备好数据;输出时,指定的I/O端口已空。

操作:直接执行IN/OUT指令从输入设备读取数据或将数据送出到输出设备。

适用:开关、发光二极管、数码管、继电器等设备。第17页,共51页,2024年2月25日,星期天第18页,共51页,2024年2月25日,星期天[例]如图示,外设为8个发光二极管,与其相连的I/O端口地址80H,欲使发光二极管全亮,执行指令:

MOVAL,0 OUT80H,AL第19页,共51页,2024年2月25日,星期天程序控制的输入与输出2.条件传送方式在传送数据前先查询外设的状态,确定外设准备好时才传送数据;若未准备好,则CPU等待。

NEXT:IN AL,20H;读状态信息

TESTAL,80H;判断

JZNEXT;未准备好,等

IN AL,21H;准备好,输入

此例中,状态端口20H,状态位

D7=1为准备好。数据端口21H。第20页,共51页,2024年2月25日,星期天查询式输入接口电路Ready=1,表示输入设备数据准备好第21页,共51页,2024年2月25日,星期天查询式输出接口电路Busy=0,表示输出设备准备好接收数据。第22页,共51页,2024年2月25日,星期天中断控制的输入与输出当外设准备好后,外设接口便主动向CPU发“中断请求”信号。CPU响应这一请求,则暂停正在执行的程序,而转入与外设操作有关的中断服务程序。在中断服务程序中完成数据的输入或输出,中断服务程序执行完毕,CPU返回到原来程序的断点继续执行。主程序中断请求→中断服务程序第23页,共51页,2024年2月25日,星期天中断传送方式的接口电路第24页,共51页,2024年2月25日,星期天直接存储器访问DMA基本思想:在存储器和外设之间建立起直接的数据传送通路,即不经由CPU,而由专门的DMA控制器实现存储器和外设之间的操作。特别适合于高速度大批量数据传送的场合。但是,这种方式要增设DMA控制器,硬件电路比前两种方式更为复杂。第25页,共51页,2024年2月25日,星期天DMA控制原理(工作过程)(1)

外设向DMA控制器发出DMA请求;(2)

DMA控制器向CPU发出总线请求信号;(3)

CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号;(4)

CPU将控制总线,地址总线及数据总线让出,由DMA

控制器进行控制;(5)

DMA控制器向外部设备发出DMA请求回答信号;(6)

进行DMA传送;(7)

数据传送完毕,CPU重新控制总线。第26页,共51页,2024年2月25日,星期天3、中断技术中断——由于外设的请求或某事件的发生使CPU暂停执行现行程序,转去执行处理相应请求或事件的中断服务程序,处理完毕再返回运行原程序,这样的过程为中断。中断源——能够引起中断的原因、来源。中断源:内部与外部之分◆一般的I/O设备。如键盘、打印机等;◆数据通道中断源。如磁盘、磁带机等;◆实时时钟;◆故障引起的中断。如电源掉电;◆中断指令或软件故障。如系统功能调用INT21H、除数为0等。第27页,共51页,2024年2月25日,星期天中断基本概念中断系统

——为实现中断功能而设置的各种软件和硬件。应具备:◆中断源的识别、响应及返回:完成一次中断过程;◆中断优先权排队:给中断源按轻重缓急排队;◆中断嵌套:优先权高的中断源能中断优先权低的中断处理。第28页,共51页,2024年2月25日,星期天中断处理过程中断请求→中断排队→中断响应→中断服务→中断返回(1)中断请求

——中断源向CPU发出的请求中断服务的信号。中断请求信号是随机发生的,因此,CPU一般隔一定时间检测一次中断请求信号,确定是否有中断请求。

(2)中断排队及中断响应

——系统中有多个中断源,当两个以上中断源同时向CPU发出中断请求信号,则CPU必须先响应重要的、紧急的中断,即优先权高的中断源。这就是中断排队的工作。

中断响应是指CPU在接到中断请求信号后,确定可以响应时自动完成的操作,大概包括:

注意:CPU响应中断是有条件的,如内部允许中断、中断未被屏蔽、当前指令执行完等。第29页,共51页,2024年2月25日,星期天中断处理过程

*保护FR、断点;*关中断;*形成中断入口地址,转入中断服务程序。

注意:IF:中断允许位,当CPU复位时,IF清零。(3)中断服务及中断返回

——CPU执行中断服务程序,中断服务结束时,应将在中断响应时保护的断点恢复,回到被中断的主程序,即中断返回的操作。第30页,共51页,2024年2月25日,星期天中断服务程序

(1)保护现场;(2)开中断——为实现中断嵌套,必须设置开中断。(3)中断处理——这是中断服务程序的核心;(4)关中断——为保证下一步恢复现场的操作不被打断;(5)恢复现场;(6)中断返回。第31页,共51页,2024年2月25日,星期天*中断优先权管理

问题的提出:当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。下面分别介绍:①软件查询法只需用简单的硬件电路。进入中断服务子程序后,用软件查询的方式分别对不同的设备进行依次查询:外设是否提出中断申请,查询程序的设计思想同查询式,查询的前后顺序就确定了设备的优先级。第32页,共51页,2024年2月25日,星期天软件排优三态缓冲器端口地址0#外设...7#外设D0...D7INTR第33页,共51页,2024年2月25日,星期天简单硬件方法以链式中断优先权排队电路为例,基本设计思想:将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,则发出中断响应信号,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。第34页,共51页,2024年2月25日,星期天CPUINTAINTR设备1接口1菊花链逻辑电路设备2接口2菊花链逻辑电路菊花链+5V第35页,共51页,2024年2月25日,星期天专用硬件方法采用可编程的中断控制器芯片,如Intel8259A。外设的中断请求信号通过IR0~IR7进入中断控制器,内部有中断优先级管理电路,在整个过程中,优先级较低的中断请求都受到阻塞,直到较高级的中断服务完毕之后,较低级的中断请求才有可能被响应。第36页,共51页,2024年2月25日,星期天4、80X86中断系统80X86微机系统的中断的分类:内部中断和外部中断。第37页,共51页,2024年2月25日,星期天内部中断内部中断(软件中断):即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与外部硬件无关。除法错误中断(n=0)由计算结果引起,不对应指令单步中断(n=1)条件:TF=1,不对应指令断点中断(n=3)由INT3指令引起溢出中断(n=4)条件:OF=1,由INTO指令引起中断指令INTn第38页,共51页,2024年2月25日,星期天除法错误中断执行除法指令时,若发现除数为0或商超过了寄存器所能表示的范围,就立即产生了一个类型为0的内部中断,CPU转入除法错误中断处理程序(由操作系统安排)。除法错误中断是由CPU内部电路自动生成的。——中断类型码n=0单步中断

由CPU对状态标志寄存器中的陷阱标志TF的测试而产生的中断。当TF=1,每执行一条指令,转入单步中断服务程序。这是8086提供给用户使用的一种调试程序手段。——中断类型码n=1第39页,共51页,2024年2月25日,星期天溢出中断

由程序员在程序恰当的位置设置INTO指令而实现。在带符号运算后安排一条INTO指令,当运算后OF=1,则进入溢出中断服务程序,进行运算结果处理。 ——中断类型码n=4

中断指令

用户可自行设计一些中断服务程序,用INTn运行,这与段间调用子程序相似。——中断类型码n由用户定义。第40页,共51页,2024年2月25日,星期天外部中断外部中断(硬件中断):即通过外部的硬件产生的中断,如打印机、键盘等。硬件中断又可分为两类:可屏蔽中断和不可屏蔽中断。不可屏蔽中断:由NMI引脚引入,它不受中断允许标志的影响,每个系统中仅允许有一个,都是用来处理紧急情况的,如掉电处理。这种中断一旦发生,系统会立即响应;中断向量码n=2。可屏蔽中断:由INTR引脚引入,它受中断允许标志的影响,也就是说,只有当IF=1时,可屏蔽中断才能响应,反之则不允许响应,可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。当IF=1,INTR有效时,CPU将送出中断响应信号INTA。中断源接到该信号,将其中断类型码送给CPU。第41页,共51页,2024年2月25日,星期天中断响应周期第42页,共51页,2024年2月25日,星期天中断类型码和中断向量

8086/8088为每个中断源分配了一个中断类型码n,其取值范围为0~255,即可处理256种中断。其中包括软件中断,系统专用的中断以及开放给用户使用的中断。提出问题1:如何根据不同的中断源(中断类型码n)进入相应的中断服务子程序?中断向量:把各个中断服务子程序的入口都称为一个中断向量;每个中断向量占四个存储单元,其中前两个单元存放中断处理子程序的入口地址的偏移量(IP);后两个单元存放中断处理子程序入口地址的段地址(CS)。提出问题2:如何根据不同的中断源(中断类型码n)找到相应的中断向量?第43页,共51页,2024年2月25日,星期天中断向量表

中断向量表:中断向量表是一个存储区,该存储区存放所有中断向量。表内容:所有中断服务程序的入口地址,即256个中断向量。表长度:一个中断向量4个字节,256个中断向量共256×4=1024字节,即占用1K存储空间。表位置:在0段内偏移地址为0000~03FFH的范围内,即实际地址为00000~003FFH。存放次序:按中断类型码从小到大依次存放。每个中断向量占用的4个单元中,小地址的存放偏移地址,大地址的存放段地址。当中断源发出中断请求时,CPU根据其提供的中断向量码可查找该表,找出其中断向量,就可转入相应的中断服务子程序。第44页,共51页,2024年2月25日,星期天中断向量表第45页,共51页,2024年2月25日,星期天例题

中断类型码*4即可计算某个中断类型的中断向量在整个中断向量表中的存放位置。[例]某一中断源的中断类型码为45H,则该中断源的中断向量在中断向量表的位置是:45H×4=00114H若中断向量表部分单元内容如图示,则该中断源的中断向量为:3400H:1020H。即该中断服务程序的入口地址为35020H。地址存储单元内容00114H20H00115H10H00116H00H00117H34H00118H第46页,共51页,2024年2月25日,星期天例题

[例]某一中断源的中断类型码为0FH,该中断源的中断向量为:0

温馨提示

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

评论

0/150

提交评论