各位工程师是否会遇到这样的状况,测验单个RS-485设备数据无反常,但设备组网后,就呈现通讯数据反常或衔接失利等状况。犯错的原因是什么?本文将从门限电平为你揭秘RS-485组网反常。
RS-485总线是具有结构简略、通讯间隔远、通讯速度高、本钱低一级长处,广泛运用于工业通讯、电力监控以及仪器仪表等职业。若总线上接有终端电阻,则在总线闲暇状况时,RS-485总线AB差分电压或许处于门限电平(±200mV)之内,这时或许会导致通讯犯错,那么,犯错的原因是什么?MCU接纳到的数据会产生什么样的改变?
1、 数据犯错的原因
如图 1所示为8位数据位无校验位的UART时序图,当运用UART进行通讯时,MCU在检测到开端位后开端接纳这以后的数据。
图 1 无校验位,8位数据位,串口时序图
如图 2所示为STM32串口外设检测到开端位的条件,当检测到下降沿(3个高电平+1个低电平)而且采样序列1和采样序列2均为0时,STM32检测到一个开端位。
每个位采样16次,采样点的间隔时刻为tbit/16,tbit为每个位的时刻,例如通讯波特率为115.2kbps,则tbit=1/115.2k=8.68us,则采样点的间隔时刻为8.68us/16=0.5425us。
图 2 STM32串口外设检测到开端位的条件
下面以RSM485PCHT的门限电平为例进行阐明,当AB差分电压处于±200mV之内时,模块RXD引脚输出状况不确定。
当总线变为闲暇时,若RXD引脚输出低电平,则或许导致MCU接纳到过错数据或MCU在正常数据后误接纳1个0x00。
图 3 RSM485PCHT门限电平
2、 数据产生了什么改变?
如图 4所示,收发器1在AB差分电压处于±200mV门限电平之内时输出高电平,收发器2在AB差分电压处于±200mV门限电平之内时输出低电平,能够看出,收发器2或许导致MCU接纳到过错的数据,而且在数据后误接纳到1个0x00数据。
图 4 数据后多0x00
如图 5所示,若总线上继续存在数据信号或接连发送多个字节数据,在数据之间存在的闲暇状况或许会被收发器2辨认为1个开端位,然后导致数据接连过错。
图 5 数据接连过错
3、 处理计划
总线闲暇时若AB差分电压处于门限电平之内,则或许导致数据犯错,能够运用如下办法防止总线闲暇时AB差分电压处于门限电平之内。
计划一:在总线组网间隔偏长时,为防止由于总线信号反射而导致通讯反常的状况,都会添加终端电阻来处理总线反射问题,但此刻总线电平会被拉低,然后增大总线闲暇时AB差分电压处于门限电平之内的危险,详细入下图6所示。面临此类运用可运用致远电子RSM(3)485PCHT模块,RS-485接口设计时可通过外置一个较小值的上下拉电阻调理闲暇状况时的电压值,使电平处于门限电平外,详细的幅值改变如下图7所示。
图6 终端电阻对总线电平影响
图7 RSM(3)485PCHT什物及运用衔接图
计划二:组网中添加终端电阻后,相同可运用致远电子RSM(3)485ECHT模块,RSM(3)485ECHT具有极高的总线兼容性门限电平为-40mV~-20mV,详细如下图8所示,在总线电平被终端电阻拉低时(最坏状况总线高电平幅值为0V)仍可辨认总线电平,确保通讯的稳定性。
图8 RSM(3)485ECHT什物图及门限电平参数