中圖分類號:U461 收稿日期:2025-02-25
DOI: 10.19999/j.cnki.1004-0226.2025.07.017
Research on Methods for Collecting and Analyzing Automotive Communication Data
Xie Yahui1Zhao YoulHuo Yuanyuan2 1.Liuzhou Polytechnic University,Liuzhou 545oo0,China 2.Liuzhou City Vocational College,Liuzhou 545oo0,China
Abstract:Withtherapidincreaseinthenumberofcarsandtheincreasinguseofautonomousdriving,therearemoreandmore trafficacidentsbyutomobiledrivingTerefore,tisnessarytostudycarommunicationdata.Withtheevelopmentoftheelectriica tionandntellgenceofautomobiles,teumberofECUcomponentsinveiclecontrolunitsisincreasing,andthestructureofutoo tivecommunicationnetworkshasbecomemoreandmoreimportant.Thispaperintroducesamethodforcolectingandanalyzingautomotivecommunicationdata.Thepaperelaboratesonfouraspects:communicationrules,compositionstructureofcommunicationdata, collectionandanalysisofcommunicationdata.AnactualvehiclemodelisusedasacasestudytocolectandanalyzeautomotiveCAN communicationdata.Theconlusionindicatesthatthismethodcanbeappliedtothecolectionandanalysisofautomotivecommunication data,providing reference for the intelligent upgrading and transformation of automobiles.
Keywords:Communication data;Data collection;Data parsing;Automotive intelligence
1前言
當(dāng)前,由于汽車數(shù)量的急劇增加及汽車自動駕駛的逐漸增多,在交通事故中,汽車因素占據(jù)的分量越來越大[1-2],因此有必要對汽車通信數(shù)據(jù)進行研究。隨著汽車電子技術(shù)的發(fā)展,車載控制單元ECU部件的數(shù)量也越來越多,使用傳統(tǒng)的點到點線束的連接方式會急劇增大線束的重量,從而導(dǎo)致其安裝困難,而CAN通信網(wǎng)絡(luò)結(jié)構(gòu)因其具有能提高整個系統(tǒng)的可靠性、減少線束數(shù)量和成本、多重使用傳感器、傳輸復(fù)雜數(shù)據(jù)、系統(tǒng)變更靈活、能實現(xiàn)新型功能、有效診斷和降低硬件成本等優(yōu)點,成為汽車發(fā)展的一種必然選擇[3]。
隨著人工智能以及5G時代的到來,汽車產(chǎn)業(yè)掀起新一輪的產(chǎn)業(yè)革命[4-5]。文獻[6]表明汽車業(yè)就是被智能化改造的高可靠性的移動終端,而目前在歐洲幾乎每一個汽車生產(chǎn)公司都會使用CAN通信技術(shù),因此車輛的CAN通信數(shù)據(jù)采集及解析成為重要一環(huán)。對于職業(yè)教育而言,大部分車輛的故障診斷還停留在單純的車輛診斷儀上[8-10],無法真正讀出相應(yīng)的通信數(shù)據(jù)流,一旦脫離診斷儀,汽車故障的讀取就顯得很吃力。為此,本文研究了一種汽車通信數(shù)據(jù)的采集及解析方法,旨在為汽車后續(xù)的智能化改造提供參考。
2汽車CAN網(wǎng)絡(luò)協(xié)議規(guī)則
2.1多主機結(jié)構(gòu)
CAN總線采取總線拓撲結(jié)構(gòu)(圖1),沒有特權(quán)節(jié)點??偩€在空閑的時候,所有的單元都可以發(fā)送信息(多主機的控制)。開始時向總線發(fā)送信息的單元享受發(fā)送的優(yōu)先權(quán),在多個單元同時發(fā)送的時候,優(yōu)先級別高(幀ID級別高)的單元享受優(yōu)先權(quán)。
圖1總線拓撲結(jié)構(gòu)
2.2廣播方式發(fā)送信息
廣播方式就是一家發(fā)送大家接收。CAN網(wǎng)絡(luò)的數(shù)據(jù)是采用廣播式的發(fā)送模式的,任何部件都可以通過控制模塊接收,也都能發(fā)送到CAN數(shù)據(jù)線上。CAN總線廣播方式如圖2所示。
圖2CAN總線廣播方式
2.3非破壞性仲裁(優(yōu)先權(quán))
為了保證CAN總線的傳輸速度,每個控制單元在發(fā)送數(shù)據(jù)時是有優(yōu)先權(quán)的,一般優(yōu)先級為3位的二進制碼發(fā)送在數(shù)據(jù)的最前端,該二進制碼通過線與的關(guān)系使二進制碼000處于數(shù)據(jù)優(yōu)先級的最高位,111處于數(shù)據(jù)位的最低位,所以在CAN協(xié)議傳輸中優(yōu)先級被分成000~111這8個等級,當(dāng)控制單位通過線與的關(guān)系發(fā)現(xiàn)自己的優(yōu)先級處于低位時就即刻停止發(fā)送該數(shù)據(jù)流。如圖3所示,ABS/EDS控制單元信息處于最高位000,其他控制單位立即停止發(fā)送數(shù)據(jù)。
2.4采用雙絞線傳輸(差動信號)
CAN總線采用雙絞線的傳輸方式(圖4),其中一根為CAN高線,一根為CAN低線。信息在傳輸過程中采用高線和低線的信號差作為傳輸信號,該方式可以有限地減少信號干擾,如圖4所示,大部分的CAN總線采用雙線的工作模式,少數(shù)也有單線工作模式如汽車舒適CAN總線。
圖3數(shù)據(jù)發(fā)送的優(yōu)先權(quán)
圖4雙絞線傳輸
3CAN通信的數(shù)據(jù)格式分析
表1為CAN協(xié)議的數(shù)據(jù)單元格式表。
表1CAN數(shù)據(jù)單元格式表
從表1可以看出,一個完整的CAN數(shù)據(jù)包含P優(yōu)先權(quán)、R保留位、DP數(shù)據(jù)頁、PDU參數(shù)組編號PF、PS源地址、SA目標地址以及最后發(fā)送的數(shù)據(jù)DATA。表1中的數(shù)字代表二進制的位數(shù),具體的格式解析如下:a.P為3位二進制的優(yōu)先權(quán),從最高0設(shè)置到最低7;b.R為保留的位置,以備后面的開發(fā)使用;c.DP為數(shù)據(jù)頁,被用來作為選擇參數(shù)組所描述的輔助頁;d.PF為PDU的格式,表示數(shù)據(jù)域?qū)?yīng)的參數(shù)組編號以及用作確定PDU的格式;e.PS為PDU特定格式,表示發(fā)送信息起始的目標地址,PS值取決于PDU格式,在本標準中采用PDU1格式;f.SA為源地址,表示信息的接收地址即發(fā)送此報文的源地址;g.DATA為數(shù)據(jù)域,即發(fā)送的具體命令內(nèi)容,若給定參數(shù)組數(shù)據(jù)長度 ?8 字節(jié),則按照前面的報文傳送規(guī)則傳送,若傳送的數(shù)據(jù)信息大于8個字節(jié),一條信息發(fā)不完則需要傳送多幀數(shù)據(jù)組,就可以通過傳輸協(xié)議的規(guī)則來開啟或者關(guān)閉多幀數(shù)據(jù)組的傳輸。
4CAN通信數(shù)據(jù)的采集及解析
通過上文分析,可以了解到CAN的發(fā)送規(guī)則以及數(shù)據(jù)格式,下面使用CAN分析儀及電腦對汽車CAN網(wǎng)絡(luò)數(shù)據(jù)進行讀取。
4.1軟件安裝
首先在電腦中安裝USB_CANTOOL的軟件(圖5),安裝完成后再進行調(diào)試。
圖5USB_CANTOOL的安裝
圖7CAN分析儀數(shù)據(jù)采集
4.2CAN分析儀的連接
本文采用的是創(chuàng)芯科技的CANalyst-II,將CAN分析儀的電阻擋撥到 120Ω ,使用其中一個CAN1通道,將CAN1通道的CANH線連接到汽車診斷接口某一組CAN網(wǎng)絡(luò)的CANH線,CAN1通道的CANL線連接到汽車診斷儀相應(yīng)的CANL線,將CAN分析儀的另一端(如圖6中的圓圈)連接到電腦端。
圖6CAN分析儀的連接
圖8實際采集數(shù)據(jù)
4.3CAN網(wǎng)絡(luò)數(shù)據(jù)采集
將CAN分析儀按上述步驟連接好之后,直接在電腦上打開USB_CANTOOL的軟件,選擇好連接的CAN1或者CAN2通道,然后再選擇 500k 的波特率開始對汽車CAN網(wǎng)絡(luò)數(shù)據(jù)進行采集。
如圖7所示,從軟件中可以看到采集到的時間、幀類型、長度、幀ID以及最右邊的幀數(shù)據(jù),根據(jù)表1所示的CAN數(shù)據(jù)的格式,實際需要采集的數(shù)據(jù)主要由幀ID和幀數(shù)據(jù)兩部分組成,因此在下面的解析中可以將幀ID和幀數(shù)據(jù)直接提取出來。
5數(shù)據(jù)解析實際應(yīng)用
5.1幀ID的解析
本文以北汽EV200的快充CAN為例對CAN數(shù)據(jù)進行實例解析。首先通過上文方法在北汽EV200充電時采集到一組快充CAN的電池充電需求數(shù)據(jù)(以下簡稱報文),該報文由BMS發(fā)送給充電機,作用是讓充電機根據(jù)充電需求來調(diào)整充電電壓和充電電流,確保充電過程的正常進行,將采集的報文信息導(dǎo)出成EXCEL表,如圖8所示,從中選取1913這條數(shù)據(jù)進行解析,該條數(shù)據(jù)為:
幀ID:181056F4幀數(shù)據(jù):600EDE0D02
1908 通道1接收擴展數(shù)據(jù)幀1CECF456 13090002FF00110020:28:03.180.729
1909 通道1接收擴展數(shù)據(jù)幀1812F456 700DE20D0000FD 20:28:03.193.701
1910 通道1接收擴展數(shù)據(jù)幀181356F4 515201510700D0 20:28:03.199.668
1911 通道1接收擴展數(shù)據(jù)幀181056F4 60OEDEOD02 20:28:03.229.599
0 通道1接收擴展數(shù)據(jù)幀1812F456 700DE20D0000FD 20:28:03.243.708
1913通道1接收擴展數(shù)據(jù)幀181056F4 60OEDEOD02 20:28:03.279.598
1914通道1接收擴展數(shù)據(jù)幀1812F456 700DE20D0000FD 20:28:03.293.713
1915通道1接收擴展數(shù)據(jù)幀181056F4 60OEDEOD02 20:28:03.329.596
1916通道1接收擴展數(shù)據(jù)幀1812F456 700DE20D0000FD 20:28:03.343.719
1917 通道1接收擴展數(shù)據(jù)幀181056F4 60OEDEOD02 20:28:03.379.594
1918通道1接收擴展數(shù)據(jù)幀1812F456 700DE20D0000FD 20:28:03.393.726
通過表1可以知道幀ID發(fā)送的信息包含優(yōu)先權(quán)、保留位、數(shù)據(jù)頁、PDU參數(shù)組編號、目標地址以及源地址。
幀ID:181056F4為十六進制碼,將其轉(zhuǎn)換為二進制碼:幀ID:0001100000010000010101101110100。去掉前三個0(系統(tǒng)默認設(shè)置),變?yōu)槿缦滦问剑簬琁D:1100000010000010101101110100對應(yīng)表1逐一解析:a.優(yōu)先級為前三位的二進制110轉(zhuǎn)化為十進制為6,所以優(yōu)先級為6,處于第二低位。b.保留位R為第四位的0。c.DP數(shù)據(jù)頁為第五位的0。d.PDU參數(shù)組為二進制的00010000。e.PS為CAN數(shù)據(jù)發(fā)送的目標地位,為二進制的01010110或十六進制的56,通過查找GB/T27930—2015電動汽車非車載傳導(dǎo)式充電機與電池管理系統(tǒng)之間的通信協(xié)議[11],可以看出56指的是BMS電池管理系統(tǒng)的地址位置。
f.SA為二進制的01110100或十六進制的F4,查找GB/T27930—2015可以知道F4為充電機的地址。
因此,該條幀ID的含義為:該數(shù)據(jù)優(yōu)先級為6,保留位為0,DP數(shù)據(jù)頁為0,PDU參數(shù)組為十六進制的10,該數(shù)據(jù)是BMS發(fā)送給充電機的。
5.2幀數(shù)據(jù)的解析
下面將解析幀數(shù)據(jù):600EDE0D02。通過查找GB/T27930—2015電動汽車非車載傳導(dǎo)式充電機與電池管理系統(tǒng)之間的通信協(xié)議,可以得到該報文的解釋,如表2所示。
表2通信協(xié)議解析
其中:a.SPN3072為電壓需求數(shù)據(jù)分辨率:0.1V/位,0V偏移量。b.SPN3073為電流需求數(shù)據(jù)分辨率:0.1A/位, -400A 偏移量。
這里要注意,對于北汽,其初始字節(jié)是從第1個字節(jié)位開始編寫的,有的協(xié)議如博世是從0字節(jié)位開始,另外北汽的編碼是倒過來的,每個字節(jié)是從第8位開始編碼的,因此在解析計算的時候要將字節(jié)倒過來算。由于每個字節(jié)等于2個十六進制數(shù),通過表2可以看出該組數(shù)據(jù)表達了三個信息,分別是電壓需求、電流需求和充電模式。
幀數(shù)據(jù):600EDE0D02字節(jié)位:12345
電壓需求為第1位的起始字節(jié)長度為2,即為十六進制的600E,將字節(jié)進行倒置即為0E60,轉(zhuǎn)化為十進制后為3680。
電流需求為第3位的起始字節(jié)長度為2,即為十六進制的DEOD,將字節(jié)進行倒置為0DDE,轉(zhuǎn)化為十進制后為3550。
根據(jù)表2中的SPN數(shù)據(jù)分辨率進行轉(zhuǎn)換,可以得出如下結(jié)論:
電池的電壓需求為 3680×0.1+0=368(V), 門電流需求為 3550×0.1-400=-45(A) 。
充電模式為起始位第5字節(jié)1個字節(jié)長度的02,根據(jù)表2即為恒流充電。
通過對該條幀數(shù)據(jù)的解析可以得出:該幀數(shù)據(jù)是由BMS發(fā)送給充電機的,BMS告訴充電機它需要368V的電壓、45A的電流,BMS的充電模式是恒流充電。
6結(jié)語
a.通過本方法可以切實采集到汽車的通信數(shù)據(jù)。b.通過本方法可以直接讀取到汽車通信的數(shù)據(jù)流,該數(shù)據(jù)可以應(yīng)用到車輛的故障診斷中去,而不用受診斷儀設(shè)備的限制。c.通過本方法,在采集到汽車的CAN網(wǎng)絡(luò)數(shù)據(jù)之后可以通過通信協(xié)議解析及分析該數(shù)據(jù),為汽車后續(xù)的智能化改造提供參考。d.目前通信協(xié)議除了已公布的國標及車企以外,很多汽車企業(yè)的通信協(xié)議是其核心機密,只能通過逐步分析數(shù)據(jù)結(jié)構(gòu)這種方法,想要更為徹底地解析所有車型的通信數(shù)據(jù),還需要進一步的努力。
參考文獻:
[1]馬文博,秦康.駕駛員注意力監(jiān)測系統(tǒng)測試評價方法分析[J].專用汽車,2024(10):14-19.
[2]王曉亮,李兵,應(yīng)宇汀,等.駕駛員狀態(tài)監(jiān)測系統(tǒng)測試評價方法分析[J].專用汽車,2023(10):85-88.
[3]王劍鋒,王大方,張冠哲.電動車車身網(wǎng)絡(luò)CAN總線通信實現(xiàn)[J].微計算機信息,2009,25(17):106-107+219.
[4]張銳.汽車智能化即將進入加速軌道[J].中關(guān)村,2020(11):68-69.
[5]未來智能汽車不止于出行[J].汽車零部件,2021(1):68
[6]梁鋒華.新領(lǐng)域、新機遇、新挑戰(zhàn)—關(guān)于智能化的思考[J].內(nèi)燃機與配件,2016(2):31-33.
[7]馮軍強,彭能嶺,李振山,等.CAN網(wǎng)絡(luò)通信技術(shù)介紹及在混合動力汽車中的應(yīng)用[C]//重慶汽車工程學(xué)會.新型汽車工程塑料——正確的設(shè)計和制造工藝高研班論文集.鄭州宇通客車股份有限公司,2015:7.
[8]張小興.純電動汽車故障診斷案例分析[J].時代汽車,2021(3):157-158.
[9]于國鋒.新能源汽車的故障問題與維修關(guān)鍵技術(shù)探討[J].時代汽車,2019(3):74-75.
[10]于曉喜.大眾邁騰無法起動故障診斷與排除[J].時代汽車,2019(20):107-108.
[11]GB/T27930—2015電動汽車非車載傳導(dǎo)式充電機與電池管理系統(tǒng)之間的通信協(xié)議[S].
作者簡介:
謝亞輝,男,1990年生,講師,研究方向為智能網(wǎng)聯(lián)汽車、交通運輸工程。