韓震,初洪超
?
基于LABVIEW汽車CAN總線數據采集系統
韓震,初洪超
(江淮汽車技術中心新技術研究院預研技術規劃部,安徽 合肥 230601)
為了對汽車CAN總線數據傳輸進行有效的測試和監控,設計采用USB-CAN適配器采集總線數據。該適配器接收CAN總線上的數據經過緩沖后轉化為USB數據發送到計算機,通過計算機上的LABVIEW虛擬儀器軟件接收并加以處理,實現與下位機通信、顯示數據、診斷。
CAN總線;LABVIEW;數據采集
隨著汽車CAN網絡普及,各個電控單元之間的交互信息通過CAN總線組成的網絡來實現。因而對整車CAN信號的測試和監控尤為重要,不僅可以了解整車各電控單元的狀態同時可以根據相關的信號查找車輛故障的原因。目前市面上的CAN總線測試設備分為兩種,一種是Vector開發的CANCase與華東汽電開發的Tellus工具,另一種是周立功的USB-CAN轉換器,前一種工具功能齊全,可以采集分析整車信號并實時記錄,但價格在十萬左右難以普及;后一種工具可以采集整車信號但是無法對信號進行解析,使用很不方便,價格在一千元以下。本系統所使用的USB-CAN適配器價格為三百元,通過labview軟件接收CAN數據并進行信號解析顯示。

圖1 通訊面板
運行軟件后彈出車型選擇面板,選擇車型并確定。軟件會讀取該車型的DBC數據庫并進行信號的解析。同時在DBC數據庫中提取該車型CAN通道的波特率用于硬件波特率配置。
通訊面板用于顯示接收的報文和信號,如圖2所示,界面中顯示了從車輛中接收的報文信息并對信號進行了解析顯示。

圖2 信號面板
面板中的按鍵作用如下:
“開始”“停止”:
控制軟件運行與停止;
“開始記錄”:
點擊后打開或創建文本文件用來記錄通訊報文;
“結束記錄”:
點擊結束報文記錄;
“打開記錄”:
點擊后記錄的通訊報文會在報文記錄界面顯示;
“發送統計”“接收統計”:
統計發送和接收的報文數量;
“報文顯示”:
顯示接收到的報文和解析的信號;
“模塊選擇”:
點擊選擇要顯示的模塊,如接收該模塊的報文則該模塊顯示為紅色。
ALL_2:選擇CAN通道2所有報文
Others_2:顯示接收到的非DBC數據庫中的報文
“報文刷新時間”:
所有報文屏幕刷新一次的時間,當報文有10幀時的刷新時間為200ms。為快速刷新可使用“模塊選擇”只顯示一個模塊的報文。
“CAN通道波特率”:
默認為從DBC數據庫中讀取的波特率,如無DBC數據庫可手動配置。
診斷面板用于整車診斷,作用類似于診斷儀,界面如圖3所示:
面板中的按鍵作用如下:
“選擇節點”:
選擇當前要診斷的模塊,如EMS(發動機)、ESC(轉向)、BCM(車身控制)
“診斷數據輸入”:
輸入需要發送的診斷數據然后點擊“發送”將輸入的數據發送到總線上。比如需要將模塊轉為擴展模式則輸入“10 03”,讀取VIN碼則輸入“22 F1 90”。
“診斷數據發送/接收”:
顯示發送和接收的診斷數據,如需保存診斷數據則點擊“保存”至文本文件。

