《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于XCP協(xié)議支持多總線的ECU標(biāo)定系統(tǒng)的實現(xiàn)
基于XCP協(xié)議支持多總線的ECU標(biāo)定系統(tǒng)的實現(xiàn)
2018年電子技術(shù)應(yīng)用第5期
任銀行,張建龍,殷承良
上海交通大學(xué) 機(jī)械與動力工程學(xué)院,,上海200240
摘要: 目前國內(nèi)開發(fā)的標(biāo)定系統(tǒng)大都基于CCP協(xié)議,僅支持CAN總線,,系統(tǒng)的總線兼容性和可擴(kuò)展性不強。利用XCP協(xié)議傳輸層與協(xié)議層相互獨立的特性,實現(xiàn)了一種基于XCP協(xié)議、支持多種通信總線的ECU標(biāo)定系統(tǒng),。系統(tǒng)架構(gòu)采用業(yè)界廣泛認(rèn)可的ASAM-MCD標(biāo)準(zhǔn),,在主,、從節(jié)點實現(xiàn)了XCP驅(qū)動?;谙嗤膮f(xié)議層,,分別設(shè)計了支持CAN總線和FlexRay總線的傳輸層,使標(biāo)定系統(tǒng)同時滿足兩種總線的應(yīng)用需求。具體的測量標(biāo)定實驗表明:該系統(tǒng)使用方便,,能夠良好地滿足ECU開發(fā)過程中的標(biāo)定需求,。
中圖分類號: TP319
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.174401
中文引用格式: 任銀行,張建龍,,殷承良. 基于XCP協(xié)議支持多總線的ECU標(biāo)定系統(tǒng)的實現(xiàn)[J].電子技術(shù)應(yīng)用,,2018,44(5):72-76.
英文引用格式: Ren Yinhang,,Zhang Jianlong,,Yin Chengliang. The implementation of a multi-bus supported ECU calibration system based on XCP[J]. Application of Electronic Technique,2018,,44(5):72-76.
The implementation of a multi-bus supported ECU calibration system based on XCP
Ren Yinhang,,Zhang Jianlong,Yin Chengliang
School of Mechanical Engineering,,Shanghai Jiao Tong University,,Shanghai 200240,China
Abstract: Most calibration systems developed in our country for now are based on the CAN calibration protocol(CCP), which is specially designed for the CAN bus, and thus has poor compatibility and expansibility for other buses. However, the protocol layer of the universal measurement and calibration protocol(XCP) is independent from any specific physical transport layer. Based on that, a multi-bus supported ECU calibration system is implemented, which is in accordance with the widely accepted industry norms of measurement, calibration and diagnostic system made by association for standardization of automation and measuring system(ASAM-MCD). The XCP driver is developed in both master and slave nodes, and XCP transport layers for CAN and FlexRay are designed respectively on the basis of the same protocol layer, so that the system is suitable for both the mature CAN bus and the promising FlexRay bus. The system is tested through measurement and calibration experiments, and the results demonstrate that it satisfies the requirements well.
Key words : calibration system,;ECU,;XCP;CAN bus,;FlexRay bus

0 引言

    汽車技術(shù)的飛速發(fā)展使得汽車電子控制單元(Electronic Control Unit,,ECU)中包含的控制參數(shù)大量增加,標(biāo)定工作復(fù)雜度越來越高,。在ECU開發(fā)過程中,,控制參數(shù)的標(biāo)定工作直接影響整車性能的優(yōu)劣。面對日趨多樣的ECU和通信總線類型,,開發(fā)一種支持多總線的,、通用靈活的標(biāo)定系統(tǒng),具有非常高的實用價值[1],。目前,,CAN總線作為一種可靠的汽車總線已經(jīng)廣泛應(yīng)用于高檔汽車,因而多數(shù)標(biāo)定系統(tǒng)都是基于CCP(CAN Calibration Protocol)協(xié)議開發(fā)的,,具有一定的通用性[2],。但隨著更為先進(jìn)的FlexRay通信總線迅速發(fā)展,開發(fā)出一種既支持當(dāng)下主流的CAN總線,,又兼容代表汽車總線趨勢的FlexRay總線的標(biāo)定系統(tǒng),,無疑具有很高的技術(shù)應(yīng)用價值。

    本文基于XCP協(xié)議設(shè)計了一套ECU標(biāo)定系統(tǒng),,充分利用了XCP協(xié)議物理傳輸層與協(xié)議層相互獨立的特性,,基于同一協(xié)議層分別實現(xiàn)了對CAN總線和FlexRay總線的支持,大大提高了標(biāo)定系統(tǒng)的總線兼容性與可擴(kuò)展性。

