汽車CAN總線的開發與測試系列-開篇

2021-01-16 IND4汽車人

作者根據自己的工作經驗,準備寫一個關於汽車CAN總線的系列文章。該系列文章將CAN總線在汽車電子領域的應用做一個簡單的梳理,內容包括測試和開發兩個主要方面。測試方面,主要講解關於汽車CAN總線的測試項目、標準協議、測試原理和評判依據,分享一些測試過程中開發的工具,介紹下CANoe的使用和CAPL腳本;開發方面,主要講解在單片機(以STM32F407為主)上進行CAN硬體相關的配置和報文收發、Busoff相關的處理。本系列文章,從底層硬體到CAN協議的應用,內容不少,希望自己能堅持下來,為促進國家汽車行業的發展盡一份綿薄之力吧。

點擊文末閱讀原文附上了我的系列文章的規劃。

本篇作為開篇跟大家分享第一部分基礎篇的第一節內容,歡迎大家指正。本節的主要目的是簡介CAN總線的基礎知識,大家在看後面章節的時候,可以返回來快速查閱這些基礎知識。

1.1控制器在總線的連接方式

如圖1-1是兩個控制器在同一個CAN總線上的連接情況,可以看出,CAN總線採用的是兩根線進行信號傳輸,分別叫做CANH(CAN高)和CANL(CAN低),是一對雙絞線,在汽車行業,這對雙絞線的顏色是黃色(CANH)和綠色(CANL)。

圖1-1 控制器在CAN總線的連接方式

圖1-2 CAN的雙絞線

1.2 CAN的內部連接方式

CAN總線內部模塊包括CAN控制器和CAN收發器,CAN控制器負責處理CAN總線的信號,包括判斷幀類型,控制信號的接收和發送,CAN總線的故障處理,CAN控制器和CAN收發器之間是普通的單線連接。CAN控制器通過Tx線向CAN收發器發送數據,通過Rx線從CAN收發器獲取數據;CAN收發器通過CANH和CANL雙絞線連接到CAN總線,將CAN控制器發來的數據轉換為差分信號,傳輸到CAN總線,同時將CANH和CANL這組差分信號轉換為CAN控制器可以識別的信號。

圖1-3 CAN內部連接方式

1.3 CAN的報文格式

CAN的報文格式可以概括為CANID+CANData,那擴展幀舉例,如圖1-4-1所示:

圖1-4-1 CAN報文格式

圖1-4-2 CAN報文波形

CANID裡面隱藏的信息非常豐富,一幀報文,首先是CANID,然後是CAN數據,CANID首先是幀起始,然後是RTR(表明是數據幀還是遠程幀,數據幀是帶CAN數據的,遠程幀沒有CAN數據,利用這個特性可以測試採樣點),IDE表示標準幀還是擴展幀,DLC表示CAN數據的字節數(CAN最多支持8位元組數據),CRC是對CAN數據的校驗,ACK是應答位,由總線上另外一個節點來填充此位,發送節點根據此位的值確定此幀報文是否被正確接收,如果沒有正確被接收,發送節點會發送無應答錯誤幀(Not Acknowlage),對於擴展幀,還有18位的Extended ID部分。

圖1-5 CAN報文組成

1.4 CAN的錯誤機制(Busoff)

CAN總線在使用過程中,難免遇到各種情況的錯誤,比如CAN總線突然短路,或者是CANH短電了,這些都會導致CAN控制器進入錯誤狀態,當錯誤次數過多,CAN控制器就會進入Busoff狀態。

圖1-6 CAN控制器錯誤狀態

1.5 CAN總線錯誤幀講解

目前已有的資料幾乎都只是文字性的描述錯誤幀的類型,並沒有以真實波形進行演示,本文結合示波器波形進行錯誤幀的講解,如圖1-6、圖1-7、圖1-8。錯誤幀由錯誤標誌和錯誤界定符組成,錯誤標誌分為主動錯誤標誌和被動錯誤標誌,產生錯誤的CAN控制器,先進入主動錯誤狀態,發出主動錯誤標誌,為6個連續的顯性位,總線上的其他節點對該錯誤進行認可,也發出主動錯誤標誌,所以從總線上看到的主動錯誤標誌一般在6-12個顯性位;同理,當CAN控制器進入被動錯誤狀態後,發出被動錯誤標誌,書上說被動錯誤標誌為6個連續的隱性位組成,根據示波器實測,總線上接入一個CAN控制器,連續幹擾該CAN控制器的CRC界定符,讓CAN控制器發出錯誤幀,結果顯示,CAN控制器先進入主動錯誤狀態,發出6個連續的顯性位+8個隱性位的錯誤界定符,隨著幹擾次數的增加,CAN控制器進入被動錯誤狀態,發出6個連續的隱性位+6個連續的顯性位+8個隱性位的錯誤界定符。

