正在使用中的led显示屏突然间因信号问题出现乱码,如果是在某次重大开幕式上,那损失是无法弥补的。因此如何提高信号传输的可靠性和稳定性便成为工程师不得不面对的课题。
信号在传输过程中,随着距离的增大而减弱。所以,传输介质的选择则显得尤为重要。下面以RS-485作为远距离数据传输线时要注意的事项。
1、信号的衰减
不难理解,信号无论借助何种介质传输,都会在传输过程中产生衰减。我们可以把RS-485传输电缆看成是由若干个电阻、电感和电容联合组成的等效电路,如图1所示。
导线的电阻对信号的影响很小,可以忽略不计。电缆的分布电容C主要是由双绞线的两条平行导线产生。信号的损失主要是由于电缆的分布电容和分布电感组成的LC低通滤波器。通讯波特率越高,信号衰减也会越大。常规电缆的衰减系数见表1.
因此,在传输数据量不是很大,传输速率要求不是很高的情况下,通常我们采用9 600 bps的波特率。
2、通信线路中的信号反射
除了信号衰减之外,影响信号传输的另一个因素是信号反射。阻抗不匹配和阻抗不连续是导致RS-485总线形成信号反射的两个主要原因。
①阻抗不匹配,阻抗不匹配主要是485芯片与通讯线路之间的阻抗不匹配。之所以引起反射是因为在通讯线路空闲时,整个通讯线路信号杂乱无章,一旦此类反射信号触发了485芯片输入端的比较器,就会产生错误的信号。我们通常的解决方法是将RS-485总线的A、B线加上一定阻值的偏置电阻,分别拉高和拉低,这样就不会出现不可预知的杂乱信号了。
②阻抗不连续,顾名思义,与光从一种媒质进入另一种媒质时所引起的反射是相似的。信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射。消除这种反射最常用的方法,是在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端同样要跨接一个相同大小的终端电阻,如图2所示。
通过这种方法可以一定程度减弱信号反射的影响。但是,在实际应用中,由于传输电缆的特性阻抗与通讯波特率等应用环境有关,特性阻抗不可能与终端电阻完全相等,因此我们不能完全避免信号反射的发生。
3、分布电容对RS-485总线传输性能的影响
RS-485传输电缆通常多为双绞线,双绞线的两条平行导线之间即会产生电容。同时,电缆和大地之间也同样存在类似很小的电容。由于RS-485总线上传输的信号是由无数的“1”和“0”位所组成的,所以当遇到0x01等特殊字节时,电平“0”使得分布电容得到充足的时间充电,而当电平“1”突然来到时,电容集聚的电荷不能在短时间之内放掉,因此导致信号位的变形,从而影响了整个数据传输的质量。
所以,一方面我们要尽量选用分布电容较小即质量较好的线缆作为通信线,另一方面尽量降低通讯的波特率,给电容充足的时间去放电。
4、制定简单可靠的RS-485通讯协议
当通讯距离较短,应用环境干扰小的情况下,我们有时只需要简单的单向通讯就能实现项目的所有功能,但是大部分应用环境并非如此理想。项目前期综合布线的是否专业(比如信号线与动力线要保持一定的距离)、通讯距离的不可决定性、通讯线路周围干扰程度、通讯线是否采用双绞屏蔽线等等,这些因素都给系统的正常通讯带来极大的影响。于是,制定一套完善的通讯协议就显得尤为重要了。
具体方法是将数据分包传输,通过将每包数据加上帧头和帧尾的方式将数据打包,其中帧尾留一个字节作为校验字节。下位机通过将自己计算的校验字节与上位机传输过来的校验字节作比较,从而给上位机发出指令,到底是重新发送刚刚那包数据还是接着下发下一包数据,就这样一包发完再发下一包,直至发完为止。通过这样一种校验重发机制,我们就可以摈弃掉出错的概率,使得通讯系统正常运行。
5、结语
在整个项目整改过程中,我们先后采用了以下手段:由于通讯线和动力电源线之间距离很近,且通讯线无屏蔽层,所以我们对所有通讯线缆进行更换;上位机和下位机均将通讯波特率设成可调,这样可以根据调试过程中具体情况选择合适的值;将通讯协议作了一些优化;通讯线缆的两端加上120 Ω的终端电阻。
转载请注明出处。