FlexRay 通訊匯流排 嵌入式設計 PCI介面 PXI介面 匯流排 ECU CAN

滿足精確/容錯/高速效能需求
FlexRay打造新一代汽車

2011-03-31
FlexRay通訊匯流排屬於精確、容錯且高速的匯流排系統,由汽車製造商與領導供應商所合作開發。針對電傳線控(X-by-wire)的應用,FlexRay可滿足容錯與精確時間的效能需求,如線控駕駛(Drive-by-wire)、線控轉向(Steer-by-wire)與線控煞車(Brake-by-wire)等。
通訊作業系統需求不斷提升

由於汽車工業正持續改良安全性、提升效能、降低對環境的影響,並需要更高的舒適性,因此也必須提升車輛電子控制單元(ECU)間的資料傳輸速度、數量與穩定性。高階的控制與安全系統必須整合多組感測器、致動器與ECU,且要能超越現有標準控制器區域網路(Controller Area Network, CAN)的同步化功能與效能。

若再加上高頻寬需求,目前高階車款的甚至搭載超過五組獨立的CAN匯流排,而汽車工程師更渴望下一代的嵌入式網路。這幾年,在原始設備製造商(OEM)、工具供應商與末端使用者的合作之下,FlexRay標準已成為蓬勃發展的車內通訊匯流排,並可進一步解決新款車輛的需求難題。

若要於複雜的嵌入式設計如汽車系統中納入新的網路標準,則將耗上許多時間。而FlexRay正可針對車用網路,解決其目前的高階挑戰與未來的主流難題,且不至於取代另外兩項車內標準--CAN與區域互聯網路(LIN)。為了妥善運用成本並降低傳輸難題,新一代汽車將FlexRay用於高階應用、CAN用於主流的傳動通訊,而LIN則是低價位的車體電子系統(表1)。

工程師若要能通盤了解車輛設計與生產過程的所有概念,必須先了解FlexRay運作的方法。以下將說明FlexRay的基礎核心概念。

為降低成本 FlexRay應運而生

FlexRay的多項概念均是為了降低成本所設計,同時必須於嚴苛環境中達到最高效能。FlexRay採用非抗雜訊式雙絞線連接節點。FlexRay所支援的單通道與雙通道設定,也分別包含一或兩組雙絞線。而各組雙絞線的差動訊號產生功能,無需昂貴的抗雜訊裝置,亦可降低外部雜訊對網路的影響。大多數的FlexRay節點均具備電源線與接地線,可供電予收發器與微處理器。

圖1 FlexRay的雙通道設計可提升頻寬及容錯功能
雙通道設計可提升頻寬及容錯功能(圖1)。大多數的第一代FlexRay網路僅利用一個頻道,藉以降低接線成本。但由於應用複雜度與安全性需求不斷提升,將來的網路勢必使用此兩個通道。

FlexRay的末端均需要端點(Termination),即是在雙訊號接線間所連接的電阻器。僅限於多點(Multi-drop)匯流排上的末端節點,才需要端點。若端點過多或過少,均可能阻斷FlexRay網路。特殊網路的建構方式不一,而常見的FlexRay網路則具有80~110歐姆(Ω)的接線阻抗,且末端端點均必須符合此阻抗。當將FlexRay節點連至測試設定時,端點即為發生中斷(Frustration)的常見原因之一。目前電腦架構的FlexRay介面均可能內建快取(On-board)端點電阻器,以簡化接線作業。

FlexRay拓撲配置彈性大

要分辨FlexRay、CAN、LIN與傳統網路如乙太網路的方法之一,即是透過拓撲或網路配置進而分辨。FlexRay可支援簡易的多點被動連結,亦可針對更複雜的網路支援主動星形連結。根據車輛配置與FlexRay的使用層級,應選擇正確的拓撲,為相關設計達到最佳的成本、效能與穩定性考量。

多點匯流排
 
圖2 多點匯流排
FlexRay常用於簡易的多點匯流排拓撲(圖2),所具備的單一網路連接線可銜接多組ECU。CAN與LIN亦使用相同的拓撲,並近似於OEM拓撲;因此成為第一代FlexRay車輛最普遍的拓撲。各組ECU均可從匯流排的核心「幹線」,於較短的距離進行「分支」。網路末端則具備端點電阻器,可將訊號反射的影響降至最低。相較於CAN的1Mbit/s,FlexRay是以較高的10Mbit/s頻率進行作業,因此FlexRay工程師須注意網路目前的端點與配置情形,以避免發生訊號密度的問題。而車輛往往共用類似的配置,但由於多點格式亦可符合車輛的需求,可簡化安裝作業,並減少車體中的接線數量。

星形網路
 
