您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第六章 输入输出和中断技术1
第6章输入/输出和中断技术6.1输入输出及接口6.2输入和输出的传送方式6.3中断技术6.480X86/Pentium中断系统6.58259A可编程中断控制器6.6中断程序设计第6章输入/输出和中断技术6.1输入输出及接口接口I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路,它不仅包括接口的电路,还包括接口电路的管理驱动程序。为什么需要I/O接口•I/O设备工作速度不同•I/O设备数据字长不同•I/0设备可能是模拟或数字的•I/O设备的控制信号不同第6章输入/输出和中断技术I/O接口I/O的功能–输入输出数据的缓冲和锁存输出接口有锁存环节输入接口有缓冲环节–信号形式和数据格式的变换–I/O端口寻址、控制信号产生–电气特性匹配I/O信息•数据信息:数字量、模拟量、开关量•状态信息•控制信息第6章输入/输出和中断技术I/O接口的构成端口:I/O接口通常设置有若干个寄存器,用来暂存CPU和外设之间传输的数据、状态和控制信息,接口内的寄存器通常被称为端口。根据寄存器内暂存信息的类型,分别称为数据端口、控制端口和状态端口每个端口有一个独立的地址,CPU可以用端口地址代码来区别各个不同的端口,并对它们分别进行读/写操作第6章输入/输出和中断技术I/O端口INAL,21H第6章输入/输出和中断技术I/O端口OUT43H,AL第6章输入/输出和中断技术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端口第6章输入/输出和中断技术I/O接口的编址独立编址统一编址第6章输入/输出和中断技术端口地址译码门电路译码–门电路译码是最基本的也是最简单的地址译码方法,通常采用各种门电路,如与门、或门、非门等电路的组合。–设计时首先分配好地址,然后写成二进制形式,再根据地址总线数分配各与非门输入管脚地址。–门电路译码需要芯片较多,且译出的端口地址单一,接口中用到的端口地址不能更改第6章输入/输出和中断技术门电路译码【例】设计端口地址为218H的译码电路分析:CPU执行IN/OUT指令时,发出端口的地址信号MOVDX,218HINAL,DX或OUTDX,AL对应218H端口的地址信号为(只取A9~A0):A9A8A7A6A5A4A3A2A1A0(地址信号)1000011000B218H只要满足此地址取值的译码电路均可第6章输入/输出和中断技术门电路译码译码电路部分满足:只当地址信号A9~A0为:A9A8A7A6A5A4A3A2A1A01000011000即218H时,输出“0”,使I/O接口的CS有效否则输出“1”使I/O接口的CS无效地址重叠(16根地址线):64个地址重叠区,如218,618,A18,E18等等第6章输入/输出和中断技术译码器译码若接口电路中需使用多个端口地址,则采用译码器译码比较方便。译码器的型号很多,如3-8译码器74LS138;4-16译码器74LS154;双2-4译码器74LS139、74LS155等。这些译码器通常由三个部分组成:译码控制端,选择输入端,译码输出端。第6章输入/输出和中断技术译码器译码当端口地址信号为:A9A8A7A6A5A4A3A2A1A01000011000即218H时,Y0输出0,I/O接口的CS有效第6章输入/输出和中断技术比较器译码将比较器的A(或B)输入端输入地址信号,B(或A)端接一组DIP(DualIn-linePackage)开关。地址总线所送的地址与DIP所设置的地址相等时,产生一选通信号输出。特点:–可以通过改变DIP开关的设置,很容易地改变接口的地址。–不但同一功能的模块在不同微型计算机应用中可以被分配不同的地址,而且即使在同一微型计算机系统中,也可通过改变DIP开关的设置而控制不同的设备.。这种译码电路应用非常广泛,常用的比较器有四位比较器74LS85和八位比较器74LS688。第6章输入/输出和中断技术比较器译码第6章输入/输出和中断技术锁存和缓冲输入接口的锁存和缓冲内部数据总线外部数据引脚锁存控制锁存器缓冲器DCDCDCQQQ选通第6章输入/输出和中断技术锁存和缓冲输出接口的锁存和缓冲内部数据总线外部数据引脚锁存控制DCQDCQDCQ读数据第6章输入/输出和中断技术6.2输入输出的传送方式程序控制的输入输出–无条件传送–查询传送中断控制的输入输出直接存储器访问方式(DMA)第6章输入/输出和中断技术无条件传送方式所谓无条件,就是假设外设已处于就绪状态,数据传送时,程序就不必再去查询外设的状态,而直接执行I/O指令进行数据传输,如LED等。当简单外设作为输入设备时,其输入数据的保持时间相对于CPU的处理时间要长得多,所以可直接使用三态缓冲器与系统数据总线相连。当简单外设作为输出设备时,由于外设的速度较慢,CPU送出的数据必须在接口中保持一段时间,以适应外设的动作,因此输出采用锁存器。第6章输入/输出和中断技术无条件传送方式第6章输入/输出和中断技术无条件传送方式第6章输入/输出和中断技术查询传送方式查询传送方式在传送数据前先查询外设的状态,当外设准备好时,CPU执行I/O指令传送数据;若未准备好时,则CPU等待。要求CPU与外设间的接口电路需要两个端口:数据端口和状态端口。优点:能较好地协调外设与CPU之间的定时关系,因而比无条件传送方式容易实现准确传送。缺点:该方式需要不断查询外设的状态,大量时间花在等待循环中,当主机与中、低速外设交换信息时,大大降低了CPU利用率。第6章输入/输出和中断技术查询传送方式第6章输入/输出和中断技术查询传送方式输入第6章输入/输出和中断技术查询传送方式输入例:设接口电路中状态端口的地址为STATUS,数据端口的地址为DATA,则CPU读取输入设备的数据应执行下列程序段:POLL:INAL,STATUS;①TESTAL,80H;②JEPOLL;③INAL,DATA;④第6章输入/输出和中断技术查询传送方式输出第6章输入/输出和中断技术查询传送方式输出例:设接口电路中状态端口的地址为STATUS,数据端口的地址为DATA,则CPU将内存STORE单元的内容送至输出设备应执行下列程序段:POLL:INAL,STATUS;①TESTAL,80H;②JNEPOLL;③MOVAL,STORE;④OUTDATA,AL;⑤第6章输入/输出和中断技术中断控制的输入输出含义:在中断方式下,外设掌握向CPU申请服务的主动权,当输入设备将数据准备好,或者输出设备已做好接收数据的准备时,向CPU发出中断请求信号,要求CPU为其服务。若此时中断允许触发器是开放的,则CPU暂停目前的工作,与外设进行一次数据传输,等I/O操作完成以后,CPU继续执行原来的程序。优点:保证了CPU对外设的实时服务,又不会因对各I/O设备的随时关照而花费CPU太多的机时,使高速运行的CPU与速度参差不齐的各种外设之间形成了良好的匹配(并行工作)关系,确保了CPU的高效率。缺点:为了实现中断传送,要求在CPU与外设之间设置中断控制器,增加了硬件开销。第6章输入/输出和中断技术中断控制的输入输出第6章输入/输出和中断技术中断控制的输入输出第6章输入/输出和中断技术直接存储器访问(DMA)DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行。优点:传送速率很高,这对高速度大批量数据传送特别有用。缺点:要求设置DMA控制器,电路结构复杂,硬件开销大第6章输入/输出和中断技术直接存储器访问(DMA)第6章输入/输出和中断技术6.3中断技术中断源中断处理过程中断服务子程序中断系统的功能:1、正确识别中断请求,实现中断响应、中断处理及中断返回2、实现中断优先级排队3、实现中断嵌套第6章输入/输出和中断技术中断的分类中断分为内部中断和外部中断,每种又包含几种类型,中断时产生一条INTn指令,n表示不同的中断类型号。第6章输入/输出和中断技术内部中断和外部中断内部中断(软件中断)CPU内部执行程序时自身产生的中断如被0除、溢出、INTn等外部中断(硬件中断)CPU以外的设备、部件产生的中断•非屏蔽中断如电源掉电、内存奇偶错等故障中断•可屏蔽中断如打印机、CRT、磁盘等输入输出设备中断第6章输入/输出和中断技术中断处理过程中断请求中断判优中断响应中断处理中断返回第6章输入/输出和中断技术中断的优先权软件排优硬件排优–链式电路判优–可编程中断控制器第6章输入/输出和中断技术软件查询判优第6章输入/输出和中断技术软件查询判优第6章输入/输出和中断技术查询程序两种安排方式(1)屏蔽法MOVDX,380HINAL,DXTESTAL,80HJNZAlSTESTAL,40HJNZBISTESTAL,20HJNZCIS……(2)位移法MOVDX,380HINAL,DXRCLAL,1JCAISRCLAL,1JCBISRCLAL,1JCCIS……第6章输入/输出和中断技术链式电路判优处于链条前端的优先权更高(p239,图6-24)第6章输入/输出和中断技术中断的嵌套第6章输入/输出和中断技术6.480X86/Pentium中断系统第6章输入/输出和中断技术中断类型内部中断(软件中断)•除零中断(n=0)•单步中断(n=1)条件:TF=1且IF=1•断点中断(n=3)•溢出中断(n=4)条件:OF=1•中断指令INTn外部中断(硬件中断)•非屏蔽中断(n=2)•可屏蔽中断条件:IF=1中断优先权(高低)除零中断、INTn、INTO、NMI、INTR、单步中断第6章输入/输出和中断技术中断向量表中断向量是中断服务程序的入口地址。把系统中所有的中断向量集中起来放到存储器的某一区域内,这个存放中断向量的存储区就叫中断向量表或中断服务程序入口地址表。中断向量表的每一个向量的序号就是中断类型号,共256个中断类型。中断向量地址=中断类型号×4中断矢量表地址0~3FFH(1KB)第6章输入/输出和中断技术中断向量表中断向量并非常驻内存,而是开机上电时,由程序装入内存指定的中断向量表中。系统配置和使用的中断所对应的中断向量由系统软件负责装入。若系统中(如单板机)未配置系统软件,就要由用户自行装入中断向量。第6章输入/输出和中断技术中断向量表例1:假设中断向量号为60H,中断服务程序的段基址是SEG_INTR,偏移地址是OFFSET_INTRCLI;关中断CLD;内存地址加1MOVAX,0MOVES,AX;给ES赋值为0MOVDI,60H*4;中断向量指针→DIMOVAX,OFFSET_INTR;中断服务程序偏移值→AXSTOSW;AX→[DI][DI+1]中,然后DI+2MOVAX,SEG_INTR;中断服务程序的段基址→AXSTOSW;AX→[DI+2][DI+3]STI;关中断第6章输入/输出和中断技术中断向量表例2:MOVAX,00HMOVES,AXMOVBX,60H*4;中断号×4→BXMOVAX,OFFSET_INTR;中断服务程序偏移值→AXMOVES:[BX],AX;装入偏移地址MOVAX,SEG_INTR;中断服务程序的段基址→AXMOVES:[BX+2],AX;装入段基址第6章输入/输出和中断技术中断响应过程内部中断响应过程(1)将类型号乘4,计算出中断向量的地址(2)CPU的标志寄存器入栈(3)清除IF和TF标志,屏蔽新的INTR中断和单步中断(4)保存断点,即把断点处的IP和CS值压入堆栈,先压入CS值,再压入IP值(5)根据第一步计算出来的地址从中断
本文标题:第六章 输入输出和中断技术1
链接地址:https://www.777doc.com/doc-3227252 .html