1 简介
RS485采用差分数据传输,为什么要使用差分数据传输?
RS485能够实现长距离通信的主要原因是使用了差分或平衡线路。通信通道需要专用的信号线路来交换信息,一条线路上的电压等于另一条线路上的电压的倒数。
TIA/EIA-485-A将此差分对中的两条线路表示为A和B:
1)发射器
if 发射器的输入端接收到高电平(DI = 1),则发射器使A线路上的电平信号高于B线路上的电平(VOA > VOB,VOA -VOB∈[+2V,+6V],但国产芯片会偏低,具体看芯片手册);
if 发射器的输入端收到逻辑低电平(DI = 0),则发射器使A线路上的电平信号高于B线路上的电平(VOA < VOB,VOA -VOB∈[-2V,-6V],但国产芯片会偏高,具体看芯片手册)。
2)接收器
if 接收器的输入端线路A高于线路B(VIA - VIB > 200mV),则接收器输出为逻辑高电平(RO = 1);
if 接收器的输入端线路B高于线路A(VIB - VIA >200mV),则接收器输出为逻辑低电平(RO = 0)。
2 RS485速率、距离与节点数
2.1 RS485速率及通信距离
RS-485的通信速率在通信距离为12m(40英尺)最高可达10Mbps,在通信距离为1.2km(4000英尺)最高可达100kbps。其关系图见图2所示。
图2 速率与距离关系图
2.2 节点数
RS-485规定的为多点标准,意味着在同一总线上最多可连接32个收发器。
在定义节点数时,则需要清楚RS-485中的单位负载概念。单位负载时衡量RS-485总线驱动能力的,而单位负载的定义是根据标准的RS-485总线接收器的输入阻抗(12kΩ)定义的。标准的RS-485总线能够驱动32个单位负载(即32个12kΩ并联),换句话说,RS-485总线负载电阻不能小于375Ω。
一些RS-485接收器的输入阻抗为48kΩ(则为1/4个单位负载:1/4 unit load)或者是96kΩ(则为1/8个单位负载:1/8 unit load)。则相应的总线可挂接的节点数分别为128个和256个。为什么48kΩ为1/4个单位负载呢?是因为电阻越大,所需的电流越小,12kΩ所需要的电流可供4个48kΩ使用,即为1/4个单位负载。
如果在使用不同输入阻抗的RS-485接收器连接在一起,只要保证并联输入阻抗不超过32个单位负载(即总线负载Rload ≥ 375Ω)。
对应的单位负载与节点数见下图示。
3 端接
一条传输线路中存在两条线,一条将电流从驱动器载至接收器,另一台提供回到驱动器的返回路径。要实现可靠的RS-485通信,必须尽可能减少传输线路中的反射,这就必须进行适当的电缆端接。
根据RS-485应用的要求,端接应位于主节点以及距离主节点最远的从节点。
1)无端接
如果信号上升时间是电缆传播延迟的4倍以上,该电缆不应视为传输线路,无需端接。
2)并联端接
两个或更多驱动器共享一对线时,链路各端均有一个端接电阻,其值等于电缆的特性阻抗。无论网络中连接了多少个节点,都不应存在两个以上的端接电阻。
在半双工配置中,电缆的两端必须端接。在全双工配置中,只有主接收器和最远的从接收器需要端接。如下图3示。
图3a RS-485半双工配置
图3b RS-485全双工配置
3)交流端接
交流端接用于降低空闲链路的工号以及降低振铃电压,不过负面影响会减少电缆长度并降低比特率,可以在总线A与B之间串联放置一个电阻和电容。如图3所示。
图3 交流端接
其端接的优点与缺点见下表。
端接电阻一般选用120Ω的电阻,因为RS-485使用的是双绞线,双绞线的特性阻抗为120Ω。
4 安全偏置设置
在485数据传输时,起始位表示位序列的开始,可在高电平至低电平转换时检测到。
如果总线在空闲状态下,总线上的差分电压(VOA - VOB)为0V,在此条件下,RS-485标准未定义接收器输出RO,因此接收器输出会产生随机数据。此数据连接到UART,肯呢个导致系统操作错误。有关接收器的真值表见下表。
要解决总线处于空闲状态条件下的故障,需要在总线上放置上拉电阻和下拉电阻。 偏置电路如图4所示。
if R1 = R2 = R,RT = 120Ω,则
if Vcc = 5V,then R = 1440Ω;
if Vcc = 3V,then R = 960Ω。
如果使用R的较低值(),系统可以实现更大的噪声裕量。
5 瞬间过压应力保护
在实际应用中,雷击、电源波动、静电放电会通过产生较大瞬变电压对RS-485收发器造成损害,大多数经典的RS-485收发器都无法再不造成损坏的情况下处理总线引脚上的这些高压瞬态。所以需要使用保护措施:
所有的保护方案的核心是一个可以钳制总线电压的器件(即保护二极管),采用分立式元件进行设计时,既有钳位二极管和限流电阻器,又有TBU(瞬态阻断单元)和MOV(金属氧化物压敏电阻)。可以将总线上的电压钳位至RS-485收发器的共模电压范围(-7V~+12V),对于更高的电源瞬变,可在保护器件与输入引脚之间增加电阻RS(10Ω至20Ω)来加强保护。如下图所示。
关于瞬间过压应力保护后续会出一个单独的文章进行介绍。