随着数字技术的发展和计算机日益广泛的应用,现在一个系统往往由多台计算机组成,需要解决多站、远距离通信的问题。在要求通信距离为几十米到上千米时,广泛采用RS-485收发器。RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,故传输信号能在千米以外得到恢复。使用RS-485总线,一对双绞线就能实现多站联网,构成分布式系统,设备简单、价格低廉、能进行长距离通信的优点使其得到了广泛的应用。
在某公寓楼的水表远传系统中,采用了RS-485总线进行水表抄读数据的传输,共208只水表挂在总线上。下面是选定RS-485总线的根据和在应用调试过程中遇到的问题及解决方法。
RS-485的应用原则
RS-485支持半双工或全双工模式。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络,最好采用一条总线将各个节点串接起来。从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。
标准没有规定总线上允许连接的收发器数量,但规定了最大总线负载为32个单位负载(UL),可通过增大收发器输入电阻来扩展总线节点数。例如输入电阻增加至48kΩ以上(1/4UL),节点数就可增加至128个,SP485R的输入电阻为150kΩ,节点数最多可增加至400个。在本系统中有208只水表,所以采用了SP485R。
是否对RS-485总线进行终端匹配取决于数据传输速率、电缆长度及信号转换速率。UART是在每个数据位的中点采样数据的,只要反射信号在开始采样时衰减到足够低,就可以不考虑匹配。当考虑终端匹配时,有多种匹配方案可以选择,最简单的就是在总线两端各接一只阻值等于电缆特性阻抗的电阻,比较省电的匹配方案是RC匹配,采用二极管的匹配方案节能效果显著。
经验表明,当信号的转换时间上升或下降时间超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。例如具有限斜率特性的RS-485接口器件SP483输出信号的上升或下降时间最小为250ns,典型双绞线上的信号传输速率约为0.2m/ns(24AWG PVC电缆),那么只要数据速率在250kbps以内,电缆长度不超过16米,采用SP483作为RS-485接口时就可以不加终端匹配。
RS-485总线上的每个收发器通过一段引出线接入总线。引出线过长时由于信号在引出线中的反射也会影响总线上的信号质量,系统所能允许的引出线长度也和信号的转换时间、数据速率有关,下面的经验公式可以用来估算引出线的最大长度。
Lmax=(tRISE·0.2m/ns)/10
以SP483为例,对应于250ns的上升/下降时间,总线允许的最大引出线长度约为5米。
减缓信号的前后沿斜率有利于降低对于总线匹配引出线长度的要求和改善信号质量,同时还可使信号中的高频成分降低,减少电磁辐射。因此有些接口器件中增加了摆率限制电路来减缓信号前后沿,但这种做法也限制了数据传输速率,由此看来在选择接口器件时并不是速率越高越好,应该根据系统要求选择最低速率的器件。
仅仅用一对双绞线将各个接口的A、B端连接起来,而不对RS-485通信链路的信号接地,在某些情况下也可以工作,但给系统埋下了隐患。RS-485接口采用差分方式传输信号并不需要对于某个参照点来检测信号系统,只需检测两线之间的电位差就可以了。但应该注意的是收发器只有在共模电压不超出一定范围 (-7V至+12V)的条件下才能正常工作。当共模电压超出此范围,就会影响通信的可靠直至损坏接口。如图1所示,当发送器A向接收器B发送数据时,发送器A的输出共模电压为VOS,由于两个系统具有各自独立的接地系统存在着地电位差VGPD,那么接收器输入端的共模电压就会达到VCM=VOS+VGPD。RS-485标准规定VOS≤3V,但VGPD可能会有很大幅度(十几伏甚至数十伏),并可能伴有强干扰信号致使接收器共模输入VCM超出正常围,在信号线上产生干扰电流轻则影响正常通信,重则损坏设备。
实例应用分析
在系统的调试期间,发现楼层低和距离采集器比较近的水表读数能很顺利地抄读传输上来,而其他水表则有很多抄读不到。经过实地勘察和分析,发现了两个问题:
(1)网络布局不合理。这时的结构近似树形,但RS-485总线不支持环形或星形网络。同时,由于总线的不同区段采用了不同电缆,某一段总线上有过多收发器紧靠在一起安装,或者是有过长的分支线引出总线,都会出现阻抗不连续点。所以应该提供一条单一连续的信号通道作为总线。根据这一原则对网络进行了大的整改,采用单一总线将各个节点串接起来,同时进行接地处理,如图2所示。再次集抄的结果比先前要好,但还是有部分水表抄读不到或数据不稳定,未达到预期效果。表1是整改前后水表抄读的情况。
表1 整改前后情况比较
能抄读的水表数量
网络结构
波特率(bps)
整改前
121
树形
14400
整改后
164
单一总线
14400
(2)波特率过高,致使传输距离受限。当前的波特率14400是为了减小传输时间而设置的。但是由于传输线的欧姆阻抗、集肤效应等损耗引起信号畸变,从而通信距离受到限制。又由于损耗与频率有关,故随着数据率的增加通信距离减小。表2是通过实地测试得到的数据。
表2 传输距离和传输速率的关系
波特率
(bps)
能抄读的
最大表号
总线长度
(单位米,距离采集)
能否全部
抄读
14400
164
810
否
9600
172
860
否
4800
189
950
否
2400
200
1010
否
1200
208
1050
能
110
208
1050
能
由表2看出,当波特率降低到1200以下时,所有表都可以抄读成功。实验表明,最高波特率在1200时,208只表可以一次抄读成功。在此基础上,对各种常用波特率下系统能抄读到的最远距离进行测试,结果如图3。
可以看出,在110~1200波特率时,数据传输完全正确,但随着波特率的提高,传输距离呈下降趋势。所以在传输速度允许的情况下,应当尽可能地降低波特率。另外,进一步完善网络结构将会在保证准确程度的前提下提高数据的传输速率。
结语
RS-485总线,具有高噪声抑制、宽共模范围、长传输距离、冲突保护等特性,但还需要考虑合理的应用和网络布局、连续的信号通道、周全的保护措施等,在设计之初就应有总体规划。