RS-485總線和Modbus通信協議的關系


一、RS-485總線

RS-485總線技術只是規定了接口的電氣標准,並沒有規定RS-485接口的電纜,插件以及通信協議,只是OSI規范中物理層的一個標准,RS-485總線采用差分平衡傳輸方式。由於RS-485總線並沒有規定通信協議,有很多廠家自己推出基於RS-485總線的通信協議。RS-485總線支持點對多點通信模式,而其沒有數據沖突檢測解決機制,所以數據沖突的問題都是依靠主機來解決,通過主機對整個系統進行全方位的控制,避免數據沖突的產生,一般而言,由於必須通過主機進行控制以避免數據沖突,所以由於RS485總線組網,在通信協議中是使用一主多從的通信方式。
1、RS-485通信距離:
RS-485最大的通信距離約為1219m,最大傳輸速率為10Mbps,傳輸速率與傳輸距離成反比,在100KbpS的傳輸速率下,才可以達到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。
2、RS-485支持結點:
RS-485通訊中一個串口可以控制多少個設備的問題是與該485網絡中的電氣特性和協議特性所決定的。 所謂電氣特性就是指的是要保證485網絡中的特征阻抗在允許的范圍內,應該是120歐姆左右,連接的設備越多,特征阻抗越小,所以一般在485網絡中一般都要加120歐姆的終端電阻。

二、Modbus通信協議

Modbus通信協議是由modicon公司推出的,定義了一種數據傳輸的規范。協議采用的是主從通信模式(Master/Slave通信模式)。協議的應用主要有三種:Modbus RTU,Modbus ASCII 和Modbus TCP三種,其中Modbus RTU與Modbus ASCII均為支持RS-485總線的通信協議,Modbus TCP是支持以太網的通信協議,在工業現場一般都是采用Modbus RTU協議,一般而言,大家說的基於串口通信的Modbus通信協議都是指Modbus RTU通信協議。
1、Modbus RTU通信協議格式:
RTU協議中的指令由地址碼(一個字節),功能碼(一個字節),起始地址(兩個字節),數據(N個字節),校驗碼(兩個字節)五個部分組成,其中數據又由數據長度(兩個字節,表示的是寄存器個數,假定內容為M)和數據正文(M乘以2個字節)組成,而RTU協議是采用3.5個字節的空閑時間作為指令的起始和結束。

由於協議中地址碼是一個字節,則理論上modbus最大可支持的結點為1~255個,但協議官網文檔中說明最大只支持247個結點。

三、RS-485與Modbus的關系

RS-485總線只是規定了接口的電氣標准,並沒有規定應用層的通信協議,所以很多公司都是自定義基於RS-485總線的應用層通訊協議。而modbus通信協議則是基於RS-485總線上的標准應用層的協議。

四、參考文檔

http://blog.csdn.net/derryzhang/article/details/5004761
http://www.modbustools.com/modbus.html
http://www.cnblogs.com/dengxiaojun/p/4399232.html
https://github.com/aguegu/stm32-modbus //在github上邊有基於STM32的源代碼,還沒有時間去研究。

by 羊羊得億
2017-11-04 ShenZhen


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM