《微机原理周荷琴版.ppt》由会员分享,可在线阅读,更多相关《微机原理周荷琴版.ppt(98页珍藏版)》请在三一办公上搜索。
1、第六章 输入输出和中断技术,主要内容,I/O接口的基本概念CPU与I/O的控制方式中断的基本概念8086中断系统中断控制器8259,6.1 输入输出接口,主要内容:I/O接口与I/O端口的概念I/O端口的编址方式I/O端口的地址译码I/O数据的传送方式,一、I/O接口与端口,I/O接口(Interface):将外设连接到总线上的一组逻辑电路的总称实现外设与主机之间的信息交换I/O端口(Port):接口中的寄存器(数据端口、控制端口、状态端口),2023/11/13,接口举例:,I/O接口的基本结构,CPU,I/O设备,译码,数据端口,状态端口,控制端口,DB,AB,CB,I/O接口,CPU与外
2、设之间的信息,CPU,数据,状态,控制,外设,D0-Dn,Ready、Busy,Start、STB,I/O接口,I/O接口要解决的问题,速度不匹配 信号电平不匹配信息格式不匹配时序不匹配信号的驱动能力,I/O接口的功能,设置数据缓冲以解决两者速度差异设置信号电平转换电路设置信息转换逻辑以满足对各自格式的要求设置时序控制电路来同步CPU和外设的工作提供地址译码电路提供联络信号最好是可编程控制,二、I/O端口的编址方式,数据端口状态端口控制端口,端 口,控制端口,1、端口与内存统一编址(存储器映象),特点:指令及控制信号统一,无需专门指令内存地址资源减少无法区分是对内存还是对I/O操作MC6800
3、、MCS-51,内存地址960KB,I/O地址64KB,00000H,F0000H,FFFFFH,2、端口独立编址(I/O映象),特点:内存地址资源充分利用需专门的访问端口的指令:IN、OUT80X86、Z80系列,内存地址,I/O地址,00000H,FFFFFH,FFFFH,0000H,8086与存储器及I/O端口连接相关信号线RD、WR、M/IO、A19-A0,8086总线,A19-A0,A15-A0,MEMR、MEMW,IOR、IOW、ALE,存储器,输入/输出,8086的I/O端口编址,采用I/O独立编址方式(但地址线与存储器共用)地址线上的地址信号用M/IO来区分I/O操作只使用20
4、根地址线中的16根:A15A0可寻址的I/O端口数为64K(65536)个I/O地址范围为0FFFFHIBM PC只使用了1024个I/O地址(03FFH),其中0 FF为直接寻址范围。,三、I/O地址的译码,目的:确定端口的地址参加译码的信号:IOR、IOW、A15 A0OUT指令将使总线的IOW信号有效IN指令将使总线的IOR信号有效,I/O地址的译码,当接口只有一个端口时,16位地址线一般应全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则16位地址线的高位参与译码(决定接口的基地址),而低位则用于确定要访问哪一个端口。,A Y0 B Y1 C Y2 Y3 Y4G2B Y5
5、G2A Y6 G1 Y7,A5,A6,A8,74LS138,A7,A9,AEN,PPICS,T/C CS,INTRCS,DMACS,IOW,WRTDMAPG(写DMA页面寄存器),WRTNMIREG(写NMI屏蔽寄存器),IBM PC/XT 片选信号的产生,(8237)(8259A)(8253)(8255A),IBM PC/XT 系统板I/O端口地址分配,扩展槽I/O端口地址分配,四、I/O数据的传送方式,1、并行传送方式:同一时刻传送多位数据。优点:传送速度快、效率高。缺点:传输距离短(成本、线间干扰)2、串行传送方式:将数据一位一位地传送。优点:传输线少,成本较低。适合于远距离传输。缺点:
6、传送速度慢。,3、并行接口与串行接口,CPU,接口,外设,.,.,CPU,接口,外设,并行,串行,速度快,成本高适合近距离,速度慢,成本低适合长距离,并口,串口,6.2 简单的输入输出接口芯片,掌握:接口电路的分类及特点两类简单接口芯片的应用,一、接口的基本构成,数据线,控制线,状态线,DB,CB,AB,数据输入寄存器(or 三态门),数据输出寄存器(锁存器),状态寄存器(or 三态门),命令寄存器,译码电路,控制逻辑,二、接口的类型及特点,输入接口输出接口,接 口,接口特点,输入接口:要求对数据具有控制能力(常用三态门实现)输出接口:要求对数据具有锁存能力(常用锁存器实现),三、三态门接口,
7、高电平、低电平、高阻态,导通,高阻,三态门接口,三态门的工作波形:,A0A15,IOR,译码输出,D0D7,开关状态,地址有效,74LS244(单向数据驱动器),74LS244逻辑功能和引脚图见教材P241含8个三态门的集成电路芯片分两组,1G控制1A1-1A4,2G控制2A1-2A4在外设具有数据保持能力时用作输入接口为单向数据缓冲器,常用作地址驱动。,74LS245(双向数据总线缓冲器),74LS245逻辑功能和引脚图见教材P242含8个三态门的集成电路芯片除门控信号G外,有一方向控制端DIRDIR=1,An Bn(n=18)DIR=0,反方向传递常用于数据的双向传送、缓冲和驱动,三态门接
8、口应用例,D0D7,A0,A12,WE,OE,READY/BUSY,A0,A12,MEMW,MEMR,高位地址信号,D0D7,D0,380H,CE,译码,IOR,74LS373(锁存器),逻辑图和真值表见P243由D触发器构成可直接挂到总线上具有对数据的锁存能力具有三态总线驱动能力,74LS373真值表,锁存器芯片74LS373,D0D7,Q0,Q7,.,OE,CP,译码器,Q0Q7,D0,D7,.,OE,CP,译码器,做输出口:,做输入口:,外设,自外设,6.3 CPU与I/O的控制方式,无条件传送查询式传送中断方式传送直接存储器存取(DMA)方式,程序控制方式,一、无条件传送,适用于总是处
9、于准备好状态的外设优点:软件及接口硬件简单缺点:只适用于简单外设,适应范围较 窄,无条件传送例,读取开关的状态当开关闭合时,输出发光二极管亮程序段:MOV DX,38F0H IN AL,DX MOV DX,38F3H OUT DX,AL,D,CP,Q,D0,D0,输出口地址38F3H,输入口地址38F0H,+5V,1,K,74LS06,二、查询工作方式,适用场合:外设并不总是准备好对传送速率和效率要求不高对外设及接口的要求:外设应提供设备状态信息接口应具备状态端口,查询工作方式,优点:软件比较简单缺点:CPU效率低,数据传送的实时性 差,速度较慢,查询工作方式例,外设状态端口地址为03FBH,
10、第5位(bit5)为状态标志(=1忙,=0准备好)外设数据端口地址为03F8H,写入数据会使状态标志置1;外设把数据读走后又把它置0。试画出其电路图,并将DATA下100B数输出,D5,D7-D0,A9|A3,1,&,A15|A10,1,IOW,D7-D0,3F8H,外设,D7D6D5D4D3D2D1D0,BUSY,CP,Q7Q6Q5Q4Q3Q2Q1Q0,状态端口,GG2AG2BCBA,A2A1A0,74LS138,Y0,1,IOR,Y3,OE,74LS374,3FBH,程序段?,三、中断控制方式,特点:外设在需要时向CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行
11、自己的程序优点:CPU效率高,实时性好,速度快缺点:程序编制较为复杂 要有中断控制电路,硬件电路复杂,以上三种I/O方式的共性,均需CPU作为中介:软件:外设与内存之间的数据传送是通过CPU执行 程序来完成的(PIO方式)硬件:I/O接口和存储器的读写控制信号、地址信号 都是由CPU发出的 缺点:程序的执行速度限定了传送的最大速度(约 为几十KB/s),四、DMA控制方式,特点:外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供,DMA控制方式,DMAC,外设接口,CPU,
12、QRD,MEM,DACK,HOLD,HLDA,BUS,控制信号,CPU,外设,存储器,总线,两种不同的数据传送路径,DMA控制方式的工作过程,外设向DMA控制器发出“DMA传送请求”信号DRQDMA控制器收到请求后,向CPU发出“总线请求”信号HOLDCPU在完成当前总线周期后会立即发出HLDA 信号,对HOLD信号进行响应DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK,DMA控制方式的工作过程,DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送例:从外设向内存传送一个字节 DMAC向I/O接口发出读信号,同时往地址总线上
13、发出存储器的地址和存储器写信号和AEN信号。,DMA控制方式的工作过程,DMA控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据传送完后,DMA控制器就撤销发往CPU的HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期重新开始控制总线。,DMA控制方式,优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/s),6.4 中断技术,掌握:中断的基本概念中断响应的一般过程中断向量表及其初始化8088/8086中断系统,一、中断的基本概念,中断的定义:CPU执行程序时,由于发生了某种随机的事件(外部或
14、内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。,中断源:,能引起中断的外部设备或内部原因称为中断源。种类:(1)一般的输入/输出设备;(2)实时时钟;(3)故障源;(4)软件中断。,引入中断的原因,提高数据传输率避免了CPU不断检测外设状态的过程,提高了CPU的利用率实现对特殊事件的实时响应,中断系统,能实现中断响应、中断服务和中断返回能实现中断优先权排队能实现中断嵌套,外部中断响应的一般过程,中断请求中断判优及中断源识别中断响应中断处理(服务)中断返回,中断请求
15、,中断请求信号应保持到中断被处理为止CPU响应中断后,中断请求信号应及时撤销,NMIINTR,中断源识别,软件查询法中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源,中断判优要解决的问题,对同时产生的中断:首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则对非同时产生的中断:低优先级的中断程序允许被高优先级的中断源所中断,中断判优控制方法,软件判优 顺序查询中断请求,先查询的先服务(即先查询的优先级别高)硬件判优 链式判优、中断向量法(并行判优),软件查询接口电路,当CPU响应中断请求进入中断处理程序后,必须在中断处理程序的开始部分安排一段带优先级的查询程序,查询的先
16、后顺序就体现了不同设备的中断优先级,即先查的设备具有较高的优先级,后查的设备具有较低的优先级。一般来说总是先查速度较快或是实时性较高的设备。软件查询的流程如下图所示。,软件查询流程图,菊花链优先级排队电路 菊花链优先级排队电路是一种优先级管理的简单硬件方案。它是在每个设备接口设置一个简单的逻辑电路,以便根据优先级顺序来传递或截留CPU发出的中断响应信号INTA,以实现响应中断的优先顺序。各个外设的中断优先权由其在链中的位置决定,处于菊花链前端的比处于链条后端的优先权高。,中断优先级硬件实现电路(菊花链),中断响应的条件,外设提出中断申请本中断未被屏蔽中断允许(STI),中断响应,向中断源发出I
17、NTA中断响应信号;保护断点。包括FLAGS、CS和IP获得中断服务程序入口地址,固定入口法中断向量法,中断处理,中断服务子程序的特点:为“远过程”用IRET指令返回,中断服务子程序完成的工作,保护现场开中断(STI)允许中断嵌套中断处理关中断(CLI)恢复现场中断返回,中断返回,执行IRET指令,使IP、CS和FLAGS从堆栈弹出,二、8088/8086中断系统,内部中断外部中断,除法错中断溢出中断单步中断软件中断,非屏蔽中断(NMI)可屏蔽中断(INTR),256个中断源,NMI,INTR,中断逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控制器8259APIC,80
18、86/8088CPU内部逻辑,断点中断,可屏蔽中断请求,n,4,3,0,1,2,1、8086/8088中断源类型,2、中断处理过程,中断响应周期:当:CPU收到INT中断请求 前一条指令执行完,且中断标志位IF=1 那么:CPU进入中断响应周期,它通过总线控制器发出二个连续中断应答信号完成一个中断响应周期。,在中断响应周期两个工作:1.第一个INTA脉冲时,CPU产生LOCK信号,使总线处于封锁状态,防止DMA占用总线。,2.第二个INTA时,LOCK撤除,总线解封。,CPU响应外部中断的过程(自动完成),从数据总线上读取中断类型号,将其存入内部暂存器将标志寄存器PSW的值入栈将PSW中的IF
19、、TF清0将当前CS、IP入栈(保护断点)根据中断类型号到中断向量表中找到中断向量,转入相应的中断服务程序中断结束后从堆栈中依次弹出IP、CS和PSW,回到主程序断点处继续执行原来的程序,书p302 第10 题,给定sp=0100h,ss=0500h,psw=0240h,在存储单元中已有内容为(00024h)=0060h(00026h)=1000h在段地址为0800h及偏移地址为00a0h的单元中,有一条中断指令:int 9试问:在执行该指令后,ss、sp、ip和psw的内容为多少?栈顶的三个字是什么?,中断向量表,存放各类中断的中断服务程序的入口地址每个入口占用4 B,低字为段内偏移,高字为
20、段基址表的地址位于内存的00000H003FFH,大小为1KB,共256个入口,中断向量表,00000H,003FFH,1KB,中断向量和中断向量表,中断向量:中断服务程序的入口地址,中断向量表:,将中断向量按一定规律排列成的表。,中断向量表的初始化,将用户自定义的中断服务程序入口地址放入向量表例:将中断向量码为60H的服务程序入口地址放入向量表,中断向量表的初始化(直接装入法),MOV AX,0000HMOV DS,AXMOV SI,0180HMOV BX,OFFSET INT1MOV SI,BXMOV BX,SEG INT1MOV SI+2,BX,DOS系统功能调用法 功能号:(AH)=2
21、5H。入口参数:(AL)=中断类型号(DS)=中断服务程序入口地址的段地址(DX)=中断服务程序入口地址的偏移地址,下面程序段完成中断类型号为60H的入口地址置入。PUSHDS;保护DSMOV DX,OFFSET INT60;取服务程序偏移地址MOV AX,SEG INT60;取服务程序段地址MOV DS,AXMOV AH,25H;送功能号MOV AL,60H;送中断类型号INT 21H;DOS功能调用POPDS;恢复DS,取中断向量 功能号:(AH)=35H。入口参数:(AL)=中断类型号 出口参数:ES:BX=中断服务程序入口地址。,8086内部中断响应过程,特点:无INTA周期中断类型码
22、固定或由指令给出,8086内部中断响应过程,响应过程步骤:PUSH FLAG LET TEMP=TF CLEAR IF,TF PUSH CS PUSH IP(I P)=(TYPE*4+0)(CS)=(TYPE*4+2),8088/8086中断系统的优先级,优先级从高到低的顺序为:内部中断NMI中断INTR中断单步中断,中断处理过程,当NMI、INTR、单步和除法错中断同时产生时,响应顺序为:,响应除法错中断,响应NMI中断,响应INTR中断,响应单步中断,级别高的中断可以中断级别低的中断服务程序,P268,中断服务程序设计举例,例:编制中断处理程序,要求主程序运行时,每10秒屏幕上显示信息“T
23、he bell is ring!”方法:利用中断类型1CH进行处理。因为系统定时器(中断类型8)的中断处理程序中,时钟中断一次(约18.2次/秒)要调用一次INT 1CH。在ROM BIOS中,1CH的中断处理程序只有一条IRET指令,仅为用户提供一个中断类型号。这样可以利用系统定时器的中断间隔,将用户设计的程序来代替原有的INT 1CH程序。,Data segment count dw 182 mess db The bell is ring!,0ah,0dh,$Data endsStack segment db 100 dup(?)Stack endsCode segmentMain pr
24、oc far assume cs:code,ds:data,ss:stackStart:mov ax,stack mov ss,ax,push ds sub ax,ax push ax mov ax,data mov ds,ax mov ax,351ch 取原中断向量并保存 int 21h push es push bx push ds mov dx,offset ring mov ax,segment ring,mov ds,ax mov ax,251ch;设置新的中断向量 int 21h pop ds in al,21h and al,0feh;允许定时器0中断 out 21h,al st
25、i mov di,2000Delay:mov si,3000Delay1:dec si 延时等待中断?jnz delay1,dec di jnz delay 延时等待中断?pop dx pop ds mov ax,251ch;恢复原中断向量 int 21h retMain endpRing proc near push ds push ax push cx,push dx mov ax,data mov ds,ax sti dec count jnz exit mov dx,offset mess mov ah,9 int 21h mov count,182Exit:cli pop dx,po
26、p cx pop ax pop ds iretRing endpCode ends end start,程序修改如下:(显示5次后程序退出)Data segment n db 5 count dw 182 mess db The bell is ring!,0ah,0dh,$Data endsCode segment.lop:hlt cmp n,0 jnz lop;5次未到,继续,Ring proc near dec count;定时次数减1 jnz exit mov dx,offset mess mov ah,9 int 21h dec n;显示次数减1 mov count,182;重新设置计数值Exit:cli;中断返回,