RS485因为上下拉电阻通讯不良分析

1.问题:项目上使用声纹传感器RS485通信不良(无法接收数据)

更改方案: 更换声纹传感器可以解决问题,这就很奇怪。发现更换下来的传感器485接线很短的距离都无法通信。猜测传感器与我的主机发送命令存在临界值。而且使用485调试工具并联在传感器的485线上,传感器与我的主机就可以通信正常(这个调试工具并联在上面也就供电关系,上下拉供电。)将调试工具去掉就无法通信。

了解RS485

1.参考:RS-485接口(上下拉电阻选择等)分析_天录的专栏-CSDN博客

  1. RS-485/RS-422 Circuit Implementation Guide

RS-485的电气参数为:

  • 共模电压范围为-7~ 12V
  • 可支持32个多点拓扑连接,见下面的网络拓扑图
  • 使用40英尺线缆时,传输速率可达10Mbps,1英尺相当于30.48cm,这里Mbps是兆bit/s的意思
  • 使用4000英尺线缆时,传输速率可达到100kbps
  • 半双工通信
  • 最小差分电压容限:200mV,也就是说接收端在差分电压低于200mV时就无法正确识别0/1了。这句话应该怎么理解呢?

上面这个图怎么理解呢?RS-485收发器的发送电路至少提供1.5V差分电压输出能力,经由总线线路阻抗衰减,32个接收电路输入阻抗,以及120Ω端接电阻,差分信号的幅度必然逐渐衰减,那么至最末端还需要至少提供200mV的差分电压给末端接收电路。

差分电压:对接收电路是判决A线共模电压与B线共模电压只差

如果A-B>200mV,则接收电路R识别为逻辑1

如果A-B<-200mV,则接收电路R识别为逻辑0

简单说就是,A线的绝对电压值比B线的至少大于200mV则识别为逻辑1,或者A线的绝对电压值比B线的至少小200mV,才识别为逻辑0

A接上拉电阻,B接下拉电阻,AB间接传输线特性阻抗对应的电阻为120R*2(算终端电阻),这四个电阻接了以后要保证AB间电压大于200mV.(电阻分压)。一般485芯片文档不提上下拉电阻,但会要求通讯默认AB>200mV。如果出现和有的通信正常,有的不正常,那一般是自己的板子终端电阻和分压电阻没有设置好,使用万用表测量AB两端间电压,保证AB间电压大于200mV.。

偏置电阻(上下拉分压电阻)

 第一种理解:

1. 上面提到上下拉电阻起到保证AB间电压大于200mV

2.起到开路故障安全( open failsafe)作用

总线空闲期间,没有器件总线空闲期间,没有器件驱动总线,接收器输出处于未定义状态。这会导致UART上接收到随机数据,进而影响无效起始位或帧错误。为了解决该问题,可以在总线上放置上拉下拉电阻进行偏置。下图可以计算出偏置电阻R的值:

 

 

但是有的芯片内部自带failsafe功能(TI芯片大多数都有这个功能,但不是表示有上下拉电阻,有没有上下拉电阻看规格书)如下图所示:TI的SN65HVD12的文档 

我自己板子上使用SN65LBC184没有上下拉电阻

 3.  真故障安全接收器(Ture Fail-Safe Receivers)(可以省上下拉电阻

新一代RS-485接收器经过改进,使差分输入阈值电压从±200mV调整至-200mV和-30mV,这样就可以省去使用上下拉电阻。(TI芯片SN65HVD12可以省上下拉,因为Vit+:-0.01V)在总线空闲期间,VIA-VIB=0(大于-30mV)导致接收器输出处于高电平(RO=1),处于确定状态。

 

 第二种理解:Failsafe biasing

参考:https://www.ti.com.cn/cn/lit/an/slla112a/slla112a.pdf?ts=1634016372652&ref_url=https%253A%252F%252Fwww.ti.com.cn%252Fproduct%252Fcn%252FSN65LBC184

1. 在正常运行下,485总线有一个有效的信号由一个有源驱动器应用,给出一个幅度超过485阈值200mv的差分电压。当一个节点从总线断开时,接收端输入检测到开路,总线状态不确定。这种情况(开路电路)可以导致一些485接收器输出一个随机状态。SN65LBC182和SN65LBC184等收发器具有开总线故障保护特性,它在总线引脚上施加一个小的偏移(12µa),导致在开总线电路co下一个已知的接收输出状态(逻辑高),下图SN65HBC184的接收表:

2.  另一种问题叫做闲置总线状态。当节点连接到带有终端电阻的总线,但没有主动驱动器时,就会发生这种情况。总线没有主动驱动到有效的485状态,终端电阻趋向于降低差动电压到接近零伏

一些收发器,如SN65HVD12,接收阈值Vit+ max:-0.01V,因此检测零差分总线电压作为已知总线状态,并输出逻辑高。见上图12,。

对于没有阈值偏置的收发器(就是接收差分电压不在0V以下),为了符合DL/T 645的要求,可以添加总线偏置电阻,这些电阻提供一个偏置,在空闲总线条件下产生一个有效的总线逻辑状态。

3.  看下图:下面是SN62LBC184芯片的电路,这个芯片没有idle-bus failsafe,(比如SN65HVD12就有idle-bus failsafe)因此SN62LBC184需要加上下拉电阻。

 

 

4 . 关于idle-bus failsafe的 SN65LVD12SN65LBC184对比发现为什么可以省去上下拉电阻

 

 

 项目问题解决分析

刚开始提出的问题,485有的通信正常,有的通信不正常。如下图是我的电路图:

分析一:通讯不正常

下图1用万用表测AB间电压。

下图2可以看出AB之间差分电压高电平只有50mV,就又可能这个值无法被接收器识别。下面接着分析并联调试工具可以通讯。

 

 

 分析二:

 并联上485调试工具之后,通讯正常。测得AB的差分高电平达到了75mV。通过万用表测AB间电压:0.07V 。也就是说75mV的高电平可以被485接收器识别。不认为在闲置状态。

 

分析三:

将自己电路的6.8K上下拉电阻改为1.2K(通过上面分析了SN65LBC184没有idle-bus failsafe)这也是按照485标准设计AB间电压:

 尝试测量过485调试工具的AB间电压都是大于0.2V以上。

下图是我更改1.2K上下拉电阻的测试结果,485通讯也可以正常接收数据。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值