首页 理论教育 计算机串行通信基础-单片机原理与应用

计算机串行通信基础-单片机原理与应用

时间:2023-10-23 理论教育 版权反馈
【摘要】:图6-15为计算机与外界的通信方式。图6-15计算机与外界的通信方式并行通信的传送控制简单、传输速度快,但由于传输线较多,长距离传送时成本高,且接收方的各位同时接收存在困难。图6-22串行通信制式4.串行信号的调制与解调计算机的信号是数字信号,不便于远距离通信,若远距离直接传输数字信号,信号会发生畸变。

计算机串行通信基础-单片机原理与应用

随着微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能越来越显得重要。计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换。

1.通信的基本方式

计算机与外界的通信有并行通信和串行通信两种基本方式。其中:并行通信通常是将数据字节的各位用多条数据线同时进行传送。串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。图6-15为计算机与外界的通信方式。

图6-15 计算机与外界的通信方式

并行通信的传送控制简单、传输速度快,但由于传输线较多,长距离传送时成本高,且接收方的各位同时接收存在困难。串行通信的传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂、传输速度慢。它们的特点可归纳为表6-2。

表6-2 两种通信方式的特点

2.串行通信的方式

串行通信按信息的格式又可分为异步通信和同步通信两种方式。

(1)异步通信。异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。此方式的数据在线路上传送时是以一个字符(字节)为单位,未传送时线路处于空闲状态,空闲线路约定为电平“1”,见图6-16。

图6-16 异步通信的示意图

异步通信是以字符为单位进行传输,传送一个字符又称为一帧信息,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间是异步的(字符之间不一定有“位间隔”的整数倍的关系),但同一字符内的各位是同步的(各位之间的距离均为“位间隔”的整数倍)。传送时每一个字符前加一个低电平的起始位,然后是数据位,数据位可以是5~8位,低位在前,高位在后,数据位后可以带一个奇偶校验位,最后是停止位,停止位用高电平表示,它可以是1位、1位半或2位。异步通信的数据格式如图6-17所示。

图6-17 异步通信数据格式

异步通信的特点:不要求收发双方时钟的严格一致,对发送时钟和接收时钟的要求相对不高,实现容易,设备开销较小。但由于一次只传送一个字符,因而一次传送的位数比较少,每个字符还要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。

(2)同步通信。同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过外同步法、自同步法两种方法实现。其中:外同步法是发送端发送数据之前先发送同步时钟信号,接收方用这一同步信号来锁定自己的时钟脉冲频率,以此来达到收发双方位同步的目的。而自同步法是接收方利用包含有同步信号的特殊编码(如曼彻斯特编码)从信号自身提取同步信号来锁定自己的时钟脉冲频率,达到同步目的。图6-18为两种同步方法的示意图。

图6-18 两种同步方法的示意图

同步通信是以数据块为传输单位,每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列,以便对数据块进行差错控制。其格式如图6-19所示。

图6-19 同步通信数据格式

根据同步通信规程,同步传输又分为面向字符的同步传输和面向位流的同步传输。

1)面向字符的同步传输。面向字符的同步格式图6-20所示。传送的数据和控制信息都必须由规定的字符集(如ASCII码)中的字符所组成。图中帧头为1个或2个同步字符SYN(ASCII码为16 H)。SOH为序始字符(ASCII码为01H),表示标题的开始,标题中包含源地址、目标地址和路由指示等信息。STX为文始字符(ASCII码为02H),表示传送的数据块开始。数据块是传送的正文内容,由多个字符组成。数据块后面是组终字符ETB(ASCII码为17 H)或文终字符ETX(ASCII码为03 H)。然后是校验码。典型的面向字符的同步规程如IBM的二进制同步规程BISYNC(BSC)。

图6-20 面向字符的同步格式

