作者 | 海角
出品 | 焉知
前言:
說到CAN協議,大家都會想起幀結構這類的,很多時候局限于片面認知,沒有一個完整思路,所以我想通過從ISO11898協議出發,深入了解其到電路板實現的全過程。最后匯總幾種常用方案,助你更好地理解和應用這一重要通信標準在實際電路設計中的實現。
概要:
ISO11898標準作為控制器局域網(CAN)通信的重要規范,為眾多領域的電子設備間通信提供了堅實的基礎。本文將帶領讀者深入了解 ISO11898 標準的內容,并結合實際工程中的做法,詳細闡述如何進行基于該標準的電路設計,以實現穩定、高效的電子通信系統。
ISO11898標準的背景和意義
Controller Area Network (CAN) 總線是一種高效的串行通信網絡,最初由德國Bosch公司在1980年代末期開發,旨在滿足汽車行業中對可靠性和實時性的需求。
ISO11898 標準的出現,旨在規范 CAN 總線的物理層和數據鏈路層,確保不同廠家生產的設備能夠相互兼容、穩定通信,為實現復雜電子系統的協同工作提供了有力保障。
ISO11898標準分類與主要內容
ISO 11898-1:數據鏈路層規范
ISO 11898-2:高速物理層規范
ISO 11898-3:低速容錯物理層規范
ISO 11898-4:時間觸發通信協議 (TTP/C)
ISO 11898-5:低功耗模式
ISO 11898-6:CAN FD物理層規范
1、ISO 11898-1:數據鏈路層規范
消息格式:CAN消息分為標準幀和擴展幀。標準幀的標識符長度為11位,擴展幀的標識符長度為29位。每條消息包含多個字段,如仲裁段、控制段、數據段、CRC段、應答段和結束段。
錯誤檢測與處理:CAN總線采用多種錯誤檢測機制,如循環冗余校驗(CRC)、位填充和應答錯誤檢測。一旦檢測到錯誤,節點會發送錯誤標志,并重新發送消息。
仲裁機制:當多個節點同時嘗試發送消息時,CAN總線采用位仲裁機制。較低的標識符值具有更高的優先級,從而確保高優先級的消息優先傳輸。
2、ISO 11898-2:高速物理層規范
傳輸速率:ISO 11898-2規定了CAN總線的高速物理層,適用于傳輸速率高達1 Mbit/s的應用。常見的傳輸速率包括125 kbit/s、250 kbit/s、500 kbit/s和1 Mbit/s。
電氣特性:CAN總線采用差分信號傳輸,兩條信號線分別為CAN_H和CAN_L。差分電壓范圍為0V至5V,邏輯電平定義為顯性位(0V)和隱性位(2.5V)。
3、ISO 11898-3:低速容錯物理層規范
傳輸速率:ISO 11898-3適用于傳輸速率低于125 kbit/s的場合,常見的傳輸速率包括10 kbit/s、20 kbit/s和50 kbit/s。
容錯機制:低速容錯物理層具有更好的抗干擾能力和更長的傳輸距離,適用于惡劣環境下的應用。
4、ISO 11898-4:時間觸發通信協議 (TTP/C)
時間觸發機制:TTP/C協議是一種時間觸發的通信協議,適用于需要嚴格時間同步的應用,如分布式控制系統。
5、ISO 11898-5:低功耗模式
低功耗設計:ISO 11898-5規范了CAN總線的低功耗模式,適用于電池供電或低功耗應用。低功耗模式下,節點可以進入休眠狀態,降低功耗。
6、ISO 11898-6:CAN FD物理層規范
靈活數據速率:CAN FD(Flexible Data-rate)協議允許在同一網絡中使用不同的數據速率,提高了通信效率和帶寬。CAN FD支持的最高數據速率為5 Mbit/s。
CAN總線的基本原理
CAN總線采用多主結構,所有節點都可以主動發送消息。節點之間通過共享總線進行通信,無需中央控制器。這種結構使得CAN總線具有高度的可靠性和靈活性。
物理層規范
它定義了 CAN 總線的物理介質特性,包括傳輸介質(如雙絞線)的電氣特性。例如,對于高速 CAN(最高速率可達 1Mbps),規定了總線信號的電平范圍,隱性電平(邏輯 1)和顯性電平(邏輯 0)的具體電壓值。在高速 CAN 中,隱性電平通常為 2.5V 左右,顯性電平在 0 - 1.5V 之間,這種電平的定義使得總線上的節點能夠準確地識別 “0” 和 “1” 信號。
同時,該標準還規定了總線的拓撲結構(如線性拓撲)和終端匹配方式。終端匹配電阻的作用是為了減少信號反射,確保信號傳輸的質量。一般在總線的兩端會各接一個 120Ω 左右的終端匹配電阻。
數據鏈路層規范
規定了 CAN 數據幀的格式。CAN 數據幀由幀起始、仲裁場、控制場、數據場、CRC 場、ACK 場和幀結束等部分組成。仲裁場用于確定數據優先級,當多個節點同時向總線發送數據時,通過對仲裁場的比較,優先級高的節點的數據可以優先發送。例如,在汽車的電子控制系統中,如果發動機控制單元和車身穩定控制單元同時需要發送數據,根據其數據幀仲裁場的設置,優先級高的單元(如發動機控制單元可能因為其對車輛運行的關鍵作用而被賦予較高優先級)的數據會先在總線上傳輸。
數據鏈路層還定義了錯誤檢測和處理機制。例如,通過循環冗余校驗(CRC)字段來檢測數據傳輸過程中的錯誤。如果接收節點計算的 CRC 值與發送節點發送的 CRC 值不一致,則表明數據傳輸出現錯誤,接收節點會丟棄該數據幀,并可以根據情況要求發送節點重新發送數據。
1、CAN消息分為標準幀和擴展幀
標準幀:標識符長度為11位,最大數據長度為8字節。
擴展幀:標識符長度為29位,最大數據長度為8字節。
每條消息包含多個字段:
起始位:表示消息的開始。
仲裁段:包含標識符和遠程傳輸請求位(RTR)。
控制段:包含數據長度碼(DLC)。
數據段:包含實際數據。
CRC段:包含循環冗余校驗碼。
應答段:包含應答位(ACK)和應答分隔位(ACK delimiter)。
結束段:表示消息的結束。
2、仲裁機制
當多個節點同時嘗試發送消息時,CAN總線采用位仲裁機制。較低的標識符值具有更高的優先級,從而確保高優先級的消息優先傳輸。位仲裁機制通過逐位比較標識符來實現,直到找到不同的位為止。
3、錯誤檢測與處理
CAN總線采用多種錯誤檢測機制,如循環冗余校驗(CRC)、位填充和應答錯誤檢測。一旦檢測到錯誤,節點會發送錯誤標志,并重新發送消息。常見的錯誤類型包括位錯誤、填充錯誤、CRC錯誤和應答錯誤。
4、重同步
位重同步是指在傳輸過程中,節點通過調整時鐘頻率來保持同步。位重同步機制確保了數據的正確傳輸,即使在網絡中存在時鐘偏差的情況下也能正常工作。
需求分析與重要參數
傳輸速率:根據應用需求選擇合適的傳輸速率,如125 kbit/s、250 kbit/s、500 kbit/s或1 Mbit/s。
可靠性:確保電路具有高可靠性和抗干擾能力。
功耗:對于電池供電或低功耗應用,選擇低功耗的CAN芯片。
兼容性:選擇與 ISO11898 標準兼容的微控制器,確保能夠正確實現 CAN 通信功能。
成本:在滿足性能要求的前提下,盡量降低成本。
開發工具和生態系統:選擇具有豐富開發工具和良好生態系統的微控制器,便于開發和調試。
選擇CAN芯片
CAN控制器:常見的CAN控制器芯片包括NXP的MCP2515、STM32的內置CAN控制器等。這些芯片提供了基本的CAN通信功能,如消息過濾、緩沖、錯誤檢測等。
CAN收發器:常見的CAN收發器芯片包括NXP的TJA1050、Texas Instruments的SN65HVD230等。這些芯片將CAN控制器的邏輯信號轉換為物理層信號,確保信號的完整性和可靠性。
集成CAN模塊:集成CAN模塊將CAN控制器和收發器集成在一個芯片中,簡化設計和降低成本。常見的集成CAN模塊包括Microchip的MCP2562FD、Texas Instruments的TCAN1042-Q1等。
硬件設計
電源設計:確保電源的穩定性和可靠性。使用穩壓器和濾波電容來穩定電源電壓,防止電源波動影響電路性能。
信號完整性:信號線的布線應盡量短直,避免信號反射和干擾。使用終端電阻(通常為120Ω)來匹配傳輸線的特性阻抗,減少信號反射。
濾波與保護:使用濾波器和保護電路來提高系統的抗干擾能力。常見的濾波器包括RC濾波器和LC濾波器,保護電路包括TVS二極管和保險絲。
軟件設計
初始化:初始化CAN控制器,設置傳輸速率、工作模式和中斷使能。例如,在使用STM32微控制器時,可以通過HAL庫函數來初始化CAN控制器。
消息發送與接收:編寫代碼實現消息的發送和接收。發送消息時,將數據寫入CAN控制器的發送緩沖區,并啟動發送過程。接收消息時,讀取CAN控制器的接收緩沖區,并處理接收到的數據。
錯誤處理:在軟件中實現錯誤檢測和處理。常見的錯誤類型包括位錯誤、填充錯誤、CRC錯誤和應答錯誤。一旦檢測到錯誤,可以采取相應的措施,如重新發送消息或重啟CAN控制器。
測試與調試
測試工具:常用的CAN總線測試工具包括CAN分析儀和示波器。CAN分析儀可以捕獲和解析CAN消息,幫助調試通信問題。示波器可以觀察信號波形,檢查信號質量和時序關系。
調試技巧:在調試CAN電路時,可以使用以下技巧:
逐步調試:逐步檢查每個環節,確保每個部分都能正常工作。
使用示波器:使用示波器觀察信號波形,檢查信號質量和時序關系。
檢查電源:確保電源電壓穩定,沒有波動。
檢查接地:確保電路的接地良好,沒有噪聲干擾。
檢查終端電阻:確保終端電阻正確安裝,沒有損壞。
常用解決方案與應用案例
1、汽車電子控制系統
系統架構:汽車電子控制系統由多個 ECU 組成,包括發動機控制單元(ECU)、變速器控制單元(TCU)、車身控制單元(BCU)、防抱死制動系統(ABS)等,這些 ECU 通過 CAN 總線進行通信。例如,發動機 ECU 將發動機的轉速、溫度、油壓等實時數據發送給 BCU,BCU 根據這些信息控制儀表盤上的指示燈和顯示屏,向駕駛員展示車輛狀態信息。
電路設計細節
微控制器和 CAN 收發器選擇:在發動機 ECU 中,選擇高性能的 MCU(如英飛凌的 TC275),因其具有強大的處理能力和豐富的外設資源,能夠同時處理多個傳感器的數據采集和 CAN 通信任務。與之搭配的 CAN 收發器(如 TJA1040),其具有良好的抗干擾能力,適合汽車內部復雜的電磁環境。
總線保護電路:在 CAN 總線接口處,安裝 TVS 二極管(如 SMBJ6.5CA)用于過壓保護,防止車輛在啟動、停止過程中產生的浪涌電壓對電路造成損壞。同時,串聯 PPTC(如 1206L050)進行過流保護,確保在總線短路時保護其他設備。靜電保護采用 ESD 保護器件(如 PESD2CAN),防止靜電對電路的損害。
電源管理:采用線性穩壓電源芯片(如 LM2940)為 MCU 和 CAN 收發器提供穩定的電源。為了防止不同電子設備之間的電源干擾,在部分關鍵 ECU 的電源輸入處采用隔離電源模塊(如 B0505S - 1W)進行電源隔離。在車輛處于停車狀態且某些 ECU 不需要工作時,通過軟件控制將 MCU 和 CAN 收發器設置為低功耗模式,以降低車輛電瓶的耗電量。
測試與驗證:在汽車電子控制系統開發過程中,進行功能測試、可靠性測試和電磁兼容性(EMC)測試。功能測試主要檢查各個 ECU 之間的 CAN 通信是否正常,數據傳輸是否準確。可靠性測試包括高溫、低溫、振動等環境試驗,模擬汽車在各種惡劣路況和氣候條件下的工作情況,確保電路在極端環境下仍能正常通信。EMC 測試用于評估電路對電磁干擾的抵抗能力和自身產生電磁干擾的程度,確保系統符合汽車行業的電磁兼容性標準。
2、工業自動化生產線
系統需求分析:工業自動化生產線需要對各種生產設備進行實時監控和控制,CAN 總線通信需要滿足長距離、高可靠性和抗干擾性的要求。例如,在一條自動化包裝生產線上,需要將包裝機、輸送機、貼標機等設備的狀態信息通過 CAN 總線傳輸到中央控制系統,同時中央控制系統要能夠向這些設備發送控制指令。
電路設計方案
微控制器和 CAN 收發器選型:根據生產線的復雜程度和通信需求,選擇合適的 MCU(如西門子的 S7 - 1200 系列 PLC 中的 CPU 模塊),其具備強大的工業通信能力和豐富的控制功能。搭配高性能的 CAN 收發器(如 SN65HVD234),該收發器具有較遠的傳輸距離(可達 10km 以上)和較強的抗干擾能力,能夠滿足長距離通信和復雜工業環境的要求。
總線拓撲結構設計:考慮生產線的布局和設備分布情況,采用線性拓撲結構為主的總線設計。在總線上適當位置設置中繼器,用于增強信號強度和延長通信距離。例如,在距離較長的輸送機兩端設置中繼器,確保 CAN 信號能夠穩定傳輸。
保護電路和電源管理:在總線保護電路方面,采用 TVS 二極管(如 P6KE18CA)進行過壓保護,PPTC(如 250V2A)進行過流保護,同時在每個設備的 CAN 接口處安裝 ESD 保護器件(如 USBLC6 - 2SC6)。電源管理上,使用開關穩壓電源為設備提供穩定的電源,對于需要電源隔離的設備,采用隔離電源模塊(如 ISO - EM - 3K3 - S)。通過合理的電源管理策略,如分時供電和設備休眠控制,降低整個生產線的能耗。
實際應用效果:通過采用上述 CAN 通信電路設計方案,自動化生產線的設備之間通信更加穩定可靠,減少了因通信故障導致的生產中斷次數。長距離通信能力使得生產線的布局更加靈活,能夠適應不同規模的生產場地。同時,良好的抗干擾能力和電源管理措施,提高了整個生產線的工作效率和能源利用率。
①標準文檔
-
ISO 11898-1:2015 - Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signaling
-
ISO 11898-2:2016 - Road vehicles — Controller area network (CAN) — Part 2: High-speed medium access unit
-
ISO 11898-3:2006 - Road vehicles — Controller area network (CAN) — Part 3: Low-speed, fault-tolerant, passive medium access unit
-
ISO 11898-4:2004 - Road vehicles — Controller area network (CAN) — Part 4: Time-triggered communication
-
ISO 11898-5:2007 - Road vehicles — Controller area network (CAN) — Part 5: Low-power mode