車載FlexRay網(wǎng)絡(luò)管理策略的初步研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 FlexRay簡(jiǎn)介
F1exRay是高速串行通信的車載網(wǎng)絡(luò),它的帶寬高、可靠性高、靈活、實(shí)時(shí)性強(qiáng)的特點(diǎn),可以很好地滿足現(xiàn)代車載控制系統(tǒng)的強(qiáng)實(shí)時(shí)需求。目前已成立的FlexRay聯(lián)盟正在推廣FlexRay標(biāo)準(zhǔn),主要成員包括BMW、Daimler—Chrvsler、Freescale、Bosch和Philips等,在BMW X5上,F(xiàn)lexRay已有實(shí)際應(yīng)用。
與事件觸發(fā)的CAN網(wǎng)絡(luò)不同,F(xiàn)lexRay是一種能夠兼容事件觸發(fā)的時(shí)間觸發(fā)總線協(xié)議。它的介質(zhì)訪問(wèn)方式為FTDMA(靈活的時(shí)分多路訪問(wèn))。FTDMA不同于TDMA(時(shí)分多路訪問(wèn))。TDMA靜態(tài)地分配時(shí)間片(timeslot),可能造成某些節(jié)點(diǎn)沒(méi)有數(shù)據(jù)可發(fā)卻占用了一定的時(shí)間片,造成資源浪費(fèi)。
一個(gè)FlexRay循環(huán)包括靜態(tài)數(shù)據(jù)段和動(dòng)態(tài)數(shù)據(jù)段,如圖1所示。兩段可以同時(shí)出現(xiàn),也可以只有其中一種。靜態(tài)數(shù)據(jù)段被分成相等的靜態(tài)時(shí)間片,每個(gè)節(jié)點(diǎn)最多分配16個(gè)時(shí)間片,每個(gè)時(shí)間片有唯一的標(biāo)識(shí)符。動(dòng)態(tài)數(shù)據(jù)段用于事件觸發(fā)消息及診斷信息的傳輸,但時(shí)間和帶寬是受限的。
2 OSEK/VDX車載網(wǎng)絡(luò)管理
OSEK/VDX網(wǎng)絡(luò)管理的主要任務(wù)是保證網(wǎng)絡(luò)中各個(gè)ECU之間通信的可靠性和安全性。OSEK NM定義了直接網(wǎng)絡(luò)管理和間接網(wǎng)絡(luò)管理兩種網(wǎng)絡(luò)管理方法,同時(shí)定義了監(jiān)測(cè)靜態(tài)網(wǎng)絡(luò)節(jié)點(diǎn)狀態(tài)的規(guī)范,并提供控制網(wǎng)絡(luò)管理組件接口程序。另外,在汽車應(yīng)用中大多數(shù)網(wǎng)絡(luò)是靜態(tài)配置的,所以網(wǎng)絡(luò)中的節(jié)點(diǎn)大多固定,具有一個(gè)獨(dú)一無(wú)二的標(biāo)識(shí)符,用OSEK NM對(duì)其進(jìn)行管理是非常合適的,因此現(xiàn)在國(guó)外各大汽車制造廠商應(yīng)用的幾乎都是基于OSEKNM的管理算法。
通常在車輛環(huán)境下ECU有3種不同的工作模式:正常模式(normal operation)、低功耗模式(low power)和睡眠模式(sleep)。網(wǎng)絡(luò)管理要在整個(gè)通信系統(tǒng)范圍內(nèi)協(xié)調(diào)各個(gè)ECU節(jié)點(diǎn)工作狀態(tài)的切換,以減少總線的負(fù)載及功率損耗。OSEK VDX定義的網(wǎng)絡(luò)管理主要具備:網(wǎng)絡(luò)配置功能(OSEK NM將網(wǎng)絡(luò)配置區(qū)分為normal和1imphome兩個(gè)級(jí)別),狀態(tài)管理功能(哪些節(jié)點(diǎn)在網(wǎng)絡(luò)上處于活躍狀態(tài))和睡眠管理功能。
網(wǎng)絡(luò)管理的各種功能最終需要網(wǎng)絡(luò)協(xié)議來(lái)實(shí)現(xiàn),0S—EK NM定義了網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元(Network Man—agement Protocol Data Unit,NMPDU)。如圖2所示,它包含了所有網(wǎng)絡(luò)管理要求的消息。
3 OSEK/VDX的FlexRay網(wǎng)絡(luò)管理協(xié)議
在OSEK/VDX NM中,要求參與網(wǎng)絡(luò)通信的每個(gè)節(jié)點(diǎn)有獨(dú)立的標(biāo)識(shí)符,各節(jié)點(diǎn)依照邏輯環(huán)的順序發(fā)送網(wǎng)絡(luò)管理消息。邏輯環(huán)獨(dú)立于網(wǎng)絡(luò)的物理結(jié)構(gòu),每個(gè)節(jié)點(diǎn)具有一個(gè)邏輯后繼節(jié)點(diǎn),邏輯環(huán)第一個(gè)節(jié)點(diǎn)是該邏輯環(huán)最后一個(gè)節(jié)點(diǎn)的邏輯后繼。
FlexRay是時(shí)間觸發(fā)的總線協(xié)議,因此FlexRay網(wǎng)絡(luò)管理消息在發(fā)送時(shí),可以脫離邏輯環(huán)的模式,而且NMP—DU可以不需要源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)的ID。
圖3給出了一個(gè)與OSEK/VDX標(biāo)準(zhǔn)兼容的FlexRayNMPDU。圖中,Byte 0為源節(jié)點(diǎn)ID,保留它是為了與OSEK標(biāo)準(zhǔn)兼容;Byte 1則包含網(wǎng)絡(luò)管理協(xié)議的一系列標(biāo)識(shí)符,Sleep Ind(休眠指示)位與Sleep Ack(休眠確認(rèn))位是必需的,節(jié)點(diǎn)是否切換進(jìn)入休眠模式由這兩個(gè)標(biāo)識(shí)符來(lái)決定,Ring位也是為了與OSEK標(biāo)準(zhǔn)兼容,其他位(如Config位等)為1;Byte2~7為將來(lái)擴(kuò)展保留。
4 AUTOSAR針對(duì)FlexRay的網(wǎng)絡(luò)管理
為了與FlexRay的應(yīng)用前景相適應(yīng),AUTOSAR組織已經(jīng)基于OSEK/VDX定義了一套針對(duì)FlexRay的網(wǎng)絡(luò)管理規(guī)范。針對(duì)FlexRay,AUTOSAR v2.O.1將網(wǎng)絡(luò)管理模塊劃分為2個(gè)部分:Generic NM和F1exRay NM。在這一規(guī)定中,每個(gè)節(jié)點(diǎn)必須周期性地發(fā)送一個(gè)網(wǎng)絡(luò)管理信息,也就是按事先設(shè)定好的時(shí)間觸發(fā)順序進(jìn)行網(wǎng)絡(luò)管理信息的傳輸,直到所有節(jié)點(diǎn)不再進(jìn)行任何總線通信為止。如果在一個(gè)系統(tǒng)定義的時(shí)間周期內(nèi),傳輸介質(zhì)上沒(méi)有發(fā)送或收到任何網(wǎng)絡(luò)管理信息時(shí),節(jié)點(diǎn)將同步轉(zhuǎn)入總線休眠模式狀態(tài)(BUS_SLEEP_MODE)。這里給出了一個(gè)可行的網(wǎng)絡(luò)管理的狀態(tài)機(jī),如圖4所示。
圖中的幾個(gè)狀態(tài)分別是:
◆NETw0RK_MODE(網(wǎng)絡(luò)工作狀態(tài))及其包含的子狀態(tài)
一NORMAL_0PERATION(正常工作狀態(tài))
一REPEAT_MESSAGE(進(jìn)入NETWORK_MODE時(shí)的初始狀態(tài))
一READY__SLEEP(準(zhǔn)備進(jìn)入休眠狀態(tài))
◆PREPARE_BUS_SLEEP_MODE(總線準(zhǔn)備進(jìn)入休眠狀態(tài))
◆BUS_SLEEP_MODE(總線休眠狀態(tài))
這里所給出的網(wǎng)絡(luò)管理狀態(tài)機(jī),參照了AUTOSAR中關(guān)于NM的標(biāo)準(zhǔn),使用最簡(jiǎn)化的算法結(jié)構(gòu)來(lái)實(shí)現(xiàn)最大化的效率及高穩(wěn)定性,減少了總線的通信負(fù)荷及復(fù)雜性。在具體實(shí)現(xiàn)中,網(wǎng)絡(luò)管理位于FlexRay通信系統(tǒng)的最頂層,動(dòng)態(tài)部分的第一個(gè)時(shí)間片用來(lái)傳輸網(wǎng)絡(luò)管理信息。每個(gè)節(jié)點(diǎn)把自己的網(wǎng)絡(luò)管理ID與FlexRay通信系統(tǒng)當(dāng)時(shí)的循環(huán)數(shù)比較,如果相符,則這一節(jié)點(diǎn)發(fā)送此次通信循環(huán)的網(wǎng)絡(luò)管理消息,所有其他節(jié)點(diǎn)接受這一消息。
5 網(wǎng)絡(luò)管理測(cè)試實(shí)例
為了驗(yàn)證上文所述FlexRay網(wǎng)絡(luò)管理的實(shí)用性及其應(yīng)用前景,一家德國(guó)汽車OEM廠商已在多種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)下對(duì)FlexRay NM進(jìn)行了評(píng)估。實(shí)際上,AUTOSAR應(yīng)用于F1exRay的網(wǎng)絡(luò)管理也已經(jīng)結(jié)合Vector公司的FlexRay—Stack進(jìn)行應(yīng)用。測(cè)試中特別著眼于以下3方面:與AUTOSAR規(guī)范保持一致、系統(tǒng)的穩(wěn)定性,以及在將一個(gè)節(jié)點(diǎn)重新引入總線系統(tǒng)時(shí),F(xiàn)lexRay—Stack的重新同步情況。
實(shí)驗(yàn)中,搭建了一個(gè)基于NXP SJA2510的簡(jiǎn)化通信節(jié)點(diǎn)平臺(tái),NXP SJA2510是集成了F1exRay通信控制器的ARM9微控制器。FlexRay—Stack包含了FlexRay的網(wǎng)絡(luò)管理組件(generic和FlexRay協(xié)議)。
實(shí)驗(yàn)中測(cè)試了以下的硬件拓?fù)浣Y(jié)構(gòu):
①總線拓?fù)浣Y(jié)構(gòu)上直接連接FlexRay節(jié)點(diǎn);
②用FlexRay收發(fā)器TJAl080互連的方式來(lái)實(shí)現(xiàn)主動(dòng)星型拓?fù)浣Y(jié)構(gòu),如圖5所示。
上述測(cè)試系統(tǒng)可以用來(lái)了解混合拓?fù)浣Y(jié)構(gòu)下的實(shí)際系統(tǒng)情況,以確定F1exRay網(wǎng)絡(luò)管理模塊在不同拓?fù)浣Y(jié)構(gòu)下的容錯(cuò)程度。
實(shí)驗(yàn)結(jié)果是:網(wǎng)絡(luò)系統(tǒng)工作平穩(wěn),與AUTOSAR規(guī)范保持一致,將一個(gè)節(jié)點(diǎn)重新引入總線系統(tǒng)時(shí),FlexRay-StacK的重新同步情況良好,即添加和減少節(jié)點(diǎn)時(shí),網(wǎng)絡(luò)仍能良好地進(jìn)行通信
6 結(jié) 論
FlexRay的網(wǎng)絡(luò)管理與其他的事件觸發(fā)的總線協(xié)議(如CAN)不同,并擁有以下優(yōu)勢(shì):①網(wǎng)絡(luò)管理啟動(dòng)時(shí)不會(huì)造成網(wǎng)絡(luò)擁堵,由于是時(shí)間觸發(fā),在任何網(wǎng)絡(luò)狀態(tài)下它所產(chǎn)生的網(wǎng)絡(luò)負(fù)荷不變;②響應(yīng)迅速;③容錯(cuò)度高。網(wǎng)絡(luò)管理可以很好地保證F1exRay在高速、高靈活性的同時(shí),可靠、安全地進(jìn)行通信。在可靠、安全的前提下,合適的網(wǎng)絡(luò)管理使F1exRay在靈活性方面的優(yōu)勢(shì)更加凸現(xiàn)。