从基本方式上区分,通信可以分成并行通信和串行通信两种,并行通信一般使用多条传输线传输数据,一次传送多个(一般是2n个)比特位。串行通信则使用一条传输线传输数据,一次传送一个比特位(见图8-10)。相比起来,并行传输的传输效率较高,但抗干扰能力较差,常用于近距离高速传输。串行传输的传输效率相对较低,但抗干扰能力强,常用于远距离传输。
图8-10 并行传输(左)与串行传输(右)
由于串行传输一般被用于远距离和复杂环境下的数据传输,传输过程中受到干扰导致传输数据位出错的可能性比较大,所以串行传输经常使用奇偶校验来保证其传输的正确性。在发送数据时,发送方在发送数据的同时发送一个校验位,用以校验接收方接收数据的正确性。奇偶校验有两种不同的校验方法:奇校验和偶校验。如果传输过程使用奇校验,则发送方在加入校验位的时候,将保证数据位与校验位中逻辑1的个数为奇数。反之,如果传输过程使用偶校验,则发送方在加入校验位的时候,将保证数据位和校验位中逻辑1的个数为偶数。这样,接收方就可以通过判断数据位和校验位中逻辑1的个数的奇偶性来确定传输的正确性。按照惯例,校验位设置在字符编码的最高位,其后才是数据位,以最常见的ASCⅡ字符编码为例,7位的ASCⅡ编码占用1字节的低7位,而最高位则可以被用作校验位。例如,字符“A”的ASCⅡ编码为二进制1000001(41H),其中有两个逻辑1,在奇校验时,为了保证逻辑1的数量为奇数,则校验位应当为逻辑1,故这时字符“A”的编码就是校验位的逻辑1加上字符“A”的ASCⅡ编码1000001,也就是11000001(C1H)。偶校验时情况刚好相反,字符“A”的校验位应当为逻辑0,其编码相应地也变成01000001(41H)。
在串行传输中,根据通信线路不同的物理连接方式,被分为单工、半双工和全双工三种不同方式(见图8-11)。
单工和半双工方式下,发送方和接收方都是通过一根传输线连接,不同之处在于单工方式只允许数据沿单向传输,而半双工方式则允许数据分时地沿两个方向传输。为了实现同时双向的数据传输,全双工方式下参与数据传输的双方必须由两根传输线(或者经过调制后的两个不同传输信道)相连,以提供双向的数据传输通道。
根据传输单位的不同,串行传输又可以被分为两种不同的类型:串行同步通信和串行异步通信。串行同步通信以数据块为单位进行通信。在传输时,若干需要传输的数据将被组织成为一个数据块,这个数据块以1~2个串行传输的同步字符为起始,然后传输待传输的数据,最后是校验字符。同步字符、数据块和校验字符组成一个信息帧,收发双方以信息帧为单位在同一个全局时钟信号下完成数据的传输。串行同步通信有时又被简称为同步通信,其通信开销小,效率高,但是由于串行同步通信需要全局时钟的参与,接收设备必须使用专用的硬件从发送方发送来的数据中分离出时钟信号,硬件电路比较复杂。
图8-11 串行通信的物理连接
与串行同步传输相反,串行异步传输不需要同步的时钟信号驱动传输过程,从而使得其硬件电路比较简单。串行异步传输以字符为单位,一个字符被视为传输的一帧,由起始位开始到停止位结束,其中还包括一组数据位和校验位。由于起始位、校验位和停止位加起来带来的传输开销最低也要有20%,因此串行异步传输的传输效率远远比串行同步传输的效率低。但是,由于串行异步传输每次传输的内容少、时间短、对时钟同步的依赖性要远远小于串行同步传输。
串行异步通信的信息帧由起始位、数据位、校验位和停止位组成,其格式如图8-12所示。
图8-12 串行异步通信的信息帧格式
在线路空闲,即没有数据需要传输时,线路上保持逻辑1的电平状态。当一个数据帧开始时,一个逻辑0的起始位代表了一个数据帧的开始,其后跟着5~8个数据位(逻辑0或逻辑1),数据位的传输次序为从低位到高位,数据位之后是0或1位的奇偶校验位(逻辑0或逻辑1),最后是1位、1.5位或2位逻辑1的停止位。这种传输按照发送方和接收方预先约定的通信速率进行。波特率(Baud rate)即调制速率,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。它是对符号传输速率的一种度量,1波特即指每秒传输1个符号。波特率有时候会同比特率混淆,实际上后者是对信息传输速率的度量。波特率可以被理解为单位时间内传输符号的个数,通过不同的调制方法可以在一个符号上负载多个比特信息。因此信息传输速率即比特率在数值上和波特率有这样的关系:
R=Blog2K(www.xing528.com)
其中,R为比特率(bit/s),B为波特率,K为可以传输符号的可能性,log2K代表每个符号可以表达的比特位数。由于数字通信使用逻辑0和逻辑1两种不同的符号,即K=2时比特率与波特率相等。在经过调制之后的模拟信号传输时,由于可能出现的符号个数可能超过2个,比如4、8或16,此时比特率和波特率不等,例如在八相调制(即K=8)的情况下,比特率R=3B。串行通信中常见的波特率有100波特、150波特、300波特、600波特、1200波特、2400波特、4800波特、9600波特、19200波特等。需要注意的是,“波特”这个单位代表的就是每秒钟信号的变化次数,所以不会出现类似“波特每秒”这样的量纲。
在串行异步传输的过程中,传输的双方之间不存在同一的公共时钟,它们使用在一定误差范围内近似同频的时钟来控制数据的传输过程。为了避免发送接收双方时钟之间的误差积累影响数据的传输,串行异步通信采用一种比较复杂的数据位检测机制。这种检测机制的基本思路是使用频率为数据传输的波特率K倍的时钟来控制传输,接收端以时钟为定时基础对每一个信息位采样K次,这个K被称作波特率因子,一般取2n,如16、32或64。
假设波特率因子为16,接收方以时钟为标准对传输线进行周期性地采样,当检测到传输线上的电平由逻辑1跳变为逻辑0,并连续保持9次采样结果均为逻辑0,则可以确认当前的信号变化来自于一个字符帧的起始位而不是干扰。此后,接收方每隔16个时钟周期采样一次,以确认帧中其他各位的值,直到采样到规定数目的停止位之后,当前帧结束,接收方继续采样搜寻起始位,等待下一帧的到来。由于接收方在每帧开始的时候都要重新定位一次起始位,这样就避免了发送方与接收方之间时钟周期误差的积累,保证在双方时钟周期相差不是很大的时候不会因为时钟周期的误差积累导致信息帧格式错(见图8-13)。
图8-13 异步通信时信息位的检测
长距离的通信大多采用串行方式,借用电话线、电力线路或宽带同轴电缆等模拟传输线路进行传输,由于这些模拟传输线路一般在频率上对传输的信号有所限制,数字信号无法通过这些模拟线路直接传输,通常情况下需要进行调制解调处理。其基本思路是:在发送方,对数字信号0和1进行调制,成为频率或相位不同的正弦波,再通过模拟线路发送出去;接收方对接收到的正弦波进行解调,还原出数字信号。调制的方法主要有三种:调幅(对载波的振幅进行调制)、调频(对载波的频率进行调制)和调相(对载波的相位进行调制),其中调频和调相经常被使用在数字信号的调制中。比如将数字信号1和0分别调制为频率为2100 Hz和1070 Hz的正弦波通过电话线进行传送等。
在通过调制解调进行长距离串行通信时,计算机不可避免地要和诸如调制解调器这样的数据设备进行数据交换,在作为数据终端(DTE,Data Terminal Equipment)的微型计算机和作为数据通信设备(DCE,Data Communication Equipment)的调制解调器之间需要一种完善定义的接口标准,以保证设备的兼容性,目前微机系统中使用的这个标准是RS-232C。
RS-232C是美国电子工业协会1969年公布的串行数据通信标准,它是1962年公布的RS-232标准的最新修订版。RS-232C使用25针D型插头作为串行接口与外界通信的连接器,并规定了其中20根信号线的功能。这20根信号线中经常被使用的有9根。从节省资金和空间考虑,不少微型计算机采用一种比较小的9针D型连接器。RS-232C的主要信号如表8-12所示。
表8-2 微型计算机中常用的RS-232C信号
RS-232C使用了和微型计算机接口电路中常用的TTL电平不同的负逻辑电平标准。在RS-232C中,-3 V~-15 V被视为逻辑1,+3 V~+15 V被视为逻辑0,而-3 V~+3 V被视为无效电平。由于RS-232C电平与TTL电平之间不兼容,微机的串行接口不能直接与数据通信设备连接,而必须通过电平转换器件实现两种不同电平标准之间的转换。这种转换通常使用MC1488和MC1489器件实现(见图8-14)。
图8-14 使用MC1488和MC1489连接微机串行接口和RS-232C数据通信设备
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。