RS-485、以太網和CAN三種組網方式的比較
RS-485、以太網和CAN三種組網方式的比較
前言:
由于系統的數據流向不僅僅局限于板級內,除了板級內的芯片間通信(spi、iic等),一般情況下均會涉及到系統級的通信(分布式系統),常見的通信拓撲有一對一、一對多、多對多結構。而組網則是針對于一對多、多對多這樣的拓撲,組網所使用的協議棧也就是該拓撲的軟件實現,實現各個系統間的通信。
1. 常見的組網通信方式
在通信模型中,最基本的物理層和數據鏈路層是各個通信方式的共同之處,區別在于物理層的模擬信號不一樣以及鏈路層的數據幀格式不一致。
那什么是物理層和數據鏈路層?
由于計算機只認識0/1這樣的數字信號,而在介質中傳播信號時又是模擬信號(比如差分信號),所以既有數模轉換的電路,又有模擬信號的傳輸介質,這一層稱為物理層。
有了物理層,顯然還不夠,需要將一段0/1序列進行打包(稱為數據幀),同時具有錯誤勘察等功能。不同的通信方式的數據幀的格式不盡相同,所以需要相對應的控制器來實現數據幀的識別,這一層稱為數據鏈路層。
1.1 以太網
硬件需求:
分為局域網和廣域網,局域網內的ip處于同一個網段,采用集線器或者交換機和網線進行連接。
局域網和廣域網之間的通信使用交換機來進行連接。
網線、集線器屬于物理層設備;交換機屬于數據鏈路層設備;路由器屬于網絡層設備。
軟件需求:
TCP/IP協議棧。
1.2 CAN
硬件需求:
雙絞線、收發器和控制器。CAN總線標準只規定了物理層和數據鏈路層,需要用戶自定義應用層。
軟件需求:
應用層的Canopen協議棧。
1.3 RS-485
硬件需求:
雙絞線、收發器和控制器,485是一種差分信號的電氣標準,數據鏈路層是串口控制器。
軟件需求:
可以自定義應用層協議來實現組網,也可以使用Modbus協議棧。
2.485和CAN以及以太網的異同
2.1 相同點
都可以用來組網,實現多個設備的互聯;
都采用差分信號進行傳輸;
2.2 不同點
通信方式上:
485為半雙工;CAN為半雙工;Ethernet為全雙工。
距離與速度:
CAN:通信距離最遠可達10KM(速率低于5Kbps)速率可達到1Mbps(通信距離小于40M)。
485:RS-485的數據最高傳輸速率為10Mbps。
以太網:在不接中繼器、交換機和情況下,網線最多傳輸100米,速率100Mbps。
硬件成本:
485的硬件成本最低,CAN次之,以太網的成本最高(交換機價格貴)。
安全性和可靠性:
485的一個從站異常,會影響下一個從站的通信;CAN的一個從站異常,可自動退出,不影響其他從站;Etherner有超時重傳機制,可靠但是不能保證實時性。
總線沖突的解決方式:
485:一主多從,主站輪詢、一問一答,采用主機仲裁(應用層上實現,效率低)。
CAN:總線控制器實現總線仲裁(數據鏈路層實現,效率高)
Ethernet:再一次發送,直至不再沖突。(具有不確定性)
3 總結
存在即合理,任何一種東西的存在,都有它的與缺點。在實際項目開發中,具體選擇哪一種總線來進行系統間的通信,需要考慮使用的條件,包括通信速度、安全性、可靠性、價格等。
光纖收發器|工業交換機|PCM復用設備|串口光端機|串口服務器