串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定的应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。
本文主要介绍RS-485协议及该协议所适合的应用。同时给出了根据电缆长度、系统设计以及元件选择来优化数据速率的方法。
传输协议
什么是RS-485?Profibus又是什么?与其它串行协议相比,它们的性能如何?适用于哪些应用?为了回答这些问题,我们对RS-485物理层(PHY)、RS-232和RS-422的特性、功能进行了总体比较[1](本文中的RS表示ANSIEIA/TIA标准)。
RS-232是一个最初用于调制解调器、打印机及其它PC外设的通讯标准,提供单端20kbps的波特率,后来速率提高至1Mbps。RS-232的其它技术指标包括:标称±5V发送电平、±3V接收电平(间隔/符号)、2V共模抑制、2200pF最大电缆负载电容、300最大驱动器输出电阻、3k最小接收器(负载)阻抗、100英尺(典型值)最大电缆长度。RS-232只用于点对点通信系统,不能用于多点通信系统,所有RS-232系统都必须遵从这些限制。
RS-422是单向、全双工通信协议,适合嘈杂的工业环境。RS-422规范答应单个驱动器与多个接收器通信,数据信号采用差分传输方式,速率最高可达50Mbps。接收器共模范围为±7V,驱动器输出电阻最大值为100,接收器输入阻抗可低至4k。
RS-485标准
RS-485是双向、半双工通信协议,答应多个驱动器和接收器挂接在总线上,其中每个驱动器都能够脱离总线。该规范满足所有RS-422的要求,而且比RS-422稳定性更强。具有更高的接收器输入阻抗和更宽的共模范围(-7V至+12V)。
接收器输入灵敏度为±200mV,这就意味着若要识别符号或间隔状态,接收端电压必须高于+200mV或低于-200mV。最小接收器输入阻抗为12k,驱动器输出电压为±1.5V(最小值)、±5V(最大值)。
驱动器能够驱动32个单位负载,即答应总线上并联32个12k的接收器。对于输入阻抗更高的接收器,一条总线上答应连接的单位负载数也较高。RS-485接收器可随意组合,连接至同一总线,但要保证这些电路的实际并联阻抗不高于32个单位负载(375)。
采用典型的24AWG双绞线时,驱动器负载阻抗的最大值为54,即32个单位负载并联2个120终端匹配电阻。RS-485已经成为POS、工业以及电信应用中的最佳选择。较宽的共模范围可实现长电缆、嘈杂环境(如工厂车间)下的数据传输。更高的接收器输入阻抗还答应总线上挂接更多器件。
Profibus和Fieldbus[2]总线主要用于工业设备,是RS-485总线的扩展。用于工业环境的传感器测量、激励控制、数据采集/显示以及过程控制系统与传感器、激励源网络之间的数据通信。
注重:老式或现有的工业设备布线架构比较复杂,不可替换。
Profibus和Fieldbus是对系统的整体描述。RS-485支持Profibus和Fieldbus协议的物理层接口标准。Profibus与Fieldbus存在细微的差异,Profibus要求2.0V的最小差分输出电压,54的负载电阻;Fieldbus则要求1.5V的最小差分输出电压,54的负载电阻。Profibus传输速率为12Mbps,Fieldbus的传输速率为500kbps。Profibus应用对摆率和电容容限要求比较严格。
最适合的应用领域?
RS-232:用于与调制解调器、打印机及其它PC外设之间的通信。最大电缆长度为100英尺(典型值)。
RS-422:适用于单主机(驱动器)工业环境。典型应用包括:过程自动化(化工、酿造、造纸)、工厂自动化(汽车制造、金属加工)、HVAC、安防、电机控制、运动控制等。
RS-485:适用于多主机/驱动器工业环境。其典型应用与RS-422相似,包括:过程自动化(化工、酿造、造纸)、工厂自动化(汽车制造、金属加工)、HVAC、安防、电机控制、运动控制。
哪些因素限制了RS-485的数据速率?
在指定的传输距离下,下列因素限制了传输速率:
电缆长度:在特定频率下,信号强度会随着电缆长度而衰减。
电缆架构:5类24AWG双绞线是RS-485系统最常用的电缆,屏蔽电缆可大大增强噪声抑制能力,提高了一定距离下的数据传输速率。
电缆特性阻抗:分布电容和分布电感会降低信号的边沿速度,从而降低噪声裕量、补偿“眼图模板”特性。分布电阻直接导致信号电平的衰减。
驱动器输出阻抗:阻抗过高会限制驱动能力。
接收器输入阻抗:阻抗过低会限制与驱动器通信的接收器数量。
终端匹配:长电缆可看作传输线。电缆上应接阻值等于电缆特性阻抗的终端匹配电阻,可以降低信号反射,并提高数据速率。
噪声裕量:越大越好。
驱动器摆率:降低边沿速率(降低信号摆率)答应采用较长的电缆进行通信。
;经验数据
了解了以上相关的背景知识,接下来我们研究一个实际系统,如图1所示。图中所示电缆是RS-485系统最为常用的一种:EIA/TIA/ANSI5685类双绞线。在长度为300英尺至900英尺的电缆上可以获得的数据速率为1Mbps至35Mbps。
图1.测试装置
系统设计人员经常从两个不同厂商选择驱动器和接收器,多数设计人员最关注的是RS-485驱动器的传输距离和速度。Maxim驱动器(这里指MAX3469)与其它制造商的驱动器性能比较如图2、图3所示。
图2.在特定比特率、电缆长度下的抖动特性,抖动是在±100mV差分信号下测量的
图3.在特定比特率、电缆长度下的抖动指标,抖动是在0V差分信号下测量的
通过观察驱动器的差分输出信号的完整性,利用示波器确定80mV与-400mV之间的翻转门限(由于接收器具有200mV至-200mV的输入范围和噪声裕量,因此选取这一门限范围)。然后,当脉冲(比特)开始“传送”时,用眼图确定失真度、噪声以及码间干扰(ISI)。
ISI指标限制了比特率,以保证系统能够在脉冲之间识别出传输数据。对图1电路的测试结果表明翻转门限与眼图模板之间具有相关性。该眼图模板存在50%的抖动,按照NationalSEMIcondUCtor的应用笔记#977[3]所介绍的方法进行测量。测量0V差分信号和±100mV差分信号下的抖动,得到图4和图5所示数据。
图4.Maxim的MAX3469与其它RS-485驱动器件的眼图对比[4]
图5.MAX3469的眼图
对于一个点到点通信系统,从±100mV差分信号(图4)或0V差分信号(图5)下的测试结果可以看出比特率与电缆长度的关系。+100mV和-100mV门限能够正确切换差分信号大于200mV的信号,因此,该门限值可确保接收器正确接收数据(图5数据仅适用于可在0V差分输入下切换的理想接收器)。
眼图和故障模式
采用340英尺的5类电缆,图2给出了39Mbps传输速率下的驱动器输出眼图,图中,信号从“眼”的中间穿过-这种情况表明可能出现误码。然而,在相同数据速率下,Maxim公司的器件不会出现这种情况(图3)。Maxim的收发器具有对称的输出边沿和较低的输入电容,性能良好。
采用上述测试对两款驱动器进行比较。当数据速率较高、电缆较长时,Maxim驱动器的性能更出色。图5给出点对点网络中Maxim器件的传输速率和距离的估计值。根据经验,所产生的误码大致符合50%抖动极限的要求。
各方研究数据
在工业领域,通常可接受的传输距离和数据速率的最大值分别为4000英尺和10Mbps,当然这两个值不能同时满足。然而,利用最新器件和精细的系统设计,可在较长的电缆下实现较高的数据吞吐率。
预加重[5]是一种改善数据速率与距离间关系的技术,可用于RS-485通信(图6)。采用1700英尺电缆,工作在1Mbps固定数据速率,没有预加重驱动器或均衡接收器的RS-485收发器通常具有10%的抖动。在相同速率下,增加驱动器预加重可使距离加倍,达到3400英尺,而且不会提高抖动。同样,距离一定时采用预加重能提高数据速率。速率为400kbps,电缆长度为4000英尺时,无预加重的驱动器通常具有10%的抖动。而采用预加重可使该距离下的传输速率提升至800kbps。
图6.数据速率与电缆长度的关系图
另一种估算可靠传输的最大电缆长度的方法是:利用5类电缆制造商提供的幅度衰减与频率的关系表。根据通用规则,电缆工作时最大答应的信号衰减是-6dBV。该数值结合厂家提供的衰减数据,计算出给定频率下的最大电缆长度。
;应用技巧
RS-485收发器具有多种改善系统性能的特性:
预加重(上文所述):降低码间干扰
降低接收器单位负载:低负载器件可低至1/8单位负载,答应总线上挂接最多256个器件。这种器件还可降低总线负载,从而答应较长的电缆和较高的传输速率。
高速器件:目前可提供数据速率高达52Mbps的驱动器,这种高速器件须非凡注重保持低传输延迟和低偏差。
ESD保护:ESD保护不会提高数据速率,但会改善系统工作或数据速率为0(开路)时的可靠性。目前能够提供±15kV的内置ESD保护。
正确的接线[6]:RS-485用于差分传输,除地线外还需要两条信号线来传输数据(通常为24AWG双绞线)。这两条信号线传送极性相反的信号,大大减少了EMI辐射和EMI干扰问题。电缆的特性阻抗一般为120,这也是电缆末端终端匹配电阻的阻值―目的在于降低反射和其它线路的影响。图7、图8给出了正确的系统连接。
图7.单发/单收网络
图8.多机收发网络
结论
综上所述,RS-485网络可在噪声环境下实现可靠的数据传输。设计系统时需要对数据速率、电缆长度进行折衷考虑,能够在几百米长的电缆上实现高于50Mbps的数据速率,而不需使用任何中继器。
Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...
07-05
Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...
07-05
KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...
07-05
Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...
07-05