王 濤
(合肥工業(yè)大學(xué) 機械與汽車工程學(xué)院,合肥 230009)
隨著現(xiàn)代汽車電子技術(shù)的高速發(fā)展,越來越多的電控節(jié)點加入了車身控制系統(tǒng)。尤其是線控系統(tǒng)(x-by-wire)的加入,使得基于事件觸發(fā)的控制器局域網(wǎng)CAN已經(jīng)不能滿足進一步的網(wǎng)絡(luò)需求[1]。為了滿足高實時性和高可靠性的要求,BMW、Daimler-Chrysler、Bosch等公司聯(lián)合提出了具有高帶寬、高速率、高容錯能力的 FlexRay通信協(xié)議[2]。
FlexRay是基于時分多路的高實時性的總線協(xié)議,所以目前對FlexRay的時間性能的研究較多。現(xiàn)有研究對整個通信周期進行優(yōu)化,分別對靜態(tài)段和動態(tài)段給出算法[3][4];對靜態(tài)段單獨進行研究,給出調(diào)度方法,提高靜態(tài)段的網(wǎng)絡(luò)利用率,但沒有考慮動態(tài)段[5];還有對 FlexRay 時鐘同步算法進行研究[6]。
本文提出一種動態(tài)段時長優(yōu)化配置方法,以及相關(guān)動態(tài)消息調(diào)度算法。在保證動態(tài)段時長設(shè)計合理且消息可調(diào)度的情況下,提出優(yōu)化算法對動態(tài)消息進行調(diào)度,減少消息延時,提高網(wǎng)絡(luò)利用率,并通過仿真實驗驗證該方法的正確性和可行性。
在FlexRay協(xié)議中,媒體訪問控制是以一個重復(fù)的通信周期為基礎(chǔ)的。在一個通信周期內(nèi)支持兩種媒體訪問方案的選擇:靜態(tài)的時分多址(TDMA)方案和基于最小時間片的動態(tài)方案。
FlexRay通信周期層分為:靜態(tài)部分、動態(tài)部分、符號窗口以及網(wǎng)絡(luò)空閑時間四個部分。靜態(tài)部分采用TDMA方式通信。靜態(tài)段由若干個靜態(tài)時間片組成,每個時間片的長度都相等。動態(tài)部分則是以基于最小時間片的方式發(fā)送。動態(tài)段由若干個最小時間片組成,最小時間片的長度都相等,如圖1所示。
FlexRay通信周期中主要由靜態(tài)段和動態(tài)段傳輸消息。靜態(tài)段一般用于傳輸確定性的周期性消息,而動態(tài)段則用于傳輸非周期性消息。在通信周期中,對于靜態(tài)消息,每個節(jié)點通過其獨特的幀標識符發(fā)送消息,系統(tǒng)只允許幀標識符(FID,F(xiàn)rame ID)與當(dāng)前的時間片計數(shù)器值相等的那個節(jié)點向總線上發(fā)送數(shù)據(jù)。為保證總線上不會發(fā)生消息沖突,幀標識符與節(jié)點是一一對應(yīng)的,也就是每個幀ID只能分配給一個節(jié)點。雖然動態(tài)消息也是通過其獨特的幀標識符發(fā)送消息,但是由于動態(tài)時間片長度的不確定性,不能根據(jù)FID來確定消息發(fā)送的實際時間,因此,需要對動態(tài)消息進行優(yōu)化調(diào)度,減少時間不確定性所產(chǎn)生的影響。
表1定義了FlexRay通信周期的關(guān)鍵參數(shù)[7]。

表1 通信周期的部分參數(shù)
為了確定以上的動態(tài)段參數(shù),需要知道以下的數(shù)值:
1) 傳輸延時(tTx);
2)平均總線利用率(BU)。
傳輸延時tTx是指從消息數(shù)據(jù)被放入發(fā)送節(jié)點的FlexRay硬件緩存區(qū)的時刻到消息在接收節(jié)點的緩存區(qū)完成接收時刻之間的持續(xù)時間。BU指的是傳輸?shù)南⒃诳偩€所占時間的百分比。
FlexRay的動態(tài)段由一定數(shù)目的最小時間片組成,最小時間片的個數(shù)由參數(shù)gNummberOfMinislots確定,長度則由gdMinislot確定。
FlexRay 總線配置參數(shù)(Lcomm,LST,NMS,LMS)作為輸入。其中Lcomm表示FlexRay通信周期的長度,LST表示靜態(tài)段長度,NMS表示動態(tài)段最小時間片的個數(shù),LMS表示每一個最小時間片的長度。動態(tài)段的長度為:
整個通信集群中保持靜態(tài)段長度LST不變,優(yōu)化動態(tài)段時長,而此時通信周期的長度Lcomm也將發(fā)生變化。
2.3.1時間片計算
FlexRay幀由5個字節(jié)的幀頭,0~254個字節(jié)的負載段及3個字節(jié)的CRC校驗組成。FlexRay動態(tài)消息幀在物理層傳輸時還需使用更多的空間,其包括傳輸起始序列(3~15 位)、幀起始序列(1 位)、字節(jié)起始序列(2位)、幀結(jié)束序列(2位)、通訊空閑分隔符(11位)、觸發(fā)點偏移量和動態(tài)尾部序列DTS。動態(tài)尾部序列時間值是變化的,其值可以是2 gdBit和gdMinislot+2 gdBit之間的任意值,由動態(tài)消息的長度確定。
FlexRay通信周期的時間單位為Macrotick(MT),因此可得動態(tài)消息為k個字的時間片長度Tj為:
其中,TAPO是指最小時間片觸發(fā)點偏移量(gdMinislotActionPointOffset),位于動態(tài)消息幀傳輸之前;gdBit為每一位的時間間隔。
2.3.2動態(tài)段平均總線利用率的計算
BU指的是傳輸?shù)南⒃诳偩€所占時間的百分比。假設(shè)當(dāng)前系統(tǒng)中動態(tài)消息的總數(shù)為n,則動態(tài)段平均總線利用率BU計算公式為:
通過上述計算公式,可得到動態(tài)段網(wǎng)絡(luò)利用率與 Tj、LDYN之間的關(guān)系。
FlexRay動態(tài)幀(DYN)傳輸有固定的優(yōu)先級,并且沒有搶占:傳輸是根據(jù)已經(jīng)準備好的幀的ID(優(yōu)先順序)順序發(fā)送的。如果一個消息幀已經(jīng)就緒(時間片已過)但是同時另一個具有低優(yōu)先級的消息幀正在傳輸,它不能搶占低優(yōu)先級幀的時間片并且只能等到下一個周期傳輸。
因此,首先需要知道動態(tài)消息最壞情況下的響應(yīng)時間,即傳輸延時tTx是:
在公式(4)中,m表示任意的DYN消息;cm(t)為消息傳輸時間,即 cm(t)=消息長度/總線速率;傳輸延時是當(dāng)前周期所能產(chǎn)生的最長延時,由于消息在發(fā)送時隙過后才準備好而在應(yīng)該發(fā)送的周期中產(chǎn)生的延遲,如圖2所示,主機分配消息B在第一周期的第二個時間片發(fā)送,但消息B在第二個時間片剛過時產(chǎn)生,所以消息B需要在下個周期開始前等待一段為 σm(t)的時間。 延時 cm(t)為在給定的時間間隔t中,由于發(fā)送更靜態(tài)消息和高優(yōu)先級的消息而產(chǎn)生的最壞延時[8]。
FlexRay通信系統(tǒng)包含F(xiàn)lexRay總線、m個節(jié)點。并且每個節(jié)點都由主機CPU、通信控制器(CC)和控制器主機接口(CHI)組成,如圖 3 所示[9]。
為了建立FlexRay動態(tài)段的時長設(shè)計和動態(tài)消息調(diào)度算法模型,需要做如下假設(shè):1)所有消息都是非周期性消息,且相互獨立;2)所有的消息都是固定長度的,且長度、優(yōu)先級等參數(shù)都已知;3)忽略由通訊驅(qū)動器產(chǎn)生的延遲和抖動。
在一個通信集群(cluster)中,動態(tài)段的長度是一定的。如表2所示,假設(shè)所有的動態(tài)消息均為非周期性消息,消息的長度已知。當(dāng)消息產(chǎn)生后,節(jié)點會根據(jù)本節(jié)點分配的幀ID給每個消息分配幀ID及優(yōu)先級,然后消息進入緩存區(qū)等待發(fā)送。在消息長度已知的情況下,動態(tài)段的長度、幀ID以及優(yōu)先級的分配決定著動態(tài)段消息的響應(yīng)時間以及動態(tài)段的網(wǎng)絡(luò)利用率。
如果認為所有消息的固定長度為S,那么一個較短的總線周期意味著將有較少的消息在本周期發(fā)送;必然需要多個這樣的總線周期來傳輸總長度為S的動態(tài)消息。較長的總線周期意味著更多的消息可以在同一個周期中傳輸。但是,過長的動態(tài)段長度也意味著優(yōu)先級低的消息在當(dāng)前周期中發(fā)送時有可能超過消息的最壞響應(yīng)時間。所以周期長度也不是越長越好。

表2 動態(tài)消息參數(shù)值
假設(shè)動態(tài)消息集群中所有動態(tài)消息長度已知,根據(jù)系統(tǒng)配置在動態(tài)消息的長度篩選出n條最長的消息作為動態(tài)段的時長,放大動態(tài)段的長度。如表2所示消息集群,除消息m6之外,任意兩個消息之和均大于動態(tài)段長度之和12,所以每個周期動態(tài)段只能傳輸一個消息,而且?guī)琁D靠后的消息的響應(yīng)時間變長,整個周期需要較多的周期個數(shù)。
對動態(tài)段長度進行優(yōu)化以后,需要對動態(tài)消息進行分配調(diào)度。定義以下消息分配規(guī)則:1)每個動態(tài)消息都有唯一的幀ID;2)消息長度較長的消息分配較小的幀ID。
根據(jù)算法規(guī)則和要求,建立以下優(yōu)化模型:本算法以動態(tài)段最小網(wǎng)絡(luò)帶寬為目標,即達到最大網(wǎng)絡(luò)利用Umax,其公式為:
其中,動態(tài)段網(wǎng)絡(luò)利用率的計算方法根據(jù)公式(3),計算過程中需要考慮消息所有傳輸動態(tài)段消息的動態(tài)段的平均網(wǎng)絡(luò)利用率。并且考慮最大網(wǎng)絡(luò)利用率的同時,根據(jù)前面規(guī)定的優(yōu)先級分配原則,考慮消息的響應(yīng)時間要達到最佳。根據(jù)公式(4)計算所有動態(tài)消息的最小響應(yīng)時間:
分配算法以上述的數(shù)學(xué)模型為基礎(chǔ),結(jié)合公式(5)和公式(6),依據(jù)分配的規(guī)則不斷的計算比較以獲得動態(tài)段網(wǎng)絡(luò)利用率的最大值。
系統(tǒng)的消息分配規(guī)則必須保證每個動態(tài)消息在消息截止期結(jié)束前傳輸完。在網(wǎng)絡(luò)初始化完成之后,重復(fù)執(zhí)行算法分配過程,在獲得最大網(wǎng)絡(luò)利用率Umax的同時,保證總體響應(yīng)時間τmin最小。
為了驗證提出的動態(tài)段時長優(yōu)化配置方法和動態(tài)消息調(diào)度算法,需對一組實際的數(shù)據(jù)進行應(yīng)用測試,具體參數(shù)已在表2中給出。其中消息長度為n個minislot的長度。采用CANoe和DaVinci Network Designer平臺基礎(chǔ),虛擬節(jié)點與真實節(jié)點相結(jié)合共同搭建實驗系統(tǒng),對FlexRay的通信進行測試,并對算法進行驗證。
為了對動態(tài)段消息分配方法性能評估,設(shè)計帶有3個節(jié)點的總線型拓撲的FlexRay網(wǎng)絡(luò),每個節(jié)點有2個事件觸發(fā)的非周期性消息。采用動態(tài)段的網(wǎng)絡(luò)利用率BU來衡量動態(tài)段配置算法的優(yōu)化作用。
在表2所示的動態(tài)消息的長度和通信周期的長度中,除去消息m1和m6或m4和m6的組合外,每個動態(tài)段只能傳輸一個消息。根據(jù)提出的動態(tài)段設(shè)計方法,重新配置動態(tài)段長度為17。之后按照動態(tài)消息分配規(guī)則分配幀ID,并計算總體響應(yīng)時間,得到消息的最優(yōu)調(diào)度方案,如表3所示。