2)面向位流的同步传输。面向位流的同步格式图6-21所示。此时,将数据块看作数据位流,而不是作为字符流来处理,并用一个特殊的比特序列01111110来标记数据块的开始和结束。为了避免在数据流中出现序列01111110时引起的混乱,发送方总是在其发送的数据流中每出现5个连续的1就插入一个附加的0;接收方则每检测到5个连续的1并且其后有一个0时,就删除该0。典型的面向位的同步协议如ISO的高级数据链路控制规程HDLC和IBM的同步数据链路控制规程SDLC。

图6-21 面向位的同步格式

同步通信的特点是一次连续传送任意多个字符或数据位,传输的效率高;但对发送时钟和接收时钟要求较高,往往用同一个时钟源控制,控制线路复杂。

3.串行通信的传输方向

按照数据传送的方向,串行通信可分为单工、半双工全双工3种制式,如图6-22所示。

(1)单工。单工是指甲乙双方通信时只能单一方向的传送数据,不能实现反向传输,发送方和接收方固定。

(2)半双工。半双工是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,需要分时进行,即发送时不能接收,接收时不能发送。

(3)全双工。全双工是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。

图6-22 串行通信制式

4.串行信号的调制与解调

计算机的信号是数字信号,不便于远距离通信,若远距离直接传输数字信号,信号会发生畸变。因此,在远距离通信中,一般需要利用电话线(或光缆、专用通信电缆)连接两台计算机。由于计算机内的信息是由“0”和“1”组成数字信号,而在电话线上传递的却只能是模拟电信号。于是,当两台计算机要通过电话线进行数据传输时,就需要一个设备负责数模的转换,这个包括调制器和解调器的数模转换器就是调制解调器(Modem,简称“猫”)。计算机在发送数据时,先由Modem把数字信号转换为相应的模拟信号,这个过程称为“调制”,其调制方法主要有频率调制法、幅度调制法和相位调制法。经过调制的信号通过电话线载波传送到另一台计算机之前,也要经由接收方的Modem负责把模拟信号还原为计算机能识别的数字信号,这个过程称为“解调”。正是通过这样一个“调制”与“解调”的数模转换过程,从而实现了两台计算机之间的远程通信。图6-23为Modem的工作原理图。

图6-23 Modem工作原理

5.串行通信的错误校验

(1)奇偶校验。在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数。偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。这种校验方法比较简单,目前广泛应用于异步通信中,但它只能检测出数据中奇数个位数出错,不能检查出偶数个位数出错。

(2)代码和校验(也称累加和校验)。代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。这种校验方法无法检验出字节位序(或1、0位序不同)的错误。

(3)循环冗余校验。循环冗余码校验的基本原理是将一个数据块看成一个位数很长的二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块后一起发送。接收端收到该数据块和校验码后,进行同样的运算来校验传送是否出错。这种校验方法纠错能力强,目前CRC已广泛用于数据存储和同步数据通信中,并在国际上形成规范,已有不少现成的CRC软件算法

6.串行的传输速率与传输距离

(1)传输速率。比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bit/s)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:10位×240个/s=2400bit/s。

波特率表示每秒钟调制信号变化的次数,单位是:波特(Baud)。

在异步通信中,传输速度往往又可用每秒传送多少个字节来表示(bit/s)。它与波特率的关系为(www.xing528.com)

波特率(Baud)=1个字符的二进制位数×字符/秒(bit/s)

例如:每秒传送200个字符,每个字符1位起始位、8个数据位、1个校验位和1个停止位。则波特率为2200bit/s。

波特率和比特率不总是相同的,对于将数字信号1或0直接用两种不同电压表示的所谓基带传输,比特率和波特率是相同的。所以,我们也经常用波特率表示数据的传输速率。

(2)传输距离与传输速率的关系。串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。当传输线使用每0.3m(约1英尺)有50p F电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。当比特率超过1000bit/s时,最大传输距离迅速下降,如9600bit/s时最大距离下降到只有76m(约250英尺)。

