2.2 I/O接口
2.2.1 I/O接口与I/O设备
1.I/O接口
微机接口技术是采用硬件与软件相结合的方法,使微处理器与外部设备进行最佳的匹配,实现CPU与外部设备之间高效、可靠的信息交换的一门技术。
接口技术是工业实时控制、数据采集中非常重要的微机应用技术,它可实现CPU与存储器、I/O设备、控制设备、测量设备、通信设备、A-D和D-A转换器等的信息交换。
所谓接口,就是微处理器与外部连接的部件,是CPU与外部设备进行信息交换的中转站。如源程序或数据要通过接口从输入设备送入计算机,运算结果要通过接口向输出设备送出;控制命令通过接口发出,现场状态通过接口取进来等。
接口是计算机系统中一个部件与另一些部件的相互联系,它是系统各部分之间进行信息交换的桥梁。
接口可以抽象地定义为一个部件(Unit)或一台设备(Device)与周围环境的理想分界面。这个假设的分界面可以切断该部件或设备与周围环境的一切联系,当一个组件或设备与外界环境进行任何信息交换和传输时,必须通过这个假想的分界面,通常称这个分界面为接口(Interface)。
所谓标准接口,就是指明确定义了几何尺寸、信号功能、信号电平等的接口。有了标准接口,可以使不同类型、不同生产厂家的数据终端和数据通信设备之间方便地进行通信。
图2-4中给出了几种常用接口。其中接口1为程序存储器ROM接口,接口2为数据存储器RAM接口,接口3为打印机接口,接口4为显示器接口,接口5为键盘接口,接口6为系统间接口(如RS-232C串行接口COM)。
图2-4 几种常用接口
2.I/O设备
为了将计算机应用于数据采集、参数检测和实时控制等领域,必须向计算机输入反映控制对象的状态和变化的信息,经过中央处理器处理后,再向控制对象输出控制信息。
这些输入信息和输出信息的表现形式是千差万别的,可能是开关量或数字量,更可能是各种不同性质的模拟量,如温度、湿度、压力、流量和浓度等,因此需要把各种传感器和执行机构与微处理器或微机连接起来。所有这些设备统称为外部设备(简称外设)或输入/输出设备,即I/O设备。
I/O设备一般不与微机内部直接相连,而是必须通过I/O接口与微机内部进行信息交换。
首先,微机和I/O设备两者的信息类型和格式可能不一样。外设种类繁多,信号类型十分复杂,它既可以是机械式的、电动式的或电子式的,也可以是其他形式的;所使用的信号可以是数字量或模拟量,也可以是开关量,即使是数字量,也可能与微机在信号线的功能定义、逻辑定义上都不一致,所以必须通过I/O接口实现微机与外部设备的隔离和信号转换。
其次,微机和I/O设备信号传输处理的速度往往不匹配,信号时序有很大差别,必须通过I/O接口来进行缓冲和协调。
再次,随着计算机技术的发展,I/O设备的种类日益丰富,一台多媒体微机可能要配置数十个I/O设备,若不通过接口,而由CPU直接对I/O设备的操作实施控制,就会使CPU一直忙于与外设打交道,大大降低CPU的效率。
最后,若I/O设备直接由CPU控制,也会使外设的硬件结构依赖于CPU,对外设本身的发展不利。I/O接口的引入,使得CPU对I/O设备的操作转化为对I/O接口的操作。
可见,I/O接口是微机与外部I/O设备之间进行信息交换的中转站,是任何微机应用系统必不可少的重要组成部分。
3.接口电路
由于I/O设备和CPU之间可能存在工作上逻辑时序的不一致,I/O设备处理的数据类型(包括数字量、模拟量和开关量)比CPU处理的数据类型(只有数字量)要复杂和广泛,并且工作速度比CPU慢,因此计算机和I/O设备之间需要一个接口电路来做桥梁,以实现信息的交换。
CPU通过总线与接口电路连接,接口电路再与外部设备连接,因此CPU总是通过接口与外部设备发生联系。
为了使组件与组件之间以及设备之间进行有效和可靠的信息交换及传输,必须选用和设计合适的接口电路。
在计算机系统内各部件之间或计算机与外设之间,或智能设备与智能设备之间的联系实际上都是部件与总线的联系,这样,接口又可定义为部件(此处所指部件小至单一元件,大至一个智能系统)与某一具体总线之间的一切联系,介于该部件与总线之间为实现这种联系所必需的全部电路称为接口电路。
2.2.2 接口的分类
1.按接口的功能划分
按接口的功能划分可分为如下3种:
1)人机对话接口。这类接口主要为操作者与计算机之间的信息交换服务,如键盘接口、显示器接口、图形设备接口和语音输入/输出接口等。
2)过程控制接口。这类接口是对生产过程进行检测与控制的接口。它一般包括传感器接口和控制接口两部分,前者输入各种外界信息,以实现对生产过程的检测,后者输出经计算机处理后的控制信号,以实现对生产过程的控制。所以过程控制接口是计算机应用于控制系统的关键部分。
3)通用外设接口(标准接口)。这类接口是通用外设(如打印机、磁盘机、绘图仪等)与计算机之间的接口。
图2-5是某型号个人计算机后面板上提供的外设接口示意图。
图2-5 个人计算机的外设接口示意图
2.按接口与总线的关系划分
接口是某一部件与总线的联系,它与总线密切相关,据此可分为如下3种:
1)元件级接口。元件级接口反映计算机系统内部某一具体元件,如存储器、定时器、中断控制器等,与内部总线之间的联系。元件级接口是接口电路的基本部分,任何接口都必须涉及元件级接口,因为它是实现各种接口电路的基础。
2)插板级接口。插板级接口又称为系统内接口,它反映系统某一部分与系统内总线之间的一切联系,如键盘接口、显示器接口、打印机接口、磁盘驱动器接口等,这种接口都比较复杂。
3)系统间接口。系统间接口又称为通信接口,它反映计算机系统与另外一系统或智能设备之间的联系,因这种联系就是数据的通信联系,故常称之为通信接口。
数据信息都是通过总线传输的,因此通信接口是一种总线与另一种总线之间的接口,即计算机系统总线与通信总线之间的接口。例如RS-232C接口、IEEE-488接口、USB接口等。
此外,按照信息的流向可以将接口分为输入接口和输出接口;按照接口与外设交换信息的方式可以将接口分为并行接口和串行接口等。
2.2.3 接口信息与接口地址
1.接口信息
计算机系统与I/O外部设备之间交换信息通常需要以下一些接口信息。
(1)数据信息
在计算机中,数据一般有8位、16位、32位、64位等。计算机与外部设备之间的数据传送主要有并行传送(如打印机等)和串行传送(如键盘、异步通信口等)两种传送方式。
(2)状态信息
状态信息反映了当前外设或接口本身所处的工作状态。计算机在输入与输出过程中,外部设备的数据是否准备好,外部设备是否准备好接收数据等,都要通过一定的数据量来表示,才能实现计算机与外部设备之间的正确“握手”。
(3)控制信息
控制信息主要是指起动、停止外部设备之类的接口信息。CPU通过发送控制信息控制外设的工作。
2.接口地址
为了区分不同的接口电路,也必须像存储器一样给它们编号,这就是接口电路的地址,这样CPU就可以像访问存储单元一样按地址访问这些接口电路,从而与外设发生联系。
一个接口电路中根据需要可能有多个存储器,如数据寄存器、状态寄存器和命令寄存器等,为了区别它们,也给予不同的地址,以便CPU能正确找到它们。
为了将这些地址和存储器地址区别开,称它们为接口地址。CPU通过这些地址向接口电路中的寄存器发送命令,读取状态和传送数据。
有时也将上述接口中可被CPU直接访问的一些寄存器称为端口。一个接口常有几个端口,如数据端口、状态端口、命令端口等,每个端口的地址叫作端口地址。
如何实现对这些接口地址和端口地址的访问,就是I/O地址的寻址问题。