王偉,王茜,曲輔凡,吳春穎
(1.中國汽車技術研究中心,天津 300300;2.天津大學電氣與自動化工程學院,天津 300072)
新能源汽車是汽車行業的發展趨勢、低碳經濟發展的必然選擇。通過國內外新能源車的對標試驗,可以分析國內外新能源汽車的設計與研發差異,提高我國新能源汽車的競爭力。新能源車大量采用電子控制系統,這些復雜的控制系統通過CAN(Controller Area Network)總線來進行數據通信[1]。LabVIEW是NI公司推出的一種創新軟件產品,具有圖形化語言開發環境,能夠便捷地構建與外部通信的軟件界面平臺[2]。通過USBCAN接口卡將CAN網絡與PC(Personal Computer)連接,在PC上用LabVIEW搭建與CAN總線通信的界面,可以實現實時監控CAN總線中的數據。除了報文監控功能外,此平臺提供了報文解析功能和信號監控功能,將數據位發生變化的報文提取出來,輔助CAN報文的解析,以便顯示需要監控的汽車信號。
此系統由周立功公司生產的USBCAN-II接口卡和一臺PC機以及用LabVIEW開發的監控解析平臺組成,如圖1所示。車上安裝多種傳感器用來采集車輛信號,將采集的數據按照某種協議規則轉化成報文形式傳入CAN總線,通過CAN接口卡實現PC機與CAN總線網絡的連接。用戶可以通過對PC機操作實現與CAN總線數據的交互,對從CAN總線接收的數據進行分析處理,在基于LabVIEW開發的監控平臺上顯示CAN總線上報文信息和相關的車輛信號變化情況[3]。

圖1 系統硬件結構
CAN接口卡采用USBCAN-II智能接口卡,此接口卡兼容USB2.0全速規范,具有體積小、便攜、即插即用的特點,并且支持車載協議解析,自帶保護功能,增強設備的安全性與可靠性。
軟件設計是此系統設計的核心,采用LabVIEW作為軟件開發平臺。LabVIEW帶有大量可視化圖形控件,可以選擇不同的控件來實現不同的功能,在前面板實現人機交互功能,在程序界面對控件編程實現所需要的功能。CAN接口卡與PC通過USB來連接,USB驅動由周立功公司提供,只需下載安裝即可使用。
如圖2所示:主要功能程序有主控程序、接收數據程序、發送數據程序和分析顯示數據程序。若將上述4個任務在同一線程順序執行,則當執行其中一個任務時其他任務處于等待狀態,每個功能程序的執行時間不同,必定造成數據的不完整性。為解決這一問題,利用LabVIEW的自動優化多線程機制,將主控程序、接收數據、發送數據、分析顯示數據分別放在并行獨立的While循環內,來提高數據的處理速度[4]。

圖2 軟件總體設計圖
在主控程序里主要實現對USBCAN接口卡配置、啟動、關閉等操作。在主控程序的循環結構中加入一個事件結構,事件結構類似于硬件的中斷,事件結構發送中斷請求給CPU,CPU收到信號便處理事件結構內的程序代碼。在事件結構中響應相關操作,如設置波特率、打開設備、打開CAN通道等;在事件結構的用戶事件中將接收或者要發送的數據傳送到隊列,供分析顯示數據程序調用。周立功公司提供函數接口庫文件control.dll,利用LabVIEW自帶的“調用庫函數節點”來調用control.dll中的函數去驅動USBCAN接口卡并完成數據的接收和發送。隊列函數用于各個線程之間的數據傳遞,從CAN總線接收的數據或將要發送的數據通過調用入隊列函數傳入隊列中,在分析顯示程序里調用出隊列函數取出數據進行處理[5]。
接口庫函數control.dll供用戶進行上位機二次開發,control.dll函數庫中包含多種功能函數,這些函數驅動USBCAN-II接口卡工作,包括啟動或關閉USBCAN接口卡、啟動和復位某路CAN通道、初始化某CAN、清除接收緩沖區、從CAN網絡接收數據和發送數據。
每種功能函數都預留了接口,只需要對這些接口進行參數配置就可以實現函數的功能。圖3為接口庫函數調用流程圖。

圖3 接口庫函數調用
調用這些功能函數前,需要定義相應的數據結構體來確保功能函數正常實現。此系統中需要定義兩個結構體:VCI_CAN_OBJ結構體(如圖4所示)被用來傳送CAN信息幀;VCI_INIT_CONFIG結構體(如圖5所示)被用來完成初始化CAN配置,調用初始化CAN函數前,需要填充此結構體。

圖4 VCI_CAN_OBJ結構體

