1.1并行通信与串行通信
终端与其他设备(如其他终端、计算机和外部设备)通过数据传输进行通信。数据传输可以通过两种方式进行,即并行通信和串行通信。
1.并行通信
在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传送,这种传输被称为并行通信,如图4-1所示。
并行数据传送的特点是:各数据位同时传送,传送速度快、速率高,多用在实时、快速的场合。
并行传送的数据宽度可以是1位~128位,甚至更宽,但是有多少数据位就需要多少根数据线,因此传送的成本高。在集成电路芯片的内部,同一插件板上各部件之间,同一机箱内各插件板之间的数据传送都是并行的。
并行数据传送只适用于近距离的通信,通常小于30CM。
2.串行通信
串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线上,以每次一个二进制的0、1为最小单位逐位进行传输,如图4-2所示。
串行数据传送的特点是:数据传送按位顺序进行,最少只需要一根传输线即可完成,节省传输线。与并行通信相比,串行通信还有较为显著的优点,传输距离长,可以从几米到几千米。在长距离内串行数据传送速率会比并行数据传送速率快,串行通信的通信时钟频率容易提高,串行通信的抗干扰能力十分强,其信号间的互相干扰完全可以忽略。但是串行通信传送速率比并行通信慢得多,并行通信时间为T,则串行时间为NT。
正是由于串行通信的接线少、成本低,因此它在数据采集和控制系统中得到了广泛的应用,产品也多种多样。RS-232的通信距离一般为15米,波仕电子的RS-232可以达到500米(产品型号EX232)以上。RS-485的通信距离一般为1200米,波仕电子可以做到1800米(产品型号:485C、485A)甚至4800米(产品型号:G485EX)。
2.串行通信工作模式
通过单线传输信息是串行数据通信的基础。数据通常是在两个站(点对点)之间进行传送,按照数据流的方向可分成3种传送模式:单工、半双工、全双工。
1.单工形式:
早期的电流五单工形式的数据传送是单向的。通信双方中,一方固定为发送端,另一方则固定为接收端。信息只能沿一个方向传送,使用一根传输线,如图4-3所示。
单工形式一般用在只向一个方向传送数据的场合。如计算机与打印机之间的通信是单工形式,因为只有计算机向打印机传送数据,而没有相反的数据传送。还有在某些通信信道中,如单工无线发送等。
2.半双工形式:RS-485
半双工通信使用同一根传输线,即可发送数据又可接收数据,但不能同时发送和接收。在任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工形式即可以使用一条数据线,也可以使用两条数据线,如图4-4所示。
半双工通信中每端需有一个收/发切换电子开关,通过切换来决定数据向哪个方向传输。因为有切换,所以会产生时间延迟,信息传输效率低些。但是对于像打印机这样单方向传输的外围设备,用半双工方式就能满足要求了,不必采用全双工方式,可省一根传输线。
3.全双工形式:RS-232、RS-422
全双工数据通信分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,如图4-5所示。
在全双工方式中,每一端都有发送器和接收器,有两条传送线,可在交互式应用和远程监控系统中使用,信息传输效率较高。
3.异步传输与同步传输
串行传输中,数据是一位一位按照到达的顺序依次传输的,每位数据的发送和接收都需要时钟来控制。发送端通过发送时钟确定数据位的开始和结束,接收端需要在适当的时间间隔对数据流进行采样来正确的识别数据。接收端和发送端必须保持步调一致,否则数据传输就会出现差错。为了解决以上问题,串行传输可采用以下两种方法:异步传输和同步传输。
异步传输
异步传输方式中,字符是数据传输单位。在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。异步传送中,字符可以是连续地、一个个地发送,也可以是不连续地,随机地进行单独发送。在一个字符格式的停止位之后,立即发送下一个字符的起始位,开始一个新的字符的传输,这叫做连续的串行数据发送,即帧与帧之间是连续的。断续的串行数据传送是指在一帧结束之后维持数据线的“空闲”状态,新的起始位可在任何时刻开始。一旦传送开始,组成这个字符的各个数据位将被连续发送,并且每个数据位持续的时间是相等的。接收端根据这个特点与数据发送端保持同步,从而正确地恢复数据。收/发双方则以预告约定的传输速率,在时钟的作用下,传送这个字符中的每一位。
同步传输
在同步传输方式中,比特块以稳定的比特流的形式传输,数据被封装成更大的传输单位,称为帧。每个帧中含有多个字符代码,而且字符代码与字符代码之间没有间隙以及起始位和停止位。和异步传输相比,数据传输单位的加长容易引起时钟漂移。为了保证接收端能够正确地区分数据流中的每个数据位,收发双主必须通过某种方法建立起同步的时钟。可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器)定期地在每个比特时间中向线路发送一个短脉冲信号,另一端则将这些有规律的脉冲作为时钟。这种技术在短距离传输时表现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。另一种方法是通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。
握手信号
握手信号实际上是控制信号,用来控制数据的传送。通过握手信号,发送方可以通知接收方是否有数据要发送。接收方通过握手信号通知发送方它是否已经准备好了接收信号。握手信号遵循某种协议。
当发送方和接收方处理数据的不一样时,可能会造成数据丢失。在传输中,如果发送方的发送速度大于接收方的接收速度,同时接收方处理数据的速度不够快的话,那么接收端的缓冲区必定在一定时间后溢出,从而造成以后发送过来的数据不能进入缓冲区而丢失。发送方何时可以继续发送数据,何时必须暂停发送,从而让接收方有时间处理数据,称为流量控制,必须靠握手信号来解决这个问题。例如,打印机和计算机进行通信时,一些打印机打印速度可能跟不上计算机发送数据的速度,就必须要通过握手信号通知计算机暂停发送数据。
硬件握手
在硬件握手中,发送方通过将某一个导线拉到高电平或者低电平。来表示发送方可以发送数据。接收方已经准备好接收数据之后,也把某一个导线拉到高电平或者是低电平,来通知发送方,发送方一直在检测这个信号。接收方可以在任何时候把这个信号变为无效,甚至是在接受一个数据块过程中。当发送方检测到这个信号变为无效之后,就必须停止本次发送,直到这个信号变为有效。
软件在软件握手中,以数据线上的数据信号来代替实际的硬件电路。这种方法用在直接连接或者通过调制解调器连接的两台计算机之间进行双向通信的场合。
对于软件握手现在已经建立了一些标准协议,其中最常用的是通信协议。通信协议是指通信双方的一种约定,包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题作出统一规定,通信双方必须共同遵守,也叫做通信控制规程或称传输控制规程,它属于OSI七层参考模型中的数据链路层。
4.波仕电子的零延时自动收发转换技术
波仕电子的RS-232/RS-485转换器使用了独特的零延时自动收发转换技术。RS-485为半双工通信,收与发不能同时进行,需要进行收与发的切换。一般这需要使用RS-232的一根握手信号线并在软件上进行控制。波仕电子的RS-232/RS-485转换器则省去了这根握手信号线,直接从RS-485信号中用硬件方法提取这个控制信号,并且具备零延时的性能。零延时指收发切换过程转变时间为0,在使用时与RS-232通信一样。
通信参数
串行端口的通信方式是将字节拆分成一个接着一个的位再传送出去。接到此电位信号的一方再将此一个一个的位组合成原来的字节,如此形成一个字节的完整传送。
在传输进行的过程中,双方明确传送信息的具体方式,否则双方就没有一套共同的译码方式,从而无法了解对方所传过来的信息的意义。因此双方为了进行通信,必须遵守一定的通信规则,这个共同的规则就是通信端口的初始化。
通信端口的初始化必须对以下几项参数进行设置。
1.数据的传输速度
串行通信的传输受到通信双方配备性能及通信线路的特性所左右,收、发双方必须按照同样的速率进行串行通信,即收、发双方采用同样的数据传输率。数据传输率批量的是串行通信中每一秒所传送的数据位数,单位是bit/s。经常可以看到食品或MODEM的规格书上都写着19200bit/s、38400bit/s······,所指的就是数据传输率。
就食品或工业场合来说,19200bit/s、38400bit/s是最觉的数据传输率,现在的个人计算机 所提供的串行端口的数据传输率都可达到115200bit/s(甚至有921600bit/s),若传输距离较近而设备也提供时,使用最高的数据传输率也可以。
例如,在某异步串行通信中,每传送一个字符需要8位,如果采用数据传输率4800bit/s进行传送,则每秒可以传送600个字符。
数据的传送单位
一般串行通信端口所传送的数据是字符型,若用来传输文件,则会使用二进制的数据类型。当使用字符型时,工业界使用到的有ASCII字符码及JIS字符码;ASCII使用了8位形成一个字符,而JIS码则以7位形成一个字符。欧美的设备多使用8位的字节,而日本的设备多使用7位为一个字节。以实际的RS-232传输上看来,由于工业界常使用的PLC大多只是传送文字码,因此只要7位就可以将ASCII的0~127码表达出来(2=128,共有128种组合方式),所有的可见字符也落在此范围内,所以只要7个数据位就够了。不同的情形下(依据使用的协议),会使用到不同的传送单位。使用多少位合成一个字节必须先行确定。
起始位与停止位
由于异步串行传输中并没有使用同步脉冲作基准,故接收端完全不知道传送端何时将进行数据的传送。发送端准备要开始传送数据时,发送端会在所送出的字符前后分别加上高电位的起始位(逻辑0)及低电位的停止位(逻辑1),它们分别是所谓的起始位和停止位。也就是说,当传送端要开始传送数据时,便将传输线上的电位由低电位提升至高电位;而当传送结束后,再将电位降至低电位。接收端会因起始位的触发(因电压由低电位升至高电位)而开始接收数据,并因停止位的通知(因电压维持在低电位)而明确数据的字符信号已经结束,当加入了起始位及停止位才比较容易达到多字符的接收能力。起始位固定为1位,而停止位则有1、1.5、2位等多种选择,如何选择呢?只要通信双方协议通过即可,没有强制规定。
校验位
为了预防错误的发生,使用校验位作为检查的机制。校验位即是用来检查所传送数据的正确性的一种核对码,这之中又分成奇校验与偶校验两种,分别是检查字符码中1数目是奇数或偶数。以偶校验为例,“A”的ASCII码是41H(16进制),将它以二进制表示时,是01000001其中1的数目是2,因此校验位便是0,使1的数目保持偶数;同样,校验位是奇校验时,“A”的校验位便是1,使1的数目保持在奇数。接收者重新计算奇偶校验位,如果新的计算值正确,那么表示正常。如果新的计算值错误,那么接收端就会收到一些指示,表示此次接收的数据有误。