6.2 总线接口
在数字计算机中,总线接口是实现数据交换的核心部分,负责在计算机系统的各个组件之间传输信息。这一节我们将深入了解总线接口的不同信息传输方式,以及这些方式在实际应用中的优势和局限性。
一、信息的传送方式
数字计算机使用二进制数,这些二进制数可以通过电位的高低或者脉冲的有无来表示。具体来说,高电位或有脉冲时代表二进制“1”,而低电位或无脉冲时则表示二进制“0”。
在计算机系统中,信息的传输主要采用以下四种方式:
1. 串行传送
串行传送是信息传输中最基本的形式。在这种方式中,数据通过单一的传输线,按顺序一个接一个地传送每个二进制位。串行传送通常使用脉冲信号,其中第一个脉冲表示最低有效位,而最后一个脉冲则表示最高有效位。
应用场景和优点:
- 成本效益:由于只需一条传输线,因此成本较低,适合长距离传输。
- 技术实现:在发送端,数据需要进行并行到串行的变换,而在接收端则需要进行串行到并行的变换。
2. 并行传送
并行传送方式在一定时间内可以同时传送多个二进制位,通常每个位都通过自己的独立线路进行传输。
应用场景和优点:
- 传输速度:并行传输由于同时传送多位,速度远高于串行传输,适合短距离且高速度要求的场合,如计算机内部总线。
3. 并串行传送
并串行传送是串行与并行传送的结合体,采用在限制的几个通道上进行串行传输,从而实现速度与成本之间的平衡。
4. 分时传送
分时传送是在同一通道上,通过分配不同的时间段来传送不同的数据流。这种方式可以有效利用传输线路,提高通道的使用效率。
实现细节和挑战:
- 位时间的定义:位时间是指一个二进制位在传输线上占用的时间长度。在串行传送中,位时间的定义非常关键,因为它决定了接收端能否正确识别连续的二进制位。
- 同步问题:在串行传输中,如果连续传送多个“0”或“1”,接收设备需要依赖同步脉冲来确定位时间,确保数据的正确识别和处理。
总结来说,总线接口中的信息传输方式直接影响了计算机系统的效率和性能。不同的传输方式有着不同的应用场景和技术挑战,合理选择和优化这些传输方式是提高系统性能的关键。
二、接口的基本概念
在计算机系统中,接口扮演了极其重要的角色,它们充当着中央处理器(CPU)、内存、外围设备之间,甚至是不同计算机之间的桥梁。接口确保了这些组件能够有效地通过总线进行通信,从而实现信息的顺利传输。
接口的功能和作用
接口的主要功能是转换、控制、缓冲、状态监控、数据转换和程序中断管理。以下是接口的几个关键功能的详细解释:
-
控制: 接口依据程序的指令来管理外围设备的操作,如启动或关闭设备。
-
缓冲: 为了解决外围设备与CPU之间速度的不匹配问题,接口充当缓冲器的角色,保持数据流的平衡和连续性。
-
状态监控: 接口负责监视外围设备的工作状态,并保存有关其状态的信息,如“数据准备就绪”、“设备忙碌”或“错误”等,供CPU查询和分析。
-
数据转换: 接口可以实现必要的数据转换,例如将数据从串行转为并行,或反之,确保数据在CPU和外围设备之间正确传输。
-
特殊功能整理: 接口还能执行一些特定功能,如在必要时修改字计数器或当前内存地址寄存器,以优化数据处理过程。
-
程序中断: 当外围设备需要CPU执行某些操作时,接口会发送中断请求信号。这可以是因为设备完成了一个任务,或者设备遇到错误。
接口的分类
根据数据传输的形式,接口主要分为两大类:
-
串行数据接口: 串行接口允许数据按位顺序传输,通常用在连接远距离设备或网络通讯中。这种接口因其简单的线路结构而广泛应用于不同的通讯设备。
-
并行数据接口: 并行接口能同时传输多位数据,适用于速度要求高且距离较短的场合。虽然并行接口可以提供更快的数据传输速度,但其线路复杂且成本较高。
结论
了解和选择合适的接口类型对于确保计算机系统中各组件间的有效通信至关重要。每种接口的设计都是为了满足特定的系统需求和优化性能。因此,合理地应用这些接口将直接影响计算机系统的整体效率和性能。
三、串行数据接口
在现代计算机通信中,一个重要的概念是串行数据接口。这些接口,特别是通用异步接收发送器(UART),是实现计算机与外围设备之间串行通信的基础技术。UART的主要作用是将来自外围设备的串行数据码转换为计算机内部使用的并行数据码,同时也能将计算机内部的并行数据码转换为串行数据码以供外围设备使用。
UART的组成与功能
如图6.7所示,UART由以下几个主要部分组成:
- 接收器:负责将从RxD线接收的串行数据码先转移到移位寄存器,再转换成并行数据,最后通过数据总线传输到CPU。
- 发送器:接收来自CPU的并行数据,先送入发送器的缓冲器,然后转移到移位寄存器,最终通过TxD线逐位串行输出。
此外,UART还包含了控制和状态寄存器,用于监控接收器和发送器的工作状态,并通过信号如RDA(接收数据可用)、OVRN(溢出)、FERR(帧错误)和TBE(发送缓冲器空)等向CPU提供反馈。
串行字符的格式
通用异步接收发送器的设计是为了传输串行字符,其格式如图6.8所展示的那样。每个字符通常由以下几部分构成:
- 起始位:标志一个字符传输的开始,通常是一个从高电平变为低电平的下降沿。
- 数据位:跟随起始位的5到8位用来表示字符数据。
- 奇偶校验位:用于错误检测,确保数据的正确性。
- 终止位:一个或两个高电平位,标志一个字符的结束。
同步与定时
在UART的工作过程中,特别重要的是它如何与接收到的数据进行同步。这需要外部时钟的配合,外部时钟周期Tc与每个数据位的持续时间Tb有特定的比例关系,如Tb = Tc / K,其中K可以是16或64。这个同步过程如图6.9所示,它确保了数据能够在正确的时刻被采样和识别。
波特率的重要性
波特率定义了数据传输的速率,是串行通信中的关键参数。它决定了CPU与外界设备通信的速率,通常表示为每秒传送的位数。波特率的选择对于通信的可靠性和效率至关重要。
在定义字符格式和波特率时,通信双方必须有共同的约定,如起始位、数据位数和停止位的数量,这样才能保证数据传输的一致性和准确性。
总体而言,串行数据接口,特别是UART,对于计算机系统中数据通信的实现具有基础性的作用,既影响数据传输的质量,也影响整体的通信效率。通过精确的时钟同步和合理的波特率设置,可以优化通信过程,减少错误,确保数据传输的稳定性。
四、并行数据接口
并行数据接口在计算机系统中用于高速的数据传输,通常被设计来处理宽数据总线上同时传输的多个数据位。在微型计算机系统中,这些接口通常被称为可编程输入/输出(PIO)电路。图6.10提供的是一个典型的PIO方框图,说明了并行接口在CPU和外围设备间如何协调数据传输。
特点和组成
PIO具有以下显著特点和组成部分:
-
数据缓冲器:
- 可作为输入数据寄存器和输出数据寄存器。
- 方向寄存器控制数据流向。
- 每个数据缓冲器连接到双向数据总线,通常被称为端口。
-
控制缓冲器:
- 存放控制字,确定外围设备的工作模式。
- 控制寄存器包含由CPU设置的指令,用以指导外围设备的操作。
-
多路转换器:
- 相当于一个多路开关,允许多个数据缓冲器的数据接入CPU的数据总线。
-
控制逻辑:
- 发出和接收控制信号,监控外围设备状态。
可编程性
PIO的一个关键特性是可编程性,这意味着用户可以通过软件定义PIO端口的具体功能:
- 指定哪个端口为输入或输出。
- 设置特定I/O线为控制线或状态信号线。
- 配置哪个信号可以触发中断。
工作方式
在使用PIO时,操作通常遵循以下步骤:
-
设置控制字:
- CPU向控制寄存器发送一个控制字,这由用户程序定义。
- 控制字设定PIO端口的功能和工作状态。
-
数据传输:
- 使用标准的数据传送指令在CPU和I/O端口之间进行数据传输。
这种灵活性使PIO成为了一种高度通用的并行接口电路,适用于多种不同的应用和设备。用户可以根据需要编程PIO,以适应特定的外围设备或系统配置,优化计算机系统的整体性能和功能。