(
课件网) 第7章 接口与输入/输出 7.1 接口概述 7.2 输入/输出方式 关联 习题 7.1 接 口 概 述 7.1.1 接口的功能与组成 1.接口的主要功能 I/O接口是介于主机和外设之间用于完成某些控制功能、速度匹配、信号转换的一种缓冲电路。它一方面将来自外设的信息传送给微处理机;另一方面将微处理机加工后的信息传回外设。I/O系统如图7-1所示。由于数据在CPU中传送的速度远远快于在外设中传输的速度,且CPU中的二进制数据是并行传输的,有标准的电位要求,而外设因其种类的不同,数据的传输方式有串行的,有并行的,还有串/并行的。 因此,I/O接口的基本功能就是进行外设与CPU之间的信息转换,使其形式上能互相适应,速度上能互相匹配,以解决CPU与外设之间在数据形式、数据的传递方式以及传递速率上存在很大差异的矛盾。同时,接口能根据CPU的控制要求,对I/O系统的工作进行控制与检测。 图7-1 I/O系统 2.I/O接口的组成 I/O接口由硬件和软件构成。I/O接口硬件电路主要包括寄存器组、译码电路、总线接口和读/写控制逻辑,如图7-2所示。I/O接口的软件是指接口的驱动程序。因此,接口技术是一种将硬件和软件相结合的技术,这不仅要设计设备的接口电路,还要设计设备的驱动程序,随着计算机应用的不断扩大,接口技术将显得越来越重要。 图7-2 I/O接口硬件结构 为了区别CPU内部的寄存器,我们把I/O接口电路中所包含的一组寄存器称为I/O端口,简称为端口(Port)。正如每个存储单元都有一个物理地址一样,每个端口也有一个地址与之相对应,该地址称为端口地址。根据端口所存放的信息不同,可以将端口分为数据端口、状态端口和控制端口。具体而言,用来保存CPU和外设之间传送的数据(如数字、字符及某种特定的编码等)并对输入/输出数据起缓冲作用的数据寄存器称为数据端口;用来存放外设或者接口部件本身状态的状态寄存器称为状态端口;用来存放CPU发往外设的控制命令的控制寄存器称为控制端口。由此可见,接口和端口是两个不同的概念,若干个端口加上相应的控制电路才构成接口。 软件通常由接口初始化程序和接口工作程序构成。接口初始化程序用来对接口芯片设置工作方式和初始条件。接口工作程序是用来进行数据交换的程序。 7.1.2 I/O接口的编址方式 I/O端口都有自己的端口地址,供CPU向接口中寄存器发送命令、读取状态和传送数据。可以一个端口地址只对应一个端口,也可以多个端口地址对应一个端口。I/O端口编址方式是为端口分配地址的方法,具体分配方法有两种:I/O端口与内存单元统一编址和 I/O端口与内存单元独立编址。 1.I/O端口与内存单元统一编址 这种编址方式是对I/O端口和存储单元按照存储单元的编址方法统一编排地址号,由I/O端口地址和存储单元地址共同构成一个统一的地址空间。例如,对于一个有16根地址线的微机系统,若采用统一编址方式,其地址空间的结构如图7-3所示。 图7-3 I/O端口与内存单元统一编址 I/O端口与内存单元统一编址的优点是无需专门的I/O指令。对存储器的各种寻址方式也同样适用于对I/O端口的访问,给使用者提供了很大的方便。缺点是I/O端口占用了一部分存储器地址空间,因而相对减少了内存的地址可用范围。 2.I/O端口与内存单元独立编址 在这种编址方式中,建立了两个地址空间,一个为内存地址空间,一个为I/O地址空间。内存地址空间和I/O地址空间是相对独立的,通过控制总线来确定CPU到底要访问内存还是I/O端口,为确保控制总线发出正确的信号,除了要有访问内存的指令之外,系统还要提供用于CPU与I/O端口之间进行数据传输的输入/输出指令。80x86 CPU组成的微机系统都采用独立编址方式 ... ...