圖3 星形網路
FlexRay標準支援星形(Star)設定(圖3),即以獨立接線連至主動的中央節點。此節點的功能,近似於電腦乙太網路架構中的集線器(Hub)。主動式的星形設定,可於長距離執行或切割(Segment)FlexRay網路,因此當網路發生錯誤時,星形設定可穩定持續運作某個部分的網路。若星形網路的其中一個分支發生中斷或短路,則其他分支也能繼續其功能。由於長距離接線可能產生更多環境噪音如由大型電子馬達所產生的電磁波,因此若能使用多個分支,則可縮短接線總量,並協助提升雜訊抑制功能。

混合式網路
 
圖4 混合式網路
匯流排與星形拓撲可整合為混合式拓撲(圖4)。未來的FlexRay網路極可能包含混合式網路,以利用匯流排拓撲的簡單易用性與成本優勢,並可享有車輛所需的星形網路效能與穩定性。

採時間觸發式協定 快速傳輸精確資料

FlexRay協定為獨特的時間觸發式(Time-triggered)協定,可於預定時間內(最低可達微秒)提供精確資料,或可為類似CAN的動態事件驅動資料,以處理多種框架。FlexRay並可透過預先設定的通訊週期(Communication Cycle),完成此混合的核心靜態與動態框架,且此框架可為靜態與動態資料提供預先定義的空間。網路工程師並可透過網路設定此空間。CAN節點僅須確認通訊的正確鮑率(Baud Rate),而FlexRay網路上的節點必須確認網路中所有區塊的設定狀態,才可進行通訊。

在搭配任何多點式匯流排時,單次僅限一個節點可透過電子方式,將資料寫入至匯流排中。若有兩個節點要同時寫入資料,則將造成匯流排衝突與資料毀損的情形。目前已有多種架構可避免匯流排毀損。以CAN為例,即使用仲裁(Arbitration)架構,當節點發現匯流排上的訊息具有較高優先度時,則會讓其他節點先行傳輸。此項彈性技術雖可輕鬆進行擴充,但由於無法達到較高的傳輸率,因此並無法用於傳輸高時效性的資料。

FlexRay則是透過分時多重存取(Time Division Multiple Access, TDMA)架構管理多個節點。各個FlexRay節點均同步化為相同時脈,而各個節點均依序寫入至匯流排。由於TDMA架構中的時序均相同,因此FlexRay可確保資料傳輸至網路節點的精確度或一致性。若系統極為依賴節點間的即時資料,則此架構理所當然可提供多項優勢。

嵌入式網路將依電腦架構的網路而有所不同,即便具備類似的組態,但若一旦於產線中完成組裝,則再也無法更改。如此一來,幾乎不須要附加機制,即可於執行期間尋找並設定裝置,即如電腦在加入新的接線或無線網路所進行的作業一般。由於可提早設計網路組態,因此工程師可省下大量成本並提升網路穩定性。

若要讓如FlexRay的TDMA網路正常運作,則必須正確設定所有節點。FlexRay標準可適用於多種不同類型的網路,並讓網路工程師能對網路更新速度、精確資料量、動態資料量,與其他參數之間取得系統的平衡。各組FlexRay網路均可能有所不同,所以在各個節點加入至匯流排前,必須設定正確的網路參數。

為了簡化節點之間的網路組態維護作業,FlexRay組織設定標準化格式,以利於設計程序中儲存並傳輸這些參數。FIBEX檔案(Field Bus Exchange Format)即為自動化及測量系統標準化組織(ASAM)所定義的標準,可讓網路的設計、原型製作、檢驗與測試作業,均可輕鬆共用網路參數,並迅速設定ECU、測試工具與硬體迴路(HIL)模擬系統等,以輕鬆銜接匯流排。

通訊週期為媒體存取運作基礎

FlexRay通訊週期(圖5)為FlexRay媒體存取架構的基本要素。當設計網路時,即已固定此週期約為15毫秒(ms)。通訊週期可分為靜態區段(Static Segment)、動態區段(Dynamic Segment)、Symbol Window及網路閒置時間(Idle Time)等四個主要部分。

圖5 通訊週期

其中,靜態區段針對在固定期間抵達的資料,保留時間槽(Slot)。而動態區段的動作較類似於CAN,且用於多種較低精確度的事件架構資料。Symbol Window則一般用於啟動網路時的網路維護與訊號產生。而網路閒置時間為已知的「安靜」時間,可用於維護節點時脈間的同步化狀態。

