李傳斌, 嚴 剛, 劉夢陽, 王躍飛, 王子涵
(1.安徽江淮汽車股份有限公司,安徽合肥 230601;2.合肥工業(yè)大學 計算機與信息學院,安徽 合肥 230009;3.合肥工業(yè)大學安全關(guān)鍵工業(yè)測控技術(shù)教育部工程研究中心,安徽合肥 230009;4.合肥工業(yè)大學 機械與汽車工程學院,安徽 合肥 230009)
FlexRay-CAN網(wǎng)關(guān)中的多隊列消息處理方法
李傳斌1, 嚴 剛1, 劉夢陽2,3, 王躍飛3,4, 王子涵4
(1.安徽江淮汽車股份有限公司,安徽合肥 230601;2.合肥工業(yè)大學 計算機與信息學院,安徽 合肥 230009;3.合肥工業(yè)大學安全關(guān)鍵工業(yè)測控技術(shù)教育部工程研究中心,安徽合肥 230009;4.合肥工業(yè)大學 機械與汽車工程學院,安徽 合肥 230009)
隨著FlexRay總線在汽車動力等安全關(guān)鍵實時系統(tǒng)中的應(yīng)用,車內(nèi)FlexRay與CAN網(wǎng)絡(luò)之間的信息交互成為迫切需要解決的問題。文章從FlexRay-CAN網(wǎng)關(guān)通訊需求出發(fā),提出了基于多隊列分時輪轉(zhuǎn)混合式消息調(diào)度方法,并給出了實現(xiàn)算法;利用排隊理論對該方法進行建模的基礎(chǔ)上,對該方法的性能進行了分析;T rueTime的仿真結(jié)果表明,此方法可以有效地保證網(wǎng)關(guān)內(nèi)實時消息傳輸?shù)膶崟r性,非實時消息也能得到良好的響應(yīng)時間。
汽車;CAN總線;FlexRay總線;網(wǎng)關(guān);多隊列混合調(diào)度
隨著汽車電子技術(shù)的不斷發(fā)展,現(xiàn)場總線技術(shù)被越來越廣泛地應(yīng)用于汽車網(wǎng)絡(luò),但是,至今仍沒有一個通信網(wǎng)絡(luò)可以完全滿足未來汽車的所有成本和性能要求,因此,汽車上仍是多協(xié)議并存的混合汽車網(wǎng)絡(luò)。CAN總線是當前汽車網(wǎng)絡(luò)主流的協(xié)議,被廣泛應(yīng)用于汽車中所使用的電子控制系統(tǒng)中[1-3]。
新一代總線FlexRay是高速串行通信的車載網(wǎng)絡(luò),它具有帶寬高、可靠性高、靈活和實時性強的特點,能夠滿足現(xiàn)代車載控制系統(tǒng)的強實時需求[4],主要運用在汽車中高可靠性和安全性部分,如動力、底盤系統(tǒng)。在汽車車載網(wǎng)絡(luò)中,CAN與FlexRay混合網(wǎng)絡(luò)的使用將會越來越廣泛,不同網(wǎng)絡(luò)間信息的交互要靠FlexRay網(wǎng)關(guān)來實現(xiàn)。目前,CAN與FlexRay網(wǎng)關(guān)的研究尚處于初始階段,文獻[5]提出了CAN與LIN、FlexRay網(wǎng)關(guān)的框架設(shè)計,文獻[6]提出了CAN與FlexRay網(wǎng)關(guān)的框架與軟硬件設(shè)計,但兩者尚未對網(wǎng)關(guān)中關(guān)鍵問題之一的數(shù)據(jù)幀轉(zhuǎn)發(fā)進行介紹。
本文提出了一種基于多隊列混合調(diào)度的FlexRay-CAN網(wǎng)關(guān)數(shù)據(jù)幀轉(zhuǎn)發(fā)方法,可以有效地降低系統(tǒng)的服務(wù)時間和服務(wù)強度以及保證網(wǎng)關(guān)內(nèi)消息的實時性和公平性。
CAN是一種采用多主工作方式、非破壞仲裁技術(shù)和接收濾波工作方法的數(shù)據(jù)通信協(xié)議[7]。它的數(shù)據(jù)幀包括標準幀和擴展幀,均由7個不同的位場組成:幀起始、仲裁場、控制場、數(shù)據(jù)場和CRC場,如圖 1所示。
圖1 CAN 2.0B標準數(shù)據(jù)幀格式
標準幀的仲裁場包括11位的標識符和遠程發(fā)送請求(RTR),其中,標識符用于標識消息和仲裁優(yōu)先級。
控制場由6個位組成,包括數(shù)據(jù)長度和2個保留位。數(shù)據(jù)場由數(shù)據(jù)幀的發(fā)送數(shù)據(jù)組成,可以為0~8個字節(jié)。
FlexRay采用 FTDM(Flexible Time Division M ultip le Access,簡稱FTDM)的確定性訪問方式,具有容錯功能和確定的消息傳輸時間,能夠滿足汽車控制系統(tǒng)的高速率通信要求[8]。
FlexRay的通信周期由靜態(tài)段、動態(tài)段、符號窗和空閑時間4個部分組成。其中,靜態(tài)段和動態(tài)段是通信周期所必需的主要部分[9]。靜態(tài)分段提供通信周期的固定延遲部分,而動態(tài)分段則允許帶寬要求各不相同的隨機通信。
FlexRay的數(shù)據(jù)幀由幀頭、有效數(shù)據(jù)和幀尾3個部分組成,該數(shù)據(jù)幀格式如圖2所示。其中,有效數(shù)據(jù)部分可由0~254個字節(jié)組成。在幀的CRC校驗中,有效數(shù)據(jù)部分的前6個字節(jié)設(shè)為海明距離,當數(shù)據(jù)超過248字節(jié)時,海明距離為4個字節(jié)。
FlexRay-CAN網(wǎng)關(guān)需要處理的數(shù)據(jù)幀有2種,分別為“上行數(shù)據(jù)”和“下行數(shù)據(jù)”?!吧闲袛?shù)據(jù)”指CAN對FlexRay發(fā)送的數(shù)據(jù)幀,“下行數(shù)據(jù)”指FlexRay對CAN發(fā)送的數(shù)據(jù)幀。上、下行數(shù)據(jù)轉(zhuǎn)換方法基本相同,本文重點研究上行數(shù)據(jù)的轉(zhuǎn)發(fā)方法,數(shù)據(jù)轉(zhuǎn)發(fā)需要解決幀格式的轉(zhuǎn)換和消息調(diào)度的問題。
幀格式的轉(zhuǎn)換如圖3所示,本文采用多消息幀打包的方法。根據(jù)上述對CAN與FlexRay幀結(jié)構(gòu)的分析,為了提高發(fā)送效率,選取CAN發(fā)送隊列的前K個消息幀合并存儲在FlexRay幀有效數(shù)據(jù)部分,打包成 FlexRay數(shù)據(jù)幀的形式發(fā)送。CAN的消息幀包括CAN數(shù)據(jù)幀的仲裁場、控制場和數(shù)據(jù)場信息,最多不超過13個字節(jié),FlexRay的有效數(shù)據(jù)最多為254個字節(jié),所以K的取值在1~19之間。
圖3 上行數(shù)據(jù)轉(zhuǎn)發(fā)Flex Ray幀格式
對于消息調(diào)度,本文采用多隊列混合優(yōu)先級調(diào)度,如圖4所示。在隊列內(nèi)部采用最早截止期優(yōu)先(Earliest Deadline First,簡稱EDF)算法,隊列之間采用改進加權(quán)輪轉(zhuǎn)調(diào)度(Weighted Round Robin,簡稱 WRR)算法。
圖4 消息調(diào)度示意圖
CAN總線消息從實時角度考慮,可以劃分為3類:硬實時消息、軟實時消息和非實時消息[10],據(jù)此設(shè)置3個隊列。為了保證消息傳輸?shù)膶崟r性,本文采用最早截止期優(yōu)先算法(EDF)分別對3個發(fā)送隊列內(nèi)部的CAN消息進行優(yōu)先級調(diào)度排序。3個隊列之間的調(diào)度采用WRR算法[11],該算法給各隊列賦予不同的權(quán)值(weight),輪巡處理各隊列的數(shù)據(jù)。但是,權(quán)值對隊列消息發(fā)送順序影響很大,可能會造成低權(quán)值隊列數(shù)據(jù)短時間內(nèi)聚集過多,影響實時性,本文采用基于閥值的動態(tài)權(quán)值改進WRR算法。
在一個循環(huán)周期內(nèi),對隊列服務(wù)的次數(shù)與權(quán)值相對應(yīng)。設(shè)硬實時隊列的權(quán)值為W1,軟實時隊列為W2,非實時隊列為W 3(W 1>W(wǎng)2>W(wǎng) 3)。輪轉(zhuǎn)次數(shù)為i,非實時數(shù)據(jù)所占非實時隊列緩沖區(qū)比例為Q,閥值X為小于1的固定百分數(shù),具體算法表達如下:
初始化時,為保證實時消息的發(fā)送,W 1與W2應(yīng)盡可能地比W 3大。輪巡的周期依據(jù)硬實時隊列的權(quán)值而定,故每次輪巡硬實時消息都能發(fā)送,保證了硬實時消息的實時性。但由于非實時消息的權(quán)值W 3較小,某一時刻如果非實時消息來的較多,就會造成非實時消息的阻塞延遲較大。在這里依照當前非實時隊列中的消息比例,對非實時隊列采用動態(tài)權(quán)值,超出一定比例就動態(tài)加1,可以改善非實時消息阻塞的情況,兼顧公平性。
如果每一個隊列都有需要服務(wù)的數(shù)據(jù)幀,則選取隊列的前K個組包成轉(zhuǎn)發(fā)數(shù)據(jù)幀的格式并發(fā)送。如果隊列的數(shù)據(jù)幀不足K個,則不必補足K個;如果隊列為空,則不處理此隊列,轉(zhuǎn)而處理下一個隊列。
將CAN消息幀的仲裁場部分分為2段,前段是消息幀的隊列間優(yōu)先級,后段是隊列內(nèi)部優(yōu)先級。CAN消息幀的隊列間優(yōu)先級設(shè)為主優(yōu)先級,隊列內(nèi)部優(yōu)先級為次優(yōu)先級。設(shè)隊列中有 N個待發(fā)送的信息幀,不妨設(shè)這些信息幀的優(yōu)先級標識符為1,…,N。按照從大到小標識符1優(yōu)先級最高。對信息幀優(yōu)先級比較,先比較主優(yōu)先級,如主優(yōu)先級相同再比較次優(yōu)先級。按照CAN總線發(fā)送消息的機制,可以假設(shè)發(fā)送到FlexRay的信息幀的到來行為符合Poisson分布[12],這樣就可以把轉(zhuǎn)發(fā)過程看成是一個關(guān)于N個優(yōu)先級類的顧客排隊過程,信息幀如果獲得了仲裁,它將一直傳完該組的所有數(shù)據(jù)位,在傳送非仲裁域數(shù)據(jù)的過程中,不會被更高優(yōu)先級的信息幀組所中斷,因此排隊過程又是非搶占的。若一次性對K個數(shù)據(jù)進行打包,緩沖區(qū)的CAN信息幀的傳輸過程就可以看成是一個M/G/K隊列。
令:λi=優(yōu)先級為i的信息幀的到達率,在這里為單位時間內(nèi)信息幀到達的數(shù)目,i=1,…,N;μi=優(yōu)先級為i的信息幀的服務(wù)率,這里為單位時間打包發(fā)送成功的信息幀數(shù)目,i=1,…,N;ρi=優(yōu)先級為i的信息幀的使用率,這里為此信息幀服務(wù)時,網(wǎng)關(guān)被占用的概率等于λ/kμi,i=1,…,N;Wi=優(yōu)先級為i的信息幀在網(wǎng)關(guān)中的等待時間,i=1,…,N;Xi=優(yōu)先級為i的信息幀占用服務(wù)臺的時間,本文為信息幀打包發(fā)送到FlexRay總線的時間。
對于優(yōu)先級為i的信息幀的排隊時間分為3個部分:①先于i到達但仍未獲得服務(wù)的信息幀的服務(wù)時間;②后于i到達,但在它之前得到服務(wù)的信息幀組的服務(wù)時間;③正在傳送的信息幀的剩余傳送時間,即阻塞時間。
FlexRay有靜態(tài)和動態(tài)2種格式的時間段,靜態(tài)時間段發(fā)送時間固定,此種狀況的發(fā)送延時可以不予考慮,本文主要考慮動態(tài)時間段發(fā)送的延時。FlexRay在動態(tài)時間段的延時RD可以分為2部分:一部分是FlexRay網(wǎng)絡(luò)中在網(wǎng)關(guān)ID前的動態(tài)幀傳輸時間T1;另一部分是沒有動態(tài)幀傳輸?shù)目臻e等候時間 T2。設(shè)每Q個通信周期內(nèi)產(chǎn)生一個動態(tài)幀,且生成的時刻是均勻分布的,則動態(tài)幀的生成密度表示為1/QT,T為FlexRay的通信周期。可以得到:
其中,p為一個動態(tài)信息幀發(fā)送所造成的延遲;p′為無動態(tài)幀發(fā)送空閑等待時間的延遲。因此有:
根據(jù)(3)式,由文獻[7]推得的結(jié)論如下:FlexRay消息幀隊列延遲的均方差為由此可知通信性能相關(guān)。
由(1)式和(2)式可以看出:①采用數(shù)據(jù)幀轉(zhuǎn)發(fā)方法與采用FCFS單隊列調(diào)度相比較,系統(tǒng)的平均服務(wù)時間由1/μ縮短為1/kμ;②服務(wù)強度為單幀發(fā)送的1/k,提高了系統(tǒng)的穩(wěn)定性;③縮短了后續(xù)幀的等待時間、網(wǎng)絡(luò)阻塞時間和高優(yōu)先級CAN消息的傳輸延遲。
采用M atlab的TrueTime工具箱進行仿真,如圖5所示。
圖5 網(wǎng)絡(luò)系統(tǒng)仿真模型
網(wǎng)絡(luò)系統(tǒng)由2個網(wǎng)絡(luò)模塊和6個內(nèi)核模塊構(gòu)成,內(nèi)核模塊作為網(wǎng)絡(luò)的節(jié)點使用,每個網(wǎng)絡(luò)節(jié)點均維護一個T ruetim e kernel,內(nèi)核中的任務(wù)調(diào)度優(yōu)先級策略均與其它節(jié)點無關(guān)。
網(wǎng)絡(luò)1運用CSMA/AMP網(wǎng)絡(luò)模塊模擬CAN總線,網(wǎng)絡(luò)2運用RoundRobin網(wǎng)絡(luò)模塊模擬FlexRay總線,網(wǎng)速分別為 500 kb/s和10 Mb/s。CAN總線上有5個節(jié)點,其中5號節(jié)點為網(wǎng)關(guān)節(jié)點,同時隸屬于2個網(wǎng)絡(luò),因此具有2個網(wǎng)絡(luò)接口。其余網(wǎng)絡(luò)1中的節(jié)點任務(wù)周期為0.01~0.08 s之間,隨機性地發(fā)送3種類型的消息,網(wǎng)關(guān)節(jié)點將從網(wǎng)絡(luò)1接收到的消息按照數(shù)據(jù)幀轉(zhuǎn)換方法處理后轉(zhuǎn)發(fā)到網(wǎng)絡(luò)2,本文只仿真上行的發(fā)送情況。
在仿真結(jié)果中,選取10個消息幀在網(wǎng)關(guān)轉(zhuǎn)發(fā)的延遲時間,其中列出K=10,K=25及不運用本文方法(收到即打包發(fā)送)時消息幀延遲時間。幀類型1、2、3分別為硬實時數(shù)據(jù)、軟實時數(shù)據(jù)和非實時數(shù)據(jù),具體數(shù)據(jù)見表1所列。
表1 消息延遲時間 m s
通過表1可以看出,采用數(shù)據(jù)幀轉(zhuǎn)換算法后有如下性能變化:
(1)可以有效減小后續(xù)消息幀的傳輸延遲,在實時數(shù)據(jù)的傳輸、實時性均能得到保證的同時,非實時消息也得到了良好的響應(yīng)時間,更具有公平性。
(2)發(fā)送效率較直接發(fā)送的方法要高,平均延遲時間可以得到有效地縮短,當K值較大時,效果不是很明顯。
(3)當K值較大時,網(wǎng)絡(luò)利用率較高,但同時造成服務(wù)等待時間較長,實時性較差;K值較小時,網(wǎng)絡(luò)效率變差,服務(wù)等待時間變短。
以上結(jié)論和本文所做的分析基本相符合。
由于不同的消息對實時性的要求不同,在汽車網(wǎng)絡(luò)中安全和可靠性又是十分重要的,所以可以選取不同的K值,在允許的范圍內(nèi)保障實時數(shù)據(jù)傳播的同時,也能達到較好的帶寬利用率。
由于汽車網(wǎng)絡(luò)的CAN與FlexRay網(wǎng)絡(luò)的規(guī)模是一定的,且發(fā)送數(shù)據(jù)幀的數(shù)量和頻率可以經(jīng)過服務(wù)器來控制,因此K值可以根據(jù)網(wǎng)絡(luò)規(guī)模和應(yīng)用環(huán)境通過相應(yīng)的分析來確定,在此本文不做討論。
本文對FlexRay-CAN網(wǎng)關(guān)的數(shù)據(jù)轉(zhuǎn)換問題進行研究。為提高發(fā)送效率,數(shù)據(jù)幀格式轉(zhuǎn)換采用多消息幀打包的方法。從實時性考慮將CAN消息劃分優(yōu)先級,采用了基于多隊列的輪轉(zhuǎn)調(diào)度。根據(jù)排隊理論對此方法數(shù)據(jù)轉(zhuǎn)發(fā)的效率進行了分析,并采用TrueTime進行仿真試驗。分析結(jié)果和仿真數(shù)據(jù)表明,與直接組包發(fā)送的方式相比,所提出的方法可以更好地兼顧消息的實時性和公平性,有效地降低消息的平均延遲。
[1] 羅 峰,蘇 劍.汽車網(wǎng)絡(luò)與總線標準[J].汽車工程,2003,25(4):372-376.
[2] 王躍飛,張偉偉,嚴 剛,等.CAN消息的動態(tài)調(diào)度截止期選取研究[J].合肥工業(yè)大學學報:自然科學版,2010,33(5):644-646,651.
[3] 韓江洪,唐 璐,王躍飛,等.基于DSPN的CAN/LIN網(wǎng)絡(luò)建模及性能分析[J].合肥工業(yè)大學學報:自然科學版,2010,33(3):350-353.
[4] 袁昊昀,陳覺曉.車載 Flex Ray網(wǎng)絡(luò)管理策略的初步研究[J].單片機與嵌入式應(yīng)用,2008,(5):20-28.
[5] Li Hui,Zhang Hao.Design and application of communication gateway based on FlexRay and CAN[C]//2009 International Conference on E lectronic Compu ter Technology-Proceedings,2009:664-668.
[6] K im S H,Seo S H.A gatew ay system for an au tom otive system:LIN,CAN,and FlexRay[C]//The IEEE In ternationalConference on Industrial Informatics(INDIN 2008),2008:967-972.
[7] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學出版社,1996:65-79.
[8] Ding S,Murakam i N,Tom iyama H,et al.A GA-based scheduling method for FlexRay system[C]//P roceedingsof EMSOFT.Jersey City,USA:IEEE Press,2005:110-113.
[9] 李 佳,田光宇.FlexRay網(wǎng)絡(luò)通信延遲時間分析[J].清華大學學報:自然科學版,2007,47(8):1343-1346.
[10] Scheen JB,Letein tu rier P.Twin CAN:a new m ilestone for inter-network communication[C]//Proceedings of Society of Automotive Engineerings,2000:102-106.
[11] 肖 鈞,龐麗萍.LINUX虛擬服務(wù)器中WRR調(diào)度算法的優(yōu)化[J].華中科技大學學報:自然科學版,2001,29(2):46-52.
[12] 王松桂,陳 敏,陳立萍.線性統(tǒng)計模型[M].北京:高等教育出版社,2002:60-75.
A solution based onmulti-queue scheduling for p rocessingmessages in FlexRay-CAN gateway
LIChuan-bin1, YAN Gang1, LIU Meng-yang2,3, WANG Yue-fei3,4, WANG Zi-han4
(1.Anhui JAC Autom obile Co.,Ltd.,H efei 230601,China;2.School of Computer and Information,Hefei University of Technology,Hefei230009,China;3.Engineering Research Cen ter of Safety Critical Industrial M easuremen t and Control Technology of M inistry of Education,Hefei University of Technology,Hefei230009,China;4.Schoolof Machinery and Automobile Engineering,H efei University of Technology,H efei 230009,China)
As the FlexRay bus has been used in the safety-critical real-time system s,such as power train system s,themessage exchange between FlexRay and CAN network hasbecome an exigentproblem to be so lved.In order tomeet the requiremento f the FlexRay-CAN gateway,this paper proposes amessage processingmethod based on multi-queue hybrid scheduling and then gives its imp lementation algorithm.Based on them odeling of thism ethod with queuing theory,the perform ance of the method is also analyzed.Finally,the sim ulation resu lt gained by TrueTime indicates that the method can guarantee the real-time propertiesof real-timemessages aswell as the response time of non-realtime messages.
automobile;CAN bus;FlexRay bus;gateway;multi-queue hybrid scheduling
TP273.5;U 463.061
A
1003-5060(2011)01-0028-05
10.3969/j.issn.1003-5060.2011.01.007
2010-01-12;
2010-04-28
國家自然科學基金資助項目(60873003);高等學校博士學科點專項科研基金資助項目(20070359028);廣東省教育部產(chǎn)
學研結(jié)合資助項目(2008B090500226)和合肥工業(yè)大學2009年國家大學生創(chuàng)新實驗計劃資助項目(091035905)
李傳斌(1972-),男,安徽合肥人,安徽江淮汽車股份有限公司工程師;
王躍飛(1977-),男,內(nèi)蒙古奈曼旗人,博士,合肥工業(yè)大學副教授,碩士生導(dǎo)師.
(責任編輯 張秋娟)