圖1-7 幹擾CRC界定符發出的主動錯誤標誌

圖1-8 幹擾CRC界定符發出的錯誤界定符

圖1-9 幹擾CRC界定符發出的被動錯誤標誌

圖1-10 幹擾CRC界定符發出的主動和被動錯誤標誌對比

相關焦點

  • 汽車CAN/LIN總線測試流程和測試工具解析
    汽車CAN/LIN總線系統測試的關鍵是測試流程、測試標準和測試工具,掌握專業的總線分析和測試工具的使用技術,開發測試軟體並將它們應用到測試過程是對中國汽車廠家和汽車工程師的重大挑戰,本文介紹軟體測試環境在汽車總線網絡開發和測試過程中,主要應用的軟體測試環境是CANoe。 CANoe (CAN Open Environment)是德國VECTOR公司開發的功能強大的開發工具。它能支持總線開發的整個過程-從最初的設計、仿真到最終的分析測試和產品的售後服務。CANoe 實現了網絡設計、仿真和測試的無縫集成,其開發、測試流程如圖1所示。
  • 汽車數位化技術CAN總線數據應用是落腳點
    一、技術背景在當今的中高檔汽車中都採用了汽車總線技術。汽車總線為汽車內部各種複雜的電子設備、控制器、測量儀器等提供了統一數據交換渠道。一些汽車專家認為,就像在20世紀70年代引入集成電路、80年代引入微處理器一樣,近20年來數據總線技術的引入也將是汽車電子技術發展的一個裡程碑。
  • can總線基本概念
    在汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應「減少線束的數量」、「通過多個LAN,進行大量數據的高速通信」的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通信協議。
  • 什麼是CAN總線,CAN總線的優勢和特點
    在當前的汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應「減少線束的數量」、「通過多個LAN,進行大量數據的高速通信」的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通信協議。
  • 汽車CAN/LIN網絡系統測試
    汽車CAN/LIN總線系統測試的關鍵是測試流程、測試標準和測試工具,掌握專業的總線分析和測試工具的使用技術,開發測試軟體並將它們應用到測試過程是對中國汽車廠家和汽車工程師的重大挑戰,本文介紹CAN/LIN總線設計、仿真、分析和測試工具。
  • 現代汽車核心技術-CAN總線應用層協議標準SAE J193
    CAN最早是由德國BOSCH公司為解決現代汽車中的控制與測試儀器之間的數據交換而開發的一種數據通信協議,按照ISO有關標準,CAN的拓撲結構為總線式,因此也稱為CAN總線。CAN協議中每一幀的數據量都不超過8個字節,以短幀多發的方式實現數據的高實時性;CAN總線的糾錯能力非常強,從而提高數據的準確性;同時CAN總線的速率可達到1M bit/s,是一個真正的高速網絡。
  • 現代汽車核心技術-CAN總線應用層協議標準SAE J1939
    CAN最早是由德國BOSCH公司為解決現代汽車中的控制與測試儀器之間的數據交換而開發的一種數據通信協議,按照ISO有關標準,CAN的拓撲結構為總線式,因此也稱為CAN總線。CAN協議中每一幀的數據量都不超過8個字節,以短幀多發的方式實現數據的高實時性;CAN總線的糾錯能力非常強,從而提高數據的準確性;同時CAN總線的速率可達到1M bit/s,是一個真正的高速網絡。
  • 一種「動靜結合」的CAN總線調度算法在汽車電子控制
    汽車CAN總線網絡在實際運行過程中,眾多節點之間需要進行大量的實時數據交換,不可避免會出現總線負荷過大的情況。當信息幀的碰撞概率達到一定程度時,系統中一部分信息幀的收發就會產生延時,甚至根本不能收發成功。這樣,當駕駛員剎車時,即使時延只有幾個毫秒,但時速100公裡的汽車也可能在這期間內全速駛出3~4米,後果將不堪設想。
  • 新能源汽車CAN總線故障匯總
    國內新能源汽車動力以鋰電池為主,整個行業已經進入高速發展階段。我們注意到,除新能源車、充電樁之外無人駕駛、智慧停車等延伸行業也步入快速發展期。上述行業都有一個共同點——使用CAN總線,因此,CAN總線的應用問題始終貫穿在新能源行業的發展中。
  • 神馬是CAN總線?CAN總線抗幹擾6要素是什麼?
    什麼是CAN總線?   CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。在汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。
  • CAN總線錯誤幀長得啥樣?怎麼產生?
    can總線因為具有通信可靠性高,成本低,簡單實用等優點得到了越來越多的應用,所以充電機內部模塊間通信採用基於can總線的軟體均流方案;電動汽車充電機需要和蓄電池管理系統(bms)之間通信,同時由於can總線還具有較高的網絡安全性等特點,並且作為國際標準已逐漸發展成汽車電子系統的主流總線,因此將採用can總線作為充電機與電池管理系統之間的通信方式;而且can總線的通信距離較遠(10km),同時可靠性較高
  • 汽車CAN總線原理培訓
    汽車CAN總線在汽車中有著至關重要的作用,現在日趨成熟的新能源車對CAN網絡的需求更加明顯,高壓電器、低壓電器、控制模塊之間等必須要用到,可見其重要性。首先,要了解其核心部件CAN收發器。CAN收發器是連接CAN控制系統與CAN總線網絡的橋梁,當選型CAN收發器時應該注意哪些參數,以及它工作的原理?
  • 基於LabVIEW和J1939協議的CAN總線通訊平臺開發
    現今市面上滿足國3~國5 排放標準的商用車,無一例外均應用CAN 總線網絡,進行整車VECU、發動機EECU、自動變速箱ECU、汽車組合儀表ECU、車輪防抱死制動ECU 之間的數據通訊。  基於LabVIEW 和J1939 協議的CAN 總線通訊技術方法,在國內汽車行業PXI 測控裝置的應用屬於空白,難點是如何將LabVIEW 軟體開發平臺與複雜的J1939 協議有效結合,實現報文信息的過濾接收、合成重組及封裝發送。
  • 深圳市宏美瑞科技-CAN總線
    單通道CAN總線分析儀可攜式CAN分析儀8通道CAN總線分析儀CAN FD分析儀CAN核心模塊CAN總線網關/轉換器多功能串口-CAN總線轉換模塊串口轉CAN模塊乙太網轉CAN模塊CAN光纖中繼器Modbus RTU-CAN網關ModBus TCP-CAN網關PLC及總線IO
  • can總線通訊協議
    CAN在汽車上的應用,具有很多行業標準或者是國際標準,比如國際標準化組織(ISO)的ISO11992、ISO11783以及汽車工程協會(Societyof Automotive Engigeers)的SAE J1939。CAN總線已經作為汽車的一種標準設備列入汽車的整車設計中。CAN總線簡介CAN通信協議規定了4種不同的幀格式,即數據幀、遠程幀、錯誤幀和超載幀。
  • CAN總線錯誤檢測機制
    CAN總線是ISO國際標準化的串行通信協議。在汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。
  • 基於SAE J1939協議的CAN總線汽車儀表設計
    隨著科技進步,汽車排放、節能、安全和舒適性等使用性能不斷提高,汽車電子控制程度也越來越高。汽車電子控制裝置必須迅速、準確地處理各種信息,並通過儀表顯示出來,使駕駛員能夠及時了解並掌握汽車的運行狀態,以妥善處理各種情況。這裡給出一種基於CAN(Controller Area Network)總線的汽車儀表設計方案。
  • 國內選擇第三方公司逆向汽車CAN總線數據七個理由
    除了知名汽車零配件公司自己招募一些團隊做CAN開發以外,一般採用委託第三方公司。其目的是:降低研發成本,省去大批工程師高額的開發周期和管理費用,目前國際知名的第三方供應商有Vector、EB、Mentor Graphics,國內有速銳得。
  • 基於PXI總線和TestStand軟體的測試平臺在汽車測試中的應用
    NI公司提供的、基於CAN總線汽車測試的解決方案,它能幫助中國測試工程師提高汽車測試的效率,降低測試系統的成本,並能應對不斷升級的汽車測試需求。 複雜的汽車測試系統常常需要多種測量和控制任務的協同工作,一個用於集成的軟硬體同步平臺就顯得尤為的重要。 支持CAN協議的柔性測試設備 20世紀80年代Bosch公司為解決汽車系統中各個電子單元之間的通信問題開發了CAN總線標準。這種串行總線用2根或1根電線把汽車裡的各個電子設備連接起來,相互可以傳遞信息。
  • 智能網聯汽車必備總線測試方案
    編者按:CANFD與車載乙太網在新一代智能網聯車中得到了廣泛的應用,同時也給工程師進行車載測試和故障排查帶來了新的挑戰。ZLG針對此痛點,推出CANFDDTU記錄儀助力完善智能網聯汽車總線測試。