马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?快速注册
x
众所周知,数据传输是工业控制领域一个非常重要的环节,数据传输的稳定程度直接影响到产品的可靠性。因此如何提高数据传输的可靠性和稳定性便成为工程师不得不面对的课题。下面以本公司的LED生产看板显示屏项目实施过程中出现的问题为例阐述一下在使用RS-485作为远距离数据通讯手段时要注意的事项。
1 W" V D! {: H. I' P# I7 X! y7 x9 l4 ^
本项目中的LED看板显示屏是安装在生产车间用来显示实际产量和目标产量的看板,6块规格相同的显示屏分布在6个车间。相邻车间之间电缆线长度大概在150~200m之间。距离之长加上车间里运行的电机的干扰,使得LED看板显示屏通讯不正常,从而频繁出现乱码的现象。
3 N+ M6 \ A9 X# N% |4 f8 o
4 l! {/ s8 s* ^2 p- X 经过仔细的分析,多次的试验,我们先后从多方面着手:硬件电路的改进、上位机和下位机通讯协议的改进,最终顺利地解决了这个问题。下面将最终解决问题的关键点进行详细的分析和说明。
# V3 y0 ]' D, R2 i
3 B4 o, R7 p/ J* e1 P8 o 1、信号在传输过程中的衰减, \3 f$ u5 D( f) G4 }8 l' a
5 J8 N+ i( y* P f+ z 不难理解,信号无论借助何种介质传输,都会在传输过程中产生衰减。我们可以把RS-485传输电缆看成是由若干个电阻、电感和电容联合组成的等效电路,如图1所示。
( z: K6 S$ I1 ?" H6 D; |2 r( w( W0 Z1 `1 O' F% f1 [0 V5 A
" e% Q! n; s9 j
% P. A2 K2 B$ B, n7 {1 Q+ S* ?9 q. v6 E3 [# t2 o
8 [' d3 e$ {+ }; n" r
1 ~: P' n9 H- l- L7 o7 H
$ p+ e- y+ e9 l" I
导线的电阻对信号的影响很小,可以忽略不计。电缆的分布电容C主要是由双绞线的两条平行导线产生。信号的损失主要是由于电缆的分布电容和分布电感组成的LC低通滤波器。通讯波特率越高,信号衰减也会越大。常规电缆的衰减系数见表1。
5 k# ^3 o8 v. C# F6 A4 r6 V- Z
8 E( ?2 r4 S. H& q+ H; x& N
8 {+ y' _# O6 l0 P9 H
4 Z8 ~; ]% L% Y2 x
' t& ?8 S4 | P) P
) k" c8 s0 }, b+ P3 ^
" @; w! p, S! N+ j- L& o8 L+ g- n. K
因此,在传输数据量不是很大,传输速率要求不是很高的情况下,通常我们采用9600bps的波特率。. h0 `7 _* Z4 t R+ |7 g7 p+ k
" D% B5 Q! ^. D0 K8 R+ K6 W# ^ 2、通信线路中的信号反射
' k# ~4 E& D9 x d4 y( S2 I# n: Z. W ~% H: e" t- v4 V
除了信号衰减之外,影响信号传输的另一个因素是信号反射。阻抗不匹配和阻抗不连续是导致RS-485总线形成信号反射的两个主要原因。
) N+ F# c% z, q) i. d5 a8 t2 u5 a% @. V$ ?3 g
①阻抗不匹配,阻抗不匹配主要是485芯片与通讯线路之间的阻抗不匹配。之所以引起反射是因为在通讯线路空闲时,整个通讯线路信号杂乱无章,一旦此类反射信号触发了485芯片输入端的比较器,就会产生错误的信号。我们通常的解决方法是将RS-485总线的A、B线加上一定阻值的偏置电阻,分别拉高和拉低,这样就不会出现不可预知的杂乱信号了。
: ~8 h; N9 a }6 O5 D- U8 t8 h% _4 D' v
②阻抗不连续,顾名思义,与光从一种媒质进入另一种媒质时所引起的反射是相似的。信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。消除这种反射最常用的方法,是在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端同样要跨接一个相同大小的终端电阻,如图2所示。
8 H1 q+ W; k4 l' _
, Z: j: ^2 L, A/ v; b" z9 t
# P3 O$ p' b+ P: N/ u( ?8 ^8 m; e0 v! e# }/ c$ a
. l2 h( @9 T, P+ c' P- k: U. V
# v0 ^- r5 F' _8 k4 e5 w+ g , a/ y% F& p0 ]) C& ^8 t
6 w& ]+ A& t9 m9 J 通过这种方法可以一定程度减弱信号反射的影响。但是,在实际应用中,由于传输电缆的特性阻抗与通讯波特率等应用环境有关,特性阻抗不可能与终端电阻完全相等,因此我们不能完全避免信号反射的发生。
( t# y1 D! w. t# y8 |: P3 W1 y
. U1 f0 y5 e: R! _" ^ 3、分布电容对RS-485总线传输性能的影响
, Y4 o4 H, c" X1 V& O1 w; ^9 D+ v$ W; a c
RS-485传输电缆通常多为双绞线,双绞线的两条平行导线之间即会产生电容。同时,电缆和大地之间也同样存在类似很小的电容。由于RS-485总线上传输的信号是由无数的“1”和“0”位所组成的,所以当遇到0x01等特殊字节时,电平“0”使得分布电容得到充足的时间充电,而当电平“1”突然来到时,电容集聚的电荷不能在短时间之内放掉,因此导致信号位的变形,从而影响了整个数据传输的质量。
: e u: ]( O1 g: ]0 W/ t/ o: n, i2 d$ z' J* J! _
所以,一方面我们要尽量选用分布电容较小即质量较好的线缆作为通信线,另一方面尽量降低通讯的波特率,给电容充足的时间去放电。
/ X- s$ S x5 c
0 I3 W; |4 c# ~' [3 y7 t5 [: @& r8 R 4、制定简单可靠的RS-485通讯协议
. |! _- `4 C1 k2 {% X. g8 y2 P5 S1 o: L% }# h. S
当通讯距离较短,应用环境干扰小的情况下,我们有时只需要简单的单向通讯就能实现项目的所有功能,但是大部分应用环境并非如此理想。项目前期综合布线的是否专业(比如信号线与动力线要保持一定的距离)、通讯距离的不可决定性、通讯线路周围干扰程度、通讯线是否采用双绞屏蔽线等等,这些因素都给系统的正常通讯带来极大的影响。于是,制定一套完善的通讯协议就显得尤为重要了。
: z) K$ A" ]8 \2 V# M" z8 e! _ S! N2 ]& A
具体方法是将数据分包传输,通过将每包数据加上帧头和帧尾的方式将数据打包,其中帧尾留一个字节作为校验字节。下位机通过将自己计算的校验字节与上位机传输过来的校验字节作比较,从而给上位机发出指令,到底是重新发送刚刚那包数据还是接着下发下一包数据,就这样一包发完再发下一包,直至发完为止。通过这样一种校验重发机制,我们就可以摈弃掉出错的概率,使得通讯系统正常运行。
! j4 K4 W0 N y" k# @( Z; N9 B
/ m; \7 ~- C6 V% w9 I6 p5 i# W 5、结语. J7 G& g7 Z$ _* t% d, ]
3 F$ E* r0 Q" k0 u8 A/ e 在整个项目整改过程中,我们先后采用了以下手段:由于通讯线和动力电源线之间距离很近,且通讯线无屏蔽层,所以我们对所有通讯线缆进行更换;上位机和下位机均将通讯波特率设成可调,这样可以根据调试过程中具体情况选择合适的值;将通讯协议作了一些优化;通讯线缆的两端加上120Ω的终端电阻。 |
|
|
|
|