串口通信原理详解232、422、485,入门必看!
串口通信原理详解232、422、485,入门必看!
本文介绍了串口通讯的基本概念、数据格式、通讯方式、典型的串口通讯标准等内容。
1. 串口通讯
串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。
串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的协议。
串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。
2.串口通讯的数据格式
一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。
每一个字符的前面都有一位起始位(低电平),字符本身由7位数据位组成,接着字符后面是一位校验位(检验位可以是奇校验、偶校验或无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。实际传输时每一位的信号宽度与波特率有关,波特率越高,宽度越小,在进行传输之前,双方一定要使用同一个波特率设置。
3.通讯方式
单工模式(Simplex Communication)的数据传输是单向的。通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线。
半双工模式(Half Duplex)通信使用同一根传输线,既可以发送数据又可以接收数据,但不能同时进行发送和接收。数据传输允许数据在两个方向上传输,但是,在任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工模式既可以使用一条数据线,也可以使用两条数据线。半双工通信中每端需有一个收发切换电子开关,通过切换来决定数据向哪个方向传输。因为有切换,所以会产生时间延迟,信息传输效率低些。
全双工模式(Full Duplex)通信允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。在全双工模式中,每一端都有发送器和接收器,有两条传输线,信息传输效率高。
显然,在其它参数都一样的情况下,全双工比半双工传输速度要快,效率要高。
4.偶校验与奇校验
在标准ASCII码中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
5. 停止位
停止位是按长度来算的。串行异步通信从计时开始,以单位时间为间隔(一个单位时间就是波特率的倒数),依次接受所规定的数据位和奇偶校验位,并拼装成一个字符的并行字节;此后应接收到规定长度的停止位“1”。所以说,停止位都是“1”,1.5是它的长度,即停止位的高电平保持1.5个单位时间长度。一般来讲,停止位有1,1.5,2个单位时间三种长度。
6.波特率
波特率就是每秒钟传输的数据位数。
波特率的单位是每秒比特数(bps),常用的单位还有:每秒千比特数Kbps,每秒兆比特数Mbps。串口典型的传输波特率600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps。
PLC/PC与称重仪表通讯时,最常用的波特率是9600bps,19200bps。PLC/PC或仪表与大屏幕通讯时,最常用的波特率是600bps。
7. 典型的串口通讯标准
EIA RS232(通常简称“RS232”): 1962年由美国电子工业协会(EIA)制定。
EIA RS485(通常简称“RS485”): 1983年由美国电子工业协会(EIA)制定。
8.RS232串口
RS232是计算机与通信工业应用中最广泛一种串行接口。它以全双工方式工作,需要地线、发送线和接收线三条线。RS232只能实现点对点的通信方式。
8.1 RS232串口缺点
● 接口信号电平值较高,接口电路芯片容易损坏。
● 传输速率低,最高波特率19200bps。
● 抗干扰能力较差。
● 传输距离有限,一般在15m以内。
● 只能实现点对点的通讯方式。
8.2 RS232串口接口定义
RXD:接收数据,TXD:发送数据,GND/SG:信号地。
8.3 电脑DB9针接口定义
电脑DB9针接口是常见的RS232串口,其引脚定义如下:
2号脚:RXD(接收数据)
3号脚:TXD(发送数据)
5号脚:SG或GND(信号地)
其它脚:我们不用
电脑RS232串口与仪表串口连接图:
在9针串口接头中,公头和母头的管脚定义顺序是不一样,这一点需要特别注意。那么,这些管脚都有什么作用呢?9针串口和25针串口常用管脚的功能说明如下图所示:
9.RS485串口
9.1 RS485串口特点
● RS485采用平衡发送和差分接收,具有良好的抗干扰能力,信号能传输上千米。
● RS485有两线制和四线制两种接线。采用四线制时,只能实现点对多的通讯(即只能有一个主设备,其余为从设备)。四线制现在很少采用,现在多采用两线制接线方式。
● 两线制RS485只能以半双式方式工作,收发不能同时进行。
● RS485在同一总线上最多可以接32个结点,可实现真正的多点通讯,但一般采用的是主从通信方式,即一个主机带多个从机。
● 因RS485接口具有良好的抗干扰能力,长的传输距离和多站能力等优点使其成为首选的串行接口。
9.2RS485串口接口定义
A或Data+(D+)或+:信号正;
B或Data-(D-)或-:信号负。
9.3 计算机与RS485仪表通讯
计算机自带的串口只有RS232,没有RS485,如果计算机要与RS485串口的仪表进行通讯,必须使用串口转换器或装上RS485串口转换卡后才能进行通讯。
9.4 RS485串口的终端电阻
● 一般情况下不需要增加终端电阻,只有在RS485通信距离超过100米的情况下,要在RS485通讯的开始端和结束端增加终端电阻,RS485典型终端电阻是120欧。
● 终端电阻是为了消除在通信电缆中的信号反射在通信过程中,有两种信号因导致信号反射:阻抗不连续和阻抗不匹配。
阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻。
引起信号反射的另一原因是数据收发器与传输电缆之间的阻抗不匹配。这种原因引起的反射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱。要减弱反射信号对通讯线路的影响,通常采用噪声抑制和加偏置电阻的方法。在实际应用中,对于比较小的反射信号,为简单方便,经常采用加偏置电阻的方法。
10. 串口通讯硬件常见的注意事项
● 通讯电缆端子一定接牢,不可有任何松动,否则,可能会烧坏仪表或上位机的通讯板。
● 不可带电拔插通讯端子,否则,可能会烧坏仪表或上位机的通讯板,一定要关闭仪表电源后才能去拔插通讯端子或接通讯线。
● 不可带电拔插通讯端子,否则,可能会烧坏仪表或上位机的通讯板,一定要关闭仪表电源后才能去拔插通讯端子或接通讯线。
● 通讯用的屏蔽电缆最好选用双层隔离型屏蔽电缆,其次选用单层屏蔽电缆,最好不要选用无屏蔽层的电缆,且电缆屏蔽层一定要能完全屏蔽,有些质量差的电缆,屏蔽层很松散,根本起不到屏蔽的作用。单层屏蔽的电缆屏蔽层应一端接地,双层屏蔽的电缆屏蔽层其外层(含铠装)应两端接地,内层屏蔽则应一端接地。
● 仪表使用RS232通讯时,通讯电缆长度不得超过15米。
● 一般RS485协议的接头没有固定的标准,可能根据厂家的不同引脚顺序和管脚功能可能不尽相同,用户可以查阅相关产品RS485的引脚图。
● RS485通讯电缆最好选用阻阬匹配、低衰减的RS485专用通讯电缆(双绞线),不要使用普通的双绞电缆或质量较差的通讯电缆。因为普通电缆或质量差的通讯电缆,可能阻抗不匹配、衰减大、绞合度不够、屏蔽层太松散,这样会导致干扰将非常大,会造成通讯不畅,甚至通讯不上。
● 仪表使用RS485通讯时,每台仪表必须手牵手地串下去,不可以有星型连接或者分叉,如果有星型连接或者分叉,干扰将非常大,会造成通讯不畅,甚至通讯不上。
● 485总线结构理论上传输距离达到1200米,一般是指通讯线材优质达标,波特率9600,只有一台485设备才能使得通讯距离达到1200米,而且能通讯并不代表每次通讯都正常,所以通常485总线实际的稳定通讯距离远远达不到1200米。负载485设备多,线材阻抗不同时,通讯距离更短。
● 仪表使用RS485通讯时,必要时,请接入终端电阻,以增强系统的抗干扰性,典型的终端电阻阻值是120欧。
11. 串口通讯软件设置要点
11.1 有关通讯的一些基本概念
● 主机与从机:在通讯系统中起主要作用、发布主要命令的称为主机,接受命令的称为从机。
● 连续方式:指主机不需要发布命令,从机就能自动地向主机发送数据。
● 指令方式:指主机向从机发布命令,从机根据指令执行动作,并将结果“应答”给主机的模式。
● 输出数据类型:指在连续方式通讯时,从机输出给主机的数据类型。
● 通讯协议:指主机与从机通讯时,按哪一种编码规则来通讯。
● 波特率:主从机之间通讯的速度。
● 数据位:每次传输数据时,数据由几位组成。
● 校验位:数据传输错误检测,可以是奇校验、偶校验或无校验。
● 地址:每一台从机的编号。
11.2 主从机之间通讯设置要点
● 要点一:主/从RS232/485硬件有无设置正确,通讯线有无接对。有些通讯板卡是RS422与RS485共用的,依靠板上跳线来实现的,有些仪表RS232/485也需要通讯跳线来实现。
● 要点二:主机上的通讯端口有无设置正确;超时(一般设置为2s)、通讯延时(一般设置为5~20ms)、ACK信号延时(一般设置为0ms)有无设置正确。
● 要点三:主/从机通讯协议有无选择正确。
● 要点四:主/从机波特率有无选择正确。
● 要点五:主/从机数据位有无选择正确。数据位可以选择7位,8位。
● 要点六:主/从机校验位有无选择正确。校验位一般可选择偶校验、奇校验、无校验。
● 要点七:主/从机停止位有无选择正确。停止位可以选择1位、1.5位还是2位。
● 要点八:从机地址有无选择正确。
● 要点九:主/从机的通讯方式有无选择正确。
进行通讯测试的时候经常会进行线路测试,测试所用的串口线是否可用,方法如下:
1. 把串口线接到不同的串口,用串口调试工具从一个串口发数据,另一个能正常收到说明串口线是OK的。
2. 把串口线的一端短接(用金属把2,3号脚连通),用万用表测另一端的2,3号如果正常的话会有嘀嘀的短接报警声。