RS-485总线通信出错的原因是什么?
0 2023-03-22

RS-485总线是具有结构简单、通信距离远、通信速度高、成本低等优点,广泛应用于工业通讯、电力监控以及仪器仪表等行业。若总线上接有终端电阻,则在总线空闲状态时,RS-485总线AB差分电压可能处于门限电平(±200mV)之内,这时可能会导致通信出错,那么,出错的原因是什么?MCU接收到的数据会发生什么样的变化?

数据出错的原因

如图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门限电平

数据发生了什么变化?

如图4所示,收发器1在AB差分电压处于±200mV门限电平之内时输出高电平,收发器2在AB差分电压处于±200mV门限电平之内时输出低电平,可以看出,收发器2可能导致MCU接收到错误的数据,并且在数据后误接收到1个0x00数据。


图4 数据后多0x00

如图5所示,若总线上持续存在数据信号或连续发送多个字节数据,在数据之间存在的空闲状态可能会被收发器2识别为1个起始位,从而导致数据连续错误。


图5 数据连续错误

解决方案

总线空闲时若AB差分电压处于门限电平之内,则可能导致数据出错,可以使用如下方法避免总线空闲时AB差分电压处于门限电平之内。

方案一:组网距离不长,总线信号无反射问题或反射较小,此时可不增加终端电阻以提升总线幅值电平,具体的幅值变化如下图6所示。


图6 终端电阻对总线电平影响

方案二:组网距离偏长,总线信号当前已存在反射需增加终端电阻解决反射问题,面对此类应用可使用致远电子RSM(3)485PCHT模块,RS-485接口设计时可通过外置一个较小值的上下拉电阻调节空闲状态时的电压值,使电平处于门限电平外,具体的幅值变化如下图7所示。


图7 RSM(3)485PCHT实物及应用连接图

方案三:组网距离偏长,总线信号当前已存在反射需增加终端电阻解决反射问题,面对此类应用同样可使用致远电子RSM(3)485ECHT模块,RSM(3)485ECHT具备极高的总线兼容性门限电平为-40mV~-20mV,具体如下图8所示,在总线电平被终端电阻拉低时(最坏情况总线高电平幅值为0V)仍可识别总线电平,保证通讯的稳定性。


图8 RSM(3)485ECHT实物图及门限电平参数 
声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
  • 详解SerDes的原理

    01SerDes简介首先我们要了解什么是SerDes,SerDes的应用场景又是什么呢?SerDes又有哪些

    4小时前
  • Linux文件系统深度剖析,还不会算我输!

    Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的 API 函数,Linu

    5小时前
  • 弱电工程常用网络知识?

    我们现在做的弱电工程,经常用到网络知识,比如vlan、三层交换机、网关、DNS、子网掩码、MAC地址等方面的知识,作为从业人员,我们对这些知识了解并熟知的. 一、什么是VLAN VLAN中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以

    昨天
  • 继电器电路原理

    是时候关注我们一波了继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通

    昨天
  • 发电机工作原理与作用-常见故障及解决办法

    汽车上蓄电池的电能有限,在它放电以后必须及时进行补充充电,因此汽车上还必须装备充电系统。充电系统由发电机、调节器和充电状态指示装置组成。

    前天
  • 详解LIN总线技术

    LIN是CAN和SAE J1850协议的补充性协议,针对时间要求不高或不需要精确容错的应用。

    06-06
  • 电机烫得不行?怎么办?

    本文介绍电机温度过高的原因和解决方法。\x0a

    06-06
  • CAN节点发送错误不成功,怎么办?

    CAN总线上的每个节点往总线上发送数据的同时,会读取总线上的数据,并与自己发送的数据作对比。

    06-06
  • 无刷电机霍尔信号的滤波电路

    如图1是无刷电机霍尔信号的滤波电路,为了保证波形质量,简单的阻容滤波并不能完全解决实际复杂的工作环境所带来的

    06-05
  • LED驱动器中I2C的LED控制方式

    现在大街上随处可见的LED显示屏,还有装饰用的LED彩灯以及LED车灯,处处可见LED灯的身影,LED已经融入到生活中的每一个角落。LED无疑是当前最热的一个应

    06-02
  • 电平有关集成逻辑电路和rs232串口的基本知识

    [导读]手机串口一般是CMOS电平,当把android手机当做开发板上的一个器件(比如利用android系统自带的GPRS模块,wifi模块,语音视频模块等等)

    06-02
  • 如何评估CAN信号的质量?

    CAN总线广泛应用于汽车电子、现代工业及军工航空等安全要求较高的领域,优质的CAN信号是各节点稳定通信的基础,那么,如何判断总线信号质量的优劣呢?我们可以对信号

    05-31
下载排行榜
更多
广告