7.串行接口的基本任务

(1)实现数据格式化。因为CPU发出的数据是并行数据,接口电路应实现不同串行通信方式下的数据格式化任务,如自动生成起止方式的帧数据格式(异步方式)或在待传送的数据块前加上同步字符等。

(2)进行串、并转换。在发送端,接口将CPU送来的并行信号转换成串行数据进行传送。而在接收端,接口要将接收到串行数据变成并行数据送往CPU,由CPU进行处理。

(3)控制数据的传输速率。接口应具备对数据传输率—波特率的控制选择能力,即具有波特率发生器。

(4)进行传送错误检测。在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校验位或校验码,以确定传送中是否有误码。

MCS-51系列单片机内有一个全双工的异步通信接口,通过对串行接口写控制字可以选择其数据格式,同时内部有波特率发生器,提供可选的波特率,可完成双机通信或多机通信。

8.串行通信总线的接口标准及其接口

在串行传输中,通信的双方都按通信协议进行,所谓通信协议就是通信双方必须共同遵守的一种约定,约定包括数据的格式、同步的方式、传送的步骤、检纠错方式及控制字符的定义等。

串行接口通常分为两种类型:串行通信接口和串行扩展接口。其中:串行通信接口是指设备之间的互连接口,它们互相之间距离比较长,根据通信距离和抗干扰性要求,可选择TTL电平传输、RS-232C/RS-422A/RS-485等串行通信总线接口标准进行串行数据传输。串行扩展接口是设备内部器件之间的互连接口。常用的串行扩展总线接口标准有SPI、I2 C等,串行接口扩展的芯片很多,可以根据需要选择。

(1)TTL电平通信接口。微机串行口的输入、输出一般均为TTL电平。如果两个微机相距在1.5m之内,它们的串行口可直接交叉相连,即甲机的接收端RXD与乙机发送端TXD相连,而乙机接收端RXD与甲机发送端TXD端相连。

TTL电平传输的抗干扰性差、传输距离短、传输速率低。为提高串行通信的可靠性,增大串行通信的距离和提高传输速率,通常都采用RS-232、RS-422A、RS-485等标准串行接口进行串行数据传输。

(2)RS-232C串行接口标准。RS-232C是美国电子工业协会(EIA)1969年修订的一种国际通用的串行接口标准。它最初是为远程通信连接数据终端设备(DTE)和数据通信设备(DCE)制定的标准,目前已广泛用做计算机与终端或外部设备的串行通信接口标准。该标准规定了通信设备之间信号传送的机械特性、信号功能、电气特性及连接方式等。

1)机械特性。RS-232C接口规定使用25针和9针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义,如图6-24所示。PC上配置有COM1和COM2两个串行接口,它们都采用了RS-232C标准。完整的RS-232C总线由25根信号线组成,DB-25是RS-232C总线的标准连接器,其上有25根插针。

图6-24 DB25和DB9插座/插头

2)电气特性。因通信时(有干扰)信号要衰减,因此RS232采用电平负逻辑,拉开“0”和“1”的电压档次,以免信息出错。RS232负逻辑(EIA电平):“0”为+3~+25V(典型值+5~+15V);“1”为-3~-25V(典型值-5~-15V)。其最大传输信息的长度为15m。而TTL电平采用正逻辑:“0”为0~2.4V;“1”为3.6~5V;高阻为2.4~3.6V。TTL电平的直接传输距离一般不超过1.5m。

3)功能特性。表6-3列出了RS-232C信号线名称、符号以及对应在DB-25和DB-9上的针脚号。

表6-3 RS-232C标准接口的主要引脚定义

4)RS-232C电平与TTL电平转换驱动电路。由于RS-232C总线上传输的信号的逻辑电平与TTL逻辑电平差异很大,所以就存在这两种电平的转换问题,常用的RS-232电平转换器芯片有MC1488/1489、MAX232等。这些专用接口芯片称为收发器。图6-25为采用MC1488/MC1489芯片实现RS-232C与TTL之间电平转换电路。

