串行通信 计算机网络和TCP/IP协议

时间:2021-04-17 14:33:47

在现场数据采集和数据传输中大量采用接口方式,监控系统涉及较多的是串行通信接口和网络接口。

一、串行通信协议
计算机与外设或计算机之间的通信通常有两种方式:并行通信和串行通信。
并行通信指数据的各位同时传送。并行方式传输数据速度快,但占用的通信线多,传输数据的可靠性随距离的增加而下降,只适用于近距离的数据传送。
串行通信是指在单根数据线上将数据一位一位地依次传送。发送过程中,每发送完一个数据,再发送第二个,依此类推。接受数据时,每次从单根数据线上一位一位地依次接受,再把它们拼成一个完整的数据。在远距离数据通信中,一般采用串行通信方式,它具有占用通信线少、成本低等优点。
1、串行通信的基本概念
(1)同步和异步通信方式
串行通信有两种最基本的通信方式:同步串行通信方式和异步串行通信方式。同步串行通信方式是指在相同的数据传送速率下,发送端和接受端的通信频率保持严格同步。由于不需要使用起始位和停止位,可以提高数据的传输速率,但发送器和接受器的成本较高。异步串行通信是指发送端和接受端在相同的波特率下不需要严格地同步,允许有相对的时间时延,即收、发两端的频率偏差在10%以内,就能保证正确实现通信。
异步通信在不发送数据时,数据信号线上总是呈现高电平状态,称为空闲状态(又称MARK状态)。当有数据发送时,信号线变成低电平,并持续一位的时间,用于表示发送字符的开始,该位称为起始位,也称SPACE状态。起始位之后,在信号线上依次出现待发送的每一位字符数据,并且按照先低位后高位的顺序逐位发送。采用不同的字符编码方案,待发送的每个字符的位数不同,在5、6、7或8位之间选择。数据位的后面可以加上一位奇偶校验位,也可以不加,由编程指定。最后传送的是停止位,一般选择1位、1.5位或2位。
(2)数据传送方式
①单工方式。单工方式采用一根数据传输线,只允许数据按照固定的方向传送。图8(a)中A只能作为发送器,B只能作为接收器,数据只能从A传送到B,不能从B传送到A。
②半双工方式。半双工方式采用一根数据传输线,允许数据分时地在两个方向传送,但不能同时双向传送。图8(b)中在某一时刻,A为发送器,B为接收器,数据从A传送到B;而在另一个时刻,A可以作为接收器,B作为发送器,数据从B传送到A。
③全双工方式。全双工方式采用两根数据传输线,允许数据同时进行双向传送。图8(c)中A和B具有独立的发送器和接收器,在同一时刻,既允许A向B发送数据,又允许B向A发送数据。
(3)波特率
波特率是指每秒内传送二进制数据的位数,以b/s和bps(位/秒)为单位。它是衡量串行数据传送速度快慢的重要指标和参数。计算机通信中常用的波特率是:110,300,600,1200,2400,4800,9600,19200bps。
(4)串行通信的检错和纠错
在串行通信过程中存在不同程度的噪声干扰,这些干扰有时会导致在传输过程中出现差错。因此在串行通信中对数据进行校验是非常重要的,也是衡量通信系统质量的重要指标。检错,就是如何发现数据传输过程中出现的错误,而纠错就是在发现错误后,如何采取措施纠正错误。
①误码率
误码率是指数据经传输后发生错误的位数与总传输位数之比。在计算机通信中,一般要求误码率达到10-6数量级。误码率与通信过程中的线路质量、干扰、波特率等因素有关。
②奇偶校验
奇偶校验是常用的一种检错方式。奇偶校验就是在发送数据位最后一位添加一位奇偶校验位(0或1),以保证数据位和奇偶校验位中1的总和为奇数或偶数。若采用偶校验,则应保证1的总数为偶数;若采用奇校验,则应保证1的总和为奇数。在接受数据时,CPU应检测数据位和奇偶校验位中1的总数是否符合奇偶校验规则,如果出现误码,则应转去执行相应的错误处理服务程序,进行后续纠错。
③纠错
在基本通信规程中一般采用奇偶校验或方阵码检错,以重发方式进行纠错。在高级通信中一般采用循环冗余码(CRC)检错,以自动纠错方式来纠错。一般说来,附加的冗余位越多,检测、纠错能力就越强,但通信效率也就越低。
2、串行通信接口标准
串行通信接口按电气标准及协议来分包括RS-232、RS-422、RS485、USB等。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。
(1)RS-232串行接口
目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通信。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL电平,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。RS-232是为点对点(即只用一对收、发设备)通信而设计的,其驱动器负载为3~7kΩ。由于RS-232发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约30米,最高速率为20kb/s。所以RS-232适合本地设备之间的通信。可以通过测量DTE的Txd(或DCE的Rxd)和Gnd之间的电压了解串口的状态,在空载状态下,它们之间应有约-10V左右(-5~-15V)的电压,否则该串口可能已损坏或驱动能力弱。
①管脚定义
RS-232物理接口标准可分成25芯和9芯D型插座两种,均有针、孔之分。其中TX(发送数据)、RX(接受数据)和GND(信号地)是三条最基本的引线,就可以实现简单的全双工通信。DTR(数据终端就绪)、DSR(数据准备好)、RTS(请求发送)和CTS(清除发送)是最常用的硬件联络信号。