1 標(biāo)定系統(tǒng)總體方案設(shè)計

    XCP協(xié)議由自動化及測量系統(tǒng)標(biāo)準(zhǔn)協(xié)會(Association for Standardization of Automation and Measuring system,,ASAM)提出,,是對原有CCP2.1協(xié)議的繼承和升級,力求使用最小的系統(tǒng)和硬件資源開銷實現(xiàn)高效通信[3],。該協(xié)議分別定義了協(xié)議層,、傳輸層和接口層,其最突出的特點就是協(xié)議層獨立于傳輸層,。對于不同類型的通信總線,,只需要將XCP報文(XCP Message)的報文頭和報文尾填上對應(yīng)信息,而中間部分的XCP數(shù)據(jù)包(XCP Packet)由協(xié)議層定義,,完全不受影響,。因此XCP標(biāo)定協(xié)議能夠極好地適應(yīng)總線多樣化對標(biāo)定系統(tǒng)通用性提出的要求。目前,,ASAM已經(jīng)在標(biāo)準(zhǔn)中定義的傳輸層包括:XCP-on-CAN,、XCP-on-Ethernet(TCP/IP、UDP/IP),、XCP-on-SXI(SPI,、SCI)、XCP-on-USB和XCP-on-FlexRay[3],。根據(jù)后續(xù)的實際需求,,也考慮進(jìn)一步定義XCP-on-LIN、XCP-on-K-Line和XCP-on-MOST,。

    圖1是標(biāo)定系統(tǒng)總體架構(gòu)設(shè)計方案,。整個標(biāo)定系統(tǒng)框架遵循ASAM-MCD標(biāo)準(zhǔn)(原ASAP標(biāo)準(zhǔn))搭建,包括運行于PC端的上位機(jī)標(biāo)定軟件,、負(fù)責(zé)上位機(jī)和下位機(jī)之間通信的通信控制單元和下位機(jī)ECU,。ECU端采用Freescale公司的MC9S12XF512芯片。上位機(jī)集成了方便用戶進(jìn)行測量和標(biāo)定的圖形界面以及XCP命令解析模塊,,用戶請求經(jīng)由上位機(jī)XCP協(xié)議模塊打包,,通過通信控制單元發(fā)送至下位機(jī)ECU通信接口,再由集成在ECU中的XCP驅(qū)動模塊解析后調(diào)用對應(yīng)命令處理模塊進(jìn)行操作,,將處理結(jié)果打包并通過通信控制單元發(fā)送回上位機(jī),。根據(jù)通信介質(zhì)的不同,需要對XCP協(xié)議幀的幀頭和幀尾進(jìn)行對應(yīng)的信息填充,。本文設(shè)計的標(biāo)定系統(tǒng)同時支持當(dāng)下主流的CAN通信總線和代表未來汽車總線發(fā)展趨勢的FlexRay總線,。

ck3-t1.gif

2 XCP協(xié)議驅(qū)動程序的實現(xiàn)

    XCP協(xié)議以主從方式工作,并使用命令傳輸對象(Command Transfer Object,,CTO)和數(shù)據(jù)傳輸對象(Data Transfer Object,,DTO)兩種數(shù)據(jù)包來區(qū)分主從節(jié)點間的通信,如圖2所示,。

