
控制區域網絡 (CAN) 總線是一種串行通信協議,允許設備可靠、高效地交換數據。 它廣泛應用于車輛,像神經系統一樣工作,連接車輛中的 ECU。
CAN 總線最初是博世在 1980 年代為汽車應用而設計的。 它是一種多主機、多從機、半雙工和容錯協議,非常適合汽車應用的要求。 它簡單、低成本、可靠,可用于惡劣環境。 CAN 總線為車輛中的所有 ECU 提供了一個入口點,這使得連接和診斷變得容易。
CAN 總線數據可以提供對所連接設備的性能和狀態的寶貴見解。 然而,由于高數據速率、低帶寬和多變的網絡條件,收集和處理 CAN 總線數據可能具有挑戰性。 克服這些挑戰的一種可能解決方案是使用 MQTT,即使在網絡條件較差的情況下也能將數據從汽車及時傳輸到云端。
“CAN 總線為車輛中的所有 ECU 提供了一個入口點,這使得連接和診斷變得容易。”

CAN總線簡史
CAN 總線的主要目的是為汽車應用建立有效的通信系統,特別是為了降低車輛線束的復雜性。
1986 年,博世推出了他們最初的 CAN 協議,由于其可靠性和穩健性,該協議在汽車制造商中迅速獲得了發展勢頭。 到 1993 年,它成為 ISO-11898 下的國際標準。 總結協議的演變:
? 1991 年:梅賽德斯-奔馳成為首批在其 W140 S 級車型中實施 CAN 總線的汽車制造商之一。
? 2004 年:推出 CAN FD(靈活數據速率),提供比傳統 CAN 網絡更高的數據速率和更大的有效載荷。
? 2015 年:采用 ISO-16845:2015 作為實現經典 CAN 和 CAN FD 協議的設備的一致性測試計劃。
隨著時間的推移,除了汽車應用,其他行業也開始采用這種多功能網絡協議。 今天,它用于工業自動化系統 (CANopen) 和海洋電子設備 (NMEA 2000)。 它的廣泛采用主要歸功于它即使在惡劣條件下也能可靠運行,同時保持低成本實施要求。
CAN 總線如何工作?
CAN 總線是一種分散式通信協議。 其分散式方法使其成為可靠性和實時性能至關重要的汽車和工業系統應用的理想選擇。
在 CAN 網絡中,所有節點都通過雙絞線或光纖電纜連接。 每個節點都有其微控制器負責處理傳入消息和發送傳出消息。 數據由共享總線上的一個節點廣播,允許所有其他節點接收它。 溝通過程的主要階段是:
1.仲裁:為了防止多個節點嘗試同時傳輸時發生沖突,CAN 使用基于消息優先級的仲裁過程。 消息的標識符值越低,其優先級越高。
2.錯誤檢測:內置錯誤檢測機制可確保 CAN 網絡中的數據完整性。 這些包括循環冗余校驗 (CRC)、幀校驗序列 (FCS) 和來自接收節點的確認位。
3.故障限制:如果任何節點在傳輸過程中檢測到錯誤或故障,它將進入“錯誤被動”狀態,直到恢復正常運行。 這可以防止錯誤的傳輸影響整個系統的功能。
這種功能組合使 CAN 總線能夠保持高水平的效率,同時確保復雜系統(如車輛或工廠自動化設備)中不同組件之間的可靠通信。
CAN 協議中的消息結構
CAN 總線系統中的消息結構對于設備之間的高效通信至關重要。 該協議使用由多個字段組成的數據幀格式,包括標識符、控制字段、數據字段和錯誤檢測機制。
? 標識符:這個唯一的值決定了網絡上每條消息的優先級。 在標準的 11 位標識符 (CAN 2.0A) 中,有多達 2048 個不同的優先級可用。 擴展的 29 位標識符 (CAN 2.0B) 提供了更多選項,具有超過十億個不同的值。
? 數據長度代碼 (DLC):位于控制字段內,此代碼指定數據字段中存在的字節數——范圍從零到八個字節。
? 數據字段:包含在字節大小的段中跨節點傳輸的實際信息。
? 循環冗余校驗 (CRC):一種內置的錯誤檢測機制,通過檢測傳輸錯誤并在必要時請求重傳來確保可靠的通信。
? 確認槽:接收節點用來確認消息的成功接收或指示需要重傳的錯誤的單個位。
? 錯誤幀:CAN 消息傳遞的可選部分,允許節點在檢測到自身傳輸問題或從網絡上其他設備接收到的消息時發出信號。
CAN 的類型
以下是 CAN 的三種主要類型:
#1:低速 CAN
低速 CAN,也稱為容錯或 ISO 11898-3,以高達 125 kbps 的速度運行。 它專為不太關鍵的系統而設計,例如車身控制模塊、門鎖、窗戶控制等,在這些系統中數據傳輸速度并不重要。 它的主要特點是即使在總線中的一根電線發生故障時也能繼續運行。
#2:高速 CAN
高速 CAN 或 ISO 11898-2 可以達到高達 1 Mbps 的速度。 與低速網絡相比,這種類型的網絡具有更快的數據傳輸速率,因此適用于對時間更敏感的應用,例如發動機管理系統和電子制動系統。 但是,它缺乏低速網絡中的容錯能力。
#3:CAN FD(靈活數據速率)
CAN FD 由 Bosch 于 2012 年推出,是高速網絡的擴展,具有更高的數據速率(高達 5 Mbps),同時保持與現有高速設備的向后兼容性。 該技術的主要優勢在于它能夠比傳統 CAN 更有效地傳輸更大的有效載荷,使其成為電子系統日益復雜的現代車輛的理想選擇。
CAN總線:優勢與挑戰
優點
CAN 總線數據可以為車輛的性能、健康狀況和行為提供有價值的見解。 將 CAN 總線數據收集到云端是通過大數據分析發揮車輛數據潛力的有效方式。
通過將機器學習、人工智能或其他分析工具應用于從大量車輛收集的數據,汽車制造商可以獲得有價值的見解并利用它們來優化車輛性能。
? 故障檢測、故障排除和預測:通過分析 CAN 總線數據,可以識別來自設備和傳感器的任何異常或錯誤信號。 這可以幫助診斷問題的根本原因并在它導致更多損壞或安全問題之前解決它。 制造商還可以通過將收集的數據輸入模型來訓練機器學習模型來預測故障。
? 可視化車輛數據:利用收集到的數據,用戶可以開發一個系統來在儀表板上顯示聚合數據,允許用戶過濾、排序和比較不同的車輛和指標。 儀表板還根據數據分析提供警報和建議。 該系統使用戶能夠深入了解他們的表現。
? 車路協調:將采集到的數據與道路基礎設施數據一起計算,構建車路協調系統。
人工智能時代,數據是最有價值的財產。 通過將數據從汽車收集到云端,然后將其分發到各種數據基礎設施(如數據庫和數據湖),用戶可以將數據用于幾乎所有類型的應用程序。
挑戰
在車輛本地收集 CAN 總線數據已經相當成熟。 然而,由于高數據速率、低帶寬和多變的網絡條件,收集和處理 CAN 總線數據并將洞察力實時傳輸到云端可能具有挑戰性。 因此,將所有 CAN 總線數據傳輸到云端進行處理是不切實際的。 相反,可以在邊緣側本地收集和處理 CAN 總線數據,以減少數據量并將洞察力實時傳輸到云端。
您至少需要兩個組件來構建這樣的解決方案:
1.邊緣計算引擎:邊緣計算引擎可以只采集需要的CAN總線信號,靈活處理并實時觸發MQTT傳輸動作。
2.云端MQTT代理:MQTT代理可以幫助將處理后的CAN總線數據實時傳輸到云端。
作者:EMQ科技股份有限公司