表1-8-1   RS232接口中DB9、DB25管脚信号定义
9针     25针     信号名称     信号流向     简称     信号功能
       发送数据     DTE —>DCE     TxD     DTE发送串行数据
       接收数据     DTE <—DCE     RxD     DTE接受串行数据
       请求发送     DTE —>DCE     RTS     DTE请求切换到发送方式
       清除发送     DTE <—DCE     CTS     DCE已切换到准备接受
       数据设备就绪     DTE <—DCE     DSR     DCE准备就绪可以接受
       信号地         GND     公共信号地
       载波检测     DTE <—DCE     DCD     DCE已接受到远程载波
    20     数据终端就绪     DTE —>DCE     DTR     DTE准备就绪可以接受
    22     振铃指示     DTE <—DCE     RI     通知DTE,通讯线路已接通
按照RS232标准,传输速率一般不超过20kbps,传输距离一般不超过15M。实际使用时通信速率最高可达115200bps。
②RS232串行接口基本接线原则
设备之间的串行通信接线方法,取决于设备接口的定义。设备间采用RS232串行电缆连接时有两类连接方式:
直通线:即相同信号(Rxd对Rxd、Txd对Txd)相连,用于DTE(数据终端设备)与DCE(数据通信设备)相连。如计算机与MODEM(或DTU)相连。
交叉线:即不同信号(Rxd对Txd、Txd对Rxd)相连,用于DTE与DTE相连。如计算机与计算机、计算机与采集器之间相连。
以上两种连接方法可以认为同种设备相连采用交叉线连接,不同种设备相连采用直通线连接。在少数情况下会出现两台具有DCE接口的设备需要串行通信的情况,此时也用交叉方式连接。当一台设备本身是DTE,但它的串行接口按DCE接口定义时,应按DCE接线。如艾默生网络能源有限公司生产的一体化采集器IDA采集模块上的调测接口是按DCE接口定义的,当计算机与IDA采集模块的调测口连接时就要采用直通串行电缆。
一般地,RS232接口若为公头,则该接口按DTE接口定义;若为母头,则该接口按DCE接口定义。但注意也有反例,不能一概而论。(一些DTE设备上的串行接口按DCE接口定义而采用DB9或DB25母接口的原因主要是因为DTE接口一般都采用公头,当人用手接触时易接触到针脚;采用母头时因不易碰到针脚,可避免人体静电对设备的影响。)
对于某些设备上的非标准RS232接口,需要根据设备的说明书确定针脚的定义。如果已知Txd、Rxd和Gnd三个针脚,但不清楚哪一个针脚是Txd,哪一个针脚是Rxd,可以通过用万用表测量它们与Gnd之间的电压来判别,如果有一个电压为-10V左右,则万用表红表笔所接的是DTE的Txd或DCE的Rxd。
③RS232的三种接线方式
三线方式:即两端设备的串口只连接收、发、地三根线。一般情况下,三线方式即可满足要求,如监控主机与采集器及大部分智能设备之间相连。
简易接口方式:两端设备的串口除了连接收、发、地三根线外,另外增加一对握手信号(一般是DSR和DTR)。具体需要哪对握手信号,需查阅设备接口说明。
完全口线方式:两端设备的串口9线全接。
此外,有些设备虽然需要握手信号,当并不需要真正的握手信号,可以采用自握手的方式。
(2)RS-422/485串行接口
①平衡传输
RS-422由RS-232发展而来。为改进RS-232通信距离短、速度低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbit/s,并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范。
RS-422的数据信号采用差分传输方式,也称作平衡传输。它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图1-8-8。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~-6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端, “使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。
接收器也作与发送端相应的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV至6V之间。
②RS-422
RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。图1-8-9是典型的RS-422四线接口。实际上还有一根信号地线,共5根线。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。
RS-422的最大传输距离为4000英尺(约1200米),最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。
RS422接口的定义很复杂,一般只使用四个端子,其针脚定义分别为TX+、TX-、RX+、RX-,其中TX+和TX-为一对数据发送端子,RX+和RX-为一对数据接收端子,参见图1-8-10。RS422采用了平衡差分电路,差分电路可在受干扰的线路上拾取有效信号,由于差分接收器可以分辨0.2V以上的电位差,因此可大大减弱地线干扰和电磁干扰的影响,有利于抑制共模干扰,传输距离可达1200米。
另外和RS232不同的是,在一RS422总线上可以挂接多台设备组网,总线上连接的设备RS422串行接口同名端相接,与上位机则收发交叉,可以实现点到多点的通信,如图1-8-11所示。(RS232只能点到点通信,不能组成串行总线。)
通过RS422总线与计算机某一串口通信时,要求各设备的的通信协议相同。为了在总线上区分各设备,各设备需要设置不同的地址。上位机发送的数据所有的设备都能接收到,但只有地址符合上位机要求的设备响应。
③RS-485
为扩展应用范围,EIA在RS-422的基础上制定了RS-485标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485收发器。
RS-485收发器采用平衡发送和差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,故数据传输可达千米以外。
RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可连接多达32个设备,SIPEX公司新推出的SP485R最多可支持400个节点。
RS-485与RS-422的共模输出电压是不同的。RS-485共模输出电压在-7V至+12V之间, RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12KΩ;RS-422是4kΩ;RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。但RS-422的驱动器并不完全适用于RS-485网络。
RS-485与RS-422一样,最大传输速率为10Mb/s。当波特率为1200bps时,最大传输距离理论上可达15千米。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。
RS-485需要2个终接电阻,接在传输总线的两端,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。
RS485是RS422的子集,只需要DATA+(D+)、DATA-(D-)两根线。RS485与RS422的不同之处在于RS422为全双工结构,即可以在接收数据的同时发送数据,而RS485为半双工结构,在同一时刻只能接收或发送数据。
RS485总线上也可以挂接多台设备,用于组网,实现点到多点及多点到多点的通信(多点到多点是指总线上所接的所有设备及上位机任意两台之间均能通信)。
连接在RS485总线上的设备也要求具有相同的通信协议,且地址不能相同。在不通信时,所有的设备处于接收状态,当需要发送数据时,串口才翻转为发送状态,以避免冲突。
为了抑制干扰,RS485总线常在最后一台设备之后接入一个120欧的电阻。
很多设备同时有RS485接口方式和RS422接口方式,常共用一个物理接口,见图1-8-14。图中,RS485的D+和D-与RS422的T+和T-共用。
(3)RS232/422/485串行通信接口性能比较
上述三种通信接口的比较见下表1-8-2。
           接口性能     RS-232     RS422     RS485
操作方式     电平     差分     差分
最大传输速率     20kb/s(15m)     10Mb/s(12m)1Mb/s(120m)100kb/s(1200m)     10Mb/s(12m)1Mb/s(120m)100kb/s(1200m)