梁 浩
(華北水利水電大學,河南 鄭州 450045)
近20年來,隨著現代電子的快速發展,大量的電子元器件在汽車上被廣泛應用。為了滿足汽車各個子系統對汽車運行參數的共享和實時性的要求,CAN總線逐漸成為當代汽車普遍使用的總線協議。
本監控系統由一塊CAN卡(沈陽廣成 USBCAN-Ⅱ)和PC機組成,PC機里裝有基于LabVIEW開發的應用軟件。通過數據線的連接,PC機可以對汽車發動機運行參數數據的接收和發送,從而實現用戶對汽車發動機運行參數的監控。如圖1所示。

圖1 系統硬件組成
監控系統的軟件設計是基于LabVIEW平臺。LabVIEW是一種程序開發環境,由美國國家(NI)公司研制開發,類似于C和BASIC開發環境,顯著特點是:不需要采用基于文本的語言代碼,使用的是圖形化編輯語言G編寫程序,產生的程序是框圖的形式。
汽車數據采集監控系統主要包括以下功能:
1)從車輛的ECU接收發動機運行狀態參數;
2)對接收到的狀態參數進行解讀,以數字,圖表等形式顯示;
3)根據用戶需要,對發動機狀態運行參數進行修正,發送指令給車輛ECU;
以上3個功能只需隨軟件運行時打開主程序,兩個并列的While結構中運行數據接收程序和數據發送程序。其中,在數據接收子程序后要添加一個條件結構對接收到的數據進行解讀顯示;在數據發送程序中添加事件結構,監控控件動作變化。當然,只有在主程序不報錯的情況下,其余程序才能順利進行。軟件程序結構如圖2所示。

圖2 軟件程序結構
沈陽廣成科技的USBCAN-Ⅱ產品提供了Ecan動態庫,這個動態庫里包括了大量的動態函數,通過驅動文件Control CAN.dll導出,可以作為LabVIEW的VI調用,從而實現對USBCAN-Ⅱ的打開、初始化設置等操作。
2.2.1 主程序
軟件系統中的基礎是主程序,只有主程序打開 CAN卡初始化后,CAN通信正常,其它的子程序才能順利進行,而主程序包括:打開CAN卡、初始化CAN卡、CAN通信打開,啟動子程序等。為了提高軟件的運行效率,打開 CAN卡后,只需進行一次初始化,隨后的數據操作都是在數據發送和數據接收中進行,所以對主程序使用了平鋪結構,只要CAN通信打開后,CAN卡不再進行初始化,這樣既可以保證CAN卡順利打開,又可以保證CAN通信的正常運行。
2.2.2 數據接收程序
VCI_Receive是CAN卡的接收函數,在LabVIEW中使用調用庫函數的指令進行調用。通過設置timing0和timing1可以設置CAN通信的波特率。而CAN_OBJ結構體表示幀的數據結構。在接收函數Receive中被用來傳送CAN信息幀。
2.2.3 數據解讀程序
VCI_Receive函數的輸出量是以結構體形式的數組,故需要調用 LabVIEW 中“簇”將其解壓,將數據從結構體中釋放出來,再根據 ID將具體的數據進行解壓和顯示。在顯示過程中調用了選擇結構,將根據 ID的不同將不同的數據以不同的方式解讀和顯示。
2.2.4 數據發送程序
VCI_Transmit是CAN卡的發送函數,由于數據發送程序是在一個While結構中,所以在While結構中加入了事件結構,由事件發生源作為While結構的觸發事件,這樣就可以減少數據發送程序的不必要運行,同時保證數據發送指令的即時執行。而數據自動填充報文是在事件結構中進行,并且使用了局部變量將得到的報文以結構體的形式發出,實現CAN通信的發送。
汽車數據采集監控系統是通過PC機和CAN卡的連接且可以正確接收和發送報文實現的,進而可以實現對發動機運行參數的檢測和控制。在軟件的試驗過程中,將 CAN卡與發動機 ECU通過雙絞線連接,實現發動機和監控系統的通信,從而驗證軟件的實用性。
本監控系統運行后,會直接顯示系統的運行,如圖3所示:

圖3 系統運行界面
圖中為試驗過程中系統的運行狀態,均達到預期設計目的,運行穩定。
在汽車試驗中,通過LabVIEW和CAN總線建立的汽車數據采集監控系統,可以實時監測和控制車輛的運行參數,且通過試驗進行驗證。結果表明,系統運行穩定、可靠,軟件操作簡單,達到預期設計目的。
參考文獻
[1] 沈陽廣成科技有限公司.接口函數庫(EcanVCI.dll)動態使用手冊[Z].2015.
[2] 周竹朋,王歡.基于 CAN總線的新能源汽車通信網絡設計[J].機電工程技術,2017.
[3] 鐘文浩.電動汽車CAN報文的解析及應用[J].汽車電器,2017.
[4] 王堃,奚煜.基于LabVIEW的CAN總線通信系統的設計與實現[J].工業控制計算機,2017.