一種面向汽車can網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法
【專利摘要】本發(fā)明公開(kāi)了一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,旨在提供一種使汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)最少,且滿足實(shí)時(shí)性要求的車輛信號(hào)封裝方法。本發(fā)明將車輛信號(hào)根據(jù)長(zhǎng)度大小按遞減順序排序,基于啟發(fā)式優(yōu)化方法封裝入CAN報(bào)文中,按截止期單調(diào)方法分配CAN報(bào)文優(yōu)先級(jí),基于最糟糕響應(yīng)時(shí)間分析CAN報(bào)文集的可調(diào)度性;如果不可調(diào)度,則從不可調(diào)度CAN報(bào)文中找出最糟糕響應(yīng)時(shí)間和截止期差值最小的CAN報(bào)文,并將該CAN報(bào)文中截止期最嚴(yán)格的車輛信號(hào)封裝到新CAN報(bào)文中,以提高原CAN報(bào)文的截止期;直到CAN報(bào)文集可調(diào)度,或沒(méi)有CAN報(bào)文可被分解為止。本發(fā)明的有益效果是:實(shí)現(xiàn)了汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化,保證了系統(tǒng)實(shí)時(shí)性,為汽車CAN網(wǎng)絡(luò)應(yīng)用層協(xié)議的設(shè)計(jì)提供了新方法。
【專利說(shuō)明】—種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及汽車ECU中車輛信號(hào)數(shù)據(jù)的處理,尤其是一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,屬于汽車電子領(lǐng)域。
【背景技術(shù)】
[0002]隨著人們對(duì)汽車動(dòng)力性、安全性和舒適性要求的提高,汽車ECU (電子控制單元)和電子控制裝置也在不斷增加。它們并不僅僅與負(fù)載設(shè)備簡(jiǎn)單地連接在一起,更多的是與外圍設(shè)備及其它ECU和電子控制裝置進(jìn)行信息交流,并經(jīng)過(guò)復(fù)雜的控制決策運(yùn)算,發(fā)出控制指令。為了提高車輛信號(hào)的利用率,要求大批車輛信號(hào)在不同的汽車ECU之間進(jìn)行交換和共享,車載網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)了汽車各ECU的實(shí)時(shí)控制。在多種車載網(wǎng)絡(luò)技術(shù)中,CAN(Controller Area Network,控制器局域網(wǎng))以其良好的運(yùn)行特性,即高可靠性和獨(dú)特設(shè)計(jì),特別適合現(xiàn)代汽車各E⑶間的互聯(lián)通信。
[0003]車輛信號(hào)的數(shù)據(jù)在ECU中被封裝成報(bào)文并通過(guò)CAN總線進(jìn)行傳輸,最簡(jiǎn)單的封裝方法是每個(gè)CAN報(bào)文只裝入一個(gè)車輛信號(hào),由于CAN報(bào)文數(shù)和車輛信號(hào)數(shù)相同,大量CAN報(bào)文的傳輸增加了總線競(jìng)爭(zhēng)機(jī)率和網(wǎng)絡(luò)帶寬消耗。為了降低每個(gè)ECU上的CAN報(bào)文數(shù)量,必須優(yōu)化CAN網(wǎng)絡(luò)報(bào)文數(shù)。CAN報(bào)文集的構(gòu)造和優(yōu)先級(jí)的選擇又決定了 CAN報(bào)文的響應(yīng)時(shí)間,進(jìn)而影響到系統(tǒng)實(shí)時(shí)特性。
[0004]目前汽車CAN網(wǎng)絡(luò)報(bào)文的車輛信號(hào)封裝大多采用的是SAEJ1939協(xié)議,由于其對(duì)CAN報(bào)文的數(shù)據(jù)域進(jìn)行了全面定義,導(dǎo)致沒(méi)有車輛信號(hào)被封裝時(shí)的CAN報(bào)文數(shù)據(jù)域的浪費(fèi)。
[0005]因此,有必要提出面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,并滿足系統(tǒng)實(shí)時(shí)性要求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,以減少汽車CAN網(wǎng)絡(luò)報(bào)文數(shù),并滿足系統(tǒng)實(shí)時(shí)性要求。
[0007]為了達(dá)到上述目的,本發(fā)明的技術(shù)方案如下:
[0008]一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,該方法首先設(shè)定車輛信
號(hào)特征(f, /), I),其中:f是車輛信號(hào)產(chǎn)生周期;是車輛信號(hào)截止期;i是車輛
信號(hào)長(zhǎng)度,單位為bit,且小于或等于CAN報(bào)文的數(shù)據(jù)域最大長(zhǎng)度;CAN報(bào)文特征(T,D,L,DL,P),其中:T是CAN報(bào)文產(chǎn)生周期山是CAN報(bào)文截止期;L是CAN報(bào)文長(zhǎng)度,單位為bit ;DL是CAN報(bào)文已經(jīng)封裝的車輛信號(hào)長(zhǎng)度,單位為bit ;P是CAN報(bào)文優(yōu)先級(jí),P越小,CAN報(bào)文優(yōu)先級(jí)越大;然后,按照以下步驟操作:
[0009]步驟1:在每個(gè)ECU上,將車輛信號(hào)根據(jù)長(zhǎng)度大小按遞減順序排序,排序后的車輛Ih可集為 S = (S1, S2J...S1...,sn}; [0010]步驟2:向CAN報(bào)文中裝入車輛信號(hào)Si:
[0011]步驟2 (a):按順序觀察已經(jīng)使用過(guò)的CAN報(bào)文集{f1;f2,…,f」},一旦發(fā)現(xiàn)車輛信號(hào)Si能夠裝入{f1;f2,…,fj中的某個(gè)CAN報(bào)文中,則將Si裝入該CAN報(bào)文中,并更新該CAN報(bào)文的周期和截止期;
[0012]步驟2 (b):如果Si不能夠裝入{f1; f2,…,fj}中任何一個(gè)CAN報(bào)文中,則產(chǎn)生
一個(gè)新CAN報(bào)文4+1,該新CAN報(bào)文的時(shí)間特征為= Ti和Di+1 = Di,并將所述新CAN報(bào)
文&+1加入到所述已使用過(guò)的CAN報(bào)文集{f1;f2,-,fj}中構(gòu)成新的已使用過(guò)的CAN報(bào)文集,并將新的已使用過(guò)的CAN報(bào)文集仍用{f1;f2,-,fj}的形式表示;
[0013]步驟3:如果該ECU仍有車輛信號(hào)需要封裝,則返回步驟2 ;如果仍有其他ECU的車輛信號(hào)需要封裝,則返回步驟I ;最終構(gòu)造的CAN報(bào)文集為F = If1, f2,...,fj ;
[0014]步驟4:將最終構(gòu)造的CAN報(bào)文集F= {f1; f2,...,fj中的各報(bào)文截止期Dj按升序排序,按截止期單調(diào)方法為各CAN報(bào)文配置優(yōu)先級(jí),Dj越小,Pj越??;
[0015]步驟5:對(duì)CAN報(bào)文集F = {f1; f2,...,fj進(jìn)行最糟糕情形下的可調(diào)度性分析:
[0016]步驟5 (a):如果F可調(diào)度,則封裝成功;
[0017]步驟5 (b):如果F不可調(diào)度,則在F中找到最糟糕響應(yīng)時(shí)間大于截止期,且至少包含兩個(gè)車輛信號(hào)的CAN報(bào)文,并構(gòu)成不可調(diào)度CAN報(bào)文集F%在F*中找出最糟糕響應(yīng)時(shí)間和截止期差值最小的CAN報(bào)文fMlax,將fMlax中具有最小截止期的那個(gè)車輛信號(hào)從fMlax中移除,并封裝到一個(gè)新CAN報(bào)文fm+1中,更新fMlax和fm+1的周期和截止期,返回步驟4,當(dāng)所有不可調(diào)度CAN報(bào)文被全部分解而CAN報(bào)文集仍不可調(diào)度時(shí),則封裝失敗。
[0018]在上述技術(shù)方案中,所述步驟2 (a)還可為:按順序觀察已經(jīng)使用過(guò)的CAN報(bào)文集If1, f2,…,fj},一旦發(fā)現(xiàn)車輛信號(hào)Si能夠裝入{f1;f2,...,&}中的某個(gè)CAN報(bào)文中,且該CAN報(bào)文裝下Si后的剩余可封裝長(zhǎng)度在所有能夠裝下Si的CAN報(bào)文中是最小的,則將Si裝入該CAN報(bào)文中,并更新該CAN報(bào)文的周期和截止期。
[0019]在上述技術(shù)方案中,所述更新CAN報(bào)文的周期和截止期方法為:
[0020]設(shè)CAN報(bào)文mk (k e Z +)傳輸車輛信號(hào)集K,s\,…,Skn } ( ? e Z+ )
的數(shù)據(jù),彳(2.£/7)的周期為土(1:.eZ+),截止期為A (AeZ+),D車輛信號(hào)集hf,sk2,…,<丨中具有最小周期的那個(gè)車輛信號(hào),即I € {S11 , 4,…,^ I} mk 的周期為 Tk (Tk e Z+),截止期為 Dk (Dk e Z+),則
Tk = Tmin J Dk =min{D1-rmi?+gcd(rmm,7])|5f e {5.^ sk2,..., ^Uo
[0021]由于CAN報(bào)文是以字節(jié)為單位發(fā)送的,因此,CAN報(bào)文實(shí)際傳輸?shù)臄?shù)據(jù)域長(zhǎng)度
為.DLj ’ = [DL/8]*8
[0022]采用上述方法后,實(shí)現(xiàn)了汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化,保證了系統(tǒng)實(shí)時(shí)性,為汽車CAN網(wǎng)絡(luò)應(yīng)用層協(xié)議的設(shè)計(jì)提供了新方法。
【具體實(shí)施方式】
[0023]本發(fā)明涉及一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,該方法包括以下步驟:
[0024]首先,設(shè)定車輛信號(hào)特征(f,O,Z ),其中:f是車輛信號(hào)產(chǎn)生周期;?)是車
輛信號(hào)截止期;1是車輛信號(hào)長(zhǎng)度,單位為bit,且小于或等于CAN報(bào)文的數(shù)據(jù)域最大長(zhǎng)度。
CAN報(bào)文特征(T,D,L,DL,P),其中:T是CAN報(bào)文產(chǎn)生周期;D是CAN報(bào)文截止期;L是CAN報(bào)文長(zhǎng)度,單位為bit ;DL是CAN報(bào)文已經(jīng)封裝的車輛信號(hào)長(zhǎng)度,單位為bit ;P是CAN報(bào)文優(yōu)先級(jí),P越小,CAN報(bào)文優(yōu)先級(jí)越大。
[0025]然后,按照以下步驟操作:
[0026]步驟1:在每個(gè)ECU上,將車輛信號(hào)根據(jù)長(zhǎng)度大小按遞減順序排序,排序后的車輛 為 S — (S1, S2?...S1...,sn}。
[0027]步驟2:向CAN報(bào)文中 裝入車輛信號(hào)Si:
[0028]步驟2 (a):按順序觀察已經(jīng)使用過(guò)的CAN報(bào)文集{f1;f2,…,f」},一旦發(fā)現(xiàn)車輛信號(hào)Si能夠裝入{f1;f2,…,fj中的某個(gè)CAN報(bào)文中,則將Si裝入該CAN報(bào)文中,并更新該CAN報(bào)文的周期和截止期;或者,按順序觀察已經(jīng)使用過(guò)的CAN報(bào)文集{f1; f2,…,fj},一旦發(fā)現(xiàn)車輛信號(hào)Si能夠裝入{f1;f2,…,f」}中的某個(gè)CAN報(bào)文中,且該CAN報(bào)文裝下Si后的剩余可封裝長(zhǎng)度在所有能夠裝下Si的CAN報(bào)文中是最小的,則將Si裝入該CAN報(bào)文中,并更新該CAN報(bào)文的周期和截止期。
[0029]步驟2 (b):如果Si不能夠裝入{f1; f2,…,fj}中任何一個(gè)CAN報(bào)文中,則產(chǎn)生
一個(gè)新CAN報(bào)文A+1,該新CAN報(bào)文的時(shí)間特征為7;.+1 = ?:和O- = Di,并將所述新CAN報(bào)文
4+1加入到所述已使用過(guò)的CAN報(bào)文集{f1;f2,…,fj中構(gòu)成新的已使用過(guò)的CAN報(bào)文集,并將新的已使用過(guò)的CAN報(bào)文集仍用{f1;f2,-,fj}的形式表示。
[0030]步驟3:如果該ECU仍有車輛信號(hào)需要封裝,則返回步驟2 ;如果仍有其他ECU的車輛信號(hào)需要封裝,則返回步驟I ;最終構(gòu)造的CAN報(bào)文集為F = If1, f2,...,fj。
[0031]步驟4:將最終構(gòu)造的CAN報(bào)文集F= {f1; f2,...,fj中的各報(bào)文截止期Dj按升序排序,按截止期單調(diào)方法為各CAN報(bào)文配置優(yōu)先級(jí),Dj越小,Pj越小(優(yōu)先級(jí)越高)。
[0032]步驟5:對(duì)CAN報(bào)文集F = {f1; f2,...,fj進(jìn)行最糟糕情形下的可調(diào)度性分析:
[0033]步驟5 (a):如果F可調(diào)度,則封裝成功;
[0034]步驟5 (b):如果F不可調(diào)度,則在F中找到最糟糕響應(yīng)時(shí)間大于截止期,且至少包含兩個(gè)車輛信號(hào)的CAN報(bào)文,并構(gòu)成不可調(diào)度CAN報(bào)文集!^,在!^中找出最糟糕響應(yīng)時(shí)間和截止期差值最小的CAN報(bào)文fMlax,將fMlax中具有最小截止期的那個(gè)車輛信號(hào)從fMlax中移除,并封裝到一個(gè)新CAN報(bào)文fm+1中,更新fMlax和fm+1的周期和截止期,返回步驟4,當(dāng)所有不可調(diào)度CAN報(bào)文被全部分解而CAN報(bào)文集仍不可調(diào)度時(shí),則封裝失敗。
[0035]在上述步驟2 (a)、5 (b)中,CAN報(bào)文周期和截止期的更新方法為:設(shè)
CAN報(bào)文mk (k e Z+)傳輸車輛信號(hào)隼{λ;,S11,…,sk?} ( ? e Z+ )的數(shù)據(jù),sf G_eZ+)的周期為?; (7; eZ+),截止期力分(4 e Z+ ),為車輛信號(hào)
集{ 44,…,Z }中具有最小周期的那個(gè)車輛信號(hào),即rmin =min{r; I彳e {S11,S12,…,mk 的周期為 Tk (Tk e Z+),截止期為 Dk (Dk e Z+),則 I; = ? ,Dk = min (D1.-Tmm+ gcd( T Ti) \ Ski e , Sk1,…,Skn}}。
[0036]由于CAN報(bào)文是以字節(jié)為單位發(fā)送的,因此,CAN報(bào)文實(shí)際傳輸?shù)臄?shù)據(jù)域長(zhǎng)度為-
【權(quán)利要求】
1.一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,其特征在于:首先設(shè)定車輛信號(hào)特征(f,D, L),其中是車輛信號(hào)產(chǎn)生周期;i)是車輛信號(hào)截止期;i是車輛信號(hào)長(zhǎng)度,單位為bit,且小于或等于CAN報(bào)文的數(shù)據(jù)域最大長(zhǎng)度;CAN報(bào)文特征(T,D,L,DL,P),其中:T是CAN報(bào)文產(chǎn)生周期山是CAN報(bào)文截止期;L是CAN報(bào)文長(zhǎng)度,單位為bit ;DL是CAN報(bào)文已經(jīng)封裝的車輛信號(hào)長(zhǎng)度,單位為bit ;P是CAN報(bào)文優(yōu)先級(jí),P越小,CAN報(bào)文優(yōu)先級(jí)越大;然后,按照以下步驟操作: 步驟1:在每個(gè)ECU上,將車輛信號(hào)根據(jù)長(zhǎng)度大小按遞減順序排序,排序后的車輛信號(hào)!^為 S — (S1, S2?...S1...,sn}; 步驟2:向CAN報(bào)文中裝入車輛信號(hào)Si: 步驟2 (a):按順序觀察已經(jīng)使用過(guò)的CAN報(bào)文集{f1;f2,…,f」},一旦發(fā)現(xiàn)車輛信號(hào)Si能夠裝入{f1;f2,…,中的某個(gè)CAN報(bào)文中,則將Si裝入該CAN報(bào)文中,并更新該CAN報(bào)文的周期和截止期; 步驟2 (b):如果Si不能夠裝入{f1;f2,…,中任何一個(gè)CAN報(bào)文中,則產(chǎn)生一個(gè)新CAN報(bào)文A+1,該新CAN報(bào)文的時(shí)間特征為- 0將所述新CAN報(bào)文&+1加入到所述已使用過(guò)的CAN報(bào)文集{f1; f2,…,fj}中構(gòu)成新的已使用過(guò)的CAN報(bào)文集,并將新的已使用過(guò)的CAN報(bào)文集仍用{f1;f2,-,fj}的形式表示; 步驟3:如果該ECU仍有車輛信號(hào)需要封裝,則返回步驟2 ;如果仍有其他ECU的車輛信號(hào)需要封裝,則返回步驟I ;最終構(gòu)造的CAN報(bào)文集為F = If1, f2,...,fj ; 步驟4:將最終構(gòu)造的CAN報(bào)文集F=中的各報(bào)文截止期Dj按升序排序,按截止期單調(diào)方法為各CAN報(bào)文配置優(yōu)先級(jí),Dj越小,Pj越小; 步驟5:對(duì)CAN報(bào)文集F = {f1; f2,...,fm}進(jìn)行最糟糕情形下的可調(diào)度性分析: 步驟5 (a):如果F可調(diào)度,則封裝成功; 步驟5 (b):如果F不可調(diào)度,則在F中找到最糟糕響應(yīng)時(shí)間大于截止期,且至少包含兩個(gè)車輛信號(hào)的CAN報(bào)文,并構(gòu)成不可調(diào)度CAN報(bào)文集F%在F*中找出最糟糕響應(yīng)時(shí)間和截止期差值最小的CAN報(bào)文fMlax,將fMlax中具有最小截止期的那個(gè)車輛信號(hào)從fMlax中移除,并封裝到一個(gè)新CAN報(bào)文fm+1中,更新fMlax和fm+1的周期和截止期,返回步驟4,當(dāng)所有不可調(diào)度CAN報(bào)文被全部分解而CAN報(bào)文集仍不可調(diào)度時(shí),則封裝失敗。
2.如權(quán)利要求1所述的一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,其特征在于所述步驟2 (a)還可為:按順序觀察已經(jīng)使用過(guò)的CAN報(bào)文集{f1;f2,…,fj,一旦發(fā)現(xiàn)車輛信號(hào)Si能夠裝入{f1;f2,…,fj中的某個(gè)CAN報(bào)文中,且該CAN報(bào)文裝下Si后的剩余可封裝長(zhǎng)度在所有能夠裝下Si的CAN報(bào)文中是最小的,則將Si裝入該CAN報(bào)文中,并更新該CAN報(bào)文的周期和截止期。
3.如權(quán)利要求1所述的一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,其特征在于所述更新CAN報(bào)文的周期和截止期方法為: 設(shè)CAN報(bào)文mk (k e Z +)傳輸車輛信號(hào)集{ 4,s\ ,…,if } (n e Z +)的數(shù)據(jù),彳(i e λ )的周期為?;.( η e Z+ ),截止期為A (.Di eZ+ ),sk為車輛信號(hào)集
4.如權(quán)利要求1所述的一種面向汽車CAN網(wǎng)絡(luò)報(bào)文數(shù)優(yōu)化的車輛信號(hào)封裝方法,其特征在于:CAN報(bào)文&實(shí)際傳輸?shù)臄?shù)據(jù)域長(zhǎng)度為:
【文檔編號(hào)】G05B19/418GK103841213SQ201410113591
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2014年3月25日 優(yōu)先權(quán)日:2014年3月25日
【發(fā)明者】胡劍, 李剛炎, 胥軍, 牛子孺 申請(qǐng)人:武漢理工大學(xué)