表3 動態(tài)消息最優(yōu)調(diào)度方案
優(yōu)化后的消息發(fā)送情況如圖4所示,動態(tài)段的長度在優(yōu)化后重新配置為17個minislot的長度,使得通信周期在一個動態(tài)段中能夠傳輸更多的消息。該分配方法把3個節(jié)點的消息在3個周期能完成傳輸,并保證了最小的響應(yīng)時間。并且系統(tǒng)的周期數(shù)也由原來的5個減少為3個周期。
對于不同的總線速率,使用該動態(tài)段設(shè)計和動態(tài)消息分配算法所得到的網(wǎng)絡(luò)利用率的結(jié)果,如表4所示。對同一組動態(tài)消息,在不同的總線速率下,該優(yōu)化方法都能夠有效的提高網(wǎng)絡(luò)利用率。

表4 網(wǎng)絡(luò)利用率對照表
本文在FlexRay媒體訪問控制的基礎(chǔ)上,針對FlexRay動態(tài)消息在動態(tài)段傳輸?shù)奶攸c,研究了消息響應(yīng)時間和動態(tài)網(wǎng)絡(luò)利用率的計算方法,提出了動態(tài)段時長優(yōu)化配置方法及動態(tài)消息調(diào)度算法和流程,并基于仿真系統(tǒng)進行是驗證。驗證結(jié)果表明,該方法能有效的提高網(wǎng)絡(luò)利用率,減少網(wǎng)絡(luò)帶寬。
[1]Klaus Schmidt,Ece G.Schmidt.Schedulability Analysis and Message Schedule Computation for the Dynamic Segment of FlexRay [C].Vehicular Technology Conference Fall,2010:1-5.
[2]Sri Kanajan,Jeffrey Abell.Sensitivity Analysis on Flexray Dynamic Segment Design Parameters [C].Systems and Networks Communications,2009:12-18.
[3]Traian Pop, Paul Pop, Petru Eles, et al.Bus Access Optimisation for FlexRay-based Distributed Embedded Systems,Design, Automation&Test in Europe Conference&Exhibition[C].2007:1-6.
[4]趙睿,秦貴,范鐵虎.FlexRay通信協(xié)議的總線周期優(yōu)化[J].計算機應(yīng)用研究,2010,27(10):3847-3850.
[5]Minkoo Kang, Kiejin Park, Bongjun Kim.A Static Message Scheduling Algorithm for Reducing FlexRay Network Utilization [J].IEEE International Symposium on Industrial Electronics,2009:1287-1291.
[6]Jan Sobotka, Jirí Novák, Jan Malinsk?.Analytic Model of FlexRay Synchronization Mechanism [C],Technology and Applications,2011:969-974.
[7]FlexRay Consortium.FlexRay Communications System Protocol Specfication Version2.1,December2005.Version 2.1 Revision A.
[8]顧嫣,張鳳登.FlexRay動態(tài)段優(yōu)化調(diào)度算法研究[J],自動化儀表學(xué)報,2009,30(12):25-29.
[9]Bongjun Kim, Kiejin Park,Probabilistic Delay Model of Dynamic Message Frame in FlexRay Protocol[C], Consumer Electronics,2009:77-82.