1 初識CAN通信
說起CAN通信,可能很多人都比較陌生,但實際上我們卻一直在和它打交道。隨着家用汽車的普及,我們開車過程中的每次剎車、每次踩油門,甚至每次的開車門、開車窗,其實都是CAN通信的應用。
【公眾號dotNet工控上位機:thinger_swj】
2 CAN基礎概念
CAN 是Controller Area Network 的縮寫,是ISO國際標准化的串行通信協議。1986年,為適應“減少線束的數量”、“通過多個LAN,進行大量數據的高速通信”的需要,德國電氣商博世公司開發了面向汽車的CAN 通信協議。此后,CAN 通過ISO11898 及ISO11519 進行了標准化,現在在歐洲已是汽車網絡的標准協議。
現在,CAN 的高性能和可靠性已被認同,並被廣泛地應用於工業自動化、船舶、醫療設備、工業設備等方面。CAN總線協議是建立在OSI七層參考模型的基礎上的,但是它的模型結構只有三層,即物理層、數據鏈路層和應用層,CAN總線是一種串行數據通信協議,其通信接口中集成了CAN協議中的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、CRC校驗及優先級判別等工作。
CAN總線有以下特點:
-
多主工作,網絡上任意一個節點均可以在任意時刻主動向網絡上的其他節點發送信息,而不區分主從,通信方式靈活。
-
網絡上的節點信息會分成多種不同的優先級,可以滿足不同的實時性要求。
-
采用非破壞性位仲裁機制,當兩個節點同時向網絡上傳送信息時,優先級低的節點主動停止數據發送,而優先級高的節點則不受影響繼續傳輸。
-
以點對點、一點對多點及全局廣播來進行數據傳輸。
-
直接通信距離最遠可達10KM。
-
通信速率最高可達1MB/S。
-
點數實際可達110個。
-
用短幀結構,每一幀的有效字節數為8個。
-
每幀信息都有CRC校驗及其他檢錯機制,數據出錯率較低。
-
通信介質可采用雙絞線、同軸電纜及光纖,一般采用廉價的雙絞線即可。
-
節點在錯誤嚴重的情況下,具有自動關閉總線的功能,切換與總線之間的聯系,以使總線上的其他操作不受影響、
3 CAN通信與RS-485通信區別
RS-485總線也是現在工業現場應用非常廣泛的總線協議之一,因此我們可以結合RS-485通信來更好地了解CAN通信,具體表現在以下幾方面:
-
通信距離:RS-485總線最大傳輸距離是1.2KM,CAN總線最大傳輸距離是10KM。
-
輸速率:RS-485總線傳輸速率為300-10M bps,CAN總線傳輸速率為5K-1M bps。
-
網絡結構:RS-485總線網絡構成為主從式集散控制系統,CAN總線可以實現點對點、一對多及全局廣播的形式來發送接收數據。
-
網絡容量:RS-485總線網絡的一條通信最大可接255個節點,CAN總線實際節點可達110個或更多。
-
通信方式:RS-485總線網絡很難實現實時通信,CAN采用非破壞性技術,並結合位仲裁機制,可以大大節省總線沖突裁決時間。
-
通信可靠性:RS-485總線網絡的容錯與檢錯能力較差,CAN總線在錯誤嚴重的情況下,具有自動關閉總線的功能。
- 【公眾號dotNet工控上位機:thinger_swj】