CAN總線和485總線都是常見的串行通信協(xié)議,它們在工業(yè)自動化、機器人控制等領域被廣泛應用。本文將從物理層、數據傳輸方式、網絡拓撲結構、通信速率和應用范圍等方面比較CAN總線和485總線的區(qū)別。
485總線是一種半雙工、全雙工異步通信總線,是為了擺脫232總線的通信速率低和通信距離過短而產生的。485總線僅僅規(guī)定了驅動器和接收器的電氣特性,卻沒有規(guī)定接插件、傳輸電纜和應用層通信協(xié)議,所以對于當時來說,是一種非常實惠、而且傳輸的速率相對比較高的總線。
CAN總線是一種雙絞線,具有高抗干擾性,高速率性,更重要的是能夠檢測出來任何的錯誤。CAN總線具有通信能力的實時性、靈活性、傳輸距離遠、可靠性成本低等優(yōu)勢,所以被認為是最有希望的現場總線。
第一,傳輸距離比較,CAN總線和485總線的物理層標準不同。CAN總線采用雙絞線,分為高、低兩根線,CAN總線的信號是差分信號,具有良好的抗干擾能力,最長傳輸距離可達1km。而485總線一般采用雙絞線或者是雙絞線加屏蔽層,它的信號是單向傳輸的,即一個節(jié)點發(fā)送,其他節(jié)點接收,485總線最長傳輸距離可達1200m。
第二,數據傳輸速率比較,CAN總線的最大通信速率為1000Kbps,不算特別大和以太網相比,但也還可以。相比而言,485總線的最大通信速率為10Mbps,是CAN總線的十倍。在通信速率上,485總線顯然是更占優(yōu)勢的。CAN總線的高速通信速率使得它適用于需要高速數據傳輸的應用場合,例如汽車控制系統(tǒng)。而485總線適用于需要長距離傳輸和多節(jié)點通信的應用場合,例如樓宇自動化控制系統(tǒng)。
第三,數據傳輸方式,CAN總線采用基于幀的通信方式,數據被打包成幀進行傳輸,數據傳輸速率可以根據實際需求進行調整。在CAN總線中,所有節(jié)點都可以發(fā)送和接收數據,并且具有優(yōu)先級控制功能。數據傳輸的可靠性很高,因為CAN總線具有冗余校驗和錯誤重傳機制,可以保證數據傳輸的正確性。
485總線采用基于字符的通信方式,它沒有CAN總線的沖突檢測和糾錯機制,因此傳輸速率相對較低,但是可以實現多節(jié)點通信。在485總線中,一個節(jié)點發(fā)送數據時,其他節(jié)點必須處于接收狀態(tài)才能接收到數據,因此在設計網絡拓撲結構時需要注意節(jié)點之間的排列順序。
第四,應用范圍,CAN總線主要應用于高速數據傳輸和實時控制系統(tǒng),例如汽車電子控制單元(ECU)、工業(yè)機器人等。而485總線主要應用于低速數據傳輸和數據采集系統(tǒng),例如溫度、濕度、壓力等傳感器的數據采集。
RS-485總線技術是相較于底層的應用層協(xié)議,作為應用開發(fā)者一般關注的是其應用,你可以將它理解為一種固定的硬件層電氣接口,至于我們在基于485硬件就緒的條件下進行應用開發(fā)只需考慮它的軟件通信協(xié)議,有主流的Modbus RTU通信協(xié)議,也可以自己定義自己的一套協(xié)議標準進行相應傳輸,只要不丟失數據就行;設備想要用485進行通信的話需要借用串口這個中介將MCU的數據傳輸到RS-485總線上再繼續(xù)傳輸,所以在硬件電路板上需要設計一個串口轉485電路,485接口可以通過485雙絞屏蔽線連接外部設備,也可以通過485轉USB連接電腦調試助手(Modbus)都可以。
CAN總線有可靠的錯誤處理和檢錯機制,節(jié)點在錯誤嚴重的情況下具有自動退出總線的功能,還有發(fā)送的信息若遭到破壞后,可自動重發(fā);還可通過標識符的優(yōu)先級進行總線仲裁解決發(fā)送信息的沖突問題,485總線則是通過一主多從的方式避免數據沖突;CAN總線是用于汽車控制系統(tǒng)的標準總線,CAN是規(guī)定了物理層和鏈路層,485總線僅僅規(guī)定了驅動器和接收器的電氣特性,卻沒有規(guī)定接插件、傳輸電纜和應用層通信協(xié)議;CAN和485都屬于半雙工的差分傳輸方式,對線材有一定要求,最好是屏蔽雙絞線,都需要120歐姆的終端匹配電阻解決信號反射的問題。