ck3-t2.gif

    XCP協(xié)議規(guī)定了3種通信模式,,分別是標(biāo)準(zhǔn)通信模式(Standard Mode)、塊傳輸通信模式(Block Transfer Mode)和交錯傳輸通信模式(Interleaved Mode),。本文設(shè)計的標(biāo)定系統(tǒng)適用于CAN總線和FlexRay總線,,采用標(biāo)準(zhǔn)通信模式,即在主機(jī)主動發(fā)起會話建立連接之后,,對于主機(jī)發(fā)送的每一條命令,,從機(jī)都必須進(jìn)行響應(yīng)處理,如出錯則返回錯誤報告信息,。在沒有接收到從機(jī)對上一條命令的應(yīng)答之前,,主機(jī)不會發(fā)送新的命令[4]

2.1 下位機(jī)端XCP協(xié)議驅(qū)動程序的實現(xiàn)

    XCP協(xié)議作為對CCP協(xié)議的升級,,其所具有的一個重要新功能是對冷啟動測量的支持,,即所謂的RESUME模式[3]。集成了XCP協(xié)議驅(qū)動的下位機(jī)啟動后其狀態(tài)機(jī)模型如圖3所示,。

ck3-t3.gif

    從節(jié)點設(shè)備啟動并完成初始化后,,會立刻檢測ECU的非易失存儲介質(zhì)中是否有已配置好的DAQ list供RESUME模式使用,如果有,,則進(jìn)入RESUME模式,,按配置列表周期性向上位機(jī)發(fā)送數(shù)據(jù);如果沒有相關(guān)配置文件,,則進(jìn)入DICONNECTED模式,。在RESUME模式和DISCONNECTED模式下,從設(shè)備只響應(yīng)來自主機(jī)的CON-NECT命令(XCP-ON-CAN條件下還可響應(yīng)GET_SLAVE_ID命令),。下位機(jī)端XCP驅(qū)動的工作流程如圖4所示,。

ck3-t4.gif

    按照主從通信模式,從機(jī)端使用中斷方式對主機(jī)的命令進(jìn)行響應(yīng),。從機(jī)啟動后會首先完成系統(tǒng)的初始化工作,,包括對從機(jī)硬件資源的初始化、配置系統(tǒng)默認(rèn)參數(shù)以及XCP模塊的初始化,,并且將標(biāo)定數(shù)據(jù)從ROM或Flash鏡像到RAM,,為標(biāo)定工作做好準(zhǔn)備。在解析到來自主機(jī)的CTO消息中包含CONNECT命令后,,從機(jī)響應(yīng)主機(jī)建立連接,,該設(shè)備進(jìn)入在線狀態(tài),進(jìn)而處理來自主機(jī)的一系列命令,,并根據(jù)命令碼(CMD code)調(diào)用對應(yīng)的模塊進(jìn)行響應(yīng),,完成對應(yīng)操作后將數(shù)據(jù)封裝成DTO數(shù)據(jù)包發(fā)送給主機(jī),。如處理出錯,則返回對應(yīng)的ERR數(shù)據(jù)包,,其第二字節(jié)包含具體的錯誤碼,。

2.2 上位機(jī)端XCP協(xié)議驅(qū)動程序的實現(xiàn)

    上位機(jī)采用圖形化編程語言LabVIEW開發(fā)。XCP協(xié)議共規(guī)定了18條必選命令和38條可選命令[5],。結(jié)合標(biāo)定系統(tǒng)的功能需求和開發(fā)語言特點,,實現(xiàn)思路是將18條必選命令和部分可選命令分別定義為獨立的子vi,然后根據(jù)實際功能需求對其進(jìn)行順序調(diào)用,。實現(xiàn)的部分命令子vi如圖5所示,。

ck3-t5.gif

    結(jié)合標(biāo)定軟件的功能需求和XCP協(xié)議規(guī)定的CMD列表,上位機(jī)端的XCP協(xié)議實現(xiàn)框架如圖6所示,。

ck3-t6.gif

    本文設(shè)計的標(biāo)定系統(tǒng)軟件包含部分尚未實現(xiàn)的可選命令,。當(dāng)用戶操作需要用到該命令時,下位機(jī)會統(tǒng)一返回ERR_CMD_UNKNOWN錯誤代碼,。