圖5 VCI_INIT_CONFIG結構體
函數的調用方法都是類似的,以VCI_Receive為例來說明。此函數為接收函數,用來讀取指定的設備CAN通道中的緩存數據。使用之前,一般先調用 VCI_GetReceiveNum函數來獲取緩存幀數,以便對應接收[6]。
LabVIEW自帶調用庫函數節點函數,可以直接調用DLL庫或共享庫。將此函數加入到程序界面,雙擊打開配置界面,選擇調用的動態接口庫函數路徑,再選擇需要調用的函數,然后打開參數界面,進行參數配置,函數調用成功。接收到的數據存入隊列中,供數據分析處理和顯示子程序調用。
接收的報文存入隊列中,利用出隊列函數將存入隊列中的數據取出來進行分析處理,放在兩個并行的While循環中,分別完成報文解析和報文解碼。
2.3.1 報文解析
新能源汽車對標試驗中亟需解決的問題就是解析CAN協議時需要經過一系列分析判斷,才能方便開展后續的研究,報文解析的目的就是幫助破解信號。
報文解析循環中主要完成報文數據分析處理并在列表中顯示,解析過程如圖6所示。列表包括數據報文監控列表和報文解析監控列表,兩個顯示列表均采用“ID固定,其他變化”的顯示方式,列表中顯示的報文信息有報文的ID、傳輸方向、時間標識、報文類型、數據位長度和數據位內容。

圖6 報文解析過程
在數據監控列表中,顯示的是所有接收到的數據,數據位用十六進制的方式顯示。通過此列表可以實時觀察到CAN總線中所有報文的信號變化情況。
在解析列表中,顯示的是數據位變化的報文,數據位用二進制的方式顯示。在解析列表中可以實時觀察發生變化的幀ID及具體的數據位變化,變化數據位會被標紅高亮顯示。此系統為實時監控系統,通過觀察發生變化的報文,再配合觀察實際物理量的變化,通過計算和分析可以大致確定車輛信號變化和變化ID及數據位的關系,去縮小未知協議的范圍,有利于初步分析協議。
2.3.2 報文解碼
通過報文解析獲取某些協議后,此系統提供交互面板,可以選擇幀ID和定義相關換算,選擇監控的信號量,通過報文解碼在該監控平臺實時觀察傳感器傳送的實際信號量的變化。
報文解碼過程如圖7所示。按已知協議將需要檢測的物理量的相關數據幀ID篩選出來,根據協議內容去定義換算方法,將換算好的數據傳送給顯示相應信號的控件來顯示[7]。

圖7 報文解碼過程
利用開發的監控軟件,在某款新能源車輛上進行測試驗證,圖8為實車系統連接圖。

圖8 系統連接圖
車輛經過上電操作之后,車輛CAN線全部報文監控數據如圖9所示;經過駕駛員不同的操作之后,解析列表中發生變化的數據位用虛線框圈住,如圖10所示。通過觀察對比解析列表中ID的數據位與實際信號的變化情況,可以縮小ID可能的范圍,再通過計算和分析最終確定了電機轉速和車速信號的ID和定義方法。

圖9 報文監控結果

圖10 報文解析列表
根據解析出來的電機轉速和車速信號,通過信號監控界面對它們進行監控驗證,信號監控結果如圖11和圖12所示。

圖11 信號實時監控結果

圖12 信號歷史曲線結果
系統能夠很好地實現實時顯示數據、跟蹤數據的變化、輔助解析CAN報文,提高了車輛采集分析數據的效率。在新能源車輛CAN信號分析方面,提供多種顯示方式來觀察車輛信號,對于車輛性能分析具有良好適用性。
參考文獻:
[1]羅峰,孫澤昌.汽車CAN總線系統原理、設計與應用[M].北京:電子工業出版社,2010.
[2]宋銘.LabVIEW編程詳解[M].北京:電子工業出版社,2017.
[3]邵斌,朱茂桃,張彤,等.混合動力汽車CAN網絡信號監測與故障診斷系統的開發[J].汽車技術,2009(2):46-50.
SHAO B,ZHU M T,ZHANG T,et al.Development of CAN Network Signal Monitoring and Diagnosing System for Hybrid Electric Vehicle Based on Labview[J].Automobile Technology,2009(2):46-50.
[4]王成剛,杜潤生.計算機監控系統實時多任務調度策略在LabVIEW平臺上的實現[J].測控技術,2001,20(3):47-49.
WANG C G,DU R S.Scheduling the Real-time Multitasks of Computer Measurement and Control System by Using LabVIEW[J].Measurement & Control Technology,2001,20(3):47-49.
[4]LIU X T,WANG Z W,WEI D,et al.Design of Fuel Cell Monitoring and Control System Based on LabVIEW and CAN Bus Communication[J].Applied Mechanics & Materials,2015,727/728:721-724.
[6]廣州致遠電子有限公司.CAN測試軟件與接口函數使用手冊[EB/OL].(2017-08-07)[2018-2-5].http://www.zlg.cn/data/upload/software/Can/CAN_test_um.pdf.
[7]NAN J R,HE L,LIN C,et al.Development of end of Line CAN Bus Test System in Electric Vehicles Based on LabVIEW[J].Applied Mechanics & Materials,2014,455:491-494.