波仕電子版權所有
在下一代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對延時的計算及其精確。以后將另外專文討論。