王昊 吳勇
1.山東信息職業技術學院 山東省濰坊市 261061 2.山東海事職業學院 山東省濰坊市 261108
傳統的汽車故障診斷方法借助“看、聽、摸、嗅”等手段,配合基本的檢測設備,只能大致地確定汽車的性能狀況,對故障的檢測主要依賴于技術人員的經驗判斷。現代汽車裝備了大量的電子元件,可以實時、動態地對發動機運行狀況進行檢測,催生出現代化的汽車檢測診斷方法。本文從職業院校的教學實際出發,借助成熟的CAN總線分析儀,利用LabVIEW虛擬儀器平臺開發出一套汽車發動機在線檢測系統,具有一定的教學應用價值。
為了便于對車輛排放進行檢測,汽車車載診斷(OBD)系統中對基于CAN總線的網絡各層所使用的標準進行了規定,如表1所示。
本課題所設計的汽車發動機測控教學系統主要借助于通用OBD診斷協議中的應用層協議即ISO 15031-5協議,實現汽車在線檢測與故障診斷模塊。
本課題設計開發的汽車發動機測控系統使用CANalyst-II分析儀采集卡采集4G15T型發動機各傳感器在運行過程中產生的各種信號,通過CAN數據采集卡采集汽車CAN總線實時數據,利用USB接口傳遞到PC機,經過分析,借助于Labview虛擬儀器軟件進行系統登錄,數據顯示等功能硬件連接如圖1所示。
數據采集卡用來采集汽車CAN總線的數據并通過USB接口傳輸到PC機,本文選用的是珠海創芯光電科技有限公司生產的CANalyst-II 分析儀。它配備了2個通道CAN接口,支持CAN2.0A和CAN2.0B協議,支持標準幀和擴展幀。通過USB接口連接電腦,便可以實現數據的獲取與傳輸。

表1 基于OSI模型汽車CAN總線各層的診斷協議

圖1 硬件連接示意圖
為了能動態檢測發動機運行時的各項數據,本程序主要設計了設備的打開與初始化,發送請求報文,接收響應報文并處理顯示這三個部分。為了與CANalyst-II分析儀的硬件配置相結合,在軟件設計時主要是采用調用庫函數節點的方法來實現。首先要調用設備打開與初始化函數,使CAN分析儀工作并將相應通道初始化。
在CAN總線通信中,請求報文最終是以數組的方式來發送的,所以采用LabVIEW的創建數組函數來創建CAN報文。按照CAN報文的格式來創建數組,VCI_CAN_OBJ結構體總共是24個字節,每個字節長度是8位,其中只有Data中的8個字節是請求報文的內容。將創建的數組經過VCI_Transmit函數進行發送,使用VCI_Receive函數從指定的設備CAN通道的接收緩沖區中讀取數據。
對于獲取到的數據,首先對其ID進行判定,通常ECU返回的地址為“0x7E8”。然后使用索引數組函數將指定ID的數據進行拆分,拆分為8個字節。大部分OBD指令長度只有一個字節或2個字節。使用條件結構對響應報文的PID代碼進行判定,然后提取相應字節的數據進行不同的顯示。以PID 0C為例,其代表發動機轉速的數據,在報文數據第3、4字節表示發動機轉速的數值,換算關系為((A*256)+B)/4。
根據不同的PID代碼,分別設置不同的換算關系,我們就可以得到車速、冷卻液溫度、進氣溫度、節氣門開度等其他數據了。相應數據的接收與數據顯示的程序框圖如圖2所示:
將硬件線路連接到實驗車輛的OBD診斷座上,然后運行我們所設計的汽車發動機測控教學系統軟件,進入發動機運行數據顯示界面。啟動車輛,使發動機在怠速狀態下運行,在軟件面板中設置好總線的波特率,點擊“打開設備”按鈕,可以看到面板上出現了動態的實車運行數據。

圖2 CAN響應報文數據接收與顯示程序框圖

圖3 汽車發動機測控系統實時監測系統運行界面
可以看到,系統顯示的數據動態變化,可以通過數值、儀表、波形等多種方式進行顯示,實時性好。將本系統應用于汽車檢測相關專業的教學實踐中,可以極大降低設備采購成本,易于進行二次開發,功能豐富而且實用,具有較高的推廣價值。