3 XCP協(xié)議傳輸層設(shè)計

    作為對CCP協(xié)議的升級,,XCP協(xié)議最突出的特點是協(xié)議層獨立于具體的物理傳輸層,從而增加了協(xié)議對總線適用的靈活性,,減少了開發(fā)移植的重復(fù)工作,。XCP協(xié)議規(guī)定的XCP報文(XCP Message,也稱XCP Frame)結(jié)構(gòu)如圖7所示,。

ck3-t7.gif

    XCP報文分為3部分,,分別是報文頭(XCP Header)、報文尾(XCP Tail)和中間的XCP數(shù)據(jù)包(XCP Packet),。其中XCP數(shù)據(jù)包由協(xié)議層定義,,報文頭和報文尾由傳輸層定義,從而實現(xiàn)同一協(xié)議層數(shù)據(jù)包可通過不同物理總線進(jìn)行傳輸,。

3.1 XCP-on-CAN傳輸層設(shè)計

    當(dāng)物理層傳輸介質(zhì)為CAN總線時,,報文頭為空,報文尾由開發(fā)者根據(jù)實際需求選則有或者無,,且XCP數(shù)據(jù)包中不包含時間標(biāo)識段(TIMESTAMP),。其原理是:CAN2.1協(xié)議規(guī)定CAN報文數(shù)據(jù)幀的數(shù)據(jù)域長度DLC最多為8 B[6]。如果設(shè)置CAN報文中的數(shù)據(jù)長度DLC始終等于XCP數(shù)據(jù)包長度LEN,,則報文尾為空,,此時XCP數(shù)據(jù)包就是XCP報文;如果設(shè)定DLC長度始終為MAX_DLC=8,,則當(dāng)XCP數(shù)據(jù)包長度小于8 B時,,需要通過添加XCP報文尾的方式補足8 B(填充內(nèi)容任意)。本文設(shè)計的XCP-on-CAN報文采用第一種方式,,即令DLC始終與LEN相等,。

3.2 XCP-on-FlexRay傳輸層設(shè)計

    當(dāng)物理層傳輸介質(zhì)為FlexRay總線時,,必包含報文頭,而報文尾則根據(jù)所在報文實際情況,,可能為空,,也可能為1 B的填充域(填充內(nèi)容任意)。其原理是:報文頭包含4個部分,,分別為XCP節(jié)點地址(NAX),、計數(shù)(CTR),、填充字節(jié)(FILL)和XCP報文數(shù)(LEN),。除首字節(jié)NAX外,其余部分均為可選項,。FlexRay作為新一代高速總線,,每一幀的理論有效數(shù)據(jù)長度能達(dá)到254 B,實際應(yīng)用過程中有效數(shù)據(jù)長度取決于具體的FlexRay控制器參數(shù),,其中恩智浦MFR4310控制器已經(jīng)可以實現(xiàn)0~254 B數(shù)據(jù)域長度配置[7],。為了增加總線吞吐量,當(dāng)FlexRay數(shù)據(jù)幀中含有多個連續(xù)的XCP報文時,,需要給每一個報文順序計數(shù)CTR以保證數(shù)據(jù)的有序性,,同時還要給出所包含的XCP報文個數(shù)LEN,而FILL域用于實現(xiàn)Byte或Word對齊,,提高FlexRay總線傳輸效率[8],。本文設(shè)計的FlexRay數(shù)據(jù)幀采用最為簡潔的形式,僅包含一個XCP報文,。

    本文設(shè)計的XCP-on-CAN和XCP-on-FlexRay報文結(jié)構(gòu)如圖8所示,。

ck3-t8.gif

