RS485 常见问题及解决方法
RS485总线是工业上最常用的通信方式之一,在实际布线或使用过程中通常会出现一系列问题,今天总结一些平时RS485通讯可能会出现的通讯问题及其解决方法,供大家参考。
什么是RS485
RS485是一种在工业控制、电力通讯、智能仪表等行业中环境中广泛应用的通讯协议,其中RS是Recommended Standard的缩写。
RS485是1983年美国电子工业协会(Electronic Industries Association,EIA)发布的串行通信接口标准,经通讯工业协会(TIA)修订后命名为TIA/EIA-485-A。
RS-485是针对RS-232不足的基础上优化改进而成的,RS485具有以下的优点:
-
接口电平低。RS485接口组成的半双工网络一般是两线制,两线之间的电压差为+(2~6V)表示逻辑“1”,两线之间的电压差为-(2~6)V表示逻辑“0”。接口信号电平比RS232低,使接口电路的芯片不易损坏,同时与TTL电平兼容,便于与TTL电路连接。
-
传输速率快,传输距离远。RS485的数据最快传输速率可达10Mbps,在1200m时,传输速率可达100Kbps。
-
抗干扰能力强。RS485采用平衡驱动器和差分接收器的组合,大大增强了其抗共模干扰能力,可以有效地抵抗电磁干扰和雷电干扰,特别适合在工业环境中确保通信的稳定性,同时,它还具有低噪声接收器输出,可以进一步降低误码率。
-
支持节点多。一般支持32个节点,个别定制的485芯片可支持128甚至256个节点。
RS485通讯注意事项
在排除RS485通讯常见的问题前,一般做到以下措施可以有效地减少通信故障:
- 注意通讯的距离、设备的数量以及通讯线的规格。
-
RS485通讯线一般使用双绞屏蔽线,为确保抗干扰效果好,屏蔽层最好接大地。
-
如果负载过多,建议使用485HUB来增加驱动能力;如果通信距离很长,可以使用中继器来解决问题。
-
所有连接485设备的地线一定要用一根导线连接来共地,避免电势差影响设备间的通信。
-
485总线要采用手拉手结构,不能采用星型结构,避免产生的反射信号对通讯产生干扰。
RS485通讯联接示意图
-
大多数双绞线的特性阻抗是100~140Ω,所以在RS485的最始端和最末端要加上120Ω的电阻,防止传输线末端阻抗不匹配导致信号反射。
-
RS485通信线布线要远离高压大电流的电源线。
RS485常见问题及解决方法
RS485接收数据错乱
可使用示波器对通讯过程中的波形进行监测显示,通过传输波形的频率、幅值及形状可以判定通讯情况以便快速排查故障原因:
- 检测到的波形频率与发送频率是否一致。
- 检查串口助手的波特率设置和程序串口的波特率是否一致。
- 考虑是否是时钟有问题,检查电路板上所用晶振是否与推荐电路的晶振频率一样。
- 用万用表测量RS485收发器芯片终端脚AB之间的电阻值是否为120Ω。特别需要注意的是有些USB转RS485模块的终端脚已经加上了120Ω的电阻,若在后面的RS485收发器芯片终端AB脚加120Ω电阻,会使阻抗失配导致数据异常,这时需要取掉一个120Ω电阻。
- 检测到的波形频率与发送频率一致,但有非方波成分存在或者非差分传输,可能是通讯线路自身抗干扰的能力不太够。解决方法:
- 检查RS485的双绞线屏蔽层是否接地。
- 检查RS485通信线附近是否有强电磁干扰,需要加隔离保护措施或者远离干扰源。
- 波特率是否过高,适当降低波特率看看信号有无优化,减小电缆的分布电容对信号产生的影响。
RS485在停止通讯时接收器依旧有数据输出
当数据传输完成后,总线此时处于无源驱动状态,AB间差分电平为0;无终端时,总线在高阻态。当外界噪声电压高于±200mV的信号门限时,接收器就输出无效数据。
可以通过硬件或软件两个方面解决此问题,解决方法:
- 在通讯总线的A端采用上拉,B端采用下拉以此来保证接收器输出为固定的高电平。
- 在通讯数据包内加几个起始同步字节,必须在同步后才开始数据通讯的传输。