姚江云 孔 峰 吳方圓
(廣西工學(xué)院電子信息與控制工程系,廣西 柳州 545006)
隨著汽車電子技術(shù)的發(fā)展,車用電子設(shè)備在整車中所占的比重越來越大,電子設(shè)備的增加勢必使得車內(nèi)通信網(wǎng)絡(luò)的復(fù)雜程度也相應(yīng)增加,并且對信息傳輸?shù)膶崟r性和可靠性提出了更高的要求。車載網(wǎng)絡(luò)是一個復(fù)雜的通信系統(tǒng),網(wǎng)絡(luò)管理的目的就是保障整個網(wǎng)絡(luò)的穩(wěn)定可靠運行,其管理性能的好壞關(guān)系到整車的總體性能。
CAN網(wǎng)絡(luò)的網(wǎng)絡(luò)管理協(xié)議大部分是基于德國的汽車電子類開放系統(tǒng)和對應(yīng)接口標準OSEK NM所設(shè)計的[1-2]。而 FlexRay作為新一代總線,在網(wǎng)絡(luò)管理這一方面還沒有標準規(guī)范[3],文獻[3]將OSEK NM的管理規(guī)范引入到FlexRay網(wǎng)絡(luò)管理中,并作了相關(guān)方面的初步研究。自動開放系統(tǒng)架構(gòu)(automotive open system architecture,AUTOSAR)目前受到國外汽車行業(yè)的熱烈關(guān)注,國內(nèi)在這方面的研究剛剛起步。本文研究基于此架構(gòu)的FlexRay車載網(wǎng)絡(luò)管理,對網(wǎng)絡(luò)管理協(xié)議的制定具有一定的意義。
FlexRay總線是依靠通信周期傳輸信息的,每個通信周期包括靜態(tài)段、動態(tài)段、符號標志窗口和空閑時間[4]。靜態(tài)段采用時分多址(time division multiple access,TDMA)的通信方式。TDMA將通信時間分為若干個相等的時槽,即靜態(tài)時槽,各個時槽在規(guī)定的時刻發(fā)送與自己ID對應(yīng)的幀,實現(xiàn)了數(shù)據(jù)傳輸?shù)拇_定性。動態(tài)段采用靈活的時分多址(flexible time division multiple access,F(xiàn)TDMA)通信方式。FTDMA將通信時間分為若干個小時槽,即微時槽,不同數(shù)據(jù)幀在與自己ID對應(yīng)的微時槽內(nèi)開始發(fā)送,但整個動態(tài)時槽的時長是不確定的,它由所發(fā)送幀的長度確定。
FlexRay數(shù)據(jù)幀包括幀頭、負載段和幀尾[5]。幀頭占5 B,其中R為保留位,P(payment preamble indicator)為負載段指示位,N為空幀指示位,第一個S為同步幀指示位,第二個S為起始幀指示位。負載段指示位P在網(wǎng)絡(luò)管理中起著重要的作用。當P=1時,對于負載靜態(tài)段,表示開始部分有可選的網(wǎng)絡(luò)管理向量,而對于動態(tài)段,表示開始部分有信息ID;當P=0時,負載靜態(tài)段開始部分沒有網(wǎng)絡(luò)管理向量,動態(tài)段開始部分沒有信息ID。幀ID用于識別該數(shù)據(jù)幀的優(yōu)先級,負載段長度表示一幀中能傳輸?shù)淖謹?shù),幀頭CRC用于校驗傳輸中的錯誤,周期計數(shù)器用來對通信周期進行計數(shù)。負載段占0~254 B,包括靜態(tài)段和動態(tài)段,主要用來傳輸數(shù)據(jù)。當該幀以靜態(tài)段傳輸時,可將負載部分的0~12 B設(shè)為網(wǎng)絡(luò)管理向量;當該幀以動態(tài)段傳輸時,可將0~1 B設(shè)為信息ID。幀尾為3 B的CRC,用來對幀頭、負載段的信息進行校驗。P=1時的FlexRay數(shù)據(jù)幀如圖1所示。

