《微机和外设的数据传输.ppt》由会员分享,可在线阅读,更多相关《微机和外设的数据传输.ppt(39页珍藏版)》请在三一办公上搜索。
1、北京工业大学计算机学院,1,第三讲 微型计算机和外设的数据传输,北京工业大学计算机学院,2,教学建议,本章重点为:为什么要用接口;CPU和输入/输出设备之间的信号;接口的功能以及在系统中的连接;CPU与外设之间的数据传送方式;中断传输的原理;DMA方式的原理;输入/输出过程中接口部件和地址总线错位连接的原理。,北京工业大学计算机学院,3,5.1 为什么要用接口,要构成实际的微型计算机系统,除了微处理器外,还需要各种接口。定义:I/O接口是设置在CPU与外设之间的一组控制电路。其基本功能是对数据传送的控制。接口按功能分为两类:使CPU正常工作所需要的辅助电路,使CPU得到时钟信号或接收外部的多个
2、中断请求 输入/输出接口,接收外部设备送来的信息或发送到外部的信息。,各种I/O卡都是I/O接口,如显卡、声卡等。,北京工业大学计算机学院,4,5.1 为什么要用接口,外部设备为什么一定要通过接口和主机相连?CPU与外部设备交换信息的过程和CPU与存储器交换数据一样都要通过总线来完成,但CPU和外设之间直接进行信息交换会带来的一些问题,只有用接口电路解决,保证CPU和外设之间能在速度、电平、格式和时序上进行匹配。采用接口的原因:外部设备功能多种多样。信息转换和缓冲,外部设备的信息既有数字式,又有模拟式,即可串行,有可并行时序上的原因多个外设共享总线的原因速度的原因,北京工业大学计算机学院,5,
3、5.2CPU和输入/输出设备之间的信号,CPU和外设之间传输信号的分类数据信息数字量模拟量开关量状态信息控制信息 注意:CPU与外设通信时,传送数据信息、状态信息和控制信息各不相同,应该分别传送。但也可都看成数据信息,状态信息和控制信息也可通过数据总线来传送。,北京工业大学计算机学院,6,5.3接口部件的I/O端口,I/O端口是指外设接口中存放和传送数据信息、控制信息和状态信息的寄存器,各类信息在接口中进入不同的寄存器,这些寄存器称为I/O端口,每个端口有一个端口地址。CPU用IN或OUT指令对其进行读或写。,北京工业大学计算机学院,7,I/O端口的类型 数据端口:用来存放外设和CPU之间交换
4、的数据,主要起数据缓冲的作用。状态端口:主要用来指示外设的当前状态,每个外设可以有几个状态位,可由CPU读取。常见的状态位有:准备就绪;忙碌、错误位 命令端口也称为控制端口,用来存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作 常见的命令信息有启动位、停止位、允许中断位等。常见的控制位有方式选择控制字、操作命令字,北京工业大学计算机学院,8,二.I/O端口的寻址方法 CPU对I/O接口电路相应的端口进行访问,和存储器一样,也需要由译码电路来形成I/O端口地址,端口地址不能重复I/O端口的编址方式有两种:与存储器统一编址方式和I/O 独立编址方式。1、与存储器统一编址方式 把I/
5、O端口和存储单元一样对待,统一编址,访问存储器的所有指令均可用来访问I/O端口。实际上是把I/O地址映射到存储空间作为存储空间的一小部分。,北京工业大学计算机学院,9,优点:1、省去单独的I/O指令和控制线。2、用于存储器的所有指令均可用于I/O接口操作,因此使I/O接口功能较强,使用灵活。缺点:1、占用了存储器的一部分地址空间,缩小了存储器的地址范围。2、对I/O接口访问需要全字长地址译码,指令执行速度较慢。,北京工业大学计算机学院,10,2、I/O独立编址方式 CPU设立单独的输入输出指令和控制线,从而与存储器指令区分开,将I/O接口地址区与存储器地址区分别各自单独编码,用专门的IN和OU
6、T指令。8086允许64K个8位的I/O端口。即使用A15-A0这16根地址线访问64K个I/O端口。8086CPU在执行访问I/O端口的指令(IN或OUT)时,从硬件上会产生有效的RD或WR信号,同时使M/IO处于低电平,通过外部逻辑电路的组合产生对I/O端口的读信号或I/O端口的写信号.IN:数据输入,完成读数据,读状态.OUT:数据输出,完成写命令,输出数据,北京工业大学计算机学院,11,优点:1、不占用存储器的地址。2、地址线少,译码电路简单。3、执行时间快。缺点:1、指令少,编程不灵活。2、要设置专门的控制线和操作码进行I/O访问。3、I/O端口数量受限制。,北京工业大学计算机学院,
7、12,(1)直接I/O寻址(取值范围:00FFH)IN AL,PORTOUT PORT,AL(2)间接I/O寻址(取值范围:0000FFFFH)MOV DX,XXXXHIN AL,DXOUT DX,AL,CPU对I/O接口的寻址方式,北京工业大学计算机学院,13,例:,控制口地址为FFF8H,命令为80HMOV DX,0FFF8HMOV AL,80HOUT DX,AL,注:1.CPU对外设寻址最大64K个端口地址 2.直接I/O寻址范围 00H-FFH 3.间接I/O寻址范围 0000H-FFFFH,北京工业大学计算机学院,14,5.4接口的功能以及在系统中的连接,5.4.1 接口的功能寻址功
8、能:提供地址译码电路,对I/O端口进行寻址输入/输出功能:设置数据缓冲以解决速度不匹配;读/写信号数据转换功能:设置信号电平转换电路解决信号电平不匹配;设置信息转换逻辑满足对各自格式的要求;设置信息转换逻辑 如:A/D,D/A;并串转换.设置时序控制电路来同步CPU和外设的工作可编程功能错误检测功能,北京工业大学计算机学院,15,5.4.2 接口与系统的连接,典型的I/O部件和外部电路连接图,北京工业大学计算机学院,16,5.4.2 接口与系统的连接,用读信号、写信号和地址A0区分4个寄存器(若A、B可写,C、D可读),表5.1,北京工业大学计算机学院,17,I/O端口译码门电路译码芯片(13
9、8,139,154),北京工业大学计算机学院,18,例1.CPU无条件地读取开关状态,1,&,D0A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15IOR,+5V,D0=0 K闭合D0=1 K打开,K,端口地址:,(1111 1111 0000 0000)FF00H,1,北京工业大学计算机学院,19,5.5 CPU与外设之间的数据传输方式,I/O设备种类繁多,速度差异悬殊,CPU何时从外设读取/写入数据,成为复杂的定时问题,所以CPU与I/O设备之间的数据传输可采用多种控制方式,主要有三种:程序控制方式、中断方式、DMA方式。程序控制方式 指CPU与外设之间的数据传送
10、时在预先编写好的程序控制下完成的,可分为无条件传送和有条件传送两种方式。1、无条件传送:主要针对简单外设,若外设随时处于就绪状态,准备接收或发出数据,可在任意时刻用 IN/OUT 指令实现数据输入或输出;若外设的定时是固定的且已知的情况,可采用软件延时或硬件等待等实现CPU与外设的同步。输入设备:按键、开关;输出设备:LED发光二极管,北京工业大学计算机学院,20,地址译码器,输出锁存器,D7D0,WR,地址总线,至输出设备,来自输入设备,M/IO,RD,输入缓冲器,5.5 CPU与外设之间的数据传输方式,北京工业大学计算机学院,21,5.5 CPU与外设之间的数据传输方式,2、条件传送:CP
11、U与外设交换数据时,很难保证输入设备总是准备好了,或者输出设备已处在可以接收数据的状态,所以传送前CPU需查询状态标志,以确定是否传送或接收。传送过程:CPU从接口中读状态字;输入:CPU在输入数据前查询外设数据是否准备好,输出:CPU在输出数据前先用指令查询外设缓冲器是否为空?CPU检测状态字对应位是否满足条件,如不满足,则回前一步读取状态字若已就绪,则传送数据,北京工业大学计算机学院,22,输入设备,数据锁存器,数据缓冲器,三态缓冲器,D,Q,R,+5V,数据,地址,译码器,READY,状态信号,M/IO,RD,M/IO,RD,选通信号,C,CS1,CS2,A0A15,D0D7,查询式输入
12、的接口电路:由数据口和状态口组成。状态口由一个D触发器和一个三态门构成。输入设备准备好数据,发一个选通信号,把外设数据打入接口的锁存器和使接口的Q端为1。,5.5 CPU与外设之间的数据传输方式,北京工业大学计算机学院,23,ACK,M/IO,输出设备,R DQ C,锁存器,三态缓冲器,+5V,WR,数据总线,地址总线,M/IO,RD,状态信息,“BUSY”,地址译码器,D1,CPU,CS1,CS2,查询式输出的接口电路,查询式输出的接口电路:ACK有效时,CPU读入状态检查到BUSY=0时,才执行数据输出指令。输出数据时,选通信号的下沿,使D触发器的Q端置为1。,选通信号,北京工业大学计算机
13、学院,24,N,查询式输入的流程图,初始化,读状态,处理缓冲区中的数据,数据传送到内存缓冲区,处理数据,读入一个字或一个字节到CPU,数据准备就绪?,传送完?,后续处理,Y,N,Y,查询式输入数据的程序段见书P185,北京工业大学计算机学院,25,初始化,读入状态,结束,数据传送到外设缓冲区,输出一个字或一个字节到外设,忙否?,操作完成否?,Y,N,N,Y,查询式 输出过程的流程图,北京工业大学计算机学院,26,1、中断传送方式的原理,用查询方式使CPU与外设交换数据时,CPU不断检查外部设备的状态,当外设的速度很低时,会占用很多的CPU时间,而真正用于CPU的时间又很少,使CPU的利用率变得
14、很低,外设缺少主动性。见书上的例子,当有多个设备工作,还需要轮询,实时性很难保证 为了提高CPU的利用率和具有实时性,可以采用中断方式:CPU平时可以执行主程序,当外设准备好数据才向CPU发中断请求。CPU响应中断,转去执行中断服务程序,完成一次CPU与外设的数据交换,CPU又返回执行原来的程序继续。,5.5.2 中断方式,北京工业大学计算机学院,27,中断方式的接口电路,5.5.2 中断方式,北京工业大学计算机学院,28,可屏蔽中断的响应和执行,5.5.2 中断方式,北京工业大学计算机学院,29,当系统中有多个设备用中断方式和CPU进行数据传输时,需要解决优先级的问题,当前微机系统主要采用可
15、编程的中断控制器的方法,2、中断优先级问题的解决,北京工业大学计算机学院,30,1、DMA传送方式的提出 中断方式比程序控制方式大大提高了CPU的利用率,由于每完成一次数据交换,就要产生一次中断。一次中断需要CPU处理许多额外操作,造成效率下降。当CPU与高速外设交换信息时,中断方式仍显得太慢。例如:和磁盘之间的数据交换。为了解决问题可采用DMA的传送方式,直接存储器存取,由硬件直接实现数据块的传送。数据不经过CPU控制传送,而由外部单独的专门控制器-DMA控制器来控制,使数据直接在I/O接口和存储器之间传送,这就是对存储器的直接存取方式。简称DMA方式。,5.5.3 DMA方式,北京工业大学
16、计算机学院,31,2、DMA控制器的功能和DMA传送原理,5.5.3 DMA方式,DMA控制器的应具备的功能:见书p192,用DMA方式传输单个数据(输出过程),北京工业大学计算机学院,32,5.5.3 DMA方式,DMA控制器的内部最小配置和接口要求,北京工业大学计算机学院,33,5.5.3 DMA方式,DMA方式从接口往内存传输一个数据块,将按下面的过程动作:发一个DMA请求。发总线请求 地址寄存器的内容送到地址总线上。发确认DMA传输的信号。数据送到地址总线所指出的内存单元。地址寄存器的值加1。字节计数器的值减1。如字节计数器的值不为0,则回到;否则结束,北京工业大学计算机学院,34,对
17、I/O接口的要求控制寄存器中须有一位用来指出数据传输方向,供DMA判断输入/输出控制寄存器中须有一位用来启动I/O操作,通过设置此为启动外设的动作状态寄存器中须有一位用来指出设备当前是否处于忙状态对DMA控制器的要求控制寄存器中专有一位作为DMA允许位,控制响应接口的DMA请求控制寄存器中须有一位用来确定DMA方向,DMA发送读信号/写信号控制寄存器中须有一位用来进行一次传输后,是否放弃总线控制权状态寄存器中须有一位用来表示数据块传输是否结束,5.5.3 DMA方式,北京工业大学计算机学院,35,系统对DMA控制器和接口部件预置信息往DMA控制器的字节计数器置初值,以决定数据传输长度往DMA控
18、制器的地址寄存器置初值,以确定数据传输所用的存储区的首址对DMA控制器置控制字,指出传输方向、是否进行块传输,并启动DMA操作对接口部件设置控制字,指出传输方向,并启动I/O操作,5.5.3 DMA方式,北京工业大学计算机学院,36,3、DMA控制器的工作特点 一方面是一个接口 另一方面能够控制系统总线 DMA控制器在传送数据时不需指令,而是通过硬件逻辑电路用固定的顺序发送地址和读/写信号,5.5.3 DMA方式,北京工业大学计算机学院,37,5.5.4 输入/输出过程中提出的几个问题,1、系统和接口的联系方式查询方式检测状态寄存器的就绪位中断方式,就绪后,发中断请求DMA方式,接口向DMA控
19、制器发DMA请求2、优先级当几个设备处于同一种传输方式之下,同时发传输请求时如何响应3、缓冲区系统和外设之间传输一系列数据,传输完后,这些数据才能被使用,用内存中的若干存储单元存放,北京工业大学计算机学院,38,5.5.5 接口和多字节数据总线的连接,随着CPU的不断升级,数据总线的位数不断增加,8086的数据总线是16位,而I/O接口部件8位接口芯片,如何和数据总线连接I/O接口部件常常连在低8位数据总线上,北京工业大学计算机学院,39,接口部件和地址总线的错位连接,大多数接口用两个连续的端口地址对应内部寄存器的读/写,如何在接口和数据总线的8位数据线相连时,又满足接口对端口地址的设置要求16位系统中,CPU用数据总线传输16位数据时,总是把数据送到/读取到以偶地址开头的两个相邻单元或者两个相邻端口。低8位数据放到偶地址的单元,高8位数据放到相邻的高奇地址单元。由此可见偶地址的端口及内存单元总是和低8位数据总线相连,奇地址的端口及内存单元总是和高8位数据总线相连。在16位系统中为了使所有的数据传输都利用数据总线的低8位,必须把地址总线的A1线和接口的A0端相连。,