第5章微型计算机和外设之间的数据传输通过本章的学习,使学生掌握接口电路的基本概念、接口电路的主要功能、两种I/O端口的编址方式、微处理器与I/O设备数据传送的查询式输入输出方式以及中断方式输入输出直接存储器存取(DMA)方式教学目的和教学要求重点:I/O端口的编址方式CPU与I/O设备数据传送的查询式输入输出方式以及中断方式输入输出难点:微处理器与I/O设备数据传送的几种方式本章重点、难点5.1接口电路的概述所谓接口就是微处理器与外围设备之间的连接电路,它是两者之间进行信息交换时的必要通路,不同的外设有不同的输入/输出接口电路。例如,键盘输入有键盘接口电路,CRT显示器有显示器输出接口电路,打印机也有打印输出接口电路等等微型计算机系统的各类接口如图所示微型计算机各种接口框图I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路CPU接口电路I/O设备什么是I/O接口(电路)?微机的外部设备多种多样工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大它们不能与CPU直接相连必须经过中间电路再与系统相连这部分电路被称为I/O接口电路为什么需要I/O接口(电路)?处理微机系统与外设间联系的技术注意其软硬结合的特点根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备什么是微机接口技术?5.2CPU与外设之间所传送的信息类型CPU与I/O端口之间所交换的信息,可以有下列几种类型:数据信息:包括数字量、模拟量、开关量等,可以输入也可以输出状态信息:这是I/O端口送给CPU的有关本端口所对应的外设当前状态的信息。供CPU进行分析、判断、决策。控制信息:这是CPU送给I/O端口的控制命令,使相应的外部设备完成特定的操作。数据信息、状态信息和控制信息是不同类型的信息,它们所起的作用也不一样。但在8086/8088微机系统中,这三种、不同类型的信息的输入、输出过程是相同的。为了加以区分,可以使它们具有不同的端口地址,在端口地址相同的情况下,可以规定操作的顺序,或者在输入/输出的数据中设置特征位。传送方式有并行和串行两种。5.3接口部件的I/O端口I/O接口电路的连接5.3.1I/O接口电路中的基本寄存器I/O接口电路中一般具有三种类型的基本寄存器,它们是用于存取数据的寄存器,存取命令信息的寄存器以及存取外设所处状态的寄存器,习惯上把这些寄存器称为端口1、数据端口2、命令端口3、状态端口1.数据端口用于中转数据信息。一种情况是CPU通过数据总线,将待传送给外设的数据先传送到数据端口,然后由I/O设备通过与I/O接口电路相连接的数据线取得该数据另一种情况是I/O设备首先将输入数据锁存于数据端口,然后,CPU通过数据端口将该数据读入CPU中。数据端口一般既有输出寄存器(或称输出锁存器),又有输入寄存器(或称输入锁存器)2、命令端口用于传送对I/O设备的命令信息。CPU将命令信息通过数据总线写入I/O接口电路的命令寄存器中,然后传送到I/O设备,以便控制外设的操作。它由输出寄存器组成,命令端口是一个输出端口3、状态端口用于传送外设所处的状态信息。状态端口是输入端口,CPU通过读取状态端口的数据,以此了解外设当前所处的工作状态,比如,如果是输入设备,则可以通过状态信息了解输入设备是否有了等待输入的新数据,如果是输出设备,CPU通过读入的状态信息,可以了解输出设备是否作好了接受CPU传送新数据的准备。显然,1bit的状态信息可以反应1个外设的两种状态,1个8位的状态端口则可以反应外设的8个状态信息总之,I/O接口电路中一般有数据端口、命令端口以及状态端口,每个端口地址是不相同的,CPU均通过数据总线来传送三种端口的数据。有些I/O接口中,还有中断控制逻辑电路,以便外设与CPU之间以中断方式进行输入或输出,其优点是可以提高CPU的工作效率5.3.2I/O端口的编址方式端口是接口电路中能被CPU直接访问的寄存器的地址。由于有的寄存器寄存的二进制信息专门用来被CPU读取,有的寄存器用于专门接收CPU发出来的数据,因此,被CPU访问的寄存器的地址分为输入端口和输出端口,故称为I/O端口微机给接口电路中的每个寄存器分配一个端口,即给每个寄存器分配一个地址,当CPU访问这些寄存器时,通过执行I/O指令,由I/O指令中给出的地址就从地址总线上发出去,经接口电路中的地址译码器译码后,便可以选中I/O指令中所指定的寄存器进行R/W访问两种I/O端口的编址方式一、统一编址从内存空间划出一部分地址空间留给I/O设备编址,CPU把I/O端口所指的寄存器当作存储单元进行访问,直接用访问内存的指令访问I/O寄存器,这种I/O端口的编址方式被称之为统一编址,或称为存储器映像的I/O编址方式优点:不需要设立专门的I/O指令,用访问内存的指令就可以访问外设,指令类型多,功能齐全,还可以对端口进行算术运算,逻辑运算以及移位操作等。I/O端口空间不受限制缺点:是I/O端口占用了内存空间,减少了内存容量统一编址优缺点二、专门的I/O编址方式接口电路中所有的I/O端口统一编址,而所有I/O端口建立的地址空间与内存地址空间是两个独立的地址空间,也常称这种方式为独立编址方式优点:不占用内存空间,使用专门I/O指令访问I/O端口,I/O速度快缺点:CPU的引脚上必须具有能区分出访问内存还是访问I/O端口的信号,作为I/O接口电路中端口译码电路以及存储器片选译码电路的输入信号专用I/O编址的优缺点5.4.1接口电路的主要功能设备选择功能数据缓冲功能接收和执行CPU命令的功能寄存外设状态的功能信号的转换功能数据宽度变换的功能可编程功能5.5CPU与I/O设备传输数据的几种方式CPU以及I/O设备的种类繁多,CPU与I/O设备所构成的系统不可能完全相同,CPU与I/O设备之间传输数据的方式也不完全相同,接口电路的结构与功能也不同,驱动程序也不相同传输数据的方式:无条件I/O传送方式、查询式输入输出方式、中断控制方式、DMA方式.一、无条件输入输出方式无条件输入输出方式是一种最简单的输入/输出控制方式,其I/O接口电路及软件比较简单,所有的操作均由执行程序来完成特点:输入接口电路总是准备好了等待输入给CPU的数据,输出接口电路总是准备好了接受来自CPU的数据。CPU无须查询I/O设备是否准备就绪,直接用汇编语言或高级语言编程,实现输入或输出操作此种方式的接口电路是查询式输入输出方式接口电路的基础二、查询式输入输出方式1.查询式输入方式当CPU采用查询方式从外设读取数据时,CPU必须首先从状态端口查询外设的数据是否已经准备好,确认已准备好后,才能执行一次数据输入操作例:假设状态端口与数据端口的地址分别为300H和301H,状态信息从数据总线上的D0位读入CPU中,查询式输入程序段如下:MOVDX,300H;状态口地址传送给DXABC:INAL,DX;读入状态信息TESTAL,01H;AL∧01H,影响ZF标志JZABC;如果状态信息为0转ABCMOVDX,301H;数据端口地址传送给DXINAL,DX;读入数据信息2.查询式输出方式当CPU采用查询方式向外设输出数据时,CPU必须首先从状态端口查询外设是否已经作好了接受CPU数据的准备,若没有准备好,则要继续查询,若准备好了,CPU便执行一次数据输出操作例:假设状态端口与数据端口的地址分别为3FOH和3F1H,状态信息从数据线上D7位读入CPU中,查询式输出程序段如下:MOVDX,3F0H;状态口地址传送给DXCBA:INAL,DX;读入状态信息TESTAL,80H;AL∧80H,影响ZF标志JZCBA;如果状态信息为0则转CBAMOVDX,3F1H;数据端口地址传送给DXMOVAL,[SI];从内存读取数据给ALOUTDX,AL;向数据口输出数据3.查询式输入输出方式存在的问题从图可以看出,当CPU与I/O设备之间采用查询式输入输出方式交换数据时,CPU必须顺序查询每一个外设,当某一个外设不需要服务时,CPU也得按顺序查询一次。外设总是处于被动状态,CPU无法快速响应外设要求及时服务的请求。CPU为了服务外设,其它程序会停止执行,所以,查询式I/O方式不可能是微型计算机外设工作的最佳选择,不适用于实时监控系统三、中断方式输入输出中断是外设或者其他中断源中止CPU当前正在执行的程序,转向为申请中断的外设(或中断源)执行服务程序,一旦服务程序执行结束,必须返回到被中断程序的断点处,接着执行原来的程序运用中断控制方式实现外设数据的输入输出,完全可以解决查询式输入输出存在的问题。在中断控制方式下,所有的I/O设备都可以工作在主动请求CPU为该外设服务的状态下,一旦一个或多个外设申请中断服务,则CPU根据各I/O设备预先被设置的中断优先级别,逐个予以响应,并进行中断处理、中断返回,实现中断处理的全过程2个中断源中断过程的示意图中断控制方式的输入输出是微机中常用的一门技术,采用中断技术后,CPU能与所有的外设并行工作,能及时服务外设,并处理系统异常情况,从而可以提高微机的整体性能,提高计算机的运行速度。四、直接存储器存取(DMA)方式1.什么是DMA?DMA(DirectMemoryAccess)即直接存储器存取方式,是指在专门的DMA控制器的控制下实现外围设备与内存储器直接交换数据的一门接口技术。在这种方式下,数据传输不经过CPU,传送的速度就只取决于存储器和外设的工作速度。在这种方式下,数据传输不经过CPU,传送的速度就只取决于存储器和外设的工作速度微型计算机在一般情况下,由CPU管理数据总线、地址总线以及控制总线,当系统有DMA请求时,CPU便让出三种总线的控制权,或让出有关这三种总线的全局总线,转由DMAC控制三种总线实现高速外存与内存之间数据的交换。由DMAC控制数据传送结束后,DMA向CPU撤除DMA请求,交还三总线控制权给CPU,于是结束一次DMA传输的过程2.DMA系统的基本组成3.DMA传送的基本原理DMA方式传送的主要步骤①外设准备就绪时,向DMA控制器发DMA请求,DMA控制器接到此信号后,向CPU发HOLD请求;②CPU接到HOLD请求后,如果条件允许(一个总线操作结束),则发出HLDA信号作为响应,同时,放弃对总线的控制;③DMA控制器取得总线控制权后,往地址总线发送地址信号,每传送1个字节,就会自动修改地址寄存器的内容,以指向下一个要传送的字节;④每传送一个字节,字节计数器的值减1,当减到0时,DMA过程结束;⑤DMA控制器向CPU发结束信号,将总线控制权交回CPU。DMA传送控制方式,解决了在内存的不同区域之间,或者内存与外设之间大量数据的快速传送问题,代价是需要增加专门的硬件控制电路,称为DMA控制器,其复杂程度与CPU相当。