圖1 FlexRay數(shù)據(jù)幀結(jié)構(gòu)Fig.1 Structure of FlexRay data frame
OSEK提供了直接網(wǎng)絡(luò)管理和間接網(wǎng)絡(luò)管理兩種機制[6-7]。由于間接網(wǎng)絡(luò)管理具有很大的局限性,它一般用于車身網(wǎng)絡(luò)的管理,基于OSEK Direct NM的FlexRay網(wǎng)絡(luò)管理已有初步研究。AUTOSAR NM規(guī)范是由AUTOSAR組織規(guī)定的。盡管OSEK NM與AUTOSAR NM最終網(wǎng)絡(luò)管理的目的是相同的,但在管理規(guī)范上卻有很大的不同,具體內(nèi)容如表1所示。由表1可知,AUTOSAR NM更適合用于時間觸發(fā)的FlexRay車載網(wǎng)絡(luò)管理。

表1 OSEK NM與AUTOSAR NM規(guī)范對比Tab.1 Inter-comparison of specifications of OSEK NM and AUTOSAR NM
AUTOSAR NM包括三種操作模式:休眠模式、同步模式和正常工作模式[8]。它采用分布式直接網(wǎng)絡(luò)管理機制,每個節(jié)點可獨立進行網(wǎng)絡(luò)管理行為,狀態(tài)轉(zhuǎn)換基于自身的網(wǎng)絡(luò)請求和接收到的網(wǎng)絡(luò)管理消息。節(jié)點接收到周期發(fā)送的網(wǎng)絡(luò)管理消息,即表明發(fā)送節(jié)點試圖保持網(wǎng)絡(luò)喚醒狀態(tài);若節(jié)點準備進入休眠狀態(tài),則停止發(fā)送網(wǎng)絡(luò)管理消息,但只要接收到其他節(jié)點發(fā)送的網(wǎng)絡(luò)管理消息,就推后進入休眠模式;若節(jié)點在預(yù)定的時間內(nèi)接收不到網(wǎng)絡(luò)管理消息,就進入休眠狀態(tài)。只要有一個節(jié)點需要通信,則所有節(jié)點必須保持喚醒狀態(tài);若網(wǎng)絡(luò)中的任意節(jié)點需要總線通信,則發(fā)送網(wǎng)絡(luò)管理消息,將網(wǎng)絡(luò)從總線休眠狀態(tài)喚醒。
AUTOSAR把網(wǎng)絡(luò)管理消息定義為網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單元(network management protocol data unit,NMPDU),它主要包括 NM-Vote PDU 和 NM-Data PDU[9-10],其格式如圖2所示。

圖2 NMPDU格式Fig.2 NMPDU format
FlexRay NM支持NM-Vote和NM-Data的單獨發(fā)送,也允許NM-Vote和NM-Data結(jié)合成完整的NMPDU進行發(fā)送,其靈活性設(shè)計主要是針對FlexRay總線協(xié)議制定的,為網(wǎng)絡(luò)管理信息的調(diào)度帶來很大便利。
圖2(a)中NA(not available)表示NA位不可用。當NM-Vote PDU與NM-Data PDU在靜態(tài)段一起發(fā)送時,此位留給NM-Data PDU中的Control Bit Vector用。Vote是一個模式轉(zhuǎn)換位,1表示保持喚醒狀態(tài),0表示反對保持喚醒狀態(tài)(請求休眠)。圖2(b)中NA也表示NA位不可用,當NM-Data PDU與NM-Vote PDU在靜態(tài)段一起發(fā)送時,此位留給NM-Vote使用。R(reserve)保留位,為以后系統(tǒng)的擴展使用。RptMsgReq(repeat message request)為消息重發(fā)請求位,1表示請求重發(fā),0表示不允許重發(fā)。完整的FlexRay NMPD應(yīng)該由控制域和數(shù)據(jù)域組成,即NM-Data PDU與NMVote PDU結(jié)合。
由以上分析可知,NM-Data PDU與NM-Vote PDU的結(jié)合實際上就是NM-Vote與NM-Data中控制位向量(control bit vector,CBV)相結(jié)合。結(jié)合后的完整NMPDU格式與NM-Data PDU格式相近,只是將Byte0的第七位NA換成Vote位。結(jié)合過程及結(jié)果如圖3所示。圖3是以加法形式表示的,“+”表示相加,“——”表示等于。圖中只給出了Byte0的結(jié)合,其他字節(jié)不變。

