FlexRay正在前行
在發(fā)展過程中,CAN不能滿足汽車中逐漸增長(zhǎng)的數(shù)據(jù)傳輸要求,這導(dǎo)致了FlexRay串行總線系統(tǒng)的發(fā)展[1]。去年底,BMW展示了首個(gè)FlexRay產(chǎn)品級(jí)應(yīng)用。Vector Informatik公司在那時(shí)舉行FlexRay大會(huì)正是總結(jié)新協(xié)議應(yīng)用經(jīng)驗(yàn)和挑戰(zhàn)的好時(shí)機(jī)。在BMW X5車上使用FlexRay完成減震器控制系統(tǒng)從兩方面來講都是一項(xiàng)“時(shí)間關(guān)鍵”工程,這讓項(xiàng)目 參與者面臨考驗(yàn)。不僅半導(dǎo)體產(chǎn)品和軟件組件需要按時(shí)生產(chǎn)出來,而且面對(duì)這樣一項(xiàng)艱巨的工程,其開發(fā)流程也必須要很快地適應(yīng)現(xiàn)有的結(jié)構(gòu)并能正確運(yùn)轉(zhuǎn)。在這里需要得到供應(yīng)商的支持。“在BMW我們不能只為了FlexRay而開發(fā)一套新的流程”,BMW AG的網(wǎng)絡(luò)技術(shù)組帶頭人Anton Schedl博士如此表示,“因此我們有意識(shí)地決定選取了一種相對(duì)簡(jiǎn)單的應(yīng)用,這樣可以根據(jù)已有經(jīng)驗(yàn)、使用較短的協(xié)調(diào)和決策路徑迅速實(shí)現(xiàn)改造?!?/P>
Schedl博士認(rèn)為,在合適的時(shí)間有可用的半導(dǎo)體是這項(xiàng)試驗(yàn)性項(xiàng)目的最大挑戰(zhàn)。得益于OEM和半導(dǎo)體供應(yīng)商共同做出的積極承諾,這一目標(biāo)有可能會(huì)按期完成。
萬事開頭難
盡管啟動(dòng)每個(gè)新系統(tǒng)必然會(huì)很困難,但是不同的部件還是比較快地集成到了一起?!皶r(shí)間觸發(fā)通信是將不同供應(yīng)商的部件和軟件代碼集成起來的理想平臺(tái)”,在Robert Bosch公司汽車網(wǎng)絡(luò)部門工作的Florian Hartwich說。他還協(xié)助FlexRay協(xié)會(huì)制定協(xié)議,之前參與了CAN和TTCAN的開發(fā)和標(biāo)準(zhǔn)化工作。因?yàn)槊總€(gè)應(yīng)用系統(tǒng)都在預(yù)先規(guī)定的時(shí)刻發(fā)送報(bào)文并且知道該在何時(shí)接收何報(bào)文,所以在之后可以更為容易地將部件加入到分布式系統(tǒng)中。
最重要的工作需要在FlexRay系統(tǒng)開發(fā)一啟動(dòng)時(shí)就進(jìn)行。所有的系統(tǒng)描述參數(shù)——比如波特率、循環(huán)時(shí)間、時(shí)隙數(shù)目、時(shí)隙長(zhǎng)度以及靜態(tài)段和動(dòng)態(tài)段的報(bào)文分配——都在開始時(shí)定義。因?yàn)榇_定的時(shí)隙是分配給發(fā)送任務(wù)的,所以在工程定義過程中就必須明確如何組織報(bào)文的時(shí)隙分配、哪些應(yīng)用系統(tǒng)可能最適合提到動(dòng)態(tài)事件驅(qū)動(dòng)段以及應(yīng)該為后續(xù)車型系列的應(yīng)用系統(tǒng)預(yù)留多少時(shí)隙等,參考圖1。
圖1 時(shí)隙確定地分配給單個(gè)部件(A,B,C)簡(jiǎn)化了系統(tǒng)集成時(shí)的合并工作
在分布式系統(tǒng)中保持整體觀特別重要。在一開始,網(wǎng)絡(luò)設(shè)計(jì)者往往不知道真實(shí)應(yīng)用軟件隨后是如何進(jìn)行實(shí)際通信的,也不清楚它們的執(zhí)行時(shí)間。另一方面,ECU開發(fā)者習(xí)慣于只關(guān)注開發(fā)應(yīng)用程序,而不怎么關(guān)心整個(gè)FlexRay通信過程的時(shí)間狀況。但是,一個(gè)循環(huán)內(nèi)的FlexRay數(shù)據(jù)必須保持一致,并且時(shí)間觸發(fā)型總線的應(yīng)用程序也必須保證一直同步。
因此,Hartwich留意了那些可能引起數(shù)據(jù)不一致的問題。比如,必須避免在發(fā)送過程中更新發(fā)送數(shù)據(jù),這會(huì)導(dǎo)致在同一幀中同時(shí)包含新舊數(shù)據(jù)。BMW使用所謂的“信號(hào)窗口”解決了這一問題,它保證任務(wù)僅在該專用窗口中發(fā)送報(bào)文。這種方法的另一個(gè)好處是應(yīng)用程序與通信分離:如果通信調(diào)度發(fā)生了改變,那么不會(huì)影響應(yīng)用程序。
在實(shí)時(shí)系統(tǒng)中,任務(wù)同步是一項(xiàng)必須引起特別關(guān)注的關(guān)鍵特性。“調(diào)度表的正確同步問題至關(guān)重要”,Winfried Janz解釋道,他是Vector公司OSEK實(shí)時(shí)操作系統(tǒng)開發(fā)項(xiàng)目的帶頭人兼產(chǎn)品經(jīng)理。在關(guān)于OSEKtime和AUTOSAR操作系統(tǒng)的演講中,他論述了如何按照規(guī)范使調(diào)度表與全局時(shí)間同步(參考圖2)。選擇硬同步(調(diào)度表跳轉(zhuǎn)到一個(gè)預(yù)定義的執(zhí)行點(diǎn)或者暫時(shí)停止了)還是軟同步(在每個(gè)到期時(shí)刻進(jìn)行時(shí)間調(diào)整,但是這些時(shí)刻的分配是無規(guī)律的,會(huì)導(dǎo)致一些無規(guī)律的時(shí)間調(diào)整行為)取決于應(yīng)用程序是否容忍跳轉(zhuǎn)和暫停。
圖2:調(diào)度表狀態(tài)圖顯示了同步是如何實(shí)現(xiàn)的。調(diào)度被啟動(dòng),但不必立即完全同步(RUNNING)。為實(shí)現(xiàn)同步運(yùn)行(AND SYNCHRONOUS),可以進(jìn)入等待狀態(tài)(SHEDULETABLE_WAITING)或者進(jìn)行軟同步。
在開發(fā)階段,監(jiān)視同步和數(shù)據(jù)一致性由軟件工具來完成?!拔覀儽仨氉龅酵降靥幚砟P?,否則就會(huì)丟失數(shù)據(jù)”,當(dāng)Carsten Böke博士解釋Vector的工具CANoe時(shí)他這樣說道。Böke演示了CANoe提供的確保同步和檢測(cè)不一致數(shù)據(jù)的機(jī)制。CANoe運(yùn)行模型的主要體系結(jié)構(gòu)基于一種使用所謂“通知句柄”的通知概念。它包括了接收到消息時(shí)的模型激活、定時(shí)器到期時(shí)的處理和錯(cuò)誤狀態(tài)的檢測(cè)。尤其是,這種概念針對(duì)FlexRay作了擴(kuò)展,包含了在FlexRay循環(huán)的特定時(shí)刻進(jìn)行的同步通知,如圖3所示。另外,Böke演示了一種運(yùn)行CANoe RT、具有特定硬件支持的優(yōu)化平臺(tái),該平臺(tái)是為了滿足FlexRay系統(tǒng)嚴(yán)格的時(shí)間要求而定制的,比較適合中小尺寸的硬件在回路仿真。
圖3:在CANoe中,可以參照循環(huán)開始或特定時(shí)隙的結(jié)束有規(guī)律地執(zhí)行動(dòng)作。當(dāng)然,通知也可以發(fā)生在總線上接收到幀或丟幀的時(shí)候。
FlexRay與AUTOSAR
“為將來做準(zhǔn)備,必須按照AUTOSAR標(biāo)準(zhǔn)設(shè)計(jì)新的軟件概念”,負(fù)責(zé)FlexRay基礎(chǔ)軟件開發(fā)的Dirk Großmann說。因?yàn)閂ector Informatik公司是AUTOSAR協(xié)會(huì)的成員,所以該協(xié)會(huì)的成果和結(jié)論很快就在Vector的FlexRay開發(fā)中得到了實(shí)踐,如圖4所 示。Vector的FlexRay接口和FlexRay driver已經(jīng)符合AUTOSAR標(biāo)準(zhǔn)了,因而可以在今天不用依賴于以后特定的應(yīng)用程序而開發(fā)這些組件,而且這些組件可以靈活地適合不同的車型和平臺(tái)。FlexRay driver對(duì)通信控制器進(jìn)行了抽象,而FlexRay接口提供了針對(duì)和FlexRay調(diào)度表無關(guān)的單個(gè)PDU(協(xié)議數(shù)據(jù)單元)的訪問入口。 此外,Vector提供符合AUTOSAR標(biāo)準(zhǔn)的網(wǎng)絡(luò)管理和傳輸協(xié)議實(shí)現(xiàn)。作為對(duì)AUTOSAR的補(bǔ)充,可以將XCP協(xié)議集成到FlexRay棧中。Großmann還談到通過FlexRay進(jìn)行flash編程的可能性:“一種方案是完全交換協(xié)議并且使用單獨(dú)的調(diào)度表進(jìn)行flash編程?!?BR>
Oliver Kitt在其演講中更為深入地論述了使用XCP(由ASAM標(biāo)準(zhǔn)化的一種標(biāo)定協(xié)議)標(biāo)定ECU的話題。在Vector公司,他負(fù)責(zé)測(cè)量、標(biāo)定和診斷工具CANape的硬件接口集成工作。XCP中的“X”表示不同的傳輸層,比如它可以表示XCP-on-CAN、XCP-on-Ethernet以及2006年2月發(fā)布的XCP-on-FlexRay等。這是一種單主/多從概念,可以非常高效地與ECU通信并且使用可變帶寬進(jìn)行測(cè)量和標(biāo)定??梢詫lave集成到FlexRay棧中,而由工具來提供對(duì)協(xié)議master功能的支持。在運(yùn)行時(shí)刻根據(jù)需要為單個(gè)節(jié)點(diǎn)重新分配帶寬。有必要使用一種增強(qiáng)版FlexRay driver來實(shí)現(xiàn)XCP-on-FlexRay的buffer重配置。這也展示出組件的靈活操作。
圖4:符合AUTOSAR標(biāo)準(zhǔn)的FlexRay軟件方案可靈活地適應(yīng)不同的需求。該圖展示了一種帶有driver(相對(duì)于AUTOSAR進(jìn)行了擴(kuò)展并增加了XCP傳輸層和協(xié)議模塊)的FlexRay棧。
FlexRay協(xié)議規(guī)范的編輯,在Freescale公司負(fù)責(zé)FlexRay相關(guān)工作的Mathias Rausch博士(工程學(xué)),闡述了buffer結(jié)構(gòu)是如何影響整個(gè)系統(tǒng)的。Rausch詳細(xì)描述了配置不同的靜態(tài)或動(dòng)態(tài)段時(shí)優(yōu)化buffer存放的方法。另外,F(xiàn)reescale利用了FlexRay協(xié)議中沒有詳細(xì)規(guī)定控制器主機(jī)接口(CHI)、僅規(guī)定最低需求作為約束條件的實(shí)際情況。這給了半導(dǎo)體廠商提供特殊功能的自由。CHI的優(yōu)化設(shè)計(jì)使隨后的軟件更容易構(gòu)造。Rausch建議使用工具,因?yàn)椤芭渲枚噙_(dá)128個(gè)消息buffer時(shí)需要考慮很多參數(shù)”。
在Schedl博士的請(qǐng)求下,NXP半導(dǎo)體公司汽車商務(wù)領(lǐng)域創(chuàng)新和發(fā)展管理主管Patrick Heuts先生挑選出了更為經(jīng)濟(jì)的FlexRay組件?!俺耸瞻l(fā)器,我們也提供FlexRay控制器,它是完全集成在MCU中的,是一種單片機(jī)方案。相比較那種通常作為外圍設(shè)備嵌入到MCU中的FlexRay控制器,這種完全集成的方案具有明顯的優(yōu)勢(shì)。比如,消息buffer的數(shù)量和類型可以靈活配置。事實(shí)上,完全集成的FlexRay控制器工作起來更像一種具有一個(gè)或兩個(gè)通道的DMA工具。NXP半導(dǎo)體公司的下一步計(jì)劃是研究在片上集成收發(fā)器是否可以進(jìn)一步降低系統(tǒng)的成本”。參考圖5。
圖5:NXP半導(dǎo)體公司提供了“MCU中心”解決方案,其優(yōu)點(diǎn)是在MCU中完全集成了FlexRay控制器。
盡管宣稱的目標(biāo)之一是“降低成本”,F(xiàn)lexRay系統(tǒng)已經(jīng)不再比相似的CAN架構(gòu)貴多少了。因?yàn)樾枰黾颖匾墓杵?,F(xiàn)lexRay的芯片成本要高于CAN。但是,BMW的內(nèi)部研究表明,整個(gè)系統(tǒng)的成本是非常接近的,而且還獲得了更高的性能和可擴(kuò)充性以及更低的復(fù)雜度。
結(jié)論
FlexRay有很多潛力。BMW的試驗(yàn)性項(xiàng)目還僅僅是開始,它證明了FlexRay系統(tǒng)“一旦正確建立”就可以穩(wěn)定地運(yùn)行。強(qiáng)烈建議在不同的開發(fā)階段選擇通用工具,以便保持對(duì)眾多不同需求的清晰的整體觀。具有擴(kuò)展檢查系統(tǒng)的工具簡(jiǎn)化了開發(fā)者的工作并且從一開始就能幫助預(yù)防錯(cuò)誤。由于FlexRay,很快就會(huì)出現(xiàn)大量的計(jì)算機(jī)通信應(yīng)用軟件。
評(píng)論