鄧 瑩, 徐家明, 牛方興, 王高舉, 劉雙平, 劉 壯
(東風商用車技術中心, 湖北 武漢 430056)
隨著汽車五化時代的到來,越來越多的車載電控單元應用到了整車中,雖然整車控制更加智能和精準,但整車網絡拓撲結構也更加復雜,這意味著需要處理更多的電控系統故障[1]。診斷系統作為售后維修工具,很好地解決了這個問題,可以實現多個電控系統的故障診斷[2]。但整車網絡拓撲結構不僅具有復雜性,還具有多樣性。一方面為了滿足不同細分市場的需求,車型種類和車型配置在不斷增加,一方面也需要不斷調整來適應新的法規要求。因此,診斷系統也應該滿足適應不同車型、不同配置以及不同網絡拓撲結構的要求。
診斷系統由上位機診斷儀和下位機適配器組成,如圖1所示,診斷儀通過適配器與各大車型平臺OBD接口連接,實現常規診斷功能、高級診斷功能和數據服務功能等。常規診斷功能包括讀標識、讀故障、清故障、信號采集等;高級診斷功能包括執行器測試、IO功能測試等;數據服務功能包括車載電控單元的程序刷寫和EOL數據刷寫,刷寫數據由診斷儀從售后服務器獲取,診斷儀通過網絡連接到售后服務器,并通過車型底盤號找到對應的刷寫數據并下載。該診斷系統具有集成度高、界面友好、易操作、攜帶方便的優勢。

圖1 診斷系統構成
1.2.1 診斷系統架構設計
診斷系統架構如圖2所示,采用分層式架構設計,從運行環境分為診斷軟件和適配器軟件。診斷軟件由用戶界面層、診斷邏輯層、診斷協議層、診斷傳輸層、數據訪問層、SAE J2534接口、USB驅動和網絡接口這幾個部分組成,適配器軟件由USB基礎軟件、USB應用軟件、適配器基礎軟件和適配器應用軟件4個部分組成。

圖2 診斷系統架構
在診斷軟件中,診斷邏輯層實現讀標識、讀故障、清故障、數據測量、執行器測試等診斷功能的邏輯運算、策略判斷等。診斷協議層集 成 有SAE J1939 -73、 ISO 14229 -1、 ISO 15765 -3、 ISO 14230-3、ISO 15031-5五大診斷應用層協議,供診斷邏輯層調用。診斷傳輸層集成有與診斷協議層對應的診斷傳輸層協議,分別是SAE J1939 -21、 ISO 15765 -2、 ISO 15765-4、ISO 14230-2[3]。USB驅動是適配器的設備驅動程序,由診斷傳輸層調用SAE J2534接口實現。數據訪問層中的數據庫管理了電控系統單元的配置信息,包括診斷協議、請求及響應ID、波特率、CAN通道、故障碼、診斷命令等。網絡接口采用webservice接口,通過網絡接口實現與售后服務器通信。
在適配器軟件中,USB基礎軟件提供與診斷儀軟件進行USB通信的驅動接口,同時還提供與適配器基礎軟件進行SPI通信的驅動接口,并且為USB應用程序軟件提供底層調用接口。USB應用程序實現數據轉換和異常處理功能。適配器基礎軟件一方面實現與USB基礎軟件進行SPI通信,另一方面實現與外部進行CAN線通信,同時還為適配器應用軟件提供底層調用接口。適配器應用軟件完成適配器基礎軟件傳來的數據處理、異常檢查等。
1.2.2 診斷系統功能實現原理
診斷系統功能實現原理如圖3所示。用戶通過診斷系統界面選擇車型平臺和需要診斷的車載電控單元,診斷系統連接車載電控單元時,首先通過數據訪問層從數據庫中讀取對應車載電控單元配置的CAN通信參數,包括CAN通道、波特率、請求ID、響應ID、診斷協議等,基于此配置初始化軟件,然后在此運行環境下向將要連接的車載電控單元發送連接控制命令。如果車載電控單元返回肯定響應命令則表示連接成功,可以繼續選擇讀標識、讀故障、清故障、數據測量等診斷功能,否則提醒用戶連接車載電控單元失敗。其中,為了便于數據管理和使用,數據庫中的車載電控單元配置的CAN通信參數通過既定的唯一名稱標識符進行鎖定。
汽車控制系統按功能可以劃分為不同的域,主要包括動力域、底盤域、車身域、安全駕駛域以及HMI域,對應的整車CAN網絡拓撲結構主要分為動力總成CAN、底盤控制CAN、車身控制CAN、診斷CAN和信息娛樂CAN[4]。由于不同網絡分工不同,因而對信號傳輸速率要求也不相同,使得不同CAN總線波特率不一致[5]。

