標(biāo)定和測(cè)量應(yīng)用的焦點(diǎn)XCP
使用XCP的一個(gè)顯著優(yōu)勢(shì)就在于這樣一個(gè)單一標(biāo)準(zhǔn)協(xié)議滿足了所有這些應(yīng)用需求。如果沒有XCP,就需要為每個(gè)通信通道定義一個(gè)專用的驅(qū)
動(dòng),然而在同時(shí)使用多種驅(qū)動(dòng)時(shí)需要考慮性能損失,此外還會(huì)增加出現(xiàn)不受歡迎的相互影響的風(fēng)險(xiǎn)和不穩(wěn)定性。
通用、可擴(kuò)展并節(jié)約資源
一個(gè),并且是同一個(gè)XCP驅(qū)動(dòng)代碼可以應(yīng)用于所有的通信過程。它可以用于從低端控制器和接口發(fā)送僅僅幾個(gè)字節(jié)的數(shù)據(jù),比如集成了串行接口的8位處理器。同樣的代碼也可用于通過高速的網(wǎng)絡(luò)(比如以太網(wǎng))使用32位處理器發(fā)送兆字節(jié)量級(jí)的數(shù)據(jù)。XCP驅(qū)動(dòng)是由強(qiáng)制功能和可選功能組成的,驅(qū)動(dòng)的大小可以根據(jù)可用的ROM/Flash的大小進(jìn)行調(diào)整。在ECU中,通過是否具有高數(shù)據(jù)吞吐量或低處理器負(fù)載和RAM尺寸來表征資源用量。
對(duì)于總線負(fù)載,主要考慮傳輸信號(hào)的數(shù)目相比總線帶寬??傊琗CP驅(qū)動(dòng)容易實(shí)現(xiàn),而且僅需要很少的幾個(gè)變量。
事件驅(qū)動(dòng)的周期性數(shù)據(jù)采集
ECU在離散的時(shí)間間隔上運(yùn)行??梢詫⑦@樣的一個(gè)時(shí)間間隔長(zhǎng)度固定(比如10ms),或者定義其依賴于某種事件(比如發(fā)動(dòng)機(jī)轉(zhuǎn)一圈)。在固定時(shí)間間隔的情況下,時(shí)間片的結(jié)束是以定時(shí)器的溢出來標(biāo)記的。從廣義上講,這種定時(shí)器溢出也是一個(gè)事件。ECU的任務(wù)是在一個(gè)特定的時(shí)間片內(nèi)完成所有的計(jì)算和控制任務(wù)。為了從XCP從設(shè)備中獲取相關(guān)的數(shù)據(jù)信息,使用了XCP協(xié)議中的DAQ機(jī)制。在該機(jī)制中,在測(cè)量開始前XCP主設(shè)備會(huì)先通知XCP從設(shè)備:特定的事件發(fā)生時(shí)需要測(cè)量哪些信號(hào)。如果現(xiàn)在事件發(fā)生了(如10ms定時(shí)器溢出),XCP從設(shè)備就從內(nèi)存中讀取這些先前定義的數(shù)據(jù),并且將他們拷貝到受保護(hù)的RAM區(qū),然后通過消息的方式發(fā)送給XCP主設(shè)備。這保證了數(shù)據(jù)值來自同一事件循環(huán)并且是相關(guān)的。
XCP主設(shè)備接收帶有時(shí)戳的數(shù)據(jù)并且將其保存在相應(yīng)的測(cè)量文件中。時(shí)戳要么通過XCP從設(shè)備作為數(shù)據(jù)發(fā)送,要么分配到消息中通過硬件接口(比如CANcardXL)發(fā)送。在測(cè)量文件中,所有數(shù)據(jù)參考XCP主設(shè)備的時(shí)間基準(zhǔn)進(jìn)行同步,然后被進(jìn)一步處理,例如在一個(gè)統(tǒng)一的時(shí)間軸上對(duì)測(cè)量數(shù)據(jù)進(jìn)行可視化顯示(圖5)。這就允許在一張圖中一致地顯示不同XCP從設(shè)備的多個(gè)數(shù)據(jù)通道。