圖6 FlexRay的Macrotick細節
FlexRay網路的時間最小實用單位(Practical Unit)為Macrotick(圖6)。若FlexRay具備多組控制器,則可自行主動進行同步化並調整區域時脈(Local Time),而Macrotick將於相同時間點內,發生於網路上的所有節點。即便特定網路可額外進行設定,但Macroticks往往僅為1微秒(μs)。由於Macrotick可同步化,因此其上的資料也一併同步化。

靜態區段
 
圖7 包含三組ECU的靜態區段,將資料傳輸至四個保留時間槽的情形。
靜態區段即為框架的前段深色部分,為週期專用以排序時間觸發框架的空間。此區段可分割為數個時間槽,每個時間槽均包含資料的保留框架(Reserved Frame)。當各個時間槽準時發生,所保留的ECU則有機會將其資料傳輸至時間槽中。一旦時間過去,ECU則必須等到下一個週期,才能將資料再次傳輸至時間槽中。由於早已知道週期中的確切時間點,因此程式可確實知道資料產生的時間。此特性特別適於根據穩定間隔的數據,計算出控制迴圈。圖7表示由三組ECU所使用的簡易網路,其中包含四組暫態時間槽。實際的FlexRay網路可能包含多達數十個暫態時間槽。

圖8 缺少第二號ECU的暫態時間槽。
若有ECU離線或暫停資料傳輸,則其時間槽將保持開放,且其他ECU也不會使用(圖8)。

動態區段
  大多數的嵌入式網路均具備少量的高速訊息,還有大量的低速、低時效性網路。若要容納多筆資料,且不致讓大量靜態時間槽拖慢FlexRay週期,則可讓動態區段偶爾客串進行資料傳輸作業。動態區段為固定的長度,因此在每個週期中,能置於動態區段的資料數量也有所限制。為了排列資料的優先性,將會為各組資料框架預先指派迷你時間槽(Minislot),以便在動態區段內進行合適的傳輸作業。迷你時間槽一般均為一個Macrotick(一個微秒)的長度。較高優先性的資料將會接收較靠近動態框架開頭的迷你時間槽。

圖9 僅透過一組ECU廣播資料的FlexRay動態時間槽。
一旦發生迷你時間槽,則ECU將有較簡短的機會(Brief Opportunity)以廣播其框架。若未能廣播,則遭喪失其動態框架中的點(Spot),且接著產生下一個迷你時間槽。此過程會將迷你時間槽下移,直到ECU決定廣播其資料。當廣播出資料後,往後的迷你時間槽必須等待ECU完成其資料廣播。若動態框架分窗(Window)結束,則較低優先性的迷你時間槽必須等待下一個週期,以取得廣播機會。

圖10 此圖顯示ECU 2與3正於其迷你時間槽中進行廣播,且沒有留下多餘時間給較低優先性的迷你時間槽。
圖9顯示第一號ECU正於其迷你時間槽中進行廣播,而前面七個迷你時間槽選擇不廣播。圖10的第二與第三號ECU則使用前兩個迷你時間槽,而沒有多餘的時間讓第一號ECU進行廣播。第一號ECU必須等待下一個週期再進行廣播。

與CAN所使用的仲裁架構相較,動態區段的最後架構極為類似,以下分別說明:

Symbol Window
  Symbol Window主要用於維護並辨別特定週期,如冷開機(Cold-start)週期。大多數的高階應用並不會與Symbol Window產生互動。

網路閒置時間
  網路閒置時間是透過ECU預先定義的已知長度而來。ECU可利用此閒置時間,針對上一個週期所發生的任何漂移(Drift)進行調整。

可雙通道通訊 快速偵錯調整

FlexRay網路可進行單或雙通道通訊,以提供可調整的容錯功能。針對高安全性的應用,連接匯流排的裝置可能同時使用兩個通道以傳輸資料。然而,若不需要冗餘(Redundancy)功能時,亦可能僅連接一個通道;或是使用兩個通道傳輸非冗餘資料,藉以提升頻寬。

在實體層(Physical Layer)中,FlexRay可進行快速錯誤偵測與訊號產生作業,並以獨立的匯流排監控器(Bus Guardian)進行錯誤抑制(Error Containment)。Bus Guardian為實體層中的機制,可針對未經叢集通訊排程所指派的通訊作業,保護通道避免受其干擾。

框架格式分三區段

靜態或動態區段的各個時間槽,均包含一個FlexRay框架(Frame)(圖11)。而此框架可分割為表頭(Header)、承載(Payload)與表尾(Trailer)等三個區段。

圖11 FlexRay框架

表頭
  此表頭為五個位元組(Byte)(40個位元)長,並包含5位元的狀態位元(Status Bit)、11位元的Frame ID、7位元的承載長度(Payload Length)、11位元的表頭系統迴旋碼(CRC)及6位元的週期計數(Cycle Count)(圖12)。
圖12 FlexRay框架的位元組切割