圖3 診斷系統功能實現原理
處于不同網絡的車載電控單元通過OBD接口實現與診斷儀進行CAN通信,對于固定CAN通道和波特率的車載電控單元,診斷軟件可以為其配置確定的OBD通信接口和波特率,從而定位到對應網絡的通信對象,完成整個通信機制。但是隨著車輛性能提升的需要及法規需求,車型及配置不斷增加,需要不斷升級與優化車輛網絡架構,車載電控單元的通信接口和波特率也在不斷調整,導致處于不同車型的同一車載電控單元的通信網絡可能不同。根據車載電控單元的CAN網絡配置需求不同,將車載電控單元分為5類,診斷系統運行時車載電控單元的CAN網絡配置需求分析如表1所示。

表1 診斷儀CAN網絡配置需求

圖4 診斷系統CAN通信參數自適應功能實現流程
根據診斷系統CAN網絡配置功能需求,診斷CAN通信自適應功能實現流程如圖4所示。用戶選擇車型平臺后,診斷系統會初始化CAN通道和波特率參數切換次數上限,然后用戶在該平臺上選擇相應車載電控單元進行連接。選擇完成后,診斷系統軟件首先從數據庫中讀取CAN通信參數并初始化軟件運行環境,然后發送相應連接測試命令。如果車載電控單元返回肯定響應命令,則顯示控制器連接成功,表明診斷系統CAN網絡配置正常。如果車載電控單元返回否定響應命令,需要判斷車載電控單元是否為I類控制器,如果車載電控單元不是I類控制器,則還需要進一步判斷CAN通道和波特率參數切換次數是否達到上限,若沒有達到上限則根據控制器的類型進行相應切換,若達到上限則顯示控制器連接失敗。其中,CAN通道和波特率參數允許切換次數由控制器類型決定。
分別選取控制器VECU、ABS、BCM為單元測試對象,設置VECU為II類控制器、ABS為III類控制器和BCM為Ⅳ類控制器,單元測試初始化設置如表2所示,數據庫初始網絡配置信息如圖5所示。

表2 單元測試初始化設置
控制器VECU、ABS、BCM連接測試成功,結果表明:在控制器的實際網絡配置與診斷系統初始網絡配置不匹配的情況下,診斷系統可自動將其配置到對應的網絡,從而成功與控制器進行通信,實現控制器相應診斷功能。

圖5 單元測試數據庫初始網絡配置信息
如圖6所示,利用上述控制器搭建臺架,以便對以上控制器進行臺架測試,從測試結果來看,診斷系統可以快速連接到相應控制器,執行測試后查看數據庫配置信息如圖7所示,測試結果與期望值保持一致。

圖6 臺架測試
以東風商用車車型平臺為實車測試對象,針對多個車型平臺進行實車測試,進一步驗證診斷系統CAN通信自適應功能是否能滿足要求,確保連接可靠。診斷系統連接實車成功后,對多個控制器進行一系列功能測試,包括讀標識、讀故障、清故障、數據測量、執行器測試、數據刷寫等,測試診斷功能面向不同CAN通道和波特率的車型平臺時能否正常工作,測試結果表明,CAN通信自適應功能能滿足診斷系統CAN網絡配置的功能需求。

圖7 VECU/ABS/BCM數據庫配置信息更新狀態
目前市場上車輛種類繁多、配置各異,無法通過車型明確區分車載電控單元網絡配置,為診斷系統連接整車帶來困難。本文提出的基于CAN通信自適應的商用車診斷系統,實現了車載電控單元CAN通信參數自動配置,可以適配不同車型、不同網絡拓撲結構的整車診斷,能快速響應整車診斷需求。該系統大大改善了售后車輛電控系統維修效率、保障了車輛運行時效性,為用戶創造了價值。