圖5 在同一個(gè)時(shí)間軸上顯示不同信號(hào)源的各種信號(hào)
除了前面已經(jīng)提到的XCP相對(duì)于CCP的優(yōu)點(diǎn),XCP還支持所謂的冷啟動(dòng)測(cè)量和用于循環(huán)數(shù)據(jù)采集的任務(wù)的內(nèi)部ECU時(shí)戳。在冷啟動(dòng)測(cè)量中,可以配置ECU讓它在被激活后就立即周期性地發(fā)送數(shù)據(jù),而XCP主設(shè)備不需要明確地初始化該功能。如果使用了內(nèi)部ECU時(shí)戳,該時(shí)戳就不是在測(cè)量和標(biāo)定系統(tǒng)中與后期評(píng)估相關(guān)的數(shù)據(jù)接收時(shí)間了,而是在XCP從設(shè)備中數(shù)據(jù)被創(chuàng)建的時(shí)刻。這樣就消除了由于傳輸延遲而引起的不確定性(比如在總線帶寬不足或者高負(fù)載情況下都會(huì)產(chǎn)生)。
優(yōu)化特性曲線和特性圖
除了基于數(shù)學(xué)模型的控制算法,ECU還要使用由離散插值點(diǎn)組成的特性曲線和特性圖。為了達(dá)到預(yù)期的系統(tǒng)行為,通常通過試驗(yàn)方法(比如臺(tái)架試驗(yàn))建立和優(yōu)化這些特性值表。A2L文件是用來描述測(cè)量變量和標(biāo)定參數(shù)的。描述的選項(xiàng)覆蓋了從簡(jiǎn)單標(biāo)量參數(shù)到復(fù)雜數(shù)值表的范圍。其中,描述內(nèi)容包含了數(shù)據(jù)類型、原始值和物理值間的轉(zhuǎn)換規(guī)則、特性map圖的存儲(chǔ)方案以及更多的功能。Vector Informatik公司提供的CANape及類似的高性能標(biāo)定工具可以在屏幕上通過圖形圖表或數(shù)值表格的方式清晰地顯示特性曲線和map圖。
使用CANape和XCP進(jìn)行快速原型
在ECU開發(fā)過程中,經(jīng)常會(huì)頻繁地將重要功能導(dǎo)出到外部仿真系統(tǒng),這樣可以花最小的代價(jià)來計(jì)算這些功能。直到仿真模型中的算法達(dá)到一定的成熟度,開發(fā)者才會(huì)從這些算法生成代碼,這些代碼可與其它ECU代碼一起編譯并燒寫到ECU中。然而,在此之前,可以使用一種被稱作“旁通”的技術(shù)(該技術(shù)耦合了真實(shí)ECU及其模型),通過旁通可以在開發(fā)初期不依賴硬件進(jìn)行測(cè)試和優(yōu)化工作。
在使用XCP的旁通技術(shù)中,XCP主設(shè)備使用DAQ從ECU中讀取數(shù)據(jù),將這些數(shù)據(jù)作為輸入值發(fā)給模型并且使用STIM將模型返回的結(jié)果發(fā)送回ECU。值得注意的是,使用運(yùn)行MCD工具CANape的普通PC機(jī)平臺(tái)就足以滿足旁通和建模的要求。這是個(gè)好消息,因?yàn)榛谔厥鈱?shí)時(shí)硬件的解決方案可能會(huì)貴好多倍,而且在開發(fā)部門中這類設(shè)備也可能為數(shù)不多。CANape作為一個(gè)高度優(yōu)化的XCP主設(shè)備,可以同時(shí)處理與真實(shí)ECU的通信和與在PC上運(yùn)行的模型之間的通信(圖6)。ECU參數(shù)和模型參數(shù)都可通過CANape和XCP進(jìn)行標(biāo)定。
通過XCP進(jìn)行flash編程
XCP同樣為進(jìn)行ECU編程的用戶提供了便利。ECU flash內(nèi)存中的數(shù)據(jù)只能使用特殊的預(yù)定的flash程序進(jìn)行改寫,這些預(yù)定的程序也必須駐留在ECU中。原則上,可使用兩種方法:第一種方案,flash程序被永久存儲(chǔ)在flash中;首先,這樣會(huì)浪費(fèi)內(nèi)存,其次會(huì)遇到交付車輛的安全問題。第二種方案,在需要重新編程的時(shí)候,僅使用PC工具通過XCP將flash內(nèi)核下載到微控制器的RAM中。除了包含用于擦除flash內(nèi)存和重寫數(shù)據(jù)的flash程序外,flash內(nèi)核也包含自己的總線和SCP驅(qū)動(dòng),它們用于通過總線接口與PC工具進(jìn)行通信。
總結(jié)
XCP是一種標(biāo)準(zhǔn)而通用的有很多合理化潛力的應(yīng)用協(xié)議。它不僅用于ECU開發(fā)、標(biāo)定和編程;也用于在原型開發(fā)中集成需要的測(cè)量設(shè)備、功能開發(fā)中的旁通以及在測(cè)試臺(tái)上進(jìn)行的SIL和HIL過程。對(duì)于通過微控制器調(diào)試接口(例如NEXUS等)快速訪問內(nèi)部數(shù)據(jù),通信是在專用硬件上進(jìn)行的,不會(huì)出現(xiàn)故障。該硬件完成NEXUS到XCP-on-Ethernet的通信轉(zhuǎn)換。這樣帶給用戶的好處是不依賴于專用解決方案的工具生產(chǎn)商,并且可以重用組件。
Vector Informatik公司為用戶提供了免費(fèi)的驅(qū)動(dòng)用于建立XCP從設(shè)備,該驅(qū)動(dòng)可以從其公司的網(wǎng)頁上下載。從1996年就作為ECU標(biāo)定工具出現(xiàn)的MCD工具CANape,一直以來都作為XCP主設(shè)備并按照最新的XCP標(biāo)準(zhǔn)進(jìn)行不斷地升級(jí),這也得益于Vector積極參與ASAM工作委員會(huì)。CANape是市場(chǎng)上第一個(gè)具有XCP-on-FlexRay接口的工具。在第一輛FlexRay量產(chǎn)車BMW X5的開發(fā)過程中,這成為讓BMW工程師決定在標(biāo)定減震器控制系統(tǒng)時(shí)放心使用Vector的XCP協(xié)議棧和CANape的一個(gè)重要因素。
評(píng)論