XCP on FlexRay在Audi上的應(yīng)用
為了對通過FelxRay總線進(jìn)行通信的ECU進(jìn)行優(yōu)化,Audi公司采用XCP ON FlexRay對其進(jìn)行標(biāo)定。Audi的需求之一是AUTOSAR要兼容ECU內(nèi)部的XCP嵌入式軟件模塊。對此,Vector更新了XCP的 master和slave軟件使得電子開發(fā)工程師能夠有效的執(zhí)行測量和標(biāo)定。
2009年Audi將會在下一代運(yùn)動(dòng)型豪華轎車上應(yīng)用 FlexRay總線進(jìn)行通信。與CAN總線相比,F(xiàn)lexRay總線提供高達(dá)10MBit/s的帶寬。底盤和駕駛員輔助系統(tǒng)都被連接到此總線上。這就意味著Audi開發(fā)工程師必須將幾千個(gè)參數(shù)在AUTOSAR的FlexRay 協(xié)議棧里直接參數(shù)化。用XCP on FlexRay能夠獲取大于CAN通信兩倍的測量值,同時(shí)還可以進(jìn)行高吞吐量的數(shù)據(jù)傳輸。
XCP on FlexRay
用實(shí)驗(yàn)室模型決定控制算法的參數(shù)受到很大的限制。盡管功能算法是確定的,但是像特性map,特性曲線和一些參數(shù)值必須在測試臺架和實(shí)車上進(jìn)行優(yōu)化。Audi工程師在ECU的標(biāo)定架構(gòu)中調(diào)整了他們的底盤和輔助系統(tǒng)并且把參數(shù)設(shè)置文件下載到ECU的內(nèi)存里。
為了使得在整個(gè)開發(fā)過程中有統(tǒng)一的接口,測量和標(biāo)定協(xié)議標(biāo)準(zhǔn)必須要統(tǒng)一。在2003年,ASAM(AssociATIon for STandardizaTIon of Automation and Measuring Systems)定義了統(tǒng)一的測量和標(biāo)定協(xié)議——XCP協(xié)議,該協(xié)議基于*協(xié)議。XCP通信拓?fù)浣Y(jié)構(gòu)也是Master-Slave結(jié)構(gòu)模式。作為 Slave,為了能夠進(jìn)行通信,ECU必須集成XCP軟件模塊。XCP協(xié)議最大的優(yōu)點(diǎn)是傳輸層和協(xié)議層是獨(dú)立的。無論是CAN總線、FlexRay總線、 Ethernet或者SPI/SCI,其協(xié)議層都是一樣的。在2006年2月份,ASAM釋放了1.0版本的XCP on FlexRay協(xié)議。
在較早的CAN項(xiàng)目當(dāng)中,Audi開發(fā)團(tuán)隊(duì)在ECU測量、標(biāo)定和診斷(見圖1)方面就用XCP和CANape。自從2005年,CANape就已經(jīng)支持 XCP on FlexRay接口。Audi要求供應(yīng)商XCP主設(shè)備為CANape,同時(shí)在從設(shè)備中要使用XCP on FlexRay的協(xié)議。
圖1:作為XCP on FlexRay主設(shè)備,CANape直接通過FlexRay總線對單個(gè)ECU進(jìn)行測量和標(biāo)定
XCP 集成在AUTOSAR模塊
Audi 對不同供應(yīng)商的ECU集成了XCP軟件模塊。即使ECU標(biāo)定結(jié)束后,XCP軟件模塊也是有用的,從而能夠有效的使用內(nèi)存并且使得執(zhí)行時(shí)間最小。另外,XCP軟件模塊必須兼容AUTOSAR,通過利用PDU router,Vector實(shí)現(xiàn)了XCP 與AUTOSAR的兼容。在集成時(shí),GENy配置工具和FIBEX格式的網(wǎng)絡(luò)描述文件可以幫助配置XCP協(xié)議和XCP傳輸層。
圖2:Vector 提供的XCP軟件模塊與AUTOSAR3.0兼容的架構(gòu)圖
FlexRay 帶寬的動(dòng)態(tài)管理
由于XCP on FlexRay軟件模塊必須兼容AUTOSAR,這就意味著支持master的PC機(jī)也必須執(zhí)行特殊的任務(wù)。ECU標(biāo)定期間,XCP主設(shè)備與從設(shè)備之間進(jìn)行FlexRay報(bào)文交換,這些報(bào)文要么包含命令傳輸對象(CTO),要么包含數(shù)據(jù)傳輸對象(DTO)或激勵(lì)數(shù)據(jù)。當(dāng)XCP對象傳輸?shù)絤aster(見圖 3)時(shí),“XCP 傳輸層”傳輸數(shù)據(jù)到PDU router,進(jìn)而到“FlexRay接口”。由于要兼容AUTOSAR,所以這些傳輸必須按照AUTOSAR PDU(Protocol Data Unit)的格式進(jìn)行。因?yàn)镻DU來自于XCP模塊,所以被稱為XCP-PDU。FlexRay接口通過以PCI(Protocol Control Information)的形式增加特定的信息完成收到的XCP-PDU,從而形成一個(gè)L-PDU(Data Link Layer PDU),該L-PDU交給FlexRay驅(qū)動(dòng)。最后FlexRay控制器在一個(gè)FlexRay時(shí)隙里作為一幀傳輸XCP數(shù)據(jù)。
對ECU的控制命令(CTOs)單獨(dú)分配兩個(gè)XCP時(shí)隙已經(jīng)足夠;對于DTOs來講,每一個(gè)ECU對應(yīng)的XCP時(shí)隙是不同的。
圖3:經(jīng)不同軟件模塊進(jìn)行數(shù)據(jù)傳輸?shù)目驁D
為了確保Audi工程師能夠有效的傳輸XCP數(shù)據(jù),必須在ECUs運(yùn)行時(shí)進(jìn)行動(dòng)態(tài)分配帶寬。但是AUTOSAR不允許FlexRay驅(qū)動(dòng)在運(yùn)行時(shí)重新配置,因此在集成FlexRay驅(qū)動(dòng)時(shí)要把所有的XCP時(shí)隙分配給所有的ECUs;同時(shí),在每一個(gè)Slave中要分配XCP-PDU/L-PDU/XCP時(shí)隙 (見圖3)。因此對于每一個(gè)ECU的FlexRay調(diào)度表都有唯一的XCP時(shí)隙,并且該時(shí)隙對每個(gè)單獨(dú)的XCP緩沖是可用的。在每次測量之前,為了使得 ECUs有很好的靈活性,那么XCP傳輸層命令“FLX_ASSIGN”可以用來改變針對不同的L-PDUs的XCP緩沖的分配(圖4)。在軟件集成時(shí),最重要的是用最大的XCP時(shí)隙配置所有參與通信的ECUs,使得每個(gè)ECU的XCP時(shí)隙一致。動(dòng)態(tài)帶寬管理能夠確保在所有的Slaves中間都有唯一的 XCP時(shí)隙分配。CANape在ECU描述文件A2L數(shù)據(jù)庫中可以操縱這些任務(wù),并且A2L描述文件提供了關(guān)于ECU緩沖的信息。
圖4:每次測量前,XCP對象在動(dòng)態(tài)段被動(dòng)態(tài)的配置
XCP通過FlexRay總線對ECU內(nèi)部數(shù)據(jù)進(jìn)行優(yōu)化
CANape 具有的動(dòng)態(tài)帶寬管理功能僅僅是CANape功能之一,該功能可以幫助Audi有效的對ECU進(jìn)行標(biāo)定。另外的三個(gè)功能為:FlexRay總線可以傳輸高達(dá) 254個(gè)字節(jié)的數(shù)據(jù),而CAN總線只能在每幀報(bào)文中傳輸8字節(jié)的數(shù)據(jù);“Short DownLoad”功能可以在單個(gè)的L-PDU中編碼地址和內(nèi)容,從而使得master和slave交換存儲區(qū)時(shí)比CAN的速度更快。
此外,為了測量每個(gè)動(dòng)態(tài)信號(圖5),XCP能夠獨(dú)立于FlexRay周期進(jìn)行采樣。CANape在每個(gè)FlexRay基本周期可以使用稱作為“多個(gè)DAQlist傳輸周期”的功能獲取預(yù)先定義的DAQlist測量信號以及他們的多次時(shí)戳(通常為5ms)。
圖5:周期傳輸多個(gè)DAQlist
為了提高測量效率,Write-DAQ命令的功能被增強(qiáng),新命令Write-DAQ-Multiple取代Write-DAQ命令,在XCP 協(xié)議1.1版本中已經(jīng)用該命令進(jìn)行配置多個(gè)信號。
本文小結(jié)
Audi 工程師依靠MCD工具CANape成功的利用XCP on FlexRay對ECU內(nèi)部的參數(shù)進(jìn)行測量和標(biāo)定。Vector已經(jīng)擴(kuò)展了CANape和XCP軟件模塊的功能,除了擴(kuò)展XCP軟件模塊與AUTOSAR 兼容性之外,更大的特點(diǎn)是實(shí)現(xiàn)了FlexRay的動(dòng)態(tài)帶寬管理。Audi選擇Vector作為軟件供應(yīng)商和開發(fā)伙伴是非常輕松的,因?yàn)镾laves所需的 XCP軟件模塊和XCP master CANape,均來自于Vector;并且所有的擴(kuò)展都能夠從當(dāng)前的CANape版本中和XCP on FlexRay軟件模塊中獲得。