RS485概略

  项目上用到了RS485总线,实话是第一次接触此类总线,虽然听得还是挺多的,但是对电气没有研究,此篇文章将介绍RS485总线的电气概略,限于时间原因,后面会将深入研究结果总结出来。

  RS-485 规定一个收发器必须能够驱动高达 32 单位负载的总共模负载,同时能够给 RD = 60Ω 差分电阻提供 VOD = 1.5 V 的差分输出电压。另外,该标准还要求在VCM = –7 V 到 +12 V 共模电压范围保持这种驱动能力,以便允许驱动器和接收机接地之间的大接地电位差。

  以上为RS485电气最全面切实的描述。

  1,RS485是平衡驱动,差动接收。

  RS485最大的特点,输出电压在60Ω的负载条件下至少为±2V(也有说±1.5V,但是实际很多芯片基本都是±2V+),输入电压只要大于±0.2V就可以判断逻辑了,噪声容限为1.3V。

  2,RS485的单位负载=12KΩ

  为什么是12KΩ,源于“一个单位负载的接收器产生的电流分别不大于1mA与-0.8mA”。“标准还要求在VCM = –7 V 到 +12 V 共模电压范围保持这种驱动能力”,实际计算下来,接收器在每个差动输入与电源电压或接地线之间至少有12000的输入阻抗,此为12KΩ的由来。1单位负载主要针对的是RS485收发器的输入阻抗,要求所有收发器必须具备1个单位负载。也有RS485收发器为1/2UL(unit load), 也就是输入阻抗为24KΩ。RS485总线最多允许32个标准负载,64个1/2UL………………。

  有了以上基础,我们可以做下一步的深入概略了,

  以下内容源于TI:http://www.deyisupport.com/blog/b/analogwire/archive/2013/11/18/51576.aspx?keyMatch=slla070d&tisearch=Search-CN

  总线电流要求与收发器驱动能力。我觉得更应该是RS485电路的驱动原理。

  典型 RS-485 数据链路。我们看到,除驱动通过端接电阻器的差分电流以外,驱动器还必须驱动通过许多接收机输入阻抗的电流,以及通过位于总线上的故障保护网络的电流。这些阻抗在差分信号线路和接地之间形成电流通路,同时影响了 A 和 B 信号线的电流,且影响程度相同。因此,可以将它们表示为共模阻抗 RCM

  

  标红的话理解了很长很长的时间(实力确实很水),一直认为RS485走的是AB回路,无法理解整个回路跟GND有什么关系了。然而再三思考之后,确认A的驱动电压(电流)与B的驱动电压(电流)根本就不是一个回路。A的驱动到达A的接收,然后与接收器的GND构成回路,接收器判断A点电压,此时的A信号与GPIO信号没有差别,同理B。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  RS-485 规定一个收发器必须能够驱动高达 32 单位负载的总共模负载,同时能够给 RD = 60Ω 差分电阻提供 VOD = 1.5 V 的差分输出电压。另外,该标准还要求在 VCM = –7 V 到 +12 V 共模电压范围保持这种驱动能力,以便允许驱动器和接收机接地之间的大接地电位差,其一般会出现在远距离数据链路中。

  60 Ω 差分电阻代表两个并联 120 Ω 端接电阻器的电阻值,而 32 单位负载得到的总共模负载电阻为 RCM = 12 kΩ / 32 = 375 Ω。共模负载条件下收发器驱动能力测试的相应测试电路也指定为 RS-485 标准,其如 所示。

  

  标红文字的理解。RS485总线上一般会在首端和末端并联上120Ω的电阻,等效为60Ω。为什么要有120欧姆2个终端电阻,不是因为电流驱动不加电阻没法干活,而是真的是从信号完整性的角度出发,RS485有时候走线实在太长了,如1200m,传输时间(真空)为4us,双绞铜线中传播的时间更长。假设波特率为115200,按照100KHz频率,周期为10us,2倍传输时间大约等于周期,传输线效应,必须可靠的端接。

  关于电流驱动与电压驱动,为找到标准答案,RS485协议找不到,我的理解是电压驱动,因为按照以上图示,输出的就是电压,而非电流在外部负载上形成的压降。

  假设非反相驱动器输出 A 具有更高的正总线电压,则其电流计算方法为:

   ,其中  ,而 ,

   而反相输出 B 的电流计算方法如下:

   ,其中  ,而 .   

  由于数据传输期间 A 和 B 输出不断改变极性,因此最好是使用一些通用术语来表示输出电流方程式。所以,更多正输出(或者高输出)必须拉出电流:

  而更少正输出(或者低输出)必须注入电流:

.

   图 显示了在规定共模电压范围,驱动 RCM = 375 Ω 最大共模负载 (32 UL) 的一个 5V 收发器的最小输出电流要求。用于绘制该图的参数假设为 VOS = 2.5 V、VOD = 1.5 V、RD = 60 Ω 和 RCM = 375 Ω。

  

  对于以上VI曲线理解。当存在12V的共模电压,A端电流基本上由共模电压提供就可以了,A端基本无需输出电流;而当共模电压为-7V时,A端不仅要输出电路驱动电流,还会补偿共模电压的电流,自然需要输出很大的电流。

  以上为RS485概略,后续针对RS485的可靠性设计,竞争仲裁,上下拉电阻等会有进一步研究,加油。

  http://blog.csdn.net/zhzht19861011/article/details/51248856

  https://wenku.baidu.com/view/b1dcc4af5022aaea998f0fda.html

  http://www.deyisupport.com/question_answer/analog/interface_and_clocks/f/59/t/74523.aspx

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

   2018-3-5更新,RS485波形,采用SN65HVD1781QDRQ1作为RS485收发器。不间断输出间隔1s数据。

  P相对与GND:                                         N相对与GND

  

  P接示波器探头,N接示波器GND,1帧数据与波形细节:

  

  P接示波器GND,N接示波器探头,1帧数据与波形细节:

   

   RS485波形概略:常态下P为3.3V,N为0V,所以PN的差分测量为常态3.3V。

  数据状态下,P的高电平为3.3V,低电平为0.5V。N的高电平为2.5V,低电平为0V。差分数据状态为低-2V,高为0.8V。即差分高为3.3V-2.5V=0.8V,差分低无法判断,需要2个表笔确认信号的同步状态。

  尚需确认RS485芯片是如何控制信号的收发的,需要实际的波形验证。

 

 

 

  

  

  

 

posted @ 2018-01-30 23:57  legend_yuan  阅读(2913)  评论(0编辑  收藏  举报