針對(duì)車輛通信總線的運(yùn)行時(shí)間壓縮方法
【專利說(shuō)明】
【背景技術(shù)】
[0001]本發(fā)明涉及針對(duì)通信總線上的數(shù)據(jù)的運(yùn)行時(shí)間壓縮以最小化帶寬使得能夠?yàn)榻煌üぞ咛峁└郊与娮涌刂茊卧姆椒ê驮O(shè)備。
[0002]數(shù)據(jù)通過(guò)車輛通信總線以數(shù)據(jù)幀來(lái)傳輸。每個(gè)幀典型地具有八個(gè)字節(jié)的數(shù)據(jù)。每個(gè)字節(jié)包含八位的信息。
[0003]因?yàn)槭芸赜蚓W(wǎng)(CAN)總線上的總線負(fù)載數(shù)據(jù)接近帶寬限制,所以更多總線必須被添加以獲得適當(dāng)結(jié)果。存在消息優(yōu)先級(jí)方案。因此,低的優(yōu)先級(jí)消息被延遲長(zhǎng)的時(shí)間段,從而降低性能。
[0004]需要以下壓縮方法:其在不要求附加硬件并且不要求用于數(shù)據(jù)壓縮和數(shù)據(jù)解壓縮的中央處理器單元(CPU)時(shí)間的顯著增加的情況下減少總線負(fù)載。該方法必須與現(xiàn)有的網(wǎng)絡(luò)軟件集成。
【發(fā)明內(nèi)容】
[0005]在一個(gè)實(shí)施例中,本發(fā)明提供用于針對(duì)通過(guò)車輛通信總線傳輸?shù)臄?shù)據(jù)的運(yùn)行時(shí)間零字節(jié)壓縮的方法,該方法在連接到通信總線的電子控制單元上執(zhí)行。該方法包括以下步驟:獲得數(shù)據(jù)幀;確定在數(shù)據(jù)幀的一組數(shù)據(jù)字節(jié)中提供的零字節(jié)數(shù)目;確定對(duì)于數(shù)據(jù)壓縮來(lái)說(shuō)在該組數(shù)據(jù)字節(jié)中是否存在足夠的零字節(jié);當(dāng)對(duì)于數(shù)據(jù)壓縮來(lái)說(shuō)存在足夠的零字節(jié)時(shí),生成指示零字節(jié)在數(shù)據(jù)幀中的位置的編碼字節(jié);提供取決于編碼字節(jié)和數(shù)據(jù)幀中的非零數(shù)據(jù)字節(jié)的數(shù)目的數(shù)據(jù)長(zhǎng)度代碼,該數(shù)據(jù)長(zhǎng)度代碼被提供在裝置頭部中,該裝置頭部包含數(shù)據(jù)消息標(biāo)識(shí)符;以及形成和傳輸包含編碼字節(jié)和非零數(shù)據(jù)字節(jié)的壓縮數(shù)據(jù)幀,其中壓縮數(shù)據(jù)幀的字節(jié)數(shù)目小于未壓縮數(shù)據(jù)幀的字節(jié)數(shù)目。
[0006]在另一個(gè)實(shí)施例中,電子控制單元包括以下中的至少一個(gè):通信控制單元、電子穩(wěn)定性控制單元、傳動(dòng)系控制器、車體電子模塊、車頭單元和導(dǎo)航系統(tǒng)。
[0007]另一個(gè)實(shí)施例包含通過(guò)以下在另一個(gè)電子控制單元的接收器處解壓縮壓縮數(shù)據(jù):針對(duì)數(shù)據(jù)消息標(biāo)識(shí)符確定數(shù)據(jù)長(zhǎng)度代碼是否具有對(duì)應(yīng)于存儲(chǔ)的數(shù)據(jù)長(zhǎng)度代碼的數(shù)據(jù)長(zhǎng)度代碼值,并且當(dāng)數(shù)據(jù)長(zhǎng)度代碼不對(duì)應(yīng)于存儲(chǔ)的數(shù)據(jù)長(zhǎng)度代碼時(shí),解壓縮壓縮數(shù)據(jù)幀。
[0008]在另一個(gè)實(shí)施例中,解壓縮數(shù)據(jù)幀包括:讀取編碼字節(jié)并且確定數(shù)據(jù)幀的零字節(jié)的位置;以及讀取數(shù)據(jù)字節(jié)并且提供關(guān)于零字節(jié)位置的非零數(shù)據(jù)字節(jié)以形成數(shù)據(jù)幀。
[0009]在另一個(gè)實(shí)施例中,該方法免于從運(yùn)行時(shí)間零字節(jié)壓縮和解壓縮丟失數(shù)據(jù),并且數(shù)據(jù)壓縮不針對(duì)提供給通信總線的數(shù)據(jù)幀中的每個(gè)數(shù)據(jù)幀發(fā)生。進(jìn)一步,通信總線包括在地面車輛上提供的CAN總線。
[0010]在另一個(gè)實(shí)施例中,數(shù)據(jù)長(zhǎng)度代碼和數(shù)據(jù)消息標(biāo)識(shí)符被提供在消息頭部中并且數(shù)據(jù)消息標(biāo)識(shí)符識(shí)別在數(shù)據(jù)幀中提供的數(shù)據(jù)源。進(jìn)一步,所提供的數(shù)據(jù)包括輪速數(shù)據(jù)、偏航速率數(shù)據(jù)和導(dǎo)航數(shù)據(jù)中的一個(gè)。
[0011]在另一個(gè)實(shí)施例中,本發(fā)明提供連接到車輛通信總線的電子控制單元,其用于通過(guò)車輛通信總線將數(shù)據(jù)幀傳輸?shù)竭B接到車輛通信總線的其它電子控制單元。電子控制單元包含處理器和存儲(chǔ)指令的存儲(chǔ)器。在由處理器執(zhí)行時(shí)該指令使電子控制單元獲得數(shù)據(jù)幀;確定在數(shù)據(jù)幀的一組數(shù)據(jù)字節(jié)中提供的零字節(jié)的數(shù)目;確定對(duì)于數(shù)據(jù)壓縮來(lái)說(shuō)在該組數(shù)據(jù)字節(jié)中是否存在足夠的零字節(jié);當(dāng)對(duì)于數(shù)據(jù)壓縮來(lái)說(shuō)存在足夠的零字節(jié)時(shí),生成指示零字節(jié)在數(shù)據(jù)幀中的位置的編碼字節(jié);提供取決于編碼字節(jié)和數(shù)據(jù)幀中的非零數(shù)據(jù)字節(jié)的數(shù)目的數(shù)據(jù)長(zhǎng)度代碼,該數(shù)據(jù)長(zhǎng)度代碼被提供在裝置頭部中,該裝置頭部包含數(shù)據(jù)消息標(biāo)識(shí)符;以及形成和傳輸包含編碼字節(jié)和非零數(shù)據(jù)字節(jié)的壓縮數(shù)據(jù)幀。
[0012]在另一個(gè)實(shí)施例中,電子控制單元執(zhí)行指令以從車輛通信總線接收數(shù)據(jù)幀;針對(duì)數(shù)據(jù)消息標(biāo)識(shí)符確定數(shù)據(jù)長(zhǎng)度代碼是否具有對(duì)應(yīng)于存儲(chǔ)的數(shù)據(jù)長(zhǎng)度代碼的值,并且當(dāng)數(shù)據(jù)長(zhǎng)度代碼小于存儲(chǔ)的數(shù)據(jù)長(zhǎng)度代碼時(shí),處理器通過(guò)讀取編碼字節(jié)以及確定數(shù)據(jù)幀中的零字節(jié)的位置來(lái)解壓縮壓縮數(shù)據(jù)幀;以及讀取非零數(shù)據(jù)字節(jié)并且提供關(guān)于數(shù)據(jù)幀中的零字節(jié)的位置的非零數(shù)據(jù)字節(jié)以重構(gòu)數(shù)據(jù)幀。
[0013]在一個(gè)實(shí)施例中,非零數(shù)據(jù)字節(jié)免于數(shù)據(jù)壓縮。
[0014]通過(guò)考慮詳細(xì)描述和附圖,本發(fā)明的其它方面將變得顯而易見(jiàn)。
【附圖說(shuō)明】
[0015]圖1示出連接到車輛總線的電子控制單元的框圖。
[0016]圖2示出在零字節(jié)具有發(fā)生的最高頻率的情況下針對(duì)通過(guò)總線傳輸?shù)淖止?jié)的值的數(shù)據(jù)直方圖。
[0017]圖3示出數(shù)據(jù)壓縮例程的流程圖。
[0018]圖4示出數(shù)據(jù)壓縮例程的流程圖。
【具體實(shí)施方式】
[0019]在本發(fā)明的任何實(shí)施例被詳細(xì)解釋之前,要理解的是,本發(fā)明在其應(yīng)用中不被限制到在下面描述中被闡述或在附圖中被圖解的組件的構(gòu)建和布置的細(xì)節(jié)上。本發(fā)明能夠具有其它實(shí)施例并且能夠以各種方式來(lái)實(shí)踐或者能夠以各種方式來(lái)實(shí)行。
[0020]圖1示出車輛總線通信系統(tǒng)10,其包含連接到通信總線12的多個(gè)電子控制單元。通信總線12是CAN總線或FlexRay總線。諸如面向媒體系統(tǒng)傳輸(MOST)總線或以太網(wǎng)總線的其它總線也預(yù)期用于在車輛環(huán)境中使用。
[0021]更具體地,圖1示出通信控制單元14,其被連接到通信總線12。進(jìn)一步,傳動(dòng)系控制器16、底盤(pán)和安全控制器18、車體電子模塊20和車頭單元22被連接到通信總線12。移動(dòng)裝置能夠與車頭單元22進(jìn)行通信。包含電子穩(wěn)定性控制單元和導(dǎo)航系統(tǒng)的其它電子控制單元預(yù)期與為電子控制單元16、18、20、22提供的通信總線或附加總線一起使用。每個(gè)控制單元具有控制器或處理器,其處理從通信總線12接收的數(shù)據(jù)幀并且向通信總線提供數(shù)據(jù)幀。
[0022]圖2是被定義為字節(jié)的數(shù)據(jù)的數(shù)據(jù)直方圖,每個(gè)字節(jié)具有八個(gè)位。每個(gè)八位字節(jié)被定義為一對(duì)字符(并且更具體地為O到F)。該對(duì)字符中的每個(gè)是四位值。例如,O 0 0 0的四位序列在圖1中表示值“0”,其能夠被考慮為“00”,因?yàn)樗奈恍蛄械膬烧叨际橇?。I II I的四位序列表示字母F,其對(duì)應(yīng)于數(shù)字15。最后,序列I O O I表示數(shù)字值9。
[0023]在圖2中示出的個(gè)別八位字節(jié)具有大量的從00到FF的值。然而,具有O值的字節(jié)的數(shù)目是相當(dāng)大的,并且當(dāng)兩個(gè)或更多個(gè)零字節(jié)以由八個(gè)字節(jié)的序列表示的數(shù)據(jù)幀來(lái)提供時(shí),該實(shí)現(xiàn)導(dǎo)致數(shù)據(jù)壓縮概念。
[0024]圖3是用于壓縮在數(shù)據(jù)幀中具有零值的數(shù)據(jù)字節(jié)的壓縮例程30的流程圖。在例程30的步驟32處,對(duì)正等待傳輸?shù)臄?shù)據(jù)幀或消息中的零值字節(jié)的數(shù)目進(jìn)行計(jì)數(shù)。
[0025]在決定步驟34處,零值字節(jié)的數(shù)目與值二相比。如果關(guān)于數(shù)據(jù)幀中的總值提供少于兩個(gè)的零值,則例程30前進(jìn)到步驟36。在步驟36處,數(shù)據(jù)長(zhǎng)度代碼(DLC)不被改變并且?guī)槐桓淖?。因此,?shù)據(jù)幀在沒(méi)有數(shù)據(jù)壓縮的情況下被傳輸,因?yàn)榱愕臄?shù)目不足以使DLC的長(zhǎng)度縮短從而由此壓縮數(shù)據(jù)幀。
[0026]在決定步驟34處,當(dāng)零值字節(jié)的數(shù)目至少是二時(shí),例程30前進(jìn)到步驟38。在步驟38處,編碼字節(jié)從數(shù)據(jù)幀的總字節(jié)形成。針對(duì)具有八個(gè)字節(jié)的數(shù)據(jù)幀的編碼的示例如下。
未壓縮字節(jié):00 11 2A 00 F3 00 40 00 單個(gè)編碼字節(jié):10 0 I O I O I = A9。
[0027]A9值根據(jù)從右到左相反地讀取值來(lái)獲得。因此,位I O I O變?yōu)锳 (表示十)并且位I O O I變?yōu)?。因此,十六進(jìn)制值是A9。因?yàn)槲磯嚎s字節(jié)中的僅四個(gè)不是零并且存在編碼字節(jié),所以對(duì)于上面幀來(lái)說(shuō)在零壓縮之后DLC=5。
用于傳輸?shù)膲嚎s字節(jié):A9 11 2A F3