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

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

表1 OSEK NM與AUTOSAR NM規范對比Tab.1 Inter-comparison of specifications of OSEK NM and AUTOSAR NM
AUTOSAR NM包括三種操作模式:休眠模式、同步模式和正常工作模式[8]。它采用分布式直接網絡管理機制,每個節點可獨立進行網絡管理行為,狀態轉換基于自身的網絡請求和接收到的網絡管理消息。節點接收到周期發送的網絡管理消息,即表明發送節點試圖保持網絡喚醒狀態;若節點準備進入休眠狀態,則停止發送網絡管理消息,但只要接收到其他節點發送的網絡管理消息,就推后進入休眠模式;若節點在預定的時間內接收不到網絡管理消息,就進入休眠狀態。只要有一個節點需要通信,則所有節點必須保持喚醒狀態;若網絡中的任意節點需要總線通信,則發送網絡管理消息,將網絡從總線休眠狀態喚醒。
AUTOSAR把網絡管理消息定義為網絡管理協議數據單元(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的單獨發送,也允許NM-Vote和NM-Data結合成完整的NMPDU進行發送,其靈活性設計主要是針對FlexRay總線協議制定的,為網絡管理信息的調度帶來很大便利。
圖2(a)中NA(not available)表示NA位不可用。當NM-Vote PDU與NM-Data PDU在靜態段一起發送時,此位留給NM-Data PDU中的Control Bit Vector用。Vote是一個模式轉換位,1表示保持喚醒狀態,0表示反對保持喚醒狀態(請求休眠)。圖2(b)中NA也表示NA位不可用,當NM-Data PDU與NM-Vote PDU在靜態段一起發送時,此位留給NM-Vote使用。R(reserve)保留位,為以后系統的擴展使用。RptMsgReq(repeat message request)為消息重發請求位,1表示請求重發,0表示不允許重發。完整的FlexRay NMPD應該由控制域和數據域組成,即NM-Data PDU與NMVote PDU結合。
由以上分析可知,NM-Data PDU與NM-Vote PDU的結合實際上就是NM-Vote與NM-Data中控制位向量(control bit vector,CBV)相結合。結合后的完整NMPDU格式與NM-Data PDU格式相近,只是將Byte0的第七位NA換成Vote位。結合過程及結果如圖3所示。圖3是以加法形式表示的,“+”表示相加,“——”表示等于。圖中只給出了Byte0的結合,其他字節不變。

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

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

圖5 NMPDU動態調度算法流程圖Fig.5 Flowchart of NMPDU dynamic scheduling algorithm
車載網絡管理不僅要具有基本網絡管理功能,還應與其總線協議和通信方式相適應,以降低網絡管理的復雜度、減少資源占用率。就其基本規范而言,基于AUTOSAR NM的FlexRay網絡管理具有如下優勢:①NMPDU通過周期性報文發送,不需要建立邏輯環;②兼顧了FlexRay的兩種通信方式,靈活地使用了靜態段和動態段;③合理應用了靜態幀的網絡管理向量的優勢,避免了資源的浪費。在此基礎上,應用本文所研究的基于AUSTOR NM動態調度策略來對NMPDU進行靈活調度,解決了由于網絡負載動態變化,而網絡管理協議數據單一化而帶來的不足,為良好的網絡管理協議的進一步制定和應用奠定了基礎。
[1]蔣建春,張慧.基于OSEK標準任務調度算法的改進[J].計算機工程,2009,35(20):228 -230.
[2]宋君花,王俊席,冒曉建,等.OSEK/VDX的混合動力汽車實時操作系統[J].農業機械學報,2008,39(6):21 -24.
[3]陳覺曉,袁昊昀,羅峰,等.基于OSEK NM的FlexRay網絡管理協議數據的定義[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]陰曉峰,劉武東.汽車電子系統軟件開發新標準AUTOSAR[J].西華大學學報:自然科學版,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].杭州:浙江大學,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.