MAX232只需单一的+5V供电,由内部电压变换器产生±10V。芯片内有2个发送器(TTL电平 转 换 成RS-232电 平),2个 接 收 器(RS-232电 平 转 换 为TTL电 平)。MAX232的内部结构及引脚信号如图6-26所示。

图6-25 RS-232C与TTL之间电平转换芯片MC1488/MC1489

图6-26 MAX232的内部结构及引脚信号

5)过程特性。过程特性规定了信号之间的时序关系,以便正确地接收和发送数据。如果通信距离在1.5~15m之间时,可采用RS-232C标准接口直接把它们连接起来;如果通信距离超过15m,还需把信号通过MODEN和电话线后再把它们连接起来。图6-27为RS-232C的两种连接形式。

6)采用RS-232C接口存在的问题。

a.传输距离短、传输速率低。RS-232C总线标准受电容允许值的约束,使用时传输距离一般不要超过15m,最高传送速率为20kbit/s。

b.有电平偏移。RS-232C总线标准要求收发双方共地。通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。

c.抗干扰能力差。RS-232C在电平转换时采用单端驱动、单端接收方式进行数据的输入输出,在传输过程中当干扰和噪声混在正常的信号中。为了提高信噪比,RS-232C总线标准不得不采用比较大的电压摆幅。

(3)RS-422A串行接口标准。RS-232C有明显缺点:传输速率低、通信距离短、接口处信号容易产生串扰等。国际上又推出了RS-422A标准。与RS-232C的主要区别是,收发双方的信号地不再共地,RS-422A采用了双端平衡驱动和差分接收的方法。用于数据传输的是两条平衡导线,这相当于两个单端驱动器。两条线上传输的信号电平,当一个表示逻辑“1”时,另一条一定为逻辑“0”。若传输中信号中混入干扰和噪声(共模形式),由于差分接收器的作用,就能识别有用信号并正确接收传输的信息,并使干扰和噪声相互抵消。

图6-27 RS-232C的两种连接形式

RS-422的干扰抑制性极好,又因为它的阻抗低,无接地问题,所以RS-422A能在长距离、高速率下传输数据。它的最大传输率为10Mbit/s,电缆允许长度为12m,如果采用较低传输速率时,最大传输距离可达1219m。

图6-28为RS-422典型的4线接口电路。图6-28中的SN75174、SN75175是TTL电平到RS-422A电平与RS-422A电平到TTL电平的电平转换芯片。

图6-28 RS-422A典型的4线接口电路

(4)RS-485串行接口标准。RS-422A双机通信需4芯传输线,这对长距离通信很不经济,故在工业现场,通常采用双绞线传输的RS-485串行通信接口,实现半双工的多机通信。

RS-485是RS-422A的变型,它与RS-422A的区别:RS-422A为全双工,采用两对平衡差分信号线;RS-485为半双工,采用一对平衡差分信号线。RS-485对于多站互连是十分方便的,很容易实现多机通信。RS-485允许最多并联32台驱动器和32台接收器。如果在一个网络中连接的设备超过32个,还可以使用中继器。与RS-422A一样,最大传输距离约为1219m,最大传输速率为10Mbit/s。

芯片SN75176可用来实现TTL/RS-485的电平转换,与SN75176同类功能的芯片还有MAX485等,其芯片内集成了一个差分驱动器和一个差分接收器,兼有TTL电平到RS-485电平、RS-485电平到TTL电平的转换功能,图6-29为SN75176的通信接口电路。图中,在AT89S51单片机系统发送或接收数据前,应先将SN75176的发送门或接收门打开,当P1.0=1时,发送门打开,接收门关闭;当P1.0=0时,接收门打开,发送门关闭。

图6-29 SN75176的通信接口电路

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