《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于XCP協(xié)議支持多總線的ECU標(biāo)定系統(tǒng)的實(shí)現(xiàn)
基于XCP協(xié)議支持多總線的ECU標(biāo)定系統(tǒng)的實(shí)現(xiàn)
2018年電子技術(shù)應(yīng)用第5期
任銀行,張建龍,殷承良
上海交通大學(xué) 機(jī)械與動(dòng)力工程學(xué)院,上海200240
摘要: 目前國(guó)內(nèi)開(kāi)發(fā)的標(biāo)定系統(tǒng)大都基于CCP協(xié)議,僅支持CAN總線,系統(tǒng)的總線兼容性和可擴(kuò)展性不強(qiáng)。利用XCP協(xié)議傳輸層與協(xié)議層相互獨(dú)立的特性,實(shí)現(xiàn)了一種基于XCP協(xié)議、支持多種通信總線的ECU標(biāo)定系統(tǒng)。系統(tǒng)架構(gòu)采用業(yè)界廣泛認(rèn)可的ASAM-MCD標(biāo)準(zhǔn),在主、從節(jié)點(diǎn)實(shí)現(xiàn)了XCP驅(qū)動(dòng)?;谙嗤膮f(xié)議層,分別設(shè)計(jì)了支持CAN總線和FlexRay總線的傳輸層,使標(biāo)定系統(tǒng)同時(shí)滿(mǎn)足兩種總線的應(yīng)用需求。具體的測(cè)量標(biāo)定實(shí)驗(yàn)表明:該系統(tǒng)使用方便,能夠良好地滿(mǎn)足ECU開(kāi)發(fā)過(guò)程中的標(biāo)定需求。
中圖分類(lèi)號(hào): TP319
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.174401
中文引用格式: 任銀行,張建龍,殷承良. 基于XCP協(xié)議支持多總線的ECU標(biāo)定系統(tǒng)的實(shí)現(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 引言

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

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

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

    XCP協(xié)議由自動(dòng)化及測(cè)量系統(tǒng)標(biāo)準(zhǔn)協(xié)會(huì)(Association for Standardization of Automation and Measuring system,ASAM)提出,是對(duì)原有CCP2.1協(xié)議的繼承和升級(jí),力求使用最小的系統(tǒng)和硬件資源開(kāi)銷(xiāo)實(shí)現(xiàn)高效通信[3]。該協(xié)議分別定義了協(xié)議層、傳輸層和接口層,其最突出的特點(diǎn)就是協(xié)議層獨(dú)立于傳輸層。對(duì)于不同類(lèi)型的通信總線,只需要將XCP報(bào)文(XCP Message)的報(bào)文頭和報(bào)文尾填上對(duì)應(yīng)信息,而中間部分的XCP數(shù)據(jù)包(XCP Packet)由協(xié)議層定義,完全不受影響。因此XCP標(biāo)定協(xié)議能夠極好地適應(yīng)總線多樣化對(duì)標(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ù)的實(shí)際需求,也考慮進(jìn)一步定義XCP-on-LIN、XCP-on-K-Line和XCP-on-MOST。

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

ck3-t1.gif

2 XCP協(xié)議驅(qū)動(dòng)程序的實(shí)現(xiàn)

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

ck3-t2.gif

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

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

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

ck3-t3.gif

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

ck3-t4.gif

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

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

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

ck3-t5.gif

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

ck3-t6.gif

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

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

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

ck3-t7.gif

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

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

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

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

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

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

ck3-t8.gif

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

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

ck3-t9.gif

5 結(jié)論

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

參考文獻(xiàn)

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

[2] 劉運(yùn)瀟.基于CCP的通用型ECU標(biāo)定系統(tǒng)研究和設(shè)計(jì)[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)定工具的開(kāi)發(fā)[J].汽車(chē)工程,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] 王曉陽(yáng).基于FlexRay輪轂電機(jī)汽車(chē)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ī)械與動(dòng)力工程學(xué)院,上海200240)

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