在下一代RS-485总线的概念下,BOSIKA将原本用于延长RS-485通信距离并且提高负载能力的中继器与RS-232/RS-485转换器进行绑定,推出RS-232 /RS-485中继转换器,同时对RS-485信号的流向进行整理,使得用户在使用时感觉就是一个RS-232与RS-485的转换器。这种思想体现在最新的《一种带中继功能的串口转换器》专利文献中。对于BOSIKA而言,下一代RS-485总线的变化就是要不受最远距离和节点数的限制,同时下一代RS-232/RS-485中继转换器485A2还得保持无需供电的特性。在这个思路中,BOSIKA的RS-232/RS-485中继转换器突破了传统RS-485总线的节点数和距离的限制。每接一个RS-232/RS-485中继转换器,RS-485信号都得到了中继增强,所以这种 RS-485总线不再受一条RS-485总线最远1200米的限制,而是当接M个转换器时就可以达到1200米的M倍距离,M是否不受限制---本文将讨论M的理论极限。传统的RS-485总线有接负载个数的限制,比如128个,就是同一条RS-485总线中最多挂128个RS-485口。使用M个RS-232/RS- 485转换器构成的RS-485总线中,由于接入的转换器将RS-485总线分开为了M段(每一段之间相当于有一个中继器),所以当接M个转换器时就可以达到128×M倍的负载个数,M是否受负载数限制---本文也将讨论。
1、突破RS-485节点和距离极限的布线方式
RS-232/RS-485中继转换器有一个DB-9孔的RS-232口和2个带接线端子的RS-485。DB-9孔端用于接RS-232口、 DB-9针端通过接线端子板接RS-485口。485A2的接线端子板上有5个接线端子(A1、B1、GND、B2、A2) ,为两个RS-485口,共用GND地线。A1、B1与A2、B2是功能完全相同的,不分方向。 两个RS-485口具有相互中继的功能。
485A2应用与RS-485多机通信的典型接线图。若每一段RS-485的距离为1200米和128个,则整个RS-485系统的距离达到(M×1200米)、节点数达到(M×128)。可以看出,使用了485A2的RS-485总线布线极其简洁。最远两端可以用485A,也可以用 485A2。注意整个RS-485系统共用GND线。
2、RS-485多机通信节点数的极限
假设RS-485通信的地址编码为8位,那么最多的节点数就是2^8=256;假设RS-485通信的地址编码为10位,那么最多的节点数就是2^10=1024。10位已经多到极少用到。这个总线中的RS-485节点数的极限完全取决于通信软件 ,与总线中所接的RS-485中继转换器个数没有关系。实际上,因为受RS-485接口芯片性能的限制,每一段RS-485目前最多接128个节点,所以要达到256个的极限就得至少接一个 485A2中继转换器,要达到1024极限就要至少8个485A2中继转换器。
3、完全失败的RS-485通信距离的理论极限
假设波特率为9600bps,就是每秒9600位。每个数据有1个起始位、8个数据位、1个校验位、1个停止位,一共10位。也就是传输一个数据(1byte)的时间是11/9600=0.001145s。在这个时间内电磁波的传输距离(也就是光速为299792458m/s )为 343512米,即343.5千米。
如果电信号的电磁波延时达到0.001145s(大约1.25ms),那么就会延时到错位一个数据,这样就无法正常通信。怎么理解?在某一时刻主机以9600bps同时向所有从机发送一组信号(比如ABCD),从机都立即响应回答数据,注意在9600bps下每传一个数据的时间差为 1.25ms,也就是发A比发B早1.25ms,发B比发C早1.25ms……。那么主机收到的最远的节点的回答A的数据与1.25ms后最近的节点回答 B的数据重叠,这样就无法通信。
也就是RS-485的理论传输的最远距离在9600bps时只有大约343512米。假设每1200米进行一次中继,343512/1200=286,也就是说要达到RS-485的理论极限,需要至少286次中继延长。
4、无误码的RS-485通信距离的理论极限
并非只有当整个10位数据完全重叠时才无法通信,实际上只要有1位错位存在误码就不好。虽然有时候软件有一定纠错功能,容许存在一定程度的误码情况下也可以传输数据,但是我们还是要弄清楚无误码的极限。
假设波特率为9600bps,就是每秒9600位。也就是传输一位(1bite)的时间是1/9600=0.000104s。在这个时间内电磁波的传输距离(也就是光速为299792458m/s )为31228米。如果电信号的电磁波延时达到0.000104s(大约0.1ms),那么就会延时到错位一个数据位,这样就会出现误码。怎么理解?在某一时刻主机收到的最远的节点的数据会与大约0.1ms前最近的节点发送的数据重叠一位,这样就有误码了。也就是RS-485的无误码通信的理论最远距离在9600bps时只有大约31KM。假设每1200米进行一次中继,31228/1200=26.02,也就是说要达到RS-485的理论极限,需要至少26次中继延长。
以上可以看出,RS-485通信距离的理论极限与波特率成反比,波特率越高极限距离越短。当波特率为115200bps时(=12×9600),无误码传输的理论极限距离为31228/12=2602米。只有大约2.6km!这也难怪RS-485的远程通信只说9600时传输多远,几乎不提115200bps。
5、其它介质和其它总线的理论极限
以上的RS-485距离极限343512米以及31228米(9600bps)与传输介质无关,就是说用光纤传输RS-485最远也是这么多,无线也是一样。
以上的无误码RS-485距离极限31228米(9600bps)与协议无关,就是说用CAN、PROFIBIUS最远也是这么多,原理是一样的。
以上的通信完全失败的RS-485距离极限343512米(9600bps)与数据位数有关,而且成正比例,就是说用CAN2.0(29位)比CAN1.0(11位)的极限更加大,大一倍以上。
到这里,大家一定会惊讶RS-485通信距离理论极限之短。互联网、手机、GPS是如何传输几乎无限远距离的呢?为了实现远程通信,互联网和手机通信几乎无法做到实时,而GPS对延时的计算及其精确。以后将另外专文讨论。