陳華春 古茂兢






摘 ?要:本文介紹了一種基于CANDTU硬件和LabVIEW軟件平臺的遠程車載參數監控系統的實現。系統按功能模塊可以分為CAN報文采集、4G上傳云服務器、LabVIEW數據處理分析三部分。通過CANDTU可將汽車總線各單元的數據上傳到指定云服務器,完成數據采集和存儲,然后在本地計算機上通過LabVIEW調用CANDTU提供的接口函數連接云服務器,有的CAN數據會被傳輸到計算機上進行后續的處理和分析,借助LabVIEW可以生成專業的分析圖表,并通過圖表判斷是否滿足設計標準。
關鍵詞:CAN總線;LabVIEW;車載參數監控
中圖分類號:TP277;U469.72 ? ? 文獻標識碼:A 文章編號:2096-4706(2019)16-0004-03
Abstract:This paper introduces a remote vehicle parameter monitoring system based on CANDTU hardware and LabVIEW software platform. According to function modules,the system can be divided into CAN message collection,4G cloud server uploading and LabVIEW data processing and analysis. The data of each unit of automobile bus can be uploaded to the designated cloud server through CANDTU to complete data acquisition and storage. Then the interface function provided by CANDTU is called by LabVIEW to connect the cloud server on the local computer. Some CAN data will be transferred to the computer for subsequent processing and analysis. With the help of LabVIEW,professional analysis charts can be generated,and the charts can be used to determine whether the design standards are met.
Keywords:CAN bus;LabVIEW;vehicle parameter monitoring
0 ?引 ?言
汽車是當今最重要的交通工具之一。但是近年來,能源和環境污染問題日益嚴峻,國務院在2012年發布《節能與新能源汽車產業發展規劃(2012—2020年)》,規劃了以電驅動形式的汽車為主的新能源汽車的發展方向,以及整個汽車工業轉型的戰略方向。如今,中國已經成為新能源汽車產銷第一大國。汽車性能檢測是現代汽車行業評價汽車性能的主要手段,新能源汽車的檢測需求也越來越多[1]。
汽車生產商每生產或升級一款新車,都需要做路測收集汽車行駛時各單元的實時狀態,做具體的性能分析。CANDTU利用4G信號遠距離傳輸CAN數據,結合LabVIEW簡單且強大的界面編輯功能,可以縮短測試軟件開發周期,降低測試人力成本,結果也能及時反饋。
1 ?系統設計
如圖1所示,系統主要由三個部分構成:CAN報文采集、4G上傳云服務器、LabVIEW數據處理分析。
CANDTU支持4G通信,可將CAN總線上的數據上傳到指定的服務器上。CANDTU的CAN口并入待測總線,使用CANDTU配置工具配置對應總線波特率、服務器IP和端口。
CANDTU云數據平臺具有遠程管理設備、配置設備、實時轉發數據等功能。設備通過4G無線連接到云數據平臺后,將設備ID添加到云數據平臺后,用戶即可遠程管理設備。同時,云數據平臺還支持CAN、GPS數據實時轉發,可通過LabVIEW調用二次開發函數庫開發應用,免去用戶搭建服務器的工作,從而快速搭建用戶應用。
2 ?軟件設計
2.1 ?軟件功能結構
如圖2所示,軟件系統由1個主控程序與4個功能子程序組成。
主控程序實現用戶登錄服務器、獲取設備列表、啟動設備、斷開服務器連接、復位設備等人機交互操作,LabVIEW是事件結構類似硬件的中斷方式,在降低CPU的占用率的情況下,能夠快速地響應用戶事件,所以主界面的程序使用事件結構編寫。其他4個子程序主要完成數據的接收、發送、顯示和存儲、解析,分4個獨立的線程運行。主控程序隨軟件啟動運行,它可以根據用戶的需求,通過選項卡選擇其余4個子程序,并將各子程序的運行結果傳遞給相關功能面板的顯示控件。
2.2 ?二次封裝接口函數
LabVIEW調用DLL也有一定的局限性,無法調用包含賦值或者返回值包含復雜數據結構的DLL[2]。由于CANDTU提供的DLL包含上述復雜數據結構,所以需要重新封裝函數。構建一個新的DLL,把復雜的數據結構轉換成LabVIEW易于調用的數據類型。
使用Visual Studio 2013軟件重新編譯生成zlgcan_wrap.dll二次封裝函數。
2.3 ?軟件主界面實現
LabVIEW通過使用調用庫函數節點調用DLL,在調用庫函數節點的配置窗口的功能選項卡上,輸入DLL的路徑并選擇需要調用的功能,按照DLL的頭文件說明,手動添加定義函數原型,類似的調用方法如圖3所示。
程序主界面如圖4所示,程序中的各個子程序的調用都要根據用戶按需操作,即典型的HMI人機交互,要處理的事件包括:登錄服務器、獲取設備操作句柄、啟動接口卡、啟動各子程序等。為了提高程序運行效率,在While結構中避免對這些事件不必要的輪詢操作,使用事件結構來響應用戶的操作。對于登錄服務器、初始化其相關參數等硬件加載過程,可以參考DLL的調用流程,其中有些是固定的流程,可以使用順序結構執行,程序簡單易讀。
2.4 ?接收發送實現
本系統的設計主要目的是遠程獲取汽車總線數據,登錄服務器以后,從設備列表中選取在線設備,打開設備即可獲取對應的設備索引。ZCAN_Receive是CANDTU接口卡用于接收數據的函數,在LabVIEW中可以利用Calling Library Function Node對它進行調用。在按照函數規定的調用格式配置好相關參數后,即可通過接口卡進行數據的接收。ZCAN_Receive函數的輸出量具有規定的數據結構,在LabVIEW構建類似C語言的結構體,需要用到簇構建。簇的構建需要注意的是字節對齊問題,LabVIEW是單字節對齊方式,這意味著LabVIEW中的簇的內存映射是無間隙的,簇實際占用空間等于簇中各個元素占用空間之和,如果不滿足對齊條件,可以通過空的占位符解決。為了緩存收到的數據幀,在數據接收子程序中創建一個隊列,當ZCAN_Receive函數接收到數據后,使用Lossy Enqueue Element將結果存入其中,以供其他子程序調用。發送和接收并行處理的,同理可以創建ZCAN_Transmit函數,完成對CAN數據的接收和發送,最終結果如圖5所示。
2.5 ?數據保存實現
數據列表與保存子程序用于顯示系統所采集到的數據,并根據用戶需求保存結果。當該子程序運行時,使用Dequeue Element向保存接收數據的隊列讀取結果。對于數據采集和分析系統,在盡可能快速采集數據的同時,也不能因為顯示和處理的開銷導致采集丟幀。所以接收部分,使用的是生產者消費者結構,ZCAN_Receive接收數據作為生產者,消費者從數據緩存中提取所需要數據,用于顯示和解析。顯示部分,可以通過多列表框(Multicolumn Listbox)以文本的方式顯示。通過字符串選項卡目錄下的功能節點,將所接收到的數據轉換成字符串,并顯示在多列表控件中。當用戶要求保存數據時,程序會把每一幀接收到的數據按照列表中的格式寫入到指定的TXT文件中,以供其他軟件的調用與分析。
2.6 ?數據解析實現
從CANDTU上傳的數據是真實物理量經過相關傳感器編碼及CAN協議轉換后得到的,一幀報文包括IP和最大8位數據。同一幀可能定義了不同含義的數據,所以原始數據并不利于用戶的直觀觀測和理解,需要對幀ID進行篩選歸類,數據按位進行解析換算,將結果直接輸出顯示。需要對各數據幀的數據內容進行設置、指定換算方法等,在汽車電子中,有DBC文件可供解析CAN節點的有效信息,在此構建的是類似DBC解析的工作。包括:數據名稱、數據單位、數據類型,數據有效值在數據幀中所占據的字節位,以及如何處理換算等。對于數據處理換算的方法定義,采用Matlab Script實現。定義數據及換算方法、啟動監測功能后,系統即可以將指定數據的真實物理量在監測面板中實時顯示。
用USBCAN卡模擬汽車總線數據,往CANDTU的CAN0口發送數據,可以正常地接收和解析數據,功能正常,運行穩定,如圖6所示。
4 ?結 ?論
本文介紹的遠程車載參數監控方案與傳統的隨車或者離線測試系統相比有明顯的優勢,它提供了簡便快速的汽車路況參數分析方案,結合了4G技術和LabVIEW快速開發的特點。本系統提供了實時數據傳輸和分析功能,因此在車輛測試時可及時修正系統參數。此方案的提出可有效降低測試人力和軟件開發成本。
參考文獻:
[1] 王懷興.基于LabVIEW技術的汽車發動機實時遠程網絡測試系統研究 [D].武漢:武漢理工大學,2005.
[2] 陳樹學,劉萱.LabVIEW寶典 [M].北京:電子工業出版社,2011.
作者簡介:陳華春(1989-),男,漢族,廣西玉林人,本科,技術支持工程師,研究方向:嵌入式系統設計;古茂兢(1990-),男,漢族,廣東茂名人,本科,技術支持工程師,研究方向:嵌入式系統設計。