【W(wǎng)福爾摩斯的回答(8票)】: 瀉藥。反駁下樓上,flexray絕對不是用來做娛樂系統(tǒng)的,Most才是,現(xiàn)在許多車上多媒體用的是MOST總線。 Flexray和CAN同為串行通信總線。 拓撲結(jié)構(gòu):CAN總線一般為線型結(jié)構(gòu),所有節(jié)點并聯(lián)在總線上。當一個節(jié)點損壞時,其他節(jié)點依然能正常工作。但當總線一處出現(xiàn)短路時,整個總線便無法工作。(如下圖) Flexray的拓撲結(jié)構(gòu)多樣,既可以像CAN總線一樣使用線型結(jié)構(gòu),也可以使用星型結(jié)構(gòu)。中心節(jié)點負責(zé)轉(zhuǎn)發(fā)信息。當除中心節(jié)點外的某個節(jié)點損壞或線路故障時,中心節(jié)點可以斷開與該節(jié)點的通信。但當中心節(jié)點損壞時,整個總線便無法工作??梢詫⒍鄠€星型總線的中心節(jié)點連接起來。(如下圖) 值得一提的是,F(xiàn)Lexray可以使用雙通道通信,第二個通道既可以發(fā)送與第一個通道相同的信息,以冗余來換取安全性,也可以發(fā)送與第一個通道不同的信息,來提高傳輸速率。 速度:CAN總線分為高速和低速兩種,高速CAN最高速度為10Mbps,低速CAN為250Kbps。Flexray一條通道最高速度為10Mbps,為了安全會再加一條冗余通道,也就是一共最高20Mbps的速度。這個速度是不可能用來做娛樂總線的。 總線分配方式:這是這兩者最根本的區(qū)別。 CAN總線是采用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)機制。各節(jié)點會一直監(jiān)聽總線,發(fā)現(xiàn)總線空閑時便開始發(fā)送數(shù)據(jù)。當多個節(jié)點同時發(fā)送數(shù)據(jù)時,會通過一套仲裁機制競爭總線。每個節(jié)點會先發(fā)送數(shù)據(jù)的ID,ID越小表示優(yōu)先級越大,優(yōu)先級大的會自動覆蓋小的ID。當節(jié)點發(fā)現(xiàn)自己發(fā)送的ID被覆蓋掉時,就知道有比他優(yōu)先級更高的消息正在被發(fā)送,便自動停止發(fā)送。優(yōu)先級最高的消息獲得總線使用權(quán),開始發(fā)送數(shù)據(jù)。當高優(yōu)先級的數(shù)據(jù)包發(fā)送完后,各節(jié)點便又嘗試競爭總線。如此反復(fù)下去。這樣能最大程度的利用總線。弊端是會有時效延遲,優(yōu)先級越低的數(shù)據(jù)包,可能需要等待的時間越長。從這點上來講,CAN總線不是一種實時總線。 Flexray用的是TDMA(Time Division Multiple Access) 和FTDMA(Flexible Time Division Multiple Access)兩種方法。Flexray將一個通信周期分為靜態(tài)部分、動態(tài)部分、網(wǎng)絡(luò)空閑時間。在靜態(tài)部分,每個節(jié)點會均勻分配時間片,每個節(jié)點只有在屬于自己的時間片里面才能發(fā)送消息,即使某個節(jié)點當前無消息可發(fā),該時間片依然會保留(也就造成了一定的總線資源浪費)。在動態(tài)部分,會輪流問詢每個節(jié)點有沒有消息要發(fā),有就發(fā),沒有就跳過。靜態(tài)部分用于發(fā)送需要經(jīng)常性發(fā)送的重要性高的數(shù)據(jù),動態(tài)部分用于發(fā)送使用頻率不確定、相對不重要的數(shù)據(jù)。 Flexray這種總線分配方式的好處是,實時性。每個節(jié)點都知道在什么時間點接收什么數(shù)據(jù),在什么時間發(fā)送數(shù)據(jù)。這樣會使得消息能及時的發(fā)出和收到。 錯誤處理方式: 當CAN總線有節(jié)點發(fā)現(xiàn)當前發(fā)送的數(shù)據(jù)有誤時,會發(fā)送錯誤幀告知總線上的所有節(jié)點。發(fā)送錯誤數(shù)據(jù)的節(jié)點會重發(fā)。每個節(jié)點都有一個錯誤計數(shù)器。當一個節(jié)點總是發(fā)送或接收錯誤超過一定次數(shù)時,會自動退出總線。 當Flexray總線通信過程中出現(xiàn)數(shù)據(jù)錯誤時,該周期里接收到的所有數(shù)據(jù)都會被丟棄掉,但沒有重發(fā)機制。所有節(jié)點會繼續(xù)進行下一個周期的通信。flexray同樣也有錯誤計數(shù)器,當一個節(jié)點發(fā)送接收錯誤過多時會被踢出總線。 總結(jié):flexray相比can工作機理要復(fù)雜的多,以上只是挑了幾個主要的講。因此flexray的安全性、實時性要比can強。因此flexray被認為可以用在安全性要求極高的地方,如飛行器、x-by-wire(電子方向盤、電子剎車等)。 困了,先寫這么多,反映好的話再來補充 【余暢的回答(1票)】: 雙線冗余,帶寬高(10M),TDMA時分多址信息到達時間具有確定性,拓撲靈活。 FlexRay也是控制類總線,用于動力底盤系統(tǒng)。 【BinFu的回答(1票)】: Flexray現(xiàn)在基本已經(jīng)沒什么人用了,也就幾家德國車廠真正在量產(chǎn)車型上用過。相比CAN總線,F(xiàn)lexray的成本太高了,研發(fā)工具依賴vector, vector的東西自古就是一個貴,相比之下CAN總線有大把的opensource資源可以用,另一方面,flexray的出現(xiàn)和汽車通信的發(fā)展方向出現(xiàn)了偏差,汽車通信的發(fā)展方向是要求廉價,同時隨著模塊的增加,對總線長度的擴展能力有更高的要求,但這兩點都是flexray的弊端。原本就很貴的flexray,因為用的車廠少,無法形成規(guī)模效應(yīng),結(jié)果開發(fā)成本只能更高,從而更加沒人用的惡性循環(huán)。 【杜寶雷的回答(1票)】: flexray基本上是寶馬一家公司在強力推動,雖然拉了一批小伙伴?,F(xiàn)在寶馬自己都轉(zhuǎn)向車載以太網(wǎng)了。沒必要還吊在flexray這棵樹上。 【鷺澤的回答(0票)】: 非專業(yè)。 更正下。手機黨回去查了下拓撲。Flexray是在底盤總線的主動安全系統(tǒng)里的。用于外部物體傳感,雷達模塊和EOCM(Extendal Object)模塊。 最近老是記憶混亂。手機黨就不答問題了。 原文地址:知乎 |
|