圖3 NM-Vote與CBV的結(jié)合示意圖Fig.3 Combination of NM-Vote and CBV
FlexRay總線不支持事件觸發(fā)的不確定性報文,NMPDU必須通過周期性報文在確定的時間發(fā)送。在實際應(yīng)用中,不必在每個時槽中都添加網(wǎng)絡(luò)管理的內(nèi)容。因此,網(wǎng)絡(luò)管理周期設(shè)為FlexRay通信周期的整數(shù)倍,每個節(jié)點在一個網(wǎng)絡(luò)管理周期內(nèi)發(fā)送一次NM PDU。因為一個動時槽的ID可以分配給多個節(jié)點,所以不同節(jié)點的NMPDU可以通過設(shè)定相同的幀ID,不同的周期計數(shù)值在多個通信周期的相同動態(tài)時槽發(fā)送,提高了寬帶利用率。因此,不僅靜態(tài)段可以用來發(fā)送NMPDU,動態(tài)段也可以用來發(fā)送。由于NMPDU格式和發(fā)送機制的靈活性,可以組合出NMPDU的多種調(diào)度方法,主要有以下五種:①NM-Vote與NM-Data結(jié)合,在靜態(tài)段發(fā)送;②NM-Vote與CBV結(jié)合在靜態(tài)段發(fā)送,NM-Data在動態(tài)段發(fā)送;③NM-Vote與NM-Data結(jié)合,在動態(tài)段發(fā)送;④ NM-Vote與NM-Data分別在動態(tài)段發(fā)送;⑤NM-Vote在靜態(tài)段發(fā)送,NM-Data在動態(tài)段發(fā)送。
在進行NMPDU的調(diào)度設(shè)計時,既要考慮對寬帶的有效利用,兼顧其硬件資源,又要盡量避免硬件資源的浪費而用軟件去代替。FlexRay協(xié)議規(guī)定了負載段可選變量由數(shù)據(jù)鏈路層實現(xiàn)自動讀寫服務(wù),由FlexRay通信控制器實現(xiàn)該功能。如使用靜態(tài)幀的網(wǎng)絡(luò)管理向量發(fā)送NMPDU,節(jié)點可通過讀取網(wǎng)絡(luò)管理向量寄存器,快速識別多個節(jié)點的網(wǎng)絡(luò)請求,提高網(wǎng)絡(luò)管理信息的更新速率。
本研究采用NMPDU長度來確定每種調(diào)度方法的應(yīng)用。由于FlexRay協(xié)議規(guī)定網(wǎng)絡(luò)管理向量的長度為0~12 B,且要求同一集群內(nèi)所有節(jié)點配置為相同長度,因此,如果NMPDU的長度較短,可利用網(wǎng)絡(luò)管理向量同應(yīng)用報文合并在一起發(fā)送(調(diào)度方法①),避免寬帶的浪費。如果NMPDU的長度較長但沒有超出網(wǎng)絡(luò)管理向量的范圍,應(yīng)采用將網(wǎng)絡(luò)管理向量與CBV的結(jié)合在靜態(tài)段與應(yīng)用報文一起發(fā)送,NM-Data在動態(tài)段發(fā)送(調(diào)度方法②)。如果NMPDU的長度超出網(wǎng)絡(luò)管理向量的范圍,可用專門的動態(tài)幀發(fā)送NMPDU(調(diào)度方法③)。為保證周期性傳輸,將幀ID設(shè)為最小值1。
由于NMPDU最終要通過FlexRay總線傳輸,所以NMPDU必須映射成FlexRay總線數(shù)據(jù)幀格式。這部分工作主要由數(shù)據(jù)鏈路層完成,最后經(jīng)發(fā)送器發(fā)出,圖4給出了兩個映射后的標準幀格式。

