FlexRay汽車總線技術特點分析
汽車上的總線技術包括:LIN、CAN、CAN FD、FlexRay、MOST及Ethernet,我們之前已經分享了LIN,CAN、CAN FD總線。在開始閱讀之前,如果你對已介紹的總線技術還不了解的話,可以先閱讀以下文章快速溫習一下~
說一說LIN總線
CAN總線基礎(一)
CAN總線基礎(下)
CAN FD 介紹
FlexRay背景
隨著汽車電子技術的不斷發(fā)展和系統(tǒng)的集成化,我們可不需要傳統(tǒng)的機械傳遞控制信號而是通過電子手段來駕駛汽車,而這一電子手段即X-By-Wire(X代表汽車中的各個系統(tǒng),By-Wire可稱為電子線控),如線控轉向(Steering-By-Wire),線控制動(Brake-By-Wire),線控技術主要應用在主動安全等關鍵系統(tǒng)中,這些場合都對信息的實時性和安全性有很高的要求。
另一方面隨著汽車電子電器架構復雜度的提升尤其當前輔助駕駛系統(tǒng)、無人駕駛技術的快速發(fā)展,傳統(tǒng)的LIN、CAN總線已不堪重負且無法滿足未來高帶寬的要求,上期講的CAN FD只是對傳統(tǒng)CAN總線的一種擴展和過渡,首先其不會對原有的整車網絡帶來大的變更,具備很好的兼容性又具有不錯的傳輸速率(最高2Mbps),其次LIN CAN總線在汽車上已應用了這么多年,若突然向新的總線技術遷移(如本期講的FlexRay)會帶來開發(fā)遷移量、時間成本、硬件成本等方面的同步提升(所有節(jié)點必須升級為FlexRay節(jié)點),因此CAN FD在當前階段是很好的過渡方案。但當同時考慮X-By-Wire應用場景和更高的帶寬要求時,CANFD則無法滿足,而FlexRay則非常適用,但FlexRay的應用對OEM的能力要求相比CAN會提高很多。
FlexRay聯(lián)盟
FlexRay的出現(xiàn)和發(fā)展離不開2000年由Daimler Crysler 、 BMW 、Motorola 和Philips創(chuàng)建的FlexRay聯(lián)盟的推動。該聯(lián)盟的目標是開發(fā)一種獨立于OEM、確定性和容錯的FlexRay通信標準,該聯(lián)盟的每個成員都可以使用該標準而無需支付許可費。目前FlexRay聯(lián)盟的核心成員包括:BOSCH 、BMW、Daimler AG、General Motors、Volkswagen AG、NXP Semiconductors。
FlexRay聯(lián)盟在2010年發(fā)布了3.0.1版規(guī)范,開始推動作為ISO標準,并在2013年發(fā)布了ISO 17458標準規(guī)范。
第一款采用FlexRay的量產車于2006年底在BMW X5中推出,應用在電子控制減震系統(tǒng)中,2008年,全新BMW 7系全面采用了FlexRay。另外Audi、Mercedes-Benz以及領克等車型上也逐漸應用。
FlexRay通訊特點及拓撲
FlexRay是專為車內局域網設計的一種具備故障容錯的高速可確定性車載總線系統(tǒng),采用了基于時間觸發(fā)的機制且具有高帶寬、容錯性好等特點,在實時性、可靠性及靈活性方面都有很大的優(yōu)勢,非常適用于安全性要求較高的線控場合及帶寬要去高的場合。
1、高速率和容錯性
FlexRay支持兩通道,可通過一個或兩個通道進行數(shù)據(jù)傳輸,單個通道的數(shù)據(jù)傳輸速率可達10Mbps,通過兩通道平行傳輸數(shù)據(jù)時可達20Mbps。也可通過雙通道傳輸相同的數(shù)據(jù)(真實情況大多應用的方式),當其中某個通道出現(xiàn)故障或信息有誤時,另一通道可繼續(xù)正常傳輸,并影響整個網絡的數(shù)據(jù)通訊,通過這種冗余備份實現(xiàn)很好的容錯性。
2、確定性
FalexRay是一種時間觸發(fā)式的總線系統(tǒng),符合TDMA(Time Division Multiple Access)的原則,因此在時間控制區(qū)域內,時隙會分配給確定的消息,即會將規(guī)定好的時間段分配給特定的消息,時隙是經固定周期重復,也就是說信息在總線上的時間可以被預測出來,因此保證了其確定性。這就意味著控制信號是根據(jù)預定義的時間進度傳輸?shù)?無論系統(tǒng)外部發(fā)生什么情況,都不會產生計劃外事件。在確定性算法中,始終會預先定義正確的輸出結果,這些結果是基于特定輸入的。
3、靈活性
FlexRay除了支持時間觸發(fā)式通訊外,還可通過事件觸發(fā)來進行數(shù)據(jù)的傳輸,例如對于時間要求不高的信息,可配置在事件控制區(qū)域內傳輸,可形成以時間觸發(fā)為主,兼顧事件觸發(fā)的靈活特性。
此外,FlexRay的拓撲是多樣的,有線型、星型和混合型三大類,再結合單通道和雙通道的使用(FlexRay的兩個通道可相互獨立實現(xiàn),所以兩個通道可采用不同的拓撲結構,如一個通道為主動星型拓撲,另一個為總線拓撲結構),所以最終組合的結果可形成很多種。再例如既有點對點的線行結構和多節(jié)點的線性結構,還有增加冗余性的雙通道星型拓撲結構等等。
FlexRay數(shù)據(jù)傳輸
FlexRay規(guī)范定義了OSI參考模型中的物理層和數(shù)據(jù)鏈路層,每個FlexRay節(jié)點通過一個FlexRay Controller和兩個FlexRay Transceivers(用于通道冗余)與總線相連,FlexRay Controller負責Flexray協(xié)議中的數(shù)據(jù)鏈路層,FlexRay Transceivers則負責總線物理信號接收發(fā)送。
FlexRay可采用屏蔽或不屏蔽的雙絞線,每個通道有兩根導線,即總線正(Bus-Plus,BP)和總線負(Bus-Minus,BM)組成。采用不歸零法(NRZ,Non-Return to Zero)進行編碼。
可通過測量BP和BM之間的電壓差識別總線狀態(tài),這樣可減少外部干擾對總線信息的影響,因這些干擾同時作用在兩根導線上可相互抵消。每一通道需使用80~110歐的終端電阻。將不同的電壓加載在一個通道的兩根導線上,可使總線有四種狀態(tài):Idle_Lp(Low power)、Idle、Data_0和Data_1
顯性:差分電壓不為0V(Data_0和Data_1)
隱性:差分電壓為0V(Idle_Lp、Idle)
FlexRay幀格式
FlexRay幀由起始段、有效負載段和結束段三大部分構成。
1、起始段:由40個bits構成(5 bytes),包括
-Status Bits-5bits
-Frame ID-11bits
-Payload Length-7 bits
-Hedaer CRC-11bits
-Cycle count -6 bits
其中5bits的Status Bits包含四類指示符:凈荷指示位(Payload Preamble Indicator)、空幀指示位(Null Frame Indicator-指明該幀是否為無效幀)、同步幀指示位(Sync Frame Indicator-指明該幀是否為一個同步幀)和起始幀指示位(Startup Frame Indicator-指明該幀是否為起始幀)。
Frame ID:數(shù)據(jù)標志符,定義了在時間窗口(Slot)中發(fā)送的號碼,每個通道數(shù)據(jù)標志符需唯一。
Payload Length:工作區(qū)長度,指示該幀含有的有效數(shù)據(jù)長度,在每個Cycle下的靜態(tài)區(qū)中,每幀的數(shù)據(jù)長度是相同的,在動態(tài)區(qū)的長度則是不同的。
Hedaer CRC:用于起始段冗余校驗,檢查傳輸中的錯誤。
Cycle count:循環(huán)計數(shù)器。
2、有效負載段
包含要傳輸?shù)挠行?shù)據(jù),有效數(shù)據(jù)長度最大254個Bytes(0~127個Words),
3、結束段
包含24 Bits的檢驗域,由起始段和有效負載段計算得出的CRC校驗碼,計算CRC時,根據(jù)網絡傳輸順序從保留位到有效負載段的最后一位放到CRC生成器中進行計算。
FlexRay編碼
編碼的過程實際就是對要發(fā)送的數(shù)據(jù)進行一定的打包處理,即在節(jié)點可傳輸帶有主計算機數(shù)據(jù)的數(shù)據(jù)前需將其轉換為“比特流(Bitstream)”。
RxD為接收信號,TxD為發(fā)送信號,TxEN為通訊控制器請求數(shù)據(jù),對于靜態(tài)幀和動態(tài)幀分別按照如下方式進行編碼。
其中TSS(傳輸啟動序列):用于初始化節(jié)點和網絡通訊的對接(5~15位的低電平);FSS(幀啟動序列):用于補償TSS后第一個字節(jié)可能出現(xiàn)的量化誤差(一位高電平);BSS(字節(jié)啟動序列):給接收節(jié)點提供數(shù)據(jù)定時信息(一位高電平并緊隨一位低電平);FES(幀結束序列):用于標識數(shù)據(jù)幀最后一個字節(jié)序列結束(一位低電平緊隨一位高電平)。
對于動態(tài)區(qū)數(shù)據(jù)還額外需要DST(動態(tài)段尾部序列):僅用于動態(tài)幀傳輸,用于表明動態(tài)段中傳輸時動作點的精確時間防止接收段過早檢測到網絡空閑狀態(tài)(一位長度可變的低電平和高電平)。
將這些序列和有效位(MSB到LSB)組裝起來完成了編碼過程,最終構成在網絡傳播的比特流。
FlexRay通訊
FlexRay總線的通訊由通訊周期(Communication Cycle)構成,從總線啟動到停止都在不斷重復該通訊周期。每個通訊周期具有相同的可配置時間間隔,且每個通訊周期由靜態(tài)段(Static Segment)、動態(tài)段(Dynamic Segment)、特征窗(Symblo Window)和網絡空閑時間(Network Idle Time)四部分構成。
1、靜態(tài)段(Static Segment)
靜態(tài)段采用TDMA(Time Division Multiple Access)方式由固定的時隙(Slot)組成,不可更改且所有時隙大小一致。
因此每個節(jié)點可擁有一個或多個Slots,這樣每個節(jié)點在每個通訊周期內都可在其所占有的Slot內發(fā)送,兩個節(jié)點也可在不同的通道上共享同一Slot,單個Slot也可為空(即不被任何節(jié)點占用),所有的幀和Slots在靜態(tài)段都具有相同的長度。單個Slot的長度由總線中最長的FlexRay Message決定,其包括四部分:Action Point Offset、FlexRay Frame、Channel Idle Delimiter(11個隱性位)和Channel Idle。
2、動態(tài)段(Dynamic Segment)
動態(tài)段采用FTDMA(Flexible Time Division Multiple Access)方式,由較小的時隙(Minislot)組成,可根據(jù)需要拓展變動,一般用于傳輸事件控制型消息。
在動態(tài)段每幀可能有不同的長度,動態(tài)時隙(Dynamic Slot)的長度依賴于幀的長度,只有空的Slot才是實際的一個Minislot的大小。
3、特征窗(Symblo Window)
用于傳輸特征符號,FlexRay的符號有三種:
-沖突避免符號:用于冷啟動節(jié)點的通訊啟動
-測試符號:用于總線的測試
-喚醒符號:用于喚醒過程的初始化
4、網絡空閑時間(NIT-Network Idle Time)
用于時鐘同步處理
如下是一個通訊示例:
FlexRay總結
從上面可看出,FlexRay相比傳統(tǒng)LIN、 CAN和CAN FD要更復雜一些,因此不管對OEM還是供應商的能力要求勢必提高不少,其次從傳統(tǒng)總線技術向FlexRay遷移在成本及Effort上都要增加很多,普遍應用仍需要時間。
參考文獻:
1、FlexRay introduction(EB、Vector、BOSCH等資料)
圖片新聞