RS-485的節(jié)點(diǎn)和距離的理論極限
在下一代RS-485總線的概念下,BOSIKA將原本用于延長RS-485通信距離并且提高負(fù)載能力的中繼器與RS-232/RS-485轉(zhuǎn)換器進(jìn)行綁定,推出RS-232 /RS-485中繼轉(zhuǎn)換器,同時(shí)對RS-485信號的流向進(jìn)行整理,使得用戶在使用時(shí)感覺就是一個(gè)RS-232與RS-485的轉(zhuǎn)換器。這種思想體現(xiàn)在最新的《一種帶中繼功能的串口轉(zhuǎn)換器》專利文獻(xiàn)中。對于BOSIKA而言,下一代RS-485總線的變化就是要不受最遠(yuǎn)距離和節(jié)點(diǎn)數(shù)的限制,同時(shí)下一代RS-232/RS-485中繼轉(zhuǎn)換器485A2還得保持無需供電的特性。在這個(gè)思路中,BOSIKA的RS-232/RS-485中繼轉(zhuǎn)換器突破了傳統(tǒng)RS-485總線的節(jié)點(diǎn)數(shù)和距離的限制。每接一個(gè)RS-232/RS-485中繼轉(zhuǎn)換器,RS-485信號都得到了中繼增強(qiáng),所以這種 RS-485總線不再受一條RS-485總線最遠(yuǎn)1200米的限制,而是當(dāng)接M個(gè)轉(zhuǎn)換器時(shí)就可以達(dá)到1200米的M倍距離,M是否不受限制---本文將討論M的理論極限。傳統(tǒng)的RS-485總線有接負(fù)載個(gè)數(shù)的限制,比如128個(gè),就是同一條RS-485總線中最多掛128個(gè)RS-485口。使用M個(gè)RS-232/RS- 485轉(zhuǎn)換器構(gòu)成的RS-485總線中,由于接入的轉(zhuǎn)換器將RS-485總線分開為了M段(每一段之間相當(dāng)于有一個(gè)中繼器),所以當(dāng)接M個(gè)轉(zhuǎn)換器時(shí)就可以達(dá)到128×M倍的負(fù)載個(gè)數(shù),M是否受負(fù)載數(shù)限制---本文也將討論。
本文引用地址:http://butianyuan.cn/article/201609/303510.htm1、突破RS-485節(jié)點(diǎn)和距離極限的布線方式
RS-232/RS-485中繼轉(zhuǎn)換器有一個(gè)DB-9孔的RS-232口和2個(gè)帶接線端子的RS-485。DB-9孔端用于接RS-232口、 DB-9針端通過接線端子板接RS-485口。485A2的接線端子板上有5個(gè)接線端子(A1、B1、GND、B2、A2) ,為兩個(gè)RS-485口,共用GND地線。A1、B1與A2、B2是功能完全相同的,不分方向。 兩個(gè)RS-485口具有相互中繼的功能。
485A2應(yīng)用與RS-485多機(jī)通信的典型接線圖。若每一段RS-485的距離為1200米和128個(gè),則整個(gè)RS-485系統(tǒng)的距離達(dá)到(M×1200米)、節(jié)點(diǎn)數(shù)達(dá)到(M×128)??梢钥闯?,使用了485A2的RS-485總線布線極其簡潔。最遠(yuǎn)兩端可以用485A,也可以用 485A2。注意整個(gè)RS-485系統(tǒng)共用GND線。
2、RS-485多機(jī)通信節(jié)點(diǎn)數(shù)的極限
假設(shè)RS-485通信的地址編碼為8位,那么最多的節(jié)點(diǎn)數(shù)就是2^8=256;假設(shè)RS-485通信的地址編碼為10位,那么最多的節(jié)點(diǎn)數(shù)就是2^10=1024。10位已經(jīng)多到極少用到。這個(gè)總線中的RS-485節(jié)點(diǎn)數(shù)的極限完全取決于通信軟件 ,與總線中所接的RS-485中繼轉(zhuǎn)換器個(gè)數(shù)沒有關(guān)系。實(shí)際上,因?yàn)槭躌S-485接口芯片性能的限制,每一段RS-485目前最多接128個(gè)節(jié)點(diǎn),所以要達(dá)到256個(gè)的極限就得至少接一個(gè) 485A2中繼轉(zhuǎn)換器,要達(dá)到1024極限就要至少8個(gè)485A2中繼轉(zhuǎn)換器。
3、完全失敗的RS-485通信距離的理論極限
假設(shè)波特率為9600bps,就是每秒9600位。每個(gè)數(shù)據(jù)有1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)校驗(yàn)位、1個(gè)停止位,一共10位。也就是傳輸一個(gè)數(shù)據(jù)(1byte)的時(shí)間是11/9600=0.001145s。在這個(gè)時(shí)間內(nèi)電磁波的傳輸距離(也就是光速為299792458m/s )為 343512米,即343.5千米。
如果電信號的電磁波延時(shí)達(dá)到0.001145s(大約1.25ms),那么就會(huì)延時(shí)到錯(cuò)位一個(gè)數(shù)據(jù),這樣就無法正常通信。怎么理解?在某一時(shí)刻主機(jī)以9600bps同時(shí)向所有從機(jī)發(fā)送一組信號(比如ABCD),從機(jī)都立即響應(yīng)回答數(shù)據(jù),注意在9600bps下每傳一個(gè)數(shù)據(jù)的時(shí)間差為 1.25ms,也就是發(fā)A比發(fā)B早1.25ms,發(fā)B比發(fā)C早1.25ms……。那么主機(jī)收到的最遠(yuǎn)的節(jié)點(diǎn)的回答A的數(shù)據(jù)與1.25ms后最近的節(jié)點(diǎn)回答 B的數(shù)據(jù)重疊,這樣就無法通信。
也就是RS-485的理論傳輸?shù)淖钸h(yuǎn)距離在9600bps時(shí)只有大約343512米。假設(shè)每1200米進(jìn)行一次中繼,343512/1200=286,也就是說要達(dá)到RS-485的理論極限,需要至少286次中繼延長。
4、無誤碼的RS-485通信距離的理論極限
并非只有當(dāng)整個(gè)10位數(shù)據(jù)完全重疊時(shí)才無法通信,實(shí)際上只要有1位錯(cuò)位存在誤碼就不好。雖然有時(shí)候軟件有一定糾錯(cuò)功能,容許存在一定程度的誤碼情況下也可以傳輸數(shù)據(jù),但是我們還是要弄清楚無誤碼的極限。
假設(shè)波特率為9600bps,就是每秒9600位。也就是傳輸一位(1bite)的時(shí)間是1/9600=0.000104s。在這個(gè)時(shí)間內(nèi)電磁波的傳輸距離(也就是光速為299792458m/s )為31228米。如果電信號的電磁波延時(shí)達(dá)到0.000104s(大約0.1ms),那么就會(huì)延時(shí)到錯(cuò)位一個(gè)數(shù)據(jù)位,這樣就會(huì)出現(xiàn)誤碼。怎么理解?在某一時(shí)刻主機(jī)收到的最遠(yuǎn)的節(jié)點(diǎn)的數(shù)據(jù)會(huì)與大約0.1ms前最近的節(jié)點(diǎn)發(fā)送的數(shù)據(jù)重疊一位,這樣就有誤碼了。也就是RS-485的無誤碼通信的理論最遠(yuǎn)距離在9600bps時(shí)只有大約31KM。假設(shè)每1200米進(jìn)行一次中繼,31228/1200=26.02,也就是說要達(dá)到RS-485的理論極限,需要至少26次中繼延長。
以上可以看出,RS-485通信距離的理論極限與波特率成反比,波特率越高極限距離越短。當(dāng)波特率為115200bps時(shí)(=12×9600),無誤碼傳輸?shù)睦碚摌O限距離為31228/12=2602米。只有大約2.6km!這也難怪RS-485的遠(yuǎn)程通信只說9600時(shí)傳輸多遠(yuǎn),幾乎不提115200bps。
5、其它介質(zhì)和其它總線的理論極限
以上的RS-485距離極限343512米以及31228米(9600bps)與傳輸介質(zhì)無關(guān),就是說用光纖傳輸RS-485最遠(yuǎn)也是這么多,無線也是一樣。
以上的無誤碼RS-485距離極限31228米(9600bps)與協(xié)議無關(guān),就是說用CAN、PROFIBIUS最遠(yuǎn)也是這么多,原理是一樣的。
以上的通信完全失敗的RS-485距離極限343512米(9600bps)與數(shù)據(jù)位數(shù)有關(guān),而且成正比例,就是說用CAN2.0(29位)比CAN1.0(11位)的極限更加大,大一倍以上。
到這里,大家一定會(huì)驚訝RS-485通信距離理論極限之短?;ヂ?lián)網(wǎng)、手機(jī)、GPS是如何傳輸幾乎無限遠(yuǎn)距離的呢?為了實(shí)現(xiàn)遠(yuǎn)程通信,互聯(lián)網(wǎng)和手機(jī)通信幾乎無法做到實(shí)時(shí),而GPS對延時(shí)的計(jì)算及其精確。以后將另外專文討論。
評論