圖4 NMPDU映射后的格式Fig.4 The format of NMPDU mapped
車載網(wǎng)絡(luò)是一種動態(tài)網(wǎng)絡(luò),它所管理的節(jié)點無論從數(shù)量上還是狀態(tài)上都是實時變化的,本文提出一種NMPDU動態(tài)調(diào)度方法來進行動態(tài)網(wǎng)絡(luò)管理。NMPDU的長度是由網(wǎng)絡(luò)中節(jié)點數(shù)量和節(jié)點狀態(tài)轉(zhuǎn)換的頻率決定的,當FlexRay總線上工作的節(jié)點較少時,網(wǎng)絡(luò)管理事件比較單一,NMPDU就比較短;當網(wǎng)絡(luò)中啟動的節(jié)點增多時,網(wǎng)絡(luò)管理事件就比較復(fù)雜,這時需要的NMPDU長度就會增加。如果整個過程中用定長的NMPDU,則須兼顧二者,就可能達不到良好的效果或至少造成資源的浪費。
本設(shè)計選擇網(wǎng)絡(luò)負載作為NMPDU長度的衡量指標,對NMPDU進行動態(tài)調(diào)度,因為從網(wǎng)絡(luò)負載的高低大致可以判斷網(wǎng)絡(luò)中工作節(jié)點的多少。首先選用網(wǎng)絡(luò)負載一級監(jiān)測函數(shù)(FrNm-Network Load1),將網(wǎng)絡(luò)負載大致分為高、低兩個級別,并設(shè)置一個閾值加以區(qū)別。當網(wǎng)絡(luò)負載低于閾值時,F(xiàn)rNm-Network Load1為0,此時NMPDU較短,利用網(wǎng)絡(luò)管理向量同應(yīng)用報文合并在一起在靜態(tài)段發(fā)送;當網(wǎng)絡(luò)負載高于閾值時,F(xiàn)rNm-Network Load1為1,此時需要進行二級判別,選用網(wǎng)絡(luò)負載二級監(jiān)測函數(shù)(FrNm-Network Load2)。當FrNm-Network Load2=0時,NMPDU較長但沒有超出NM-Vector的范圍,將NM-Vote與CBV的結(jié)合在靜態(tài)段與應(yīng)用報文一起發(fā)送,NM-Data在動態(tài)段發(fā)送;當FrNm-Network Load2=1時,NMPDU應(yīng)配置為動態(tài)幀。具體調(diào)度算法流程如圖5所示。

圖5 NMPDU動態(tài)調(diào)度算法流程圖Fig.5 Flowchart of NMPDU dynamic scheduling algorithm
車載網(wǎng)絡(luò)管理不僅要具有基本網(wǎng)絡(luò)管理功能,還應(yīng)與其總線協(xié)議和通信方式相適應(yīng),以降低網(wǎng)絡(luò)管理的復(fù)雜度、減少資源占用率。就其基本規(guī)范而言,基于AUTOSAR NM的FlexRay網(wǎng)絡(luò)管理具有如下優(yōu)勢:①NMPDU通過周期性報文發(fā)送,不需要建立邏輯環(huán);②兼顧了FlexRay的兩種通信方式,靈活地使用了靜態(tài)段和動態(tài)段;③合理應(yīng)用了靜態(tài)幀的網(wǎng)絡(luò)管理向量的優(yōu)勢,避免了資源的浪費。在此基礎(chǔ)上,應(yīng)用本文所研究的基于AUSTOR NM動態(tài)調(diào)度策略來對NMPDU進行靈活調(diào)度,解決了由于網(wǎng)絡(luò)負載動態(tài)變化,而網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)單一化而帶來的不足,為良好的網(wǎng)絡(luò)管理協(xié)議的進一步制定和應(yīng)用奠定了基礎(chǔ)。
[1]蔣建春,張慧.基于OSEK標準任務(wù)調(diào)度算法的改進[J].計算機工程,2009,35(20):228 -230.
[2]宋君花,王俊席,冒曉建,等.OSEK/VDX的混合動力汽車實時操作系統(tǒng)[J].農(nóng)業(yè)機械學(xué)報,2008,39(6):21 -24.
[3]陳覺曉,袁昊昀,羅峰,等.基于OSEK NM的FlexRay網(wǎng)絡(luò)管理協(xié)議數(shù)據(jù)的定義[J].機電一體化,2009(2):70-72.
[4]Duan J M,Zhu L,Yu Y C.Research on FlexRay communication of steering-by-wire system[C]∥Intelligent Vehicles Symposium,IEEE 2009:824-828.
[5]Ece G,Schmidt K.Message scheduling for the static segment of the FlexRay protocol[C]∥ Signal Processing,Communication and Application Conference,2008:1 -4.
[6]陰曉峰,劉武東.汽車電子系統(tǒng)軟件開發(fā)新標準AUTOSAR[J].西華大學(xué)學(xué)報:自然科學(xué)版,2010,29(2):102-106.
[7]Long R S,Li H,Peng W.An approach to optimize Intra-ECU communication based on mapping of AUTOSAR runnable entities[C]//International Conferences on Embedded Software and Systems,2009:138-143.
[8]鮑威.基于AUTOSAR標準的ECU配置工具[D].杭州:浙江大學(xué),2010.
[9]AUTOSAR.Specification of FlexRay network management V3.1.0 R3.0 Rev7[EB/OL].[2010 -09 -20].http://www.autosar.org.
[10]AUTOSAR.Specification of FlexRay NM interface V3.1.0 R3.0 Rev7[EB/OL].[2010 -09 -20].http:∥www.autosar.de/down-load/R3.0/AUTOSAR.SWS.FlexrayNM.pdf.