目录
一、主要特性
二、网络拓扑
三、信号电平及单位负载
四、总线终端和桩线长度
五、故障安全偏压
✍
RS-485是美国电子工业协会(EIA)在1983年批准的一种用于串行通信的平衡传输标准,RS-485作为一个电气标准,仅定义了使用平衡多点传输线的驱动器和接收器的电气特性;许多更高级别的标准将RS-485规定为引用标准,其接口标准在物理层上参考了RS-485,如Modbus、Profibus、DL/T645等。
一、主要特性
平衡接口;
差分传输增强噪声抗扰度,减少噪声辐射;
10Mbps最大数据速率(距离为40英尺-12.192m);
4000英尺(1219.2 m)的最大电缆长度(速率为 100kbps);
多达32个单位负载,同一总线可以连接多个驱动器和接收器;
宽共模范围允许驱动器和接收器之间存在地电位差异,允许 –7V至 +12V总线共模范围。
二、网络拓扑
RS-485推荐使用菊花链连接其节点,驱动器、接收器和收发器通过短网存根接入主干线,如下图所示
RS-485接口总线可被设计用于全双工或半双工传输模式,如下图所示
三、信号电平及单位负载
1、信号电平
RS-485标准规定驱动器在54Ω负载下能够提供不小于1.5V的差分输出,而接收器能检测到低至200mV的差分输入;
驱动端和接收端的这两个值为数据高可靠的传输提供了充足的裕量,避免在电缆和连接器的信号严重衰减的情况下数据传输出错;这也是RS-485广泛用于嘈杂环境下长距离联网的主要原因。
如下图所示,RS-485的差分线被规定为A和B线,
若发送器的输入端收到一个逻辑高电平(DI=1),那么驱动器输出时A线电压大于B线,且VOA-VOB≥1.5V;
若发送器的输入端收到一个逻辑低电平(DI=0),那么驱动器输出时A线电压小于B线,且VOA-VOB≤-1.5V;
若接收器输入端的A线电压大于B线,且VIA-VIB≥200mV,那么接收器输出为逻辑高电平(RO=1);
若接收器输入端的A线电压小于B线,且VIA-VIB≤-200mV,那么接收器输出为逻辑低电平(RO=0)
2、单位负载
RS-485标准规定单位负载为12K,最多挂载32个负载;
一个驱动器必须能够通过2个120Ω终端电阻并联最多32个单位负载驱动一个最小的1.5V差分信号;
通过在一个总线引脚上将输入电压从-7V扫到12V,另一个总线引脚保持接地,然后测量输入漏电电流,来确定单位负载参数;
标准中的-7V和12V的电平范围是为了允许驱动器输出和接收器之间有高达±7V的地电势差(GPD),驱动器的输出电压在GND和5V之间变化;
因此,
-7V代表接收器是通过驱动器以-7V的GPD驱动总线的低电平;
而12V代表接收器是通过驱动器以7V的GPD驱动总线的高电平;
一个单位负载相当于12V时的1mA输入漏电流,这个负载代表一个相对于地的单端负载,一个简单的方法是,单位负载相当于从A或B总线引脚到地的12KΩ电阻。
有些RS-485接收器支持1/4或1/8单位负载,可以挂载更多数量的收发器;
单位负载和接收器输入阻抗对应关系如下所示:
四、总线终端和桩线长度
为避免信号反射,RS-485数据传输线应始终端接,并且桩线(分支)长度越短越好;
良好的端接需要终端电阻RT与传输线缆的特性阻抗Z0匹配;
RS-485标准建议传输线缆的特性阻抗Z0为120Ω,
如下图,线缆通常采用120Ω电阻端接。
桩线(分支)的走线长度(收发器与传输线缆干线之间的距离)应小于驱动器输出上升时间的 1/10,
桩线(分支)的走线长度可通过以下公式计算
Lstub = tr/10 * v * c
Lstub = 最大桩线长度(inch)
tr = 驱动器(10/90)上升时间(ns)
v = 信号在线缆干线上的传输速率相对于光速的比率
Fr4材料制作的PCB板上面信号的传输速度是光速的二分之一
c = 光速(12inch/ns)
举个栗子:
如下图,MAX13488E的驱动器输出上升时间为15ns
代入得,
Lstub = tr/10 * v * c = 9inch = 228.6 mm
即桩线长度不能大于22.86 cm
五、故障安全偏压
如下图所示,RS-485相关应用电路中除了加端接电阻RT,还会加“上下拉”电阻(故障安全偏置电路),这主要是起到故障安全保护作用。
故障安全偏置电路能保证接收器在缺少输入信号时有能力输出一个确定的状态。
导致缺少输入信号的原因有如下三种
①开路:线缆中断或者收发器从总线断开
②短路:差分对的导线因绝缘层失效而接触在一起
③总线空闲:所有总线驱动器均未处于活动状态时,会发生这种情况。
上述条件下,当输入信号为零时,会使传统的接收器输出随机状态;
目前大对数的收发器内部都包含一个故障安全偏置电路,可以对开路、短路和总线空闲进行保护,即使信号丢失时,接收器也能强制输出一个确定的状态。
但是,有的故障安全保护设计也其缺点,即最坏情况下的噪声容限仅为 10mV;
因此在干扰环境中,要增加外部故障安全偏置电路以增加噪声容限。
以上对于故障安全偏压的解释比较笼统,还不够详细,下面是ADI关于故障安全偏压的解释很详细。
1、总线空闲状态—接收器输出RO可能出错
UART通信数据格式为:起始位+数据位+奇偶校验位+停止位;
起始位在从高到低的转变发生时被检测到,其后跟着8个数据位、1个奇偶校验位和停止位(1或2个);然后又是起始位;
当最后一个字符被发送完时,线路应保持高电平,直到下一个起始位。
总线有一种状态叫做总线空闲状态,即连接在总线上的收发器在同一时刻都处于接收模式,此状态下总线上的差分电压(VOA−VOB)为0V。
对于一个没有故障安全偏置电路的主从RS-485网络,
在总线空闲状态时,接收器RO输出未被RS-485标准定义(如下图Differential Receiver Truth Table)
而接收器RO输出产生随机数据,可能会导致系统操作错误。
无故障安全偏置的主/从RS-485网络,如下图
2、差分输入阈值电压
前面提到,RS-485标准有规定一个±200mV的差分输入阈值电压;,
当差分输入VIA-VIB≥200mV,接收器输出为逻辑高电平(RO=1);
当差分输入VIA-VIB≤-200mV,接收器输出为逻辑低电平(RO=0);
这也就是说差分输入电压有一个400mV的不确定状态,如下图。
为避免这种不确定状态导致系统操作错误,就需要引入一些操作将不确定态转变为确定状态(逻辑高/低电平状态)。
两种最常用的操作方法:
①使用具有内置故障安全输入阈值的接收器;
②使用额外的外部电阻在空闲总线上创建一个外部偏压;
这两种方法都是确保总线上的逻辑高电平状态,这相当于一个正的差分电压。
3、接收器自带故障安全输入阈值
如下图,内置故障安全输入阈值的接收器通过引入内部偏置电路将差分输入阈值电压从±200mV调整调整到−200 mV再到−30 mV;
即使在总线空闲状态时即VOA-VOB=0(>-30mV),接收器RO输出为高电平。
4、外部失效保护偏置电路
外部失效保护偏置电路由一个电阻分压器组成,可以产生足够的总线差分电压,以驱动接收器产生一个确定的输出状态。
为了确保有足够的噪声容限,除了 200mV 的接收器输入阈值外,VAB还必须包括测得的最大差分噪声,VAB= 200mV + V噪声。
外部偏置电阻计算
对于传输距离小于100米的应用,通常在总线的一端提供偏置电路,如下图
上下拉电阻RB是为总线提供空闲状态时的偏置电压,简化后如下图
此时Buck中电感的
REQ代表所有连接到总线的收发器的等效输入电阻,RT1和RT2为终端电阻;
要想计算外置偏置电阻值,需要使线路终端、共模负载满足以下几个条件:
①没有偏置网络的电缆端用RT1端接,其值与电缆的特征阻抗Zo相等,即
②在有偏置电阻这端,等效电阻必须匹配线缆阻抗Zo,即
③RS-485标准规定了最大的共模负载,即符合标准的收发器必须能够驱动32个单位负载UL,一个单位负载为12KΩ,32个UL的总共模负载RCM=375Ω;
由于偏置电阻的存在,除了等效收发器输入阻抗,还存在共模负载,所以RB和REQ组合不小于RCM,即
根据节点电流,推导过程如下
再结合上述条件①②③,得出
举个栗子:
Zo=120Ω,最小供电电压为4.75V(5V供电,纹波5%)Vab=300mV(按照200mV+100mV噪声裕量设计)
选择标准电阻RB=470Ω
选择标准电阻RT2 = 138Ω
因为外部电阻会带来额外的共模负载,所以需要确定收发器单元负载的最大数量nul,保证不低于375Ω的RCM加载到总线;
nul是一个单位负载与收发器的输入阻抗之比:nul=12KΩ/REQ
则:
根据上述计算RB=470Ω,则
若收发器的输入阻抗为1/8UL,可以接6.4/1/8 = 51个
这里是软磨硬泡公众号,号主三炮儿的硬件开发学习笔记、经验分享
学习分享以助能力增长,经验交流以期跻身一流