圖3 診斷面板
“故障碼”:
顯示當前模塊讀取的故障,故障讀取可點擊“讀故障碼”,并配合選擇“故障類型”中的當前故障、歷史故障、歷史+當前故障、所有故障。如讀取的故障非以上四種故障類型則可在“其他”中輸入需要讀取的故障掩碼。
“擴展模式按鍵”:
點擊自動發送10 03報文將模塊轉為擴展模式,一般模塊選擇時會自動發送該報文,如有需求可自行點擊。
“安全訪問”:
點擊則對當前模塊進行安全訪問服務,如安全訪問通過則后面指示燈為綠色,如不通過則為灰色。
注意:在點擊“寫配置碼”按鍵前需先點擊此按鍵。
“MT車型自診斷”:
點擊后則對S-II MT車型的所有節點進行故障診斷,并對讀取的故障進行顯示。
“讀ECU信息”:
點擊后會以1秒為間隔依次讀取以下信息:VIN碼、配置碼、零部件號、ECU序列號、ECU硬件號、ECU硬件版本、ECU軟件號、ECU軟件版本、ECU安裝日期。
注意:如模塊不支持某個信息則不進行相關顯示。
“鑰匙學習”:
學習流程為:
(1)點擊“BCM安全訪問”
(2)點擊“開始學習”
(3)操作鑰匙
(4)點擊“結束學習”
“方向盤標定”:
標定流程為:
(1)點擊“EPS安全訪問”
(2)點擊“開始標定”
(3)操作方向盤
(4)點擊“結束學習”
(5)點擊“清除故障碼”(可選)
“ESC標定”:
標定流程為:
(1)點擊“ESC安全訪問”
(2)根據標定需求選擇下面的四個按鍵
“讀配置碼”:
點擊后可在選擇的模塊中讀取配置碼,讀取的配置碼會顯示在下面配置碼顯示區。該按鍵與寫“配置碼”按鍵結合使用
注意:選擇的模塊需與當前診斷的模塊在同一CAN總線上,如正在對動力CAN上的模塊進行診斷則需選擇動力CAN上的模塊讀取配置碼
“寫配置碼”(先安全訪問):
點擊可將上面顯示區中的配置碼寫入到當前診斷的模塊中,顯示區中的配置碼可以根據需求手動改動或輸入。
注意:點擊該按鍵前需先點擊“安全訪問”按鍵,因為寫服務需要通過安全訪問驗證后方可執行
“配置碼計算”:
點擊可調出配置碼計算界面,可以自行配置生成配置碼或選擇相應的車型自動生成該車型的配置碼,點擊“配置碼輸出”則“配置碼計算”界面關閉,生成的配置碼自動輸出到配置碼顯示區中。
配置碼計算界面如下:

圖4
程序設計采用生產者/消費者模式,生產者/消費者模式分為兩個while循環,生產者while循環產生數據并入隊列,消費者while循環讀取入隊列的數據。Labview提供的隊列模塊可以起到數據緩存的作用以避免數據得不到及時處理而被覆蓋掉。

圖5 程序主結構
數據發送模塊將前面板輸入的通訊數據、ID、發送時間等數據寫入隊列。

圖6 發送數據程序
數據接收模塊從隊列中讀取數據,按照從DBC庫中解析得到的信號屬性對該幀信號進行解析。

圖7 接收數據程序
本文設計了汽車總線數據采集系統,并成功地進行了對轎車的數據采集。通過試驗,實現上下位機通信、實時信號顯示、模塊故障診斷,具有很高的性價比和實用性。
[1] 趙方庚,龍理華,等.現代汽車總線技術的發展[J].汽車運用,2005 (12):30-31.
[2] 鄔寬明.CAN總線原理和應用系統設計[M].北京:北京航空航天大學出版社,1996:18-49.
[3]付偉,秦樹人,等.基于CAN總線的車載數據采集器的設計[J].重慶大學學報:自然科學版,2006,29(3).
[4] 寸良耀,宋健.汽車總線數據采集模塊設計[J].計算機測量與控制, 2007,15(2):268-270.
CAN bus data acquisition system of automotive base on Labview
Han Zhen, Chu Hongchao
(Jianghuai Automobile Technical Center, Anhui Hefei 230601)
In order to test and monitor the can bus data transfer on the vehicle,Design uses a USB-CAN adapter bus data acquisition.The adapter receives data on the CAN bus are buffered and converted into USB data is sent to the computer,Through labview virtual instrument software on the computer to receive and deal with them,Achieved communication with device, display data and diagnostics.
CAN bus; LABVIEW; data collection
B
1671-7988(2018)20-148-03
U407.471
B
1671-7988(2018)20-148-03
U407.471
初洪超,就職于江淮汽車技術中心新技術研究院預研技術規劃部。
10.16638/j.cnki.1671-7988.2018.20.054