李 麗, 董昌興, 尹欣欣
(陜西法士特齒輪有限責任公司, 陜西 西安 710077)
隨著汽車電子技術的發(fā)展,標定已經(jīng)成為開發(fā)電子控制單元 (ECU) 的一個重要環(huán)節(jié)。通過標定系統(tǒng),可以實時獲取ECU內部的變量,還可以對ECU內部的標定變量進行在線標定以優(yōu)化其控制參數(shù)。
目前,CCP (CAN Calibration Protocol) 協(xié)議是國際上主流的測量和標定規(guī)范,它是一種基于CAN 線的通信協(xié)議,是標準化組織ASAP制 定 的 MCD ( MeasurementCalibrationand-Diagnostics) 模 型 中 的一部分,MCD模型定義了ASAP1、ASAP2、ASAP3標準,如圖1所示。其中,ASAP1 是應用層和控制設備之間接口的標準,分為1a標準和1b標準,其中1a是物理層和協(xié)議層,CCP 就是從屬于這個標準的協(xié)議[1]。
圖1 MCD模型
采用CCP協(xié)議可以快速而有效地實現(xiàn)對汽車電控單元的標定,但是符合要求的 CCP 協(xié)議的軟件部分基本都依賴于國外的專業(yè)軟件 (比如德國的 VECTOR 公司的CANAPE),國內還沒有成熟的基于CCP協(xié)議的ECU標定系統(tǒng),國內廠商在普及CCP協(xié)議的過程中,需要高價購買國外公司的相關診斷產(chǎn)品進行標定診斷,同時目前無法同時實現(xiàn)多種協(xié)議(UDS、CCP、J1939) 的融合,需要借助于多種軟件工具來實現(xiàn)不同協(xié)議的功能,研究并掌握CCP的核心技術,有非常重要的意義。
CCP協(xié)議采用主從式的通信方式[2],系統(tǒng)中只能有一個主設備,但可以有多個從設備。其中,主設備是上位機,即遵循CCP協(xié)議的測量標定系統(tǒng),從設備是支持CCP協(xié)議的ECU,主設備通過CAN線與從設備相連,如圖2所示。
圖2 CCP通信結構圖
CCP協(xié)議中,主設備與從設備之間的通信可分為兩種,即polling模式和DAQ模式[3]。
1) polling模式,即一問一答模式,主設備先問,從設備回答,兩者之間通過不斷交互來實現(xiàn)通信和數(shù)據(jù)交換,這種模式下,主設備和某一從設備建立連接后,每一次通信都是由主設備發(fā)送一個命令請求開始的,請求從設備執(zhí)行某項操作,或請求從設備內部的數(shù)據(jù)。從設備收到請求命令后,執(zhí)行相應的操作,并返回一幀消息,提供主設備請求的數(shù)據(jù)及命令執(zhí)行情況,使用這種通信方式,標定系統(tǒng)實現(xiàn)起來比較簡單,但是效率低。
2) DAQ模式,即一問多答模式,這種模式下,主設備和某一從設備建立連接后,主設備先發(fā)送一條DAQ請求,從設備收到請求命令后,按命令中的參數(shù)自行配置組織數(shù)據(jù),并按照一定周期主動上傳。這種模式不需要主設備通過命令逐步控制,所以工作效率比較高,標定系統(tǒng)實現(xiàn)起來比較復雜[4]。
CCP協(xié)議遵從CAN總線通信規(guī)范,基于CCP的通信均以CAN報文的形式實現(xiàn),所有收發(fā)的數(shù)據(jù)都打包成最多8字節(jié)的報文。報文分為兩種,即命令接收對象 (CRO) 和數(shù)據(jù)傳輸對象 (DTO),它們各使用一個CAN ID,CAN ID的值可從A2L文件導入。A2L文件是包含ECU中變量信息的文件,包括:變量名稱、數(shù)據(jù)類型、變量的上下限等信息。上位機軟件通過解析A2L文件,得到ECU中變量的信息。
CRO是由主設備向從設備發(fā)送的消息對象,包括命令代碼和命令參數(shù),CCP協(xié)議中總共規(guī)定了28條CRO,這些命令的不同組合可以實現(xiàn)標定系統(tǒng)的所有功能。DTO則是從設備向主設備返回的消息。主設備和從設備建立邏輯連接后,主設備通過CRO向從設備發(fā)送命令和參數(shù),從設備接收命令后執(zhí)行相應的操作,并將DTO反饋給主設備,完成一次通信[5]。DTO可以分為3種。
1) 命令返回消息,用于反饋CRO命令的執(zhí)行情況。
2) 事件消息,用于從設備主動向主設備報告其內部發(fā)生錯誤機制。
3) 數(shù)據(jù)采集消息,用于在DAQ模式下,從設備自行周期性地向主設備發(fā)送數(shù)據(jù)。
圖3所示,標定系統(tǒng)由主設備、CAN通信卡和從設備組成,其中主設備采用C#編寫標定軟件,CAN通信卡采用USBCAN卡,實現(xiàn)USB數(shù)據(jù)流和CAN數(shù)據(jù)流的轉換。
圖3 標定系統(tǒng)總體結構
CCP協(xié)議棧作為整個標定系統(tǒng)的核心,其實現(xiàn)流程如圖4所示。
圖4 CCP協(xié)議棧實現(xiàn)流程
1) 啟動CAN報文接收器,持續(xù)不斷地接收CAN線報文。
2) 由CCP驅動器發(fā)送CRO指令。
3) CCP驅動器掛起,等待DTO報文。
4) CAN報文接收器接收到DTO報文后,喚醒CCP驅動器,CCP驅動器完成該CCP命令。
5) 根據(jù)來自上層應用的CCP指令請求,繼續(xù)以上操作,來完成相關的CCP指令。
J1939協(xié)議棧主要用于針對CAN線報文的解析,從而保證標定系統(tǒng)能夠同時采集控制器內部數(shù)據(jù)和CAN線數(shù)據(jù)。其實現(xiàn)流程如圖5所示。
圖5 J1939協(xié)議棧實現(xiàn)
1) 啟動CAN報文接收器,持續(xù)不斷地接收CAN線報文。
2) 根據(jù)接收到的報文ID,判斷該報文是否是CCP協(xié)議報文或者UDS協(xié)議報文,如果是CCP協(xié)議報文或者UDS協(xié)議報文,則啟動對應的報文處理機制,這次報文接收處理終了,否則,啟動J1939協(xié)議棧進行報文處理。
3) 首先判斷該報文是否為多幀報文,如果是,則持續(xù)接收該多幀報文的后續(xù)數(shù)據(jù)報文,直到全部接收,將其組合為一個多幀報文,按照DBC定義文件進行信號解析;如果不是多幀報文,則直接按照DBC定義文件進行信號解析。
4) 最后,將解析到的信號進行記錄和處理。
系統(tǒng)設置頁面如圖6所示,可以選擇USBCAN設備類型,支持周立功USBCAN、廣成 科 技 USBCAN、PCAN 等設備,設置CAN線波特率,選擇DBC 文 件 以 及 A2L 文件。DBC文件為解析CAN線報文信號用的DBC文件,如果不需要解析CAN線報文信號,也可以不設置DBC文件。 A2L文件為解析控制器內部變量用的A2L文件,用于內部變量的監(jiān)視和標定量的標定。
圖6 系統(tǒng)設置
工具欄具備開始數(shù)據(jù)監(jiān)視,停止數(shù)據(jù)監(jiān)視,保存頁面上設置的監(jiān)測變量,變更內部數(shù)據(jù)變量的監(jiān)測方式 (DAQ 和Polling)。
節(jié)點樹分3部分,觀測量和標定量來自于A2L文件中定義的觀測量和標定量,dbc文件節(jié)點來自于設置頁面設置的DBC文件。根據(jù)監(jiān)測需要,可以添加觀測量、標定量、DBC信號量到數(shù)據(jù)顯示區(qū)域。
數(shù)據(jù)顯示區(qū)域顯示來自于節(jié)點樹添加的變量,通過【觀測量】、【標定量】和【DBC 文件】tab頁,分別顯示添加的變量。【圖形化】Tab頁,以圖形顯示的方式,顯示數(shù)據(jù)變量的實時變化曲線。圖7為系統(tǒng)監(jiān)測標定頁面。
圖7 系統(tǒng)監(jiān)測標定頁面
數(shù)據(jù)分析頁面如圖8所示,可以對采集到的數(shù)據(jù)文件(*.csv) 進行圖形化分析??梢愿淖冏兞繄D形顯示的顏色和線條粗細,可以通過工具欄的坐標系變更框來改變多個變量顯示的坐標系。
圖8 數(shù)據(jù)分析頁面
經(jīng)反復調試,該標定系統(tǒng)實現(xiàn)了ECU內部數(shù)據(jù)和CAN線數(shù)據(jù)的監(jiān)測,以及ECU內部數(shù)據(jù)的標定,因此,在售后服務工具開發(fā)中,能得到很好地應用。