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