4 標(biāo)定系統(tǒng)驗證

    對系統(tǒng)進(jìn)行驗證的首要目標(biāo)是保證系統(tǒng)的各項基本功能均能夠準(zhǔn)確、可靠地實現(xiàn),。驗證的基本思路是:第一階段,,連接標(biāo)定系統(tǒng)上位機(jī)、下位機(jī),,并運行上位機(jī)標(biāo)定軟件,,將下位機(jī)ECU上電,通過簡單的配置后可以實現(xiàn)上,、下位機(jī)的成功連接,。而后建立監(jiān)測窗口,選取若干參數(shù)進(jìn)行數(shù)據(jù)顯示,,觀察是否能正常運行,;再建立標(biāo)定窗口,對上述某一參數(shù)數(shù)值進(jìn)行修改,,從而驗證標(biāo)定系統(tǒng)的基本功能,。第二階段,,連接本文開發(fā)的標(biāo)定系統(tǒng)和實驗室一直使用的電池包管理ECU,重復(fù)上述驗證程序,,驗證標(biāo)定系統(tǒng)的適用性,。實驗結(jié)果表明該系統(tǒng)使用簡單靈活,能夠滿足實驗室標(biāo)定工作的基本需求,。標(biāo)定系統(tǒng)工作時的連接參數(shù)配置界面,、監(jiān)測窗口和標(biāo)定窗口如圖9所示。

ck3-t9.gif

5 結(jié)論

    本文基于XCP協(xié)議完成了ECU標(biāo)定系統(tǒng)的開發(fā),,按照ASAM-MCD標(biāo)準(zhǔn)設(shè)計系統(tǒng)整體架構(gòu)并予以實現(xiàn),,保證了系統(tǒng)的通用性。利用其協(xié)議層獨立于傳輸層的特性,,在同一協(xié)議層的基礎(chǔ)上設(shè)計了CAN總線和FlexRay總線對應(yīng)的兩種傳輸層結(jié)構(gòu),,克服了基于CCP協(xié)議的標(biāo)定系統(tǒng)僅支持CAN總線的局限性。最后應(yīng)用標(biāo)定系統(tǒng)進(jìn)行標(biāo)定試驗,,驗證其監(jiān)測,、標(biāo)定等基本功能。本文設(shè)計的標(biāo)定系統(tǒng)具有良好的總線適用性和可擴(kuò)展性,,不僅滿足當(dāng)下主流CAN總線的標(biāo)定需求,,而且支持新一代FlexRay總線。與此同時,,XCP協(xié)議多總線支持的特性也為今后進(jìn)一步擴(kuò)展XCP-on-Ethernet,、XCP-on-SXI和XCP-on-MOST提供了保證。

參考文獻(xiàn)

[1] 張俊峰,,肖兵,,童天涯.面向異構(gòu)網(wǎng)絡(luò)的整車控制器標(biāo)定系統(tǒng)的實現(xiàn)[J].電子技術(shù)應(yīng)用,2015,,41(12):133-136.

[2] 劉運瀟.基于CCP的通用型ECU標(biāo)定系統(tǒng)研究和設(shè)計[D].上海:上海交通大學(xué),,2013.

[3] SCHUERMANS R,ZAISER R,,HEPPERLE F,,et al.XCP_Part1-Overview_V1-1-0[Z].2008.

[4] 蘇瑜,周文華,,竺春狄.一種適用不同通信方式基于XCP協(xié)議的ECU標(biāo)定工具的開發(fā)[J].汽車工程,,2010,32(1):81-85.

[5] SCHUERMANS R,,ZAISER R,,HEPPERLE F,et al.XCP_Part2-Protocol layer specification_V1-1-0[Z].2008.

[6] SCHUERMANS R,,ZAISER R,,HEPPERLE F,,et al. XCP_Part3-Transport layer specification_XCPonCAN_V1-1-0[Z].2008.

[7] 王曉陽.基于FlexRay輪轂電機(jī)汽車XCP標(biāo)定系統(tǒng)研究[D].北京:北京交通大學(xué),2014.

[8] CUMMINGS R.Easing the transition of system designs from CAN to FlexRay[C].SAE World Congress & Exhibition,,2008.



作者信息:

任銀行,,張建龍,殷承良

(上海交通大學(xué) 機(jī)械與動力工程學(xué)院,,上海200240)

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。