CAN 總線結構
CAN 總線系統的結構 [6] 設計用于促進多個節點之間的高效通信。最基本的 CAN 總線系統由兩條線路組成,即 CAN-高(或 CANH)和 CAN-低(或 CANL),連接到系統中的所有節點。這兩條線路傳輸代表傳輸數據的差分信號。
圖 2.CAN 總線結構
系統中的每個節點都有一個收發器(或 CAN 收發器)和一個控制器(或 CAN 控制器),前者負責與總線線路連接,后者負責處理數據成幀和錯誤檢查。CAN 收發器負責將 CAN 控制器的數字信號轉換為總線上的差分信號,反之亦然。控制器則負責創建包含待傳輸數據的幀,并檢查接收到的幀是否有誤。
節點
在 CAN 總線系統中,節點指的是與總線相連并能發送和接收報文的任何設備。每個節點都有自己的控制器和收發器,以便與總線連接。節點可以是任何設備,從簡單的傳感器或執行器到復雜的設備,如發動機控制單元(ECU)。
只要總線空閑,CAN 總線系統中的每個節點都會傳輸數據。數據以幀的形式發送,幀中包含數據以及表示信息內容的標識符。總線上的所有其他節點都會收到該幀,并根據標識符值決定是否接受該幀。
CAN 總線系統中的節點還負責錯誤檢測。每個節點都會使用多種方法檢查接收到的幀是否存在錯誤,包括位監控和幀檢查序列。如果一個節點檢測到錯誤,它就會傳輸一個錯誤幀,提醒所有其他節點注意該錯誤。
總線線路
在 CAN 總線系統中,總線線路是節點之間傳輸數據的物理介質。有兩條總線線路,即 CAN-High 和 CAN-Low,它們攜帶互補信號。這些總線通常被絞合在一起,形成一對雙絞線,這有助于減少電磁干擾和提高信號完整性。
CAN 總線系統中使用的差分信號具有以下幾個優點:
共模噪聲:確保總線線路接收到的任何噪聲對兩條線路的影響相同,從而提高抗噪聲能力。由于接收節點只關心兩條線路上的電壓差,因此這種共模噪聲被有效抵消。
減少磁場:互補信號的使用意味著一條線路上的電流與另一條線路上的電流相等且相反。這就減少了電流產生的凈磁場,進一步降低了電磁干擾。
總線線路的兩端使用電阻器(通常為 120 歐姆)進行端接,以匹配線路的特性阻抗。這種端接對于防止信號反射至關重要,信號反射會導致數據傳輸錯誤。在某些情況下,還可使用稱為偏置電阻器的附加電阻器,以確保總線線路在無節點傳輸時處于已知狀態。
總線線路的長度和與之相連的節點數量會影響 CAN 總線系統的性能。較長的總線線路和較多的節點會導致電容增加,從而減慢信號的上升和下降時間。這反過來又會限制總線上可實現的最大數據傳輸速率。為緩解這一問題,CAN 總線規范定義了不同的數據傳輸速率和最大總線長度,使系統設計人員能夠根據具體應用選擇合適的組合。
CAN 協議
CAN 總線是公認的數據通信國際標準。CAN 總線通信系統使用多種協議 [7],每種協議都有自己的特點和功能。這些協議定義了數據傳輸規則,包括幀格式、數據速率和錯誤處理。要為特定應用選擇合適的協議,了解這些協議之間的差異至關重要。
使用最廣泛的 CAN 總線協議是 CAN 2.0A、CAN 2.0B(也稱為傳統 CAN)和 CAN FD(靈活數據速率)。這些協議都建立在 CAN 總線系統的基本原理之上,并增加了新的特性和功能,以滿足汽車和工業應用不斷發展的需求。
CAN 協議 2.0A 和 2.0B
經典 CAN(即 CAN 2.0A 和 CAN 2.0B)是兩個密切相關的協議,主要區別在于其標識符字段的長度。CAN 2.0A 也稱為標準 CAN,使用 11 位標識符,而 CAN 2.0B 或擴展 CAN 使用 29 位標識符。標識符長度上的這種差異(如圖 1 所示)對數據傳輸有若干影響。下面我們來談談幾個基本影響:
適用于復雜系統:CAN 2.0B 中較長的標識符允許使用更多的唯一報文標識符,這在具有許多節點和數據類型的復雜系統中非常有用。不過,較長的標識符也會增加幀的長度,從而降低總線上可實現的最大數據傳輸速率。
更精細的優先級:CAN 2.0B 中更長的標識符為報文的優先級排序提供了更多機會。由于較低的標識符值在 CAN 總線系統中具有最高的優先級,CAN 2.0B 標識符中的額外位允許對報文優先級進行更精細的控制。
靈活性:在 CAN 2.0A 和 CAN 2.0B 中使用不同長度的標識符會影響設備之間的兼容性。雖然 CAN 2.0B 設備通常可以與 CAN 2.0A 設備進行通信,但情況并非總是如此。這是因為 CAN 2.0B 幀中較長的標識符可能會導致設計上不適合處理這些標識符的 CAN 2.0A 設備出錯。
圖 3.CAN FD 數據框圖
CAN FD(靈活數據速率)是 CAN 總線協議系列(2012 年)的最新成員,旨在解決 CAN 2.0A 和 CAN 2.0B 的一些局限性。CAN FD 的主要優點是能夠支持更高的數據傳輸速率和更大的數據有效載荷,因此非常適合需要更快通信速度和更大數據吞吐量的現代汽車和工業應用。
CAN FD 通過對 CAN 總線協議引入兩個關鍵變化來實現這些改進:
可變數據速率:它允許在單幀傳輸過程中采用可變數據速率。這意味著,在節點爭奪總線訪問權的仲裁階段,可以采用較低的數據傳輸速率,以確保通信的穩健性,而數據有效載荷則以較高的數據傳輸速率傳輸,以提高吞吐量。這在電噪聲環境中尤其有用,因為較低的數據傳輸速率可以提供更好的抗噪能力。
靈活的數據字段大小:CAN FD 將幀中數據字段的最大大小從 CAN 2.0 的 8 字節增加到 64 字節。更大的數據有效載荷可以提高數據傳輸效率,因為傳輸相同數量的信息所需的幀數更少。這對于需要快速傳輸大量數據(如高分辨率傳感器數據或軟件更新)的應用尤其有利。
向后兼容性:盡管有這些改進,CAN FD 仍保持了與 CAN 2.0A 和 CAN 2.0B 設備的向后兼容性。這是通過使用與 CAN 2.0B 相同的幀格式實現的,但增加了一個新的控制字段,用于指示該幀是 CAN FD 幀還是標準 CAN 2.0B 幀。這樣,CAN FD 設備就可以與 CAN 2.0A 和 CAN 2.0B 設備在同一總線上共存,但 CAN FD 的更高數據傳輸速率和更大數據有效載荷只有在與其他 CAN FD 設備通信時才能使用。
CAN 總線變體
CAN 總線的物理層和數據鏈路層功能與 RS-485 類似。必須認識到,有兩種廣泛使用的 CAN 總線規格。一聽到 "CAN 總線 "一詞,幾乎每個人都會立即想到 ISO 11898-2 標準,也稱為高速 CAN。CAN 協議有兩種變體,即高速 CAN 和低速 CAN,每種變體都是為了滿足特定的通信要求而設計的。
高速 CAN 適用于需要實時和快速數據交換的用途。最大數據傳輸速率可達 1 Mbps。高速 CAN 的典型電壓值確保了通信的可靠性,隱性狀態下的電壓值為 2.5V,顯性狀態下的電壓值為 3.5V。這一點在嘈雜的工業和汽車環境中尤為重要。
圖 4.高速 CAN 總線
相反,CAN 總線標準的容錯和低速變體是 ISO 11898-3 或低速 CAN。它適用于對數據傳輸速率要求較低的系統,最高可達 125 Kbps。低速 CAN 采用與高速 CAN 相同的電壓電平,即隱性狀態約為 2.5V,顯性狀態約為 3.5V。與高速 CAN 不同的是,這里的電阻分散在每個節點上,而不是在總線的起點和終點使用兩個終端電阻。
此外,低速容錯 CAN 可以有多種不同的設計方式,例如星形總線、類似高速 CAN 的線性總線或由線性總線連接的多個星形總線。
圖 5.低速 CAN 總線
CAN 總線在汽車中的應用
CAN 總線以其高效性和靈活性成為現代汽車工業不可或缺的一部分。它用于促進汽車內各種電子控制單元(ECU)和傳感器之間的通信,實現眾多子系統的無縫集成。CAN 總線在汽車系統中的一些主要應用包括發動機控制、安全系統、車身控制和信息娛樂系統。通過使用通用通信協議,CAN 總線簡化了布線,降低了汽車電子結構的復雜性,從而減輕了重量,降低了制造成本,并使診斷更加容易。
發動機控制
CAN 總線在汽車系統中的主要應用之一是發動機控制。發動機控制模塊(ECM)負責管理發動機運行的各個方面,如燃油噴射、點火正時和排放控制。為了執行這些任務,ECM 需要接收來自節氣門位置傳感器、氧傳感器和曲軸位置傳感器等各種傳感器的數據,并向噴油器和點火線圈等執行器發送指令。
CAN 總線在促進 ECM 與其他設備之間的通信方面發揮著至關重要的作用。通過使用單一總線在 ECM 與各種傳感器和執行器之間傳輸數據,CAN 總線簡化了布線并減少了所需連接的數量。這不僅減輕了發動機控制系統的重量和復雜性,還提高了其可靠性和可維護性。
此外,CAN 總線的使用允許對發動機的運行進行實時監控。這使得 ECM 能夠根據從傳感器接收到的數據對發動機參數進行快速調整,從而確保最佳的性能、燃油效率和排放控制。此外,CAN 總線通信可實現先進的診斷功能,使技術人員能夠快速識別和解決發動機控制系統的問題。
安全系統
CAN 總線通信在車輛安全系統的各種操作中發揮著至關重要的作用。這些系統依靠傳感器、執行器和控制模塊之間有效的數據交換來確保車內人員和其他道路使用者的安全。使用 CAN 總線的一些關鍵安全系統包括防抱死制動系統 (ABS)、電子穩定性控制系統 (ESC) 和高級駕駛員輔助系統 (ADAS)。
防抱死制動系統 (ABS) 的設計目的是防止在重制動時車輪抱死,否則會導致側滑和失控。防抱死制動系統控制模塊從車輪速度傳感器接收數據,并利用這些信息調節施加到每個車輪上的制動力。通過 CAN 總線傳輸這些數據,ABS 控制模塊可以快速、準確地調節制動力,確保最佳的制動性能和車輛穩定性。
電子穩定性控制系統(ESC)是另一個依靠 CAN 總線進行通信的安全系統。ESC 的設計目的是通過選擇性制動和調整發動機扭矩來檢測和糾正牽引力損失或車輛側滑。ESC 控制模塊從轉向角傳感器、偏航率傳感器和車輪速度傳感器等各種傳感器接收數據,并利用這些信息確定適當的糾正措施。CAN 總線實現了 ESC 控制模塊與其他設備之間的快速通信,使系統能夠對不斷變化的條件做出快速反應,并保持車輛穩定性。
高級駕駛員輔助系統(ADAS)包括自適應巡航控制、車道偏離警告和防碰撞系統等多種安全功能。這些系統依靠攝像頭、雷達和激光雷達等各種傳感器的數據來監控車輛周圍的環境,并為駕駛員提供幫助。CAN 總線對于在 ADAS 控制模塊和其他設備之間傳輸這些數據至關重要,可實現車輛安全系統的實時決策和控制。
通過促進這些系統之間的有效通信,CAN 總線有助于提高車輛的整體安全性,降低事故發生的可能性。
CAN 總線在工業領域的應用
CAN 總線除了在汽車系統中得到廣泛應用外,在各種工業環境中也有應用。它的堅固性、可靠性和靈活性使其成為工業自動化和控制系統中設備間通信的理想選擇。CAN 總線的一些主要工業應用包括機器控制、傳感器網絡和分布式控制系統。
機器控制
機器控制是工業自動化的一個重要方面,它需要電機、執行器和傳感器等各種設備之間的精確協調,以確保高效準確的運行。CAN 總線可實現設備間的實時通信,并允許執行復雜的控制算法,因此非常適合實現這一目的。
在典型的機器控制應用中,中央控制模塊(通常稱為可編程邏輯控制器 (PLC))負責協調各種設備的運行。PLC 接收來自位置傳感器、溫度傳感器和壓力傳感器等傳感器的數據,并利用這些信息確定電機、閥門和電磁閥等執行器的適當操作。
CAN 總線促進了 PLC 與各種設備之間的通信,從而實現了快速數據交換和實時控制。通過使用單一總線進行通信,CAN 總線簡化了布線,降低了機器控制系統的復雜性,從而降低了安裝和維護成本。此外,CAN 總線精確的錯誤檢測和處理能力確保了可靠的通信,即使在電氣噪聲較大的工業環境中也是如此。
在機器控制應用中使用 CAN 總線還能實現分布式控制和遠程監控等高級功能。分布式控制實現了控制任務的分散化,系統中的每個設備都能根據本地數據做出決策。這可以提高系統的整體性能和靈活性,并減輕中央控制模塊的負擔。另一方面,遠程監控使操作員能夠從遠程位置監控系統,提高效率并減少停機時間。
2025-06-08 21:08
2025-06-07 15:24
2025-06-07 15:22
2025-06-06 13:54
2025-06-06 13:47
2025-06-01 18:37
2025-05-31 19:52
2025-05-31 19:49
2025-05-26 12:52
2025-05-26 09:00