王偉,王茜,曲輔凡,吳春穎
(1.中國(guó)汽車技術(shù)研究中心,天津 300300;2.天津大學(xué)電氣與自動(dòng)化工程學(xué)院,天津 300072)
新能源汽車是汽車行業(yè)的發(fā)展趨勢(shì)、低碳經(jīng)濟(jì)發(fā)展的必然選擇。通過國(guó)內(nèi)外新能源車的對(duì)標(biāo)試驗(yàn),可以分析國(guó)內(nèi)外新能源汽車的設(shè)計(jì)與研發(fā)差異,提高我國(guó)新能源汽車的競(jìng)爭(zhēng)力。新能源車大量采用電子控制系統(tǒng),這些復(fù)雜的控制系統(tǒng)通過CAN(Controller Area Network)總線來(lái)進(jìn)行數(shù)據(jù)通信[1]。LabVIEW是NI公司推出的一種創(chuàng)新軟件產(chǎn)品,具有圖形化語(yǔ)言開發(fā)環(huán)境,能夠便捷地構(gòu)建與外部通信的軟件界面平臺(tái)[2]。通過USBCAN接口卡將CAN網(wǎng)絡(luò)與PC(Personal Computer)連接,在PC上用LabVIEW搭建與CAN總線通信的界面,可以實(shí)現(xiàn)實(shí)時(shí)監(jiān)控CAN總線中的數(shù)據(jù)。除了報(bào)文監(jiān)控功能外,此平臺(tái)提供了報(bào)文解析功能和信號(hào)監(jiān)控功能,將數(shù)據(jù)位發(fā)生變化的報(bào)文提取出來(lái),輔助CAN報(bào)文的解析,以便顯示需要監(jiān)控的汽車信號(hào)。
此系統(tǒng)由周立功公司生產(chǎn)的USBCAN-II接口卡和一臺(tái)PC機(jī)以及用LabVIEW開發(fā)的監(jiān)控解析平臺(tái)組成,如圖1所示。車上安裝多種傳感器用來(lái)采集車輛信號(hào),將采集的數(shù)據(jù)按照某種協(xié)議規(guī)則轉(zhuǎn)化成報(bào)文形式傳入CAN總線,通過CAN接口卡實(shí)現(xiàn)PC機(jī)與CAN總線網(wǎng)絡(luò)的連接。用戶可以通過對(duì)PC機(jī)操作實(shí)現(xiàn)與CAN總線數(shù)據(jù)的交互,對(duì)從CAN總線接收的數(shù)據(jù)進(jìn)行分析處理,在基于LabVIEW開發(fā)的監(jiān)控平臺(tái)上顯示CAN總線上報(bào)文信息和相關(guān)的車輛信號(hào)變化情況[3]。
圖1 系統(tǒng)硬件結(jié)構(gòu)
CAN接口卡采用USBCAN-II智能接口卡,此接口卡兼容USB2.0全速規(guī)范,具有體積小、便攜、即插即用的特點(diǎn),并且支持車載協(xié)議解析,自帶保護(hù)功能,增強(qiáng)設(shè)備的安全性與可靠性。
軟件設(shè)計(jì)是此系統(tǒng)設(shè)計(jì)的核心,采用LabVIEW作為軟件開發(fā)平臺(tái)。LabVIEW帶有大量可視化圖形控件,可以選擇不同的控件來(lái)實(shí)現(xiàn)不同的功能,在前面板實(shí)現(xiàn)人機(jī)交互功能,在程序界面對(duì)控件編程實(shí)現(xiàn)所需要的功能。CAN接口卡與PC通過USB來(lái)連接,USB驅(qū)動(dòng)由周立功公司提供,只需下載安裝即可使用。
如圖2所示:主要功能程序有主控程序、接收數(shù)據(jù)程序、發(fā)送數(shù)據(jù)程序和分析顯示數(shù)據(jù)程序。若將上述4個(gè)任務(wù)在同一線程順序執(zhí)行,則當(dāng)執(zhí)行其中一個(gè)任務(wù)時(shí)其他任務(wù)處于等待狀態(tài),每個(gè)功能程序的執(zhí)行時(shí)間不同,必定造成數(shù)據(jù)的不完整性。為解決這一問題,利用LabVIEW的自動(dòng)優(yōu)化多線程機(jī)制,將主控程序、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)、分析顯示數(shù)據(jù)分別放在并行獨(dú)立的While循環(huán)內(nèi),來(lái)提高數(shù)據(jù)的處理速度[4]。
圖2 軟件總體設(shè)計(jì)圖
在主控程序里主要實(shí)現(xiàn)對(duì)USBCAN接口卡配置、啟動(dòng)、關(guān)閉等操作。在主控程序的循環(huán)結(jié)構(gòu)中加入一個(gè)事件結(jié)構(gòu),事件結(jié)構(gòu)類似于硬件的中斷,事件結(jié)構(gòu)發(fā)送中斷請(qǐng)求給CPU,CPU收到信號(hào)便處理事件結(jié)構(gòu)內(nèi)的程序代碼。在事件結(jié)構(gòu)中響應(yīng)相關(guān)操作,如設(shè)置波特率、打開設(shè)備、打開CAN通道等;在事件結(jié)構(gòu)的用戶事件中將接收或者要發(fā)送的數(shù)據(jù)傳送到隊(duì)列,供分析顯示數(shù)據(jù)程序調(diào)用。周立功公司提供函數(shù)接口庫(kù)文件control.dll,利用LabVIEW自帶的“調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)”來(lái)調(diào)用control.dll中的函數(shù)去驅(qū)動(dòng)USBCAN接口卡并完成數(shù)據(jù)的接收和發(fā)送。隊(duì)列函數(shù)用于各個(gè)線程之間的數(shù)據(jù)傳遞,從CAN總線接收的數(shù)據(jù)或?qū)⒁l(fā)送的數(shù)據(jù)通過調(diào)用入隊(duì)列函數(shù)傳入隊(duì)列中,在分析顯示程序里調(diào)用出隊(duì)列函數(shù)取出數(shù)據(jù)進(jìn)行處理[5]。
接口庫(kù)函數(shù)control.dll供用戶進(jìn)行上位機(jī)二次開發(fā),control.dll函數(shù)庫(kù)中包含多種功能函數(shù),這些函數(shù)驅(qū)動(dòng)USBCAN-II接口卡工作,包括啟動(dòng)或關(guān)閉USBCAN接口卡、啟動(dòng)和復(fù)位某路CAN通道、初始化某CAN、清除接收緩沖區(qū)、從CAN網(wǎng)絡(luò)接收數(shù)據(jù)和發(fā)送數(shù)據(jù)。
每種功能函數(shù)都預(yù)留了接口,只需要對(duì)這些接口進(jìn)行參數(shù)配置就可以實(shí)現(xiàn)函數(shù)的功能。圖3為接口庫(kù)函數(shù)調(diào)用流程圖。
圖3 接口庫(kù)函數(shù)調(diào)用
調(diào)用這些功能函數(shù)前,需要定義相應(yīng)的數(shù)據(jù)結(jié)構(gòu)體來(lái)確保功能函數(shù)正常實(shí)現(xiàn)。此系統(tǒng)中需要定義兩個(gè)結(jié)構(gòu)體:VCI_CAN_OBJ結(jié)構(gòu)體(如圖4所示)被用來(lái)傳送CAN信息幀;VCI_INIT_CONFIG結(jié)構(gòu)體(如圖5所示)被用來(lái)完成初始化CAN配置,調(diào)用初始化CAN函數(shù)前,需要填充此結(jié)構(gòu)體。
圖4 VCI_CAN_OBJ結(jié)構(gòu)體
圖5 VCI_INIT_CONFIG結(jié)構(gòu)體
函數(shù)的調(diào)用方法都是類似的,以VCI_Receive為例來(lái)說明。此函數(shù)為接收函數(shù),用來(lái)讀取指定的設(shè)備CAN通道中的緩存數(shù)據(jù)。使用之前,一般先調(diào)用 VCI_GetReceiveNum函數(shù)來(lái)獲取緩存幀數(shù),以便對(duì)應(yīng)接收[6]。
LabVIEW自帶調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)函數(shù),可以直接調(diào)用DLL庫(kù)或共享庫(kù)。將此函數(shù)加入到程序界面,雙擊打開配置界面,選擇調(diào)用的動(dòng)態(tài)接口庫(kù)函數(shù)路徑,再選擇需要調(diào)用的函數(shù),然后打開參數(shù)界面,進(jìn)行參數(shù)配置,函數(shù)調(diào)用成功。接收到的數(shù)據(jù)存入隊(duì)列中,供數(shù)據(jù)分析處理和顯示子程序調(diào)用。
接收的報(bào)文存入隊(duì)列中,利用出隊(duì)列函數(shù)將存入隊(duì)列中的數(shù)據(jù)取出來(lái)進(jìn)行分析處理,放在兩個(gè)并行的While循環(huán)中,分別完成報(bào)文解析和報(bào)文解碼。
2.3.1 報(bào)文解析
新能源汽車對(duì)標(biāo)試驗(yàn)中亟需解決的問題就是解析CAN協(xié)議時(shí)需要經(jīng)過一系列分析判斷,才能方便開展后續(xù)的研究,報(bào)文解析的目的就是幫助破解信號(hào)。
報(bào)文解析循環(huán)中主要完成報(bào)文數(shù)據(jù)分析處理并在列表中顯示,解析過程如圖6所示。列表包括數(shù)據(jù)報(bào)文監(jiān)控列表和報(bào)文解析監(jiān)控列表,兩個(gè)顯示列表均采用“ID固定,其他變化”的顯示方式,列表中顯示的報(bào)文信息有報(bào)文的ID、傳輸方向、時(shí)間標(biāo)識(shí)、報(bào)文類型、數(shù)據(jù)位長(zhǎng)度和數(shù)據(jù)位內(nèi)容。
圖6 報(bào)文解析過程
在數(shù)據(jù)監(jiān)控列表中,顯示的是所有接收到的數(shù)據(jù),數(shù)據(jù)位用十六進(jìn)制的方式顯示。通過此列表可以實(shí)時(shí)觀察到CAN總線中所有報(bào)文的信號(hào)變化情況。
在解析列表中,顯示的是數(shù)據(jù)位變化的報(bào)文,數(shù)據(jù)位用二進(jìn)制的方式顯示。在解析列表中可以實(shí)時(shí)觀察發(fā)生變化的幀ID及具體的數(shù)據(jù)位變化,變化數(shù)據(jù)位會(huì)被標(biāo)紅高亮顯示。此系統(tǒng)為實(shí)時(shí)監(jiān)控系統(tǒng),通過觀察發(fā)生變化的報(bào)文,再配合觀察實(shí)際物理量的變化,通過計(jì)算和分析可以大致確定車輛信號(hào)變化和變化ID及數(shù)據(jù)位的關(guān)系,去縮小未知協(xié)議的范圍,有利于初步分析協(xié)議。
2.3.2 報(bào)文解碼
通過報(bào)文解析獲取某些協(xié)議后,此系統(tǒng)提供交互面板,可以選擇幀ID和定義相關(guān)換算,選擇監(jiān)控的信號(hào)量,通過報(bào)文解碼在該監(jiān)控平臺(tái)實(shí)時(shí)觀察傳感器傳送的實(shí)際信號(hào)量的變化。
報(bào)文解碼過程如圖7所示。按已知協(xié)議將需要檢測(cè)的物理量的相關(guān)數(shù)據(jù)幀ID篩選出來(lái),根據(jù)協(xié)議內(nèi)容去定義換算方法,將換算好的數(shù)據(jù)傳送給顯示相應(yīng)信號(hào)的控件來(lái)顯示[7]。
圖7 報(bào)文解碼過程
利用開發(fā)的監(jiān)控軟件,在某款新能源車輛上進(jìn)行測(cè)試驗(yàn)證,圖8為實(shí)車系統(tǒng)連接圖。
圖8 系統(tǒng)連接圖
車輛經(jīng)過上電操作之后,車輛CAN線全部報(bào)文監(jiān)控?cái)?shù)據(jù)如圖9所示;經(jīng)過駕駛員不同的操作之后,解析列表中發(fā)生變化的數(shù)據(jù)位用虛線框圈住,如圖10所示。通過觀察對(duì)比解析列表中ID的數(shù)據(jù)位與實(shí)際信號(hào)的變化情況,可以縮小ID可能的范圍,再通過計(jì)算和分析最終確定了電機(jī)轉(zhuǎn)速和車速信號(hào)的ID和定義方法。
圖9 報(bào)文監(jiān)控結(jié)果
圖10 報(bào)文解析列表
根據(jù)解析出來(lái)的電機(jī)轉(zhuǎn)速和車速信號(hào),通過信號(hào)監(jiān)控界面對(duì)它們進(jìn)行監(jiān)控驗(yàn)證,信號(hào)監(jiān)控結(jié)果如圖11和圖12所示。
圖11 信號(hào)實(shí)時(shí)監(jiān)控結(jié)果
圖12 信號(hào)歷史曲線結(jié)果
系統(tǒng)能夠很好地實(shí)現(xiàn)實(shí)時(shí)顯示數(shù)據(jù)、跟蹤數(shù)據(jù)的變化、輔助解析CAN報(bào)文,提高了車輛采集分析數(shù)據(jù)的效率。在新能源車輛CAN信號(hào)分析方面,提供多種顯示方式來(lái)觀察車輛信號(hào),對(duì)于車輛性能分析具有良好適用性。
參考文獻(xiàn):
[1]羅峰,孫澤昌.汽車CAN總線系統(tǒng)原理、設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2010.
[2]宋銘.LabVIEW編程詳解[M].北京:電子工業(yè)出版社,2017.
[3]邵斌,朱茂桃,張彤,等.混合動(dòng)力汽車CAN網(wǎng)絡(luò)信號(hào)監(jiān)測(cè)與故障診斷系統(tǒng)的開發(fā)[J].汽車技術(shù),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]王成剛,杜潤(rùn)生.計(jì)算機(jī)監(jiān)控系統(tǒng)實(shí)時(shí)多任務(wù)調(diào)度策略在LabVIEW平臺(tái)上的實(shí)現(xiàn)[J].測(cè)控技術(shù),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]廣州致遠(yuǎn)電子有限公司.CAN測(cè)試軟件與接口函數(shù)使用手冊(cè)[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.