FlexRay

戴姆勒克萊斯勒公司的註冊商標

FlexRay車載網路標準已經成為同類產品的基準,將在未來很多年內,引導整個汽車電子產品控制結構的發展方向。FlexRay是繼CAN 和LIN之後的最新研發成果,可以有效管理多重安全和舒適功能:譬如,FlexRay適用於線控操作(X-by-Wire)。

簡介


FlexRay是戴姆勒克萊斯勒公司的註冊商標。FlexRay聯盟(FlexRay Consortium)推進了FlexRay的標準化,使之成為了新一代汽車內部網路通訊協議。FlexRay關注的是當今汽車行業的一些核心需求,包括更快的數據速率,更靈活的數據通信,更全面的拓撲選擇和容錯運算。
因此,FlexRay可以為下一代的車內控制系統提供所需的速度和可靠性。CAN網路最高性能極限為1Mbps。LIN和K-LINE分枝網路最高性能極限為20Kbit/s。而FlexRay兩個通道上的數據速率最大可達到10Mbps,總數據速率可達到20Mbit/秒,因此,應用在車載網路,FlexRay 的網路帶寬可能是CAN的20倍之多。
FlexRay還能夠提供很多CAN網路所不具有的可靠性特點。尤其是FlexRay具備的冗餘通信能力可實現通過硬體完全複製網路配置,並進行進度監測。FlexRay同時提供靈活的配置,可支持各種拓撲,如匯流排、星型和混合拓撲。設計人員可以通過結合兩種或兩種以上的該類型拓撲來配置分散式系統
另外,FlexRay可以進行同步(實時)和非同步的數據傳輸,來滿足車輛中各種系統的需求。譬如說,分散式控制系統通常要求同步數據傳輸。
為了滿足不同的通信需求,FlexRay在每個通信周期內都提供靜態和動態通信段。靜態通信段可以提供有界延遲,而動態通信段則有助於滿足在系統運行時間內出現的不同帶寬需求。FlexRay 幀的固定長度靜態段用固定時間觸發(fixed-time-trigger)的方法來傳輸信息,而動態段則使用靈活時間觸發的方法來傳輸信息。
FlexRay不僅可以像CAN和LIN網路這樣的單通道系統一般運行,而且還可以作為一個雙通道系統運行。雙通道系統可以通過冗餘網路傳輸數據——這也是高可靠系統的一項重要性能。
FlexRay的各種特點均適合實時控制的功能。
FlexRay的應用
FlexRay 面向的是眾多的車內線控操作(X-by-Wire)。
FlexRay 導線控制應用的例子包括:
線控操作轉向-典型的是使用電子控制單元
防抱死制動系統(ABS)-包括車輛穩定控制(VSC)和車輛穩定助手(VSA)
FlexRay 節點運算
每個FlexRay節點都包括一個控制器和一個驅動器部件。控制器部件包括一個主機處理器和一個通信控制器。驅動器部件通常包括匯流排驅動器和匯流排監控器(可選擇)。匯流排驅動器將通信控制器與匯流排相連接,匯流排監控器監視接入匯流排的連接。主機通知匯流排監控器通信控制器分配了那些時槽。接下來,匯流排監控器只允許通信控制器在這些時槽中傳輸數據,並激活匯流排驅動器。若匯流排監控器發現時間時序有間隔,則斷開通信通道的連接。
FlexRay的節點有幾個基本的運行狀態:
配置狀態(默認配置/配置)-用於各種初始化設置,包括通信周期和數據速率
就緒狀態-用於進行內部的通信設置
喚醒狀態-用於喚醒沒有在通信的節點。在該狀態下,節點向另一節點發送喚醒信號,喚醒並激活匯流排驅動器、通信控制器、和匯流排監控器。
啟動狀態-用於啟動時鐘同步,並為通信做準備。
正常狀態(主動/被動)-可以進行通信的狀態
中斷狀態-表明通信中斷
FlexRay節點還有與錯誤處理相關的狀態轉移。這些轉移是在時鐘同步和時鐘校正錯誤的錯誤計數器的數值基礎上加以管理的。當個別節點的時鐘與FlexRay同步節點時鐘有所出入時,就會出現時鐘校正錯誤。FlexRay 網路有一個或一個以上傳輸同步信息的同步節點。在收到任意一條同步信息后,節點會將其時鐘與同步節點的時鐘相比較,並根據同步需要做出必要的變化。
每個節點都要進行錯誤計數,其中包括時鐘同步中連續發生錯誤的次數。同時,節點還要監測和幀轉移/接受狀態相關的錯誤,其中包括語法錯誤、內容錯誤、匯流排干擾錯誤以及轉移衝突所導致的錯誤。一旦某節點發現該類錯誤,就會通知主機處理器。錯誤計數器的使用取決於應用用途和系統設計。
FlexRay幀和信號
FlexRay使用的通信幀有三個幀段。
和CAN網路的事件觸發協議不同的是,FlexRay使用時間觸發協議來轉移幀。FlexRay的時間觸發模式可以確保數據按照事先確定的時間表進行傳輸。此外,雙冗餘通信通道Ach和Bch都能傳輸數據。
頭段包括以下幾位:
保留位-為日後的擴展做準備
負載段前言指示-指明幀的負載段的向量信息。在靜態幀中,該位指明的是NWVector;在動態幀中,該位指明的是消息ID
零幀指示-指明負載段的數據幀是否為零
同步幀指示-指明這是一個同步幀
起始幀指示-指明發送幀的節點是否為起始幀
幀ID-指明在系統設計過程中分配到每個節點的ID(有效範圍:1至2047)
長度-說明負載段的數據長度
頭部CRC- 表明同步幀指示器和起始幀指示器的CRC計算值,以及由主機計算的幀ID和幀長度
周期-指明在幀傳輸時間內傳輸幀的節點的周期計數
幀的負載段包括三個部分:
數據-可以是0至254位元組
消息ID-任意。該消息ID 使用負載段的前兩個位元組進行定義,可以在接收方作為可過濾數據使用。
網路管理向量——任意。該向量長度必須為0至10個位元組,並和所有節點相同。
該幀的尾段包括硬體規定的CRC值。這些CRC值會在連接的通道上面改變種子值,以防不正確的校正。FlexRay 在時槽中傳輸幀。圖8展示了與FlexRay周期有關的時槽的組成結構。
在物理層,FlexRay根據uBP和uBM的不同電壓,使用不同的信號BP和BM進行通信。四個信號(見圖9)代表了FlexRay匯流排的各種狀態:
Idle_LP:低功率狀態
Idle:無通信狀態
Data_1:邏輯高
Data_0:邏輯低

注意事項


在Data_1 和Data_0之間不允許有衝突
經過數年的改進,FlexRay網路標準已經成熟,BMW已經在X5中有5個ECU(電控減震、主控懸吊系統等)應用了FlexRay,在下一代產品中將有16ECU予以應用。