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