張 利 張本宏 王躍飛 刁新超 劉征宇
合肥工業(yè)大學(xué)安全關(guān)鍵工業(yè)測控技術(shù)教育部工程研究中心,合肥,230009
F1exRay總線是新一代汽車內(nèi)部網(wǎng)絡(luò)通信協(xié)議,它為車內(nèi)控制系統(tǒng)提供所需的速度和可靠性。F1exRay與CAN、LIN等已成為現(xiàn)代汽車網(wǎng)絡(luò)總線的關(guān)鍵技術(shù),它們根據(jù)傳輸帶寬和價格比的要求被應(yīng)用在汽車不同的領(lǐng)域,相互補充、相互支撐,組合成多種總線混合的汽車網(wǎng)絡(luò)[1-2]。
FlexRay總線系統(tǒng)將事件觸發(fā)和時間觸發(fā)兩種方式相結(jié)合,具有高速可確定性和故障容錯等特點。隨著FlexRay重要性的日益顯現(xiàn),對其研究也越來越多,然而對FlexRay網(wǎng)絡(luò)帶寬利用率的研究很少。文獻(xiàn)[3]分析了通信周期中靜態(tài)部分和動態(tài)部分的時間特性,計算了消息和任務(wù)在最壞情況下的響應(yīng)時間,但沒有進(jìn)行時序性能驗證。文獻(xiàn)[4]計算了FlexRay消息幀的傳輸時間,在考慮有效FlexRay幀長度情況下,分析靜態(tài)部分的網(wǎng)絡(luò)帶寬丟失率,進(jìn)一步得到了靜態(tài)部分的網(wǎng)絡(luò)利用率計算公式,但沒有考慮FlexRay動態(tài)部分消息傳輸時間。文獻(xiàn)[5]提出一種消息的調(diào)度算法來減小總線占用率,但總線占用率計算方法中沒有考慮動態(tài)消息的總線占用率。
FlexRay消息幀[6-7]由幀頭、有效數(shù)據(jù)和幀尾三部分組成。FlexRay幀格式如圖1所示。幀頭部分共由5個字節(jié)組成(共40位),包括保留位、有效數(shù)據(jù)指示位、空幀指示位、同步幀指示位、啟動幀指示位、幀ID、有效數(shù)據(jù)長度、頭部循環(huán)校驗CRC和周期計數(shù)。有效數(shù)據(jù)部分可由0~254個字節(jié)組成。幀尾部分只含有單個的數(shù)據(jù)域,即一個24位的CRC。
FlexRay提供兩種媒體接入時序的選擇,一種是靜態(tài)的分時多址接入時序(TDMA),一種是動態(tài)的基于最小時間片的柔性時分多址接入時序(FTDMA)[2,6]。在一個通信周期內(nèi),有4個時間等級,從最低層到最高層分別是最小時間節(jié)拍層、最大時間節(jié)拍層、仲裁網(wǎng)格層和通信周期層[6-7],如圖2所示。
圖1 FlexRay幀格式
圖2 通信周期時間分層
最高層即通信周期層,由靜態(tài)段、動態(tài)段、特征窗和網(wǎng)絡(luò)閑置時間四部分組成。靜態(tài)段由若干個長度相等的靜態(tài)時間片(static slot)組成,采用的是TDMA方式;動態(tài)段由若干個長度相等的最小時間片(minislot)組成,采用的是基于最小時間片的FTDMA方式。靜態(tài)時間片和最小時間片均由若干個最大時間節(jié)拍(Macrotick,MT)組成,1個MT的時長通常被配置為1~6μs,本文用gdMacrotick表示1個MT的時長。
時間片長度是指消息傳輸使用的時間長度,這里用MT的數(shù)量表示。消息在傳輸過程中被分成獨立的字節(jié)進(jìn)行傳輸,為保證消息的正常傳輸,還需使用更多的空間,包括傳輸起始序列(3~15位)、幀起始序列(1位)、字節(jié)起始序列(2位)、幀結(jié)束序列(2位)、通信空閑分隔符(11位)和幀前與幀尾的觸發(fā)點偏移量。FlexRay的傳輸序列如圖3所示。
如果消息幀在動態(tài)段進(jìn)行傳輸,則還要在幀結(jié)束序列后附加動態(tài)尾部序列。動態(tài)尾部序列時間值是變化的,最小值為2gdBit(gdBit指傳輸1位所需的時間)。
圖3 FlexRay幀物理層傳輸規(guī)則
當(dāng)消息i放在靜態(tài)段傳輸時,假設(shè)其長度為k個字節(jié),則傳輸該消息所需的靜態(tài)時間片長度Ti(單位為MT的個數(shù))為
其中,29為15位傳輸起始序列、1位幀起始序列、11位通道空閑分隔符和2位幀結(jié)束序列的位數(shù)之和;10為字節(jié)前的2位字節(jié)起始序列與字節(jié)的位數(shù)之和;TAPO1為靜態(tài)段觸發(fā)點偏移量(gdAction-PointOffset)。由于靜態(tài)段的靜態(tài)時間片長度由最長的消息決定,因此靜態(tài)時間片長度為所有時間片長度的最大值,即
當(dāng)消息i放在動態(tài)段傳輸時,其最小時間片長度Ti為
式中,TAPO2為最小時間片觸發(fā)點偏移量;2gdBit為動態(tài)尾部序列時間。
假設(shè)系統(tǒng)中消息總數(shù)為N,其中有m條靜態(tài)消息和n條動態(tài)消息,則總線占用率U計算公式為
式中,Tc為FlexRay總線的通信周期;fi為第i個消息的傳輸頻率;Tpi為i個消息的傳輸周期。
由式(4)可知,在幀數(shù)目、幀傳輸周期、幀長度一定的情況下,F(xiàn)lexRay總線占用率由靜態(tài)時間片長度、最小時間片長度以及消息被分配到動態(tài)段還是靜態(tài)段的分配方法決定。
在圖4a中,靜態(tài)時間片長度由最長的靜態(tài)消息決定,因此,F(xiàn)lexRay總線占用率為
式中,TM2為消息M2對應(yīng)的靜態(tài)時間片長度。
由圖4a可以看出,靜態(tài)段傳輸?shù)南㈤L度是變化的,但靜態(tài)段的靜態(tài)時間片長度是相等的,由此導(dǎo)致總線占用率較大,帶寬利用率不是很高,特別是最長靜態(tài)消息和最短靜態(tài)消息長度差值很大的情況。本文提出一種消息分配規(guī)則,即將最長的靜態(tài)消息分配到動態(tài)段進(jìn)行傳輸,如圖4b所示,以降低總線占用率,提高帶寬利用率。
圖4 最長靜態(tài)消息分配到動態(tài)段
本算法以獲得最小總線占用率為目標(biāo),依據(jù)分配規(guī)則不斷重復(fù)運行分配過程以獲得最小總線占用率。令Uk為k(k=0,1,…,N)個消息被分配到動態(tài)段的總線占用率,則最小總線占用率可表示為
其中,總線占用率Uk的計算依據(jù)式(4),計算時需要同時考慮靜態(tài)消息和動態(tài)消息的總線占用率。
該分配算法以式(4)、式(5)為基礎(chǔ),在計算最小總線占用率Umin時,除了不考慮消息傳輸失敗及其處理的情況以外,還必須保證所有的FlexRay消息的傳輸時間都在最壞情況下的響應(yīng)時間之內(nèi)。
圖5為算法的流程圖[8-11]。FlexRay網(wǎng)絡(luò)參數(shù)值必須提前給出,參數(shù)包括系統(tǒng)配置信息,如節(jié)點參數(shù)、網(wǎng)絡(luò)帶寬和消息參數(shù)等。
圖5 算法規(guī)則流程圖
獲取輸入?yún)?shù)值后進(jìn)行網(wǎng)絡(luò)初始化配置,該過程包括消息分配與設(shè)定及計算時序值和占用率。消息分配包括將FlexRay消息分配到節(jié)點和根據(jù)性質(zhì)不同分配到靜態(tài)段或者動態(tài)段。通常情況下,周期發(fā)送的消息分配到靜態(tài)段,隨機發(fā)生的消息分配到動態(tài)段。在運行分配規(guī)則過程中,當(dāng)消息重新分配后,需要重新計算靜態(tài)段中靜態(tài)時間片大小與數(shù)目,同時,需要依照所給出的消息優(yōu)先級次序重新設(shè)定消息傳輸次序,以保證消息傳輸?shù)膶崟r性。時序值是指消息實際傳輸時間與所規(guī)定傳輸時間的比較值。通過時序值判斷消息是否在響應(yīng)時間內(nèi)傳輸完,若所有消息在最壞情況下的響應(yīng)時間內(nèi)傳送,則時序值為1,否則為0。
在進(jìn)行消息分配時,必須保證每個消息在截止時間前傳輸完畢。當(dāng)分配方法改變時,如果U*<U(U和U*分別為分配方法改變前后的總線占用率),即總線占用率降低,則該消息將被分配到動態(tài)段;否則該消息被分配到靜態(tài)段。在初始化網(wǎng)絡(luò)配置完成后,分配過程被重復(fù)執(zhí)行以得到總線占用率的最小值,該分配過程在沒有靜態(tài)消息被分配到動態(tài)段時結(jié)束。
本文引用文獻(xiàn)[5]中所用的美國汽車工程學(xué)會(SAE)的基準(zhǔn)數(shù)據(jù)(表1)對消息分配算法進(jìn)行驗證。由于不同傳輸速率下,傳輸一幀要求的時間不一樣,而在gdMacrotick值一定的情況下,所需MT數(shù)目也不同,為了表述方便,表1中將幀的長度用不同傳輸速率下所需時間片長度即MT的數(shù)目來表示。進(jìn)行驗證的FlexRay通信參數(shù)在表2中定義。
表1 FlexRay消息幀
表2 FlexRay通信參數(shù)
由表1可知,為了保證所有的消息在截止時間前傳輸完畢,F(xiàn)lexRay通信周期不能超過5ms。如果將傳輸周期為1000ms的幀放在靜態(tài)段中傳輸,則200個通信周期才能傳輸一次,這不符合FlexRay協(xié)議中通信周期計數(shù)器不能超過63的規(guī)定。因此,消息幀16、17和18首先被分配在動態(tài)段中傳輸。
由表1可看出,消息12所需的時間片最多,當(dāng)傳輸速率為5Mbit/s時,初始階段靜態(tài)時間片長度為60MT。在算法的初始階段,靜態(tài)時間片長度由最長消息12所需的MT數(shù)目決定。根據(jù)分配規(guī)則,靜態(tài)段最長的消息幀被分配到動態(tài)段傳輸。表3顯示了5Mbit/s速率下靜態(tài)段參數(shù)值的變化及總線占用率的變化。在分配算法的初始化階段,消息16、17、18被分配到動態(tài)段,其他消息被分配到靜態(tài)段。通過運行分配算法,最終8個消息被分配到動態(tài)段,此時,靜態(tài)段時間片長度為40MT,總線占用率減小到最小值4.8176%。
表3 參數(shù)變化及網(wǎng)絡(luò)利用率(傳輸速率5Mbit/s)
不同傳輸速率下,使用該消息分配算法后得到的總線占用率數(shù)據(jù)如表4所示,由表4可知,傳輸速率越低,該消息分配算法使總線占用率下降得越多,網(wǎng)絡(luò)利用率越高。
表4 網(wǎng)絡(luò)利用率前后對照表
本文基于FlexRay幀格式和物理層傳輸規(guī)則分析FlexRay消息幀的長度,得到消息長度計算方法。通過對FlexRay消息幀在靜態(tài)段和動態(tài)段傳輸時間的分析,計算總線帶寬利用率,最終得到總線占用率的計算公式。實例驗證表明,將靜態(tài)段最長的消息幀放在動態(tài)段進(jìn)行傳輸,在不同傳輸速率下,總線占用率都得到了降低。下一步工作將對動態(tài)段消息傳輸?shù)臅r間性能和調(diào)度規(guī)則進(jìn)行研究。
[1]王躍飛,王子涵,張利,等.基于改進(jìn)調(diào)度算法的新一代汽車總線及其網(wǎng)關(guān)[J].電子測量與儀器學(xué)報,2011,25(10):289-295.
[2]顧嫣,張鳳登.FlexRay動態(tài)段優(yōu)化調(diào)度算法研究[J].自動化儀表,2009,30(12):25-29.
[3]Kang Minkoo,Park Kiejin,Kim Bongjun.Determining the Size of a Static Segment and Analyzing the Utilization of In-Vehicle FlexRay Network[C]//Third International Conference on Convergence and Hybrid Information Technology.Daejeon,Korea,2008:50-53.
[4]Kang Minkoo,Park Kiejin,Kim Bongjun.A Static Message Scheduling Algorithm for Reducing FlexRay Network Utilization[C]//IEEE International Symposium on Industrial Electronics.Lisbon,Portugal,2009:1287-1291.
[5]Matthias H,H?ss V,Müller-Glaser V.Physical Layer Extraction of FlexRay Configuration Parameters[C]//IEEE International Symposium on Rapid System Prototyping.Paris,2009:173-180.
[6]羅峰,陳智琦,劉矗,等.基于FlexRay的車載網(wǎng)絡(luò)系統(tǒng)開發(fā)[J].電子測量與儀器學(xué)報,2009,23(增刊):289-295.
[7]Schmidt K,Schmidt E G.Message Scheduling for the FlexRay Protocol:the Static Segment[J].IEEE Transactions on Vehicular Technology,2009,58(5)2170-2179.
[8]趙歡,熊振華,丁漢.基于IEEE1394的運動控制系統(tǒng)總線協(xié)議與同步機制研究[J].中國機械工程,2009,20(23):2850-2855.
[9]張利,李縣軍,王躍飛.汽車CAN網(wǎng)絡(luò)時鐘同步方法研究[J].電子測量與儀器學(xué)報,2011,25(2):147-152.
[10]張利,王躍飛,嚴(yán)剛,等.混合動力汽車CAN網(wǎng)絡(luò)優(yōu)先級的動態(tài)分配方法[J].農(nóng)業(yè)機械學(xué)報,2011,42(5):22-26.
[11]李傳斌,嚴(yán)剛,劉夢陽.FlexRay-CAN網(wǎng)關(guān)中的多隊列消息處理方法[J].合肥工業(yè)大學(xué)學(xué)報,2011,34(1):28-33.