Frame ID將定義所應傳輸框架的時間槽,並可針對事件觸發的框架指派其優先性;Payload Length包含框架所要傳輸的字數(Number of Words);Header CRC於傳輸期間偵測錯誤;Cycle Count則包含計數器的值,每次通訊週期開始,該值將隨之遞增。

承載
  承載包含由框架所傳輸的實際資料。FlexRay承載或資料框架的長度,最多可為一百二十七個字數(254位元組),可超過CAN的三十倍(圖13)。

圖13 FlexRay框架的承載

表尾
 
圖14 FlexRay框架的表尾
表尾包含三組8位元的CRC,可偵測錯誤(圖14)。

訊號溝通ECU之間實際參數

FlexRay資料是以位元組的方式呈現。大多數應用均必須以到小數點的實際值呈現資料,包含單位、比例與相關限制。當從FlexRay框架取得一個以上的位元或位元組,並套用相關比例與偏移(Offset),即可得到一組訊號,可溝通ECU間的實際參數(圖15)。大多數的ECU程式均可搭配FlexRay資料以構成訊號,並讓驅動程式或初階的通訊協定將該筆資料轉換為原始的框架資料。

圖15 訊號轉換的框架

一般車輛即可產生數百到數千筆的訊號。由於這些訊號的調整(Scaling)、偏移(Offset)、定義與位置均可改變,因此FlexRay網路可將這些定義儲存於用以定義網路的FIBEX資料庫。如此可簡化FlexRay網路的寫入程式,讓工程師僅須專注於程式碼中的訊號名稱。當該程式更新至ECU或測試系統時,編碼器或驅動程式將接著提取最新的調整或偏移資訊。

提供時脈同步化與冷開機

FlexRay具備專屬功能,無需外部的同步化時脈訊號,亦可同步化網路上的節點(圖16),如此必須使用Startup Frames與Sync Frames兩種特殊框架。若要啟動FlexRay叢集,則需要至少兩個不同的節點以傳輸開始框架。

圖16 簡化FlexRay網路的同步化作業

開始FlexRay匯流排的動作,即為所謂的冷開機,而傳送開機框架的節點為冷開機節點。開機框架如同起始觸發器(Start Trigger),可告知網路上的所有節點開始作業。

一旦網路開始作業,所有節點均必須將其內部的振盪器與網路的Macrotick進行同步化。只要再多使用兩個同步化節點,即可完成此作業。此可為網路上任何兩個預先指派的獨立節點,當首次將其開啟時,即可廣播特定的同步化框架。網路上的其他節點將等待同步化框架廣播完成,並量測各次廣播之間的時間,以透過FlexRay的時間校準其內部時脈。這些同步化框架並已透過網路的FIBEX組態而指派完成。

網路完成同步化並上線後,則可測出網路閒置時間(圖中白色空間),並用以調整各個週期的時脈,以保持完整的同步化作業。

具備In-cycle Control進階功能

In-cycle Control屬於FlexRay的進階功能。圖17表示框架靜態時間槽所廣播的四個車輪位置。由於在5號中央控制器最後更新指令前,即已產生車輪的位置,因此控制器有充裕的時間處理,並於同一通訊週期中快速輸出。此即為FlexRay網路所提供的極高速控制速率。

圖17 In-cycle control功能將讀取四個車輪的位置,並於單一FlexRay週期中更新車輛的控制輸出。

網路資料庫輕鬆與車輛網路互動

FIBEX格式為XML架構的標準化檔案格式,是由ASAM所制訂,用於描述汽車網路。FIBEX資料庫格式屬於FlexRay網路的標準格式,因此可相容於多種不同的汽車協定,屬於彈性的標準。

FIBEX資料庫一般均由車輛網路工程師所設計,並可共用於車輛的特定概念中。透過FIBEX檔案、電腦介面或是可支援的ECU,毋須手動設定介面與訊號定義,即可輕鬆與車輛網路進行互動。

FIBEX包含特定網路的多個概念,如傳輸與接收排序、框架定義、訊號定義、訊號的位元組編碼、網路拓撲、ECU資訊以及包含鮑率與時序的網路組態。

提供PCI/PXI FlexRay介面

市面上已有高效能的PCI與PXI FlexRay介面,可連接電腦與FlexRay網路。透過電腦架構的介面,即可於FlexRay啟動的ECU上執行多項設計作業,包含快速原型製作、HIL模擬、匯流排記錄與除錯、訊號資料擷取、系統診斷、客製化應用。

由上述可知,FlexRay通訊網路可提供精確、容錯,與高速的匯流排效能,能夠滿足新一代汽車的系統需求。

(本文作者任職於美商國家儀器)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!