České vysoké učení techncké v Praze Fakulta elektrotechncká Katedra řídcí technky Dplomová práce Rozvrhování statckého segmentu sítě FlexRay Bc. Davd Beneš Vedoucí práce: Doc. Dr. Ing. Zdeněk Hanzálek Studjní program: Otevřená nformatka, Navazující magsterský Obor: Počítačové nženýrství 3.1.2012
Prohlášení Prohlašuj, že jsem prác vypracoval samostatně a použl jsem pouze podklady uvedené v přloženém seznamu. Nemám závažný důvod prot užtí tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvsejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne 3.1.2012...
Abstract Dploma thess descrbes a FlexRay communcaton system and propose an algorthm for schedulng sgnals n the statc segment of FlexRay network wth graphcal dsplay possblty of the resultng communcaton schedule. Furthermore, the basc varant of proposed schedulng s mplemented and s further enhanced. Dfferent varants of parts of the algorthm are mplemented. All proposed varants are compared to each other n the performance test, and also compared wth the exstng schedulng methods. In concluson, the algorthm requrements are gven wth nstructons about ts usage. Keywords FlexRay, tme constrants, schedulng, frame packng, heurstc Abstrakt Dplomová práce popsuje komunkační systém FlexRay a navrhuje algortmus pro rozvrhování sgnálů ve statckém segmentu sítě FlexRay s možností grafckého zobrazení výsledného rozvrhu komunkace. Dále mplementuje základní varantu navrženého algortmu, a tu dále vylepšuje. Jsou testovány rozlčné varanty částí algortmu pro rozvrhování. Všechny vytvořené varanty jsou nakonec navzájem porovnány ve výkonnostním testu, a také s exstujícím možnostm rozvrhování. V závěru práce jsou vyjmenovány požadavky mplementovaného algortmu s návodem na jeho použtí. Klíčová slova FlexRay, časová omezení, rozvrhování, frame packng, heurstka
Obsah Úvod... 1 1. Specfkace komunkačního systému FlexRay... 3 1.1. Fyzcké uspořádání klastru... 4 1.2. Archtektura nodu... 6 1.3. Komunkační protokol sítě FlexRay... 7 1.4. Synchronzace, odolnost vůč rušení... 9 2. Rozvrhování statckého segmentu...11 2.1. Stávající možnost...16 2.2. Implementace vlastního algortmu...17 2.2.1. Nastavená omezení...17 2.2.2. Pops algortmu...19 2.2.3. Příklad běhu vlastního algortmu...23 2.3. Vylepšení algortmu...27 2.3.1. Rozdělení sgnálů k nodům...27 2.3.2. Frame packng...28 2.3.3. Optmalzace zpráv...30 2.3.4. Tvorba rozvrhu...31 3. Výsledky algortmu...37 3.1. Výkonnostní testy...39 3.2. Srovnání s exstujícím metodam...42 3.3. Ověření algortmu na fyzcké sít...43 4. Pops a požadavky algortmu...45 4.1. Předpoklady pro běh algortmu...45 4.2. Pops jednotlvých souborů...46 4.2.1. Další pomocné soubory a soubory nevyužívané přímo algortmem...47 4.3. Potřebné úpravy před spuštěním algortmu...48 4.4. Očekávaný vstupní formát souborů pro algortmus...49 4.5. Generovaný výstupní formát souboru...50 Závěr...51 Seznam lteratury a použtých zdrojů...53
Příloha A: Seznam použtých zkratek... 57 Příloha B: Obsah přloženého CD... 59
Seznam obrázků Obrázek 1 - Příklady elektronckých systémů v automoblu [21]... 2 Obrázek 2 - Přímé propojení dvou nodů... 4 Obrázek 3 - Pasvní sběrnce... 4 Obrázek 4 - Pasvní hvězda... 5 Obrázek 5 - Aktvní hvězda... 5 Obrázek 6 - Hybrdní topologe... 5 Obrázek 7 - Odlšné topologe komunkačních kanálů... 6 Obrázek 8 - Archtektura nodu... 7 Obrázek 9 - Podrobné dělení cyklu... 8 Obrázek 10 - Okamžky kontroly synchronzace a aplkace jejch výsledků... 9 Obrázek 11 - Přenos asynchronního a synchronního sgnálu [11]...13 Obrázek 12 - Znázornění časového okna sgnálu...15 Obrázek 13 - Ukázka hyperperody...18 Obrázek 14 - Grafcké znázornění sgnálů vstupujících do algortmu...24 Obrázek 15 - Grafcká reprezentace vytvořených zpráv...25 Obrázek 16 - Grafcké zobrazení vytvořených optmalzovaných zpráv...26 Obrázek 17 - Grafcká reprezentace celkového vygenerovaného rozvrhu...27 Obrázek 18 - Zpřísňování časových omezení během frame packngu a optmalzace zpráv...27 Obrázek 19 - Příklad problému pro heurstku a vyřešení ILP...37 Obrázek 20 - Sestava testovací sítě FlexRay...44 Obrázek 21 - Komunkace na sběrnc př praktckém testu zobrazena na oscloskopu [11]...44
Seznam tabulek Tabulka 1 - Seznam sgnálů použtých v plně vybaveném automoblu nžší třídy...14 Tabulka 2 - Seznam sgnálů na vstupu algortmu...24 Tabulka 3 - Zprávy vytvořené ze sgnálů...25 Tabulka 4 - Optmalzované zprávy vytvořené ze zpráv...26 Tabulka 5 - Porovnání výsledků verzí algortmů...40 Tabulka 6 - Část algortmu použté v jednotlvých varantách algortmu...41
Seznam pseudokódů Pseudokód 1 Základní struktura algortmu...19 Pseudokód 2 - Vylepšená verze frame packngu...29 Pseudokód 3 - Vylepšená verze optmalzace zpráv...31 Pseudokód 4 - Spolupráce heurstky a ILP během tvorby rozvrhu...33 Pseudokód 5 - Tvorba rozvrhu z optmalzovaných zpráv...35
Úvod Automobly hrají v každodenním žvotě ldí, především ve vyspělých zemích, stále důležtější rol. Jen málokdo s už v dnešní společnost dokáže představt svou čnnost bez produktů automoblového průmyslu. Navíc požadujeme, aby byly automobly stále bezpečnější, poskytovaly více pohodlí a komfortu a kladly menší nároky na řdče. Zároveň moderní společnost požaduje od automoblů šetrnost k žvotnímu prostředí a tím zlevnění jejch provozu. Prostředkem k vyhovění výše uvedeným požadavkům jsou mmo jné pokročlé elektroncké systémy, které jsou využívány v nově vyráběných automoblech. S globálním rozvojem elektronky se do automoblů dostává stále více pokročlých systémů, které jejích služeb využívají. Pro komplexnější elektroncké systémy je nezbytné propojení jejch jednotlvých částí tak, aby spolu mohly vzájemně komunkovat. Například adaptvní tempomat, který udržuje nastavenou rychlost automoblu. Pokud vozdlo s adaptvním tempomatem dojede pomalej jedoucí vůz, přzpůsobí se jeho rychlost, aby nedošlo ke kolz. Aby mohl takový systém fungovat, je nezbytně nutné získávat mnmálně údaje z předního senzoru vzdálenost a aktuální rychlost, aby mohl v případě potřeby ovládat brzdy a plynový pedál. Příklady dalších systémů, které potřebují pro svou optmální čnnost komunkovat s ostatním komponentam vozu, jsou zobrazeny na Obrázku 1. Vzhledem k množství v autech nstalovaných systémů není možné propojt jednotlvá zařízení každé s každým. S výhodou se v tomto případě využívají komunkační sběrnce. V současné době je stále ještě nejvyužívanější sběrncí CAN, která však nevyhovuje požadavkům nejmodernějších aplkací. Nově nasazované elektroncké systémy vyžadují velkou propustnost sběrnce, mnmální zpoždění a především spolehlvost, což jsou charakterstky, kterým CAN nedsponuje. Z toho důvodu byl vyvnut nový systém komunkace s názvem FlexRay. Ten plně vyhovuje nejnáročnějším požadavkům, tj. dává například k dspozc šroké přenosové pásmo a podporuje jak tme-trggered, tak event-trggered komunkac (oprot CAN, která podporuje jen druhou zmíněnou). Komunkace na sít FlexRay je rozdělena na dvě část, přčemž první se využívá především pro časově krtcké aplkace (tme-trggered) a druhá část je pro ostatní komunkac (event-trggered). Ncméně druhou část lze - 1 -
využít pro přenos krtckých dat. Přestože ke komunkačnímu systému FlexRay je jž vydána specfkace, jeho nasazení v prax stále není běžné. Jedním z důvodů je nutnost konfgurace každého přpojeného zařízení na tuto sběrnc. Před konfgurací zařízení je třeba navrhnout harmonogram komunkace. Právě tvorba tohoto harmonogramu je složtou operací, kterou lze pro menší počet zařízení navrhnout ručně. S narůstajícím počtem komunkujících komponent se však ruční návrh stává téměř nerealzovatelným. Automatcký návrh harmonogramu komunkace na sít FlexRay, konkrétně první (statcký) segment, je cílem této dplomové práce. Nejprve budou analyzovány jž exstující možnost tvorby harmonogramu komunkace pro statcký segment a následně bude navržen vlastní algortmus pro vhodné rozvržení přenosu dat po sít FlexRay. Tento algortmus bude postupně co nejvíce generalzován a upravován dle dalších požadavků, které by mohly vyvstat př potřebě nalezení vhodného rozvrhu komunkace. Výsledky algortmu budou porovnány se známým výsledky jných metod tvorby harmonogramu komunkace. Pro potvrzení, že se jedná o valdní rozvrh, bude harmonogram vytvořený vznklým algortmem praktcky otestován na fyzcké sít FlexRay. Obrázek 1 - Příklady elektronckých systémů v automoblu [21] - 2 -
1. Specfkace komunkačního systému FlexRay Jedním z mpulsů pro vývoj nového komunkačního systému byl požadavek na zavádění systémů x-by-wre. Systémy x-by-wre v automoblovém průmyslu uslují o nahrazení mechanckého a hydraulckého propojení ovládacích prvků za ovládání pomocí propojení elektrckým sgnály. Například pro systém steer-by-wre jž není oprot mnulost volant automoblu mechancky spojen s řídícím tyčem rejdových kol, ale natočení volantu je převáděno na elektrcký sgnál. Ten je přenášen k řídícím tyčím a ty jsou následně podle hodnoty sgnálu vychýleny tak, aby rejdová kola zatočla do požadovaného úhlu. Převodem otočení volantu na elektrcký sgnál je možné měnt ntenztu natočení rejdových kol v závslost na aktuálních stuacích. Například př jízdě ve vysoké rychlost není žádoucí, aby byl volant moc ctlvý. Naopak př parkování je výhodnější, pokud se malý pohyb volantem promítne do většího natočení rejdových kol. Podobně je možné u systému steer-by-wre kompenzovat například slný boční vítr. Za normálních okolností by řdč musel př jízdě rovně držet volant natočen prot směru větru. Toto potřebné natočení je možné díky systému steer-by-wre kompenzovat. Dalším příkladem využtí je zamezení nabourání vedle jedoucího automoblu v případě, že se řdč rozhodne změnt jízdní pruh, ale nevšmne s, že ve vedlejším pruhu na jeho úrovn jede jné vozdlo. V neposlední řadě jsou díky nahrazení mechanckého propojení elektronkou značně sníženy výdaje na údržbu. Dalším systémy x-by-wre jsou například drve-by-wre (ovládání plynového pedálu, respektve otáček motoru) a brake-by-wre (ovládání brzd). Je zřejmé, že se jedná o velm krtcké aplkace, a proto je zajštění naprosté spolehlvost těchto systémů zásadním požadavkem. Nasazení systémů x-by-wre není horkou novnkou, třeba systém fly-by-wre je úspěšně využíván v letectví jž několk desetletí. Nově se však systémy x-by-wre zavádí do automoblového průmyslu. Př využtí více systémů, které vyžadují komunkac jednotlvých částí mez sebou, je nutné přenášet obrovské množství dat. Nesmíme př tom zapomínat, že určté nezanedbatelné množství elektronckých systémů v dnešních automoblech jž používáno je. Oblast jejch nasazení sce nebývá krtcká, ncméně ony přenášejí určtý datový objem, který musíme brát v úvahu př návrhu komunkačního systému. Specfkace FlexRay vznkla z výše zmíněné potřeby šršího, spolehlvějšího - 3 -
a předvídatelného přenosového pásma v automoblovém průmyslu, a to především pro schopnost využívat stále většího počtu elektronckých zařízení, která spolu musí komunkovat. V roce 2000 bylo předním výrobc automoblového průmyslu založeno konsorcum FlexRay, které spolupracovalo na vývoj stejnojmenného komunkačního systému. Konsorcum FlexRay bylo na konc roku 2010 rozpuštěno, protože jž publkovalo fnální specfkace, čímž byl naplněn důvod jeho založení. Specfkace komunkačního systému FlexRay verze 3.0.1 byla předána organzac ISO, aby tato specfkace byla vydána jako standard pro slnční vozdla.[9] Navržený komunkační systém sítě FlexRay defnuje jak parametry fyzcké vrstvy, tak protokol komunkace a chování jednotlvých zařízení vzhledem k sít. Zároveň doporučuje archtekturu přpojených jednotek. Jelkož je jž v sít FlexRay defnováno praktcky vše, pokud není řečeno jnak, vychází tato kaptola z publkovaných specfkací konsorca FlexRay, konkrétně ze specfkací komunkačního protokolu[7], a fyzcké vrstvy[8]. Dále lze nalézt podrobnější pops jak jednotlvých částí protokolu FlexRay, tak detaly ohledně fyzcké vrstvy v dplomové prác [14], která se zabývala jak teoretckou částí komunkačního systému FlexRay, tak realzací této fyzcké sítě. Samotná síť FlexRay sestává z jednotlvých komunkujících jednotek (nodů), komunkačních kanálů a případně opakovačů. Všechny nody, které jsou navzájem propojeny (mohou spolu tedy komunkovat), dohromady s jejch propojením vytvářejí klastr. 1.1. Fyzcké uspořádání klastru Komunkační systém FlexRay neomezuje topolog klastru, pokud jsou zachovány požadované vlastnost jako například maxmální doba šíření sgnálu. Topologe nesmí obsahovat žádné logcké kružnce, nebo uzavřené smyčky. Nejjednodušší topologí je přímé propojení dvou nodů (vz Obrázek 2). Maxmální délka propojení Ibus je dána elektrckým parametry propojení, mírou elektromagnetckého rušení atd. Obrázek 2 - Přímé propojení dvou nodů Obrázek 3 - Pasvní sběrnce - 4 -
Klíčové je, aby sgnál odeslaný z jednoho nodu dorazl s jstotou do druhého nodu př zachování požadovaných parametrů. Velm často využívanou topologí je pasvní sběrnce (vz. Obrázek 3). Zde je pro korektní fungování sítě nutné dodržovat maxmální délku přpojení nodů ke sběrnc a maxmální vzdálenost míst na sběrnc, ke kterým jsou nody přpojeny. Další možností je zapojení do pasvní hvězdy (vz. Obrázek 4), což je specální případ pasvní sběrnce. V tomto zapojení záleží zachování mnmálních vlastností Obrázek 4 - Pasvní hvězda Obrázek 5 - Aktvní hvězda přenášených sgnálů jak na počtu takto propojených nodů, tak na jejch maxmální vzdálenost od středu hvězdy. Lepší varantou předchozí topologe je aktvní hvězda (vz. Obrázek 5). U té je využto přímých propojení mez opakovačem a nody. Opakovač má schopnost předávat sgnály přjaté z jedné větve na větve ostatní s obnovenou charakterstkou sgnálu. S využtím opakovače určují maxmální množství k němu přpojených nodů jen jeho vlastnost. Z těchto základních topologí je možné jejch kombnováním sestavovat složtější struktury. Například opakovač lze využít pro prodloužení maxmální délky propojení. Příklad zapojení základních topolog pro vytvoření hybrdní topologe je na Obrázku 6. Obrázek 6 - Hybrdní topologe - 5 -
Komunkační systém FlexRay umožňuje a zároveň doporučuje využívat dvou oddělených nezávslých komunkačních kanálů. Toho lze využít například pro zajštění funkconalty klastru a to v tak extrémních stuacích, jako je nehoda a př ní mechancké přerušení komunkačního kanálu na jedné straně vozu. I v takových stuacích je totž vyžadována čnnost některých ze systémů. Jednotlvé kanály mohou být zapojeny do odlšných topologí jako například na Obrázku 7. Obrázek 7 - Odlšné topologe komunkačních kanálů Přestože jsou podporována rozlčná fyzcká uspořádání klastru, logcké uspořádání ve všech případech zůstává sběrncí. 1.2. Archtektura nodu V souvslost s přesně defnovaným chováním nodu podle specfkace komunkačního systému FlexRay je uvedena a doporučena následující archtektura komunkujících zařízení. Archtektura popsovaná ve specfkacích FlexRay je zobrazena na Obrázku 8. - 6 -
Obrázek 8 - Archtektura nodu Na obrázku jsou zobrazeny jednotlvé část nodu důležté pro node ke komunkac po sít FlexRay. Část Host představuje samotnou funkconaltu tohoto zařízení. Power Supply je část, která zajšťuje nformace o napájení. Bus Drver zajšťuje přístup na komunkační sběrnc sítě FlexRay. Část Bus drver je zdvojena, neboť musí být pro každý kanál separátní. Communcaton Controller zprostředkovává převod dat na sběrnc a operace vyžadované komunkačním protokolem FlexRay. Špky ukazují, které část mez sebou komunkují. Detalní pops jednotlvých částí a jejch vlastní archtektura je dostupná v [7]. V detalním popsu je taktéž přesně defnován způsob, jakým spolu jednotlvé část komunkují. Dodržení doporučené archtektury nodu a funkčnost jednotlvých částí zaručuje dodržení požadavků pro komunkac na sít FlexRay. Pokud je potřeba přpojt node do více klastrů, je nutné využít pro každý klastr vlastní Communcaton Controller. Přpojení přes jeden Communcaton Controller zapojený kanálem A z jednoho klastru a kanálem B do druhého klastru není povoleno. 1.3. Komunkační protokol sítě FlexRay Komunkace na sít FlexRay probíhá v jednotlvých po sobě jdoucích cyklech pevné délky. Cyklus je rozdělen na statcký segment, dynamcký segment, symbolové okno a kldový stav. - 7 -
Obrázek 9 - Podrobné dělení cyklu Statcký segment sestává z pevného počtu stejně dlouhých slotů. Statckým slotům jsou přřazena ID dle jejch pořadí v cyklu. Každý slot je dále dělen na makrotky a ty dále na mkrotky, jak je znázorněno na Obrázku 9. V této část je pro přístup ke sběrnc využta statcká metoda TDMA. To znamená, že každý slot je přřazen jednomu nodu, který ho může použít k odesílání dat po sít. Tím je dosaženo slně determnstckého chování. Jednomu nodu může být přřazeno více slotů, avšak jeden slot není povoleno využívat více nody. Přřazení slotů k nodům musí být defnováno př návrhu komunkace, není jej možno měnt za běhu. Alokace slotů pro jednotlvé kanály je nezávslá. Statcký segment se pro své vlastnost využívá především pro krtcké aplkace, neboť tak je zaručeno maxmální zpoždění doručení potřebných dat. Tento segment je vhodný pro sgnály, které jsou generovány perodcky. Dynamcký segment je složen z mnslotů, které nemají pevně stanovenou velkost. Z toho důvodu může dynamcký segment v každém cyklu obsahovat různý počet mnslotů. Mnsloty jsou dále děleny na makrotky. Dynamcký segment má pevnou velkost v makrotcích nadefnovanou př návrhu sítě. Dynamcký segment není povnnou součástí cyklu. V tomto segmentu nody přstupují k sít dle nastavených prort. Dynamcký segment lze proto využít pro krtcké aplkace, a to v případě že jm je přřazena vysoká prorta a nebude jch mnoho. Nejpraktčtější je tento segment pro data, která je třeba přenášet sporadcky, č jsou generována pouze př určté událost. Vzhledem k přístupu k sít podle prorty v dynamckém segmentu a nedetermnstčnost generování jednotlvých sgnálů, není možné zaručt maxmální latenc přenosu sgnálů s nžší prortou. - 8 -
Symbolové okno se využívá pro kontrolu správné funkce některých částí nodů a př startu sítě. Kldový stav (network dle tme, NIT) je poslední částí každého cyklu. V kldovém stavu nody počítají a aplkují své časové korekce. Tato část má tedy proměnnou délku. Změna délky této část se využívá k synchronzac nodů. 1.4. Synchronzace, odolnost vůč rušení Aby mohly nody navzájem komunkovat vysokou rychlostí, je nezbytné, aby byly navzájem časově synchronzovány. Synchronzace času je v komunkačním systému FlexRay realzována na několka úrovních. Ve statckém segmentu každého cyklu s všechny nody měří rozdíl mez skutečným a očekávaným začátkem slotů. Z těchto hodnot s každý node počítá potřebný posun, aby se př dalších cyklech skutečné začátky slotů ve statckém segmentu nelšly od předpokládaných. Tato korekce se provádí úpravou délky kldového stavu v každém lchém cyklu. Dále nody v každém lchém cyklu měří rozdíly předchozích hodnot mez lchým a sudým cyklem. Z toho je v každém cyklu prováděna úprava frekvence změnou počtu mkrotků délky komunkačního cyklu. Okamžky kontroly synchronzace a jejch korekce jsou znázorněny na Obrázku 10. Obrázek 10 - Okamžky kontroly synchronzace a aplkace jejch výsledků Jelkož spolehlvost byla př návrhu sítě FlexRay jednou z klíčových vlastností, je tento požadavek hluboce zanesen v konceptu této sítě. Čtení aktuálního stavu na - 9 -
sběrnc totž nevyhodnocuje ve skutečnost hodnotu jen v jedný okamžk. Hodnota jednoho btu nformace předané vyšším vrstvám je majortní hodnota pět čtení ze sběrnce. To je samozřejmě respektováno př odesílání dat na sběrnc. Například pro odesílání logcké 1 to ve výsledku znamená vygenerování pět logckých 1 na síť. Díky tomuto mechansmu získává síť FlexRay značnou robustnost. Pokud by došlo třeba kvůl rušení k poškození přenášené nformace takovým způsobem, že by v každém přenášeném btu nformace byly maxmálně dvě z pět hodnot na sít změněny, nody stále získávají platné původní nformace. Samozřejmostí je pak využtí kontrolního součtu CRC na úrovn protokolu sítě FlexRay. Pokud by přes výše popsané mechansmy došlo k chybnému přenosu dat, je tento stav alespoň ndkován a komunkační jednotky mají možnost na daný problém zareagovat. Další možností, jak dosáhnout vyšší spolehlvost v klastru, je využtí obou komunkačních kanálů. - 10 -
2. Rozvrhování statckého segmentu Jsou uvažovány dva druhy úloh prováděných v nodech (ECU). Prvním typem jsou úlohy které běží bez synchronzace s komunkačním cykly. Sgnály (nebol přenos údajů jedné ECU) generované takovou úlohou jsou označovány za asynchronní. Druhý typ sgnálů, které jsou generovány úloham synchronzovaným s komunkačním cykly, se nazývá synchronní. Úkolem je najít vhodné přřazení sgnálů do rámců a ty přřadt do slotů a cyklů, ve kterých budou přenášeny po sít FlexRay. Rámc jsou nazývány jednotlvé sloty v konkrétních cyklech. Konfgurace sítě FlexRay sestává z velkého množství parametrů, jakým jsou například délka cyklu, počet statckých slotů ve statckém segmentu, délka statckého slotu a další. Tyto parametry jsou většnou předdefnovány systémovým konstruktérem a dále dodržovány dodavatel ECU. Nastavení používané v této prác je založeno na návrhu sítě dle BMW[4]. Délka komunkačního cyklu F je zvolena 5ms, přčemž pro statcký segment jsou vyhrazeny 3ms. Zbytek komunkačního cyklu je využt pro dynamcký segment, symbolové okno a kldový stav. Ve zvolené konfgurac je k dspozc M = 75 statckých slotů s délkou L 0,04ms. Pro síť s propustností 10Mb/s je v každém slotu možné přenést W btů, což je v tomto případě 128 btů. Jednotlvé sgnály jsou defnovány následujícím proměnným (je použta stejná notace jako v [10]): N unkátní dentfkátor ECU, která odesílá sgnál, T peroda sgnálu ; předpokládá se přenos sgnálu po sít maxmálně jednou za cyklus, O release tme sgnálu ; určuje nejpozdější chvíl, po které je vygenerován první výskyt sgnálu od začátku perody, C velkost sgnálu v btech, A stáří sgnálu je doba mez vygenerováním sgnálu v ECU, která jej odesílá, a přjetím prvního rámce, - 11 -
D deadlne sgnálu, což je maxmální stáří sgnálu, do kdy je nutné sgnál přenést. Dalším předpokladem je dodržování standardu AUTOSAR[3] využívaného nejen pro automoblový průmysl, ale pro letectví a další odvětví. V kontextu AUTOSAR je rámec defnován následovně: Q j unkátní dentfkátor ECU, která odesílá rámec j, S j dentfkátor slotu, ve kterém je využt pro přenos rámce j, R j perodcta AUTOSAR rámce j ; peroda rámce vyjádřená v celstvých násobcích délky komunkačního cyklu; tato peroda může nabývat pouze hodnot n { 2 n N, n 6}, B j dentfkátor komunkačního cyklu, ve kterém se přenáší první výskyt rámce j, přčemž platí, že B R. j j Každý rámec j je tedy charakterzován čtveřcí { Q S, B, R } j,. V souladu se standardem je vyžadováno, že rozvrh komunkace je statcký a není možné jej za běhu měnt. Dále se předpokládají velkost sgnálů maxmálně do délky statckého slotu. To znamená, že data jednoho sgnálu nemohou být rozdělena do několka rámců. Fragmentování zpráv je zajštěno pomocí AUTOSAR FlexRay transportní vrstvy protokolu [2]. Převzorkováním asynchronních sgnálů je možné získat a z těchto sgnálů vytvořt sgnály synchronní pomocí následující úpravy parametrů j j j D = T O = 0 = 2n F + P + U kde P je čas na zabalení sgnálu čas od požadavku úlohy k odeslání sgnálu až po okamžk skutečného přenosu sgnálu; U je čas rozbalení sgnálu opačným způsobem. Synchronní sgnály mohou mít nastaven deadlne na kratší hodnotu, než je jejch peroda. V tom případě je deadlne omezen následujícím způsobem. - 12 -
D S P + L + U pro 0 O n F P + M L + U P + L + G + U v ostatních prpadech kde n 1,2,4,..., 64, M je počet statckých slotů, L představuje délku statckého slotu a G reprezentuje délku dynamckého segmentu, kldového stavu a symbolového okna. Obrázek 11 - Přenos asynchronního a synchronního sgnálu [11] Obrázek 11 znázorňuje stuac, kdy jsou v ECU vygenerovány dva sgnály jeden synchronní a jeden asynchronní. Peroda synchronního sgnálu je 10ms a asynchronního 11ms. Předpokládejme, že oba sgnály mají deadlne roven perodě. Pro splnění deadlne je nutné přenášet oba sgnály každý druhý cyklus, tedy 1 R j = 2. V pátém cyklu jsou přenášena pro druhý sgnál stejná data jako ve třetím cyklu, neboť nová data ještě nebyla vygenerována. To je způsobeno převzorkováním asynchronního sgnálu, tedy převodem na synchronní sgnál. - 13 -
Množny sgnálů Pro potřeby vývoje algortmu byly použty modfkované množny sgnálů Socety of Automotve Engneers (SAE). Zpráva SAE [16] defnuje množnu sgnálů posílaných mez 7 různým subsystémy v modelovém automoblu. Tato množna sgnálů sestává z 53 jednotlvých a perodckých sgnálů. Perody sgnálů jsou rozděleny mez 4 pevně defnované perody- 5, 10, 100, 1000ms. Perodcké sgnály vyžadují maxmální latenc menší, č maxmálně rovnou uvedeným perodám. Jednotlvé sgnály mají svou maxmální latenc defnovanou úlohou, ze které vznkly: například sgnály vytvořené jako důsledek jednání řdče mají maxmální latenc nastavenu na 20ms. Detalnější pops množny sgnálů SAE je dostupný v [13]. Kvůl dostupnému šrokému přenosovému pásmu sítě FlexRay a vysokým požadavkům elektronckých systémů v dnešních automoblech, bylo nutné množnu sgnálů SAE dále rozšířt. Rozšíření množny sgnálů SAE bylo provedeno pomocí generátoru testovacích dat NETCARBENCH [5] následujícím způsobem: zvýšení počtu sgnálů př zachování stejného pravděpodobnostního rozdělení parametrů jako v původní množně sgnálů, přdání omezujících časových parametrů. Množna sgnálů použtých v plně vybaveném automoblu nžší třídy je znázorněna v Tabulce 1.[11] Sgnály jsou posílány mez 33 nody propojeným do dvou sítí s bránou. Několk z těchto sgnálů je posíláno jen nastane-l konkrétní událost a mají defnován pouze deadlne, tj. za jak dlouho od událost musí být doručeny. Takové sgnály jsou převedeny na perodcké s perodou rovnou deadlne. Peroda # sgnálů Peroda # sgnálů 7 26 100 272 8 51 200 117 10 143 250 22 20 205 400 2 40 7 500 265 50 51 1000 77 Tabulka 1 - Seznam sgnálů použtých v plně vybaveném automoblu nžší třídy - 14 -
Časová omezení Prvním krokem po vygenerování množny sgnálů je nalezení dvojce { E, H } pro každý sgnál. E udává první rámec, ve kterém může být odeslán první výskyt sgnálu př dodržení všech časových omezení. H určuje poslední rámec, ve kterém je ještě povoleno sgnál odeslat podle zadaných časových omezení. Dvojce { E, H } je vypočtena následujícím způsobem: E P + O P + O floor F P + O F = floor M + mn cel, M F L H P + O P + O + D floor F P + O F = floor M + mn floor, M F L Obrázek 12 je grafckým znázorněním dvojce { E, H } pro dva sgnály jeden asynchronní a jeden synchronní s nastaveným strktním časovým omezením. Obrázek 12 - Znázornění časového okna sgnálu 1 1 WARAUS, Dens; 2011-15 -
2.1. Stávající možnost Konsorcum FlexRay vydalo v roce 2005 specfkac komunkačního systému FlexRay verze 2.1. Není proto dvu, od té doby vznklo několk studí na téma rozvrhování sgnálů na sít FlexRay. Rozvrhování sgnálů v dynamckém segmentu je podobné jedné z nejpoužívanější sít CAN, a je proto hojně v těchto studích zastoupeno. Dále je uváděno jen rozvrhování statckého segmentu sítě FlexRay. Autoř [15] využívají všech možností voleb parametrů pro konfgurac cyklu v protokolu sítě FlexRay. Optmalzují tak přenosové pásmo přesně pro rozvrhované sgnály. Takový přístup je však značně lmtující, protože v automoblovém průmyslu je často využíván přírůstkový model[11]. V takovém případě není možné upravovat parametry sítě FlexRay. Podobný přístup je také využt v [20]. V této prác se navíc nejdelší prortní sgnály přesunují do dynamckého segmentu. Díky tomu lze volt statcký slot kratší a zabránt tak zbytečnému mrhání přenosovou kapactou sítě FlexRay pro sgnály, které přenáší méně dat. Pokud je takto navržený systém dále rozšířen, nemusí být zaručeno včasné doručení dříve rozvržených sgnálů. V [17] bylo zkoumáno sdružování sgnálů do zpráv, které vede k efektvnějšímu využtí sítě FlexRay díky potřebě alokace menšího počtu slotů. V uvedené prác je popsáno sdružování sgnálů do zpráv o jednotné velkost, a to kvůl defnc statckých slotů v sít FlexRay, což vede k potřebě užšího přenosového pásma. Dále je v uvedeném článku zformulován způsob nalezení množny optmálních zpráv ze vstupní množny sgnálů pomocí nelneárního celočíselného programování. Je zde navržen způsob rozvrhování pro co nejmenší jtter a zároveň nejmenší počet využtých statckých slotů, což zvyšuje efektvtu využtí sítě FlexRay. Autoř [10] předpokládají využtí standardu AUTOSAR a využívají heurstckou analýzu k rozvržení větších množn sgnálů. V této prác je však předpokládáno, že sdružování sgnálů do zpráv je prováděno na aplkační úrovn v ECU. Další kategorí jsou práce, které se př rozvrhování sgnálů zabývají zajštěním vyšší míry spolehlvost na aplkační úrovn. Vyšší spolehlvost je v tomto případě zajšťována redundantním odesíláním sgnálů vyžadujících nejvyšší míru jstoty doručení. Touto problematkou se zabývají [23], [25] a [26]. - 16 -
2.2. Implementace vlastního algortmu Po prostudování exstujících možností rozvrhování statckého segmentu sítě FlexRay bylo přstoupeno k návrhu vlastního algortmu, jak sgnály v této část rozvrhnout. Nejzajímavější exstující prací byla [18], která je velm nspratvní a to především v oblast sdružování sgnálů do zpráv a dále způsobem přdělování zpráv do slotů. Z toho důvodu bylo rozhodnuto, že uvedené myšlenky budou využty v našem algortmu. Avšak na rozdíl od [18], náš algortmus uvažuje release tme deadlne sgnálů, což dělá úlohu rozvrhování statckého segmentu sítě FlexRay obtížnější, než v uvedeném článku. Pro tvorbu algortmu bylo vybráno prostředí Matlab. Pro grafcký výstup zobrazující vypočtený harmonogram komunkace je potřeba mít v prostředí Matlab doplňky XML Toolbox [19] a TORSCHE Schedulng Toolbox [24], pomocí kterých se vygeneruje XML soubor reprezentující výsledný rozvrh. Grafcká reprezentace rozvrhu ve formátu XML je poté odeslána webové službě na serveru rtme.felk.cvut.cz, která data zpracuje pomocí nástroje na kreslení ganttových dagramů s využtím Metapostu Psgantt [12]. 2.2.1. Nastavená omezení Budeme rozvrhovat sgnály, které jsou přřazeny n nodům. Každý sgnál bude: přřazen k nodu n, mít defnovánu svou velkost C, což je délka sgnálu v btech, mít svůj release tme O, označující nejdřívější čas, kdy může být odeslán první bt sgnálu, mít svůj deadlne D defnovaný jako nejpozdější okamžk, kdy musí být poslední bt sgnálu přjat, mít perodu P, která vyjadřuje, jak často se sgnál opakuje. Hodnoty release tme a deadlne budou defnovány jen pro první výskyt sgnálu - 17 -
v hyperperodě, avšak platí pro ostatní výskyty sgnálu v rámc jeho perody s příslušným posunem. Je nutné defnovat hyperperodu, která v našem případě vyjadřuje časový nterval, který je perodcky opakován a po kterém začíná vypočtený rozvrh opět od začátku. Pro statcký segment sítě FlexRay je tedy možné určt hyperperodu jako nejmenší společný násobek všech perod sgnálů. Hyperperoda tedy vyjadřuje počet cyklů pro které je vypočten rozvrh. Poté probíhá komunkace znovu stejně jako od začátku rozvrhu. Ukázkový rozvrh s vyznačenou hyperperodou je na Obrázku 13. Hyperperoda je zde určena nejméně často se opakujícím žlutým sgnálem, který je umístěn v rozvrhu ve druhém slotu v posledním cyklu. Velm důležtým rozhodnutím bylo uvažovat release tme a deadlne pouze v násobcích délky cyklů přesto, že dle specfkace FlexRay mohou tyto hodnoty uvažovat okamžky v rámc cyklů. Rozhodnutí bylo provedeno na základě skutečnost, že umístění sgnálu v rámc cyklu je bezvýznamné vzhledem k umístění sgnálu v cyklu v rámc hyperperody, neboť délka hyperperody je až o několk řádů delší než délka cyklu. Díky této volbě může být algortmus výrazně jednodušší bez většího vlvu na data, která mají být rozvržena. Na vstupu algortmu budou všechny hodnoty release tme a deadlne upraveny na celé násobky cyklů takovým způsobem, aby vždy splňovaly původní zadání. Pokud bude například release tme sgnálu uprostřed cyklu, nastavíme release tme sgnálu na konec tohoto cyklu; naopak pokud deadlne sgnálu bude uprostřed cyklu, Obrázek 13 - Ukázka hyperperody nastavíme deadlne sgnálu na konec předchozího cyklu. Uvedeným způsobem nejsme schopn rozvrhnout sgnály, které mají release tme deadlne v rámc jednoho cyklu. Takové sgnály se však v prax nevyskytují. Toto omezení ve výsledku znamená, že nemusíme určovat, který node bude přřazen k nžším ID slotům a který k vyšším, čímž lze jnak dosáhnout upřednostnění sgnálů odesílaných nodem, kterému je přřazen slot s nžším ID. Zároveň nepovolujeme deadlne delší, než je peroda sgnálu. Pokud by taková stuace na vstupu nastala, nastavíme s pro naše potřeby deadlne sgnálu na hodnotu rovnou perodě. Převod release tme a deadlne na celé násobky cyklů je - 18 -
proveden podle následujících vzorců: ~ E O = cel M ~ H D = floor M Dalším zvoleným omezením je, že perody sgnálů přcházejících na vstup algortmu mohou nabývat pouze hodnot mocnn dvou. I v tomto případě mluvíme o nepřílš omezující vlastnost, která však výrazným způsobem zjednodušuje výpočet fnálního rozvrhu. Ve výsledném rozvrhu nepovolujeme jtter, tedy odchylku od perodcty sgnálu. 2.2.2. Pops algortmu První verze algortmu stejně jako například [18] neuvažovala u sgnálů release tme a deadlne, ale pouze sdružovala sgnály do zpráv a velm jednoduše je přřazovala do slotů. Tato verze sloužla k ověření základního rozvrhování a poté byla využta jako základ pro další rozšíření. Během modfkace základního algortmu a začleňování podpory časových omezení (release tme a deadlne) byl algortmus přetvořen do podoby znázorněné v Pseudokódu 1. Vstup: C, T, O, D Výstup: rozvrh sgnály = rozděl sgnály k nodům(c, T, O, D ); for (k=1...#nodů) { zprávy(k) = frame packng(sgnály(k)); optzprávy(k) = optmalzuj zprávy(zprávy(k)); rozvrh(k) = vytvoř rozvrh(optzprávy(k)); end; f (rozvrh.slotů > M) error( Nepodařlo se nalézt korektní rozvrh ); end; Pseudokód 1 Základní struktura algortmu - 19 -
Rozdělení sgnálů k nodům Díky rozhodnutí o časových omezeních sgnálů, která mohou nabývat pouze násobků délky cyklu, je možné rozvrhovat sgnály jednotlvých nodů nezávsle na ostatních nodech. Z toho důvodu jsou v tomto kroku sgnály rozděleny do skupn podle toho, ke kterému nodu patří. Uvedené rozdělení nám umožní například pro velké množny sgnálů rozvrhovat jednotlvé nody paralelně, čímž lze zkrátt dobu výpočtu. V této část algortmu jsou tedy projty všechny sgnály na vstupu algortmu a jsou z nch vytvořeny množny sgnálů podle toho, ke kterému nodu sgnál náleží. K sgnálům navíc přřadíme perody a jejch časová omezení. U časových omezení kontrolujeme, zda jsou nastavena na hodnoty násobků délky cyklu. Pokud nejsou, upravíme tyto hodnoty dle dříve popsaného postupu, tedy zmenšíme časové okno, kdy může být sgnál přenesen. Tím zaručíme, že vždy dojde k dodržení původních časových omezení. Asymptotcká časová složtost rozdělování sgnálů k nodům je, Ο ( S ) kde S je počet sgnálů na vstupu algortmu. Frame packng Jak jž bylo zmíněno, byla využta myšlenka z [18] nejdříve sdružt sgnály do zpráv (frame packng). Kvůl rozdílu oprot zmíněnému materálu v respektování časových omezení sgnálů, je řešení sdružování sgnálů do zpráv v této dplomové prác odlšné. Zpráva v zásadě představuje obálku nad více sgnály. Díky spojení více sgnálů do jedné zprávy je omezen počet elementů, se kterým je potřeba pracovat a je nutné je rozvrhnout. Právě nžší počet rozvrhovaných elementů značně snžuje výpočetní náročnost tvorby výsledného harmonogramu komunkace. Zpráva má stejné parametry jako sgnál, tedy velkost C, která je pro zprávu rovna součtu velkostí sgnálů v ní obsažených; velkost zprávy nesmí překročt velkost rámce; perodu T, která v tomto kroku musí být stejná jako původní peroda všech sgnálů ve zprávě; release tme odpovídající nejpozdějšímu času release tme ze všech sgnálů přřazených do zprávy; a podobně deadlne O ~, D ~, který naopak nabývá hodnoty nejdřívějšího z časů deadlne sgnálů obsažených ve zprávě. Tímto nastavením parametrů zpráv zajstíme (podobně jako př rozdělování sgnálů k nodům), že pokud měl sgnál některé z časových omezení - 20 -
uprostřed cyklu, dojde ke zpřísnění všech časových omezení. Tímto způsobem zaručíme, že všechna původní omezení budou zachována. Sdružování sgnálů do zpráv funguje odděleně pro sgnály s různým perodam. Z toho vyplývá, že prvním krokem je rozdělení sgnálů do skupn podle jejch perody. Poté se postupně prochází skupny sgnálů se stejnou perodou. Pro každý sgnál se hledá zpráva, do které by mohl být sgnál umístěn. Vybírá se pouze ze zpráv se stejnou perodou, které mají ještě dostatek volného místa, aby se do zprávy sgnál vešel (a nepřekročla poté zpráva velkost rámce), a zpráva má navíc takové časové omezení, že pokud se do ní sgnál vloží, je zaručeno, že sgnál nebude vyslán dříve, než je specfkováno, a zároveň dorazí včas. Pokud je nalezena zpráva, která odpovídá výše popsaným podmínkám, je do ní sgnál přdán a u zprávy se upraví její velkost dle velkost vloženého sgnálu. Dále se musí upravt časová omezení zprávy tak, aby byla splněna omezení všech sgnálů ve zprávě (tedy právě přdaného sgnálu). Pokud není žádná vhodná zpráva nalezena, je vytvořena zpráva nová, do té se vloží aktuální sgnál a provedou se stejné operace, jako př vkládání sgnálu do jž exstující zprávy. V tomto případě zpráva převezme stejné parametry, jaké má právě přdávaný sgnál. 2 Sdružení sgnálů do zpráv je realzováno v asymptotcké časové složtost ( s ) Ο, kde s je počet sgnálů pro právě procházený node. Tento způsob provádění frame packngu odpovídá strateg Frst Ft (FF) [6]. Optmalzace vytvořených zpráv S téměř stoprocentní jstotou nebudou mít všechny zprávy vytvořené v předchozím kroku velkost rovnající se (nebo alespoň blížící se) velkost rámce. Proto by př posílání těchto zpráv nebylo využto všechno dostupné místo v rámcích. Z uvedeného důvodu byl zařazen krok optmalzace vytvořených zpráv, který se snaží o spojování zpráv jž vytvořených. Cílem je co nejlépe využít dostupnou kapactu rámců. Na rozdíl od předchozího kroku, tato část neprochází zprávy odděleně podle perody, nýbrž všechny vytvořené zprávy (je přpuštěno spojování zpráv s rozdílnou perodou). Maxmalzací využtí rámců je tedy mnmalzován počet zpráv, které bude pozděj nutné rozvrhnout. Pokud se vyskytnou zprávy s rozdílnou perodou, které lze vzhledem k jejch časovým omezením a velkost spojt, dojde sce k stuac, kdy se - 21 -
sgnály obsažené v jedné původní zprávě budou posílat častěj, než je nutné, a budou tak zabírat více přenosového pásma; avšak druhá původní zpráva by stejně musela být přenášena s defnovanou perodou. Tím už je zabrán rámec a vzhledem k velkost zprávy by nebyl plně využt. Z toho vyplývá, že když budeme posílat více dat, tak ušetříme právě tím, že se zbavíme rámců potřebných pro jednu původní zprávu. Ve výsledku to znamená, že bude potřeba méně zabraných slotů, čímž se zkrátí délka statckého segmentu cyklu. Vytvoření optmalzovaných zpráv je zajštěno postupným procházením všech zpráv. U každé zjšťujeme, zda by nešla spojt se zprávou jnou za dodržení všech dříve uvedených podmínek. Bylo rozhodnuto, že zprávy budou seřazeny od té nejméně časté (tedy s největší perodou) po tu nejčastější. Takový způsob s klade za cíl omezt na nejnžší možnou míru plýtvání dostupnou přenosovou kapactou. Tím lze dosáhnout nejvyšší možné efektvty využtí přenosového pásma (to vede ke snížení počtu slotů potřebných pro rozvrh komunkace). Tento způsob odpovídá strateg Frst Ft Decreasng (FFD) [6]. 2 Asymptotcká časová složtost optmalzace zpráv je Ο ( m ) počet zpráv vypočtených v předchozím kroku pro aktuální node., kde m vyjadřuje Tvorba rozvrhu V této část algortmu se dostáváme k samotnému vypočtení harmonogramu komunkace pro aktuální node. Optmalzované zprávy jsou seřazeny od nejnžší perody (tedy od těch optmalzovaných zpráv, které jsou posílány nejčastěj) po optmalzované zprávy s nejvyšší perodou. To garantuje, že pokud jsou přřazovány optmalzované zprávy do slotů, stačí projít pozce slotu, kde může být umístěn první výskyt optmalzované zprávy v rámc její perody. Pokud je v této část slotu nalezeno vhodné místo, je zaručeno, že pro další výskyty optmalzované zprávy v rámc hyperperody bude ve slotu místo. Pro každou optmalzovanou zprávu je hledán slot, který ještě obsahuje dostatek volného místa (volných rámců v rámc hyperperody) a splňuje požadavky na časová omezení (má v časovém okně defnovaném release tmem a deadlnem optmalzované zprávy volný rámec). - 22 -
Asymptotcká časová složtost výpočtu rozvrhu pro každý node je ( max( m' c, m' log( m' ))) Ο, kde m ' je počet optmalzovaných zpráv pro aktuální node vypočtených v předchozím kroku; je počet slotů přřazených danému nodu a c je počet cyklů v hyperperodě. Složtost ' log( m' ) do požadované posloupnost. m zde vyjadřuje úvodní seřazení sgnálů 2.2.3. Příklad běhu vlastního algortmu Pro názorné předvedení funkce algortmu byla přpravena množna sgnálů pro jedno zařízení. Na uvedených sgnálech jsou vdět postupné výsledky mez jednotlvým částm algortmu. Vstupní sgnály jsou popsány Tabulkou 2, ve které jsou všechny parametry vstupních sgnálů. Tytéž parametry jsou znázorněny grafcky na Obrázku 14. Každý sloupec tohoto obrázku reprezentuje jeden sgnál. Peroda sgnálu je vyjádřena opakováním sgnálu ve sloupc. Velkost sgnálu (množství v něm přenášených btů) je znázorněna šířkou nstance sgnálu. Release tme pro první výskyt sgnálu je zobrazen vodorovnou čarou s trojúhelníčkem v barvě sgnálu na její pravé straně v příslušném sloupc. Podobně jsou označeny deadlne, s tím rozdílem, že na konc vodorovné čáry je místo trojúhelníku použto kolečko. Sgnály přesně v tomto stavu jsou výsledkem rozdělení sgnálů k nodům parametry sgnálů jsou jž uvedeny v hodnotách, které jsou vyžadovány pro následné zpracování. Pro názornost v ukázce dále pracujeme jen s jedním nodem. Sgnály v této podobě jsou předány ke zpracování část algortmu, která sdružuje sgnály do zpráv. - 23 -
C T O ~ D ~ C T O ~ D ~ s 1 26 2 0 2 s 11 4 4 0 9 s 2 2 1 0 1 s 12 14 1 0 1 s 3 2 4 0 11 s 13 4 1 0 1 s 4 6 4 0 13 s 14 16 2 0 1 s 5 6 8 1 8 s 15 10 16 1 6 s 6 8 1 0 1 s 16 8 2 0 2 s 7 2 2 0 2 s 17 4 2 0 2 s 8 4 1 0 1 s 18 2 8 3 7 s 9 32 8 5 8 s 19 14 16 1 16 s 10 16 2 1 2 s 20 20 1 0 1 Tabulka 2 - Seznam sgnálů na vstupu algortmu Obrázek 14 - Grafcké znázornění sgnálů vstupujících do algortmu Po průchodu výše uvedených sgnálů frame packngem jsou vytvořené zprávy uvedeny v Tabulce 3 a zobrazeny na Obrázku 15, kde nyní ve sloupcích nejsou zobrazeny sgnály, nýbrž vytvořené zprávy. Všechny parametry zpráv jsou uvedeny stejným způsobem jako je tomu výše u sgnálů. Z Tabulky 3 je vdět, že byly sloučeny například sgnály s 3, s 4 a s 11 do zprávy m 6. Možnost sloučení uvedených sgnálů je evdentní z Obrázku 14. U sgnálů s 5 a s 18 nebylo sloučení na první pohled úplně evdentní, neboť z nch vytvořená zpráva m 7 musí respektovat časová omezení obou, která jsou odlšná. Zpráva m 8 je vytvořena jen ze sgnálu s 9, protože sgnál už dosáhl maxmální možné velkost a jeho sloučení s jakýmkolv dalším sgnálem není přípustné. Tyto - 24 -
vytvořené zprávy jsou dále předány k optmalzac zpráv. C T O ~ D ~ sgnály m 1 32 1 0 1 s 2, s 6, s 8, s 12, s 13 m 2 20 1 0 1 s 20 m 3 30 2 0 1 s 7, s 14, s 16, s 17 m 4 26 2 0 2 s 1 m 5 16 2 1 2 s 10 m 6 12 4 0 4 s 3, s 4, s 11 m 7 8 8 3 7 s 5, s 18 m 8 32 8 5 8 s 9 m 9 32 16 1 6 s 15, s 19 Tabulka 3 - Zprávy vytvořené ze sgnálů Obrázek 15 - Grafcká reprezentace vytvořených zpráv Výsledkem optmalzace výše uvedených zpráv jsou optmalzované zprávy uvedené v Tabulce 4 a grafcky zobrazené na Obrázku 16. Díky tomuto kroku byly dále sloučeny zprávy m 5 a m 6 do optmalzované zprávy m 5 a zprávy m 7 a m 9 do optmalzované zprávy m 6. Tedy dojde ke sloučení zpráv napříč různým perodam. Tento výsledek je předán k samotnému rozvrhnutí. - 25 -
C T O ~ D ~ zprávy sgnály m 1 32 1 0 1 m 1 s 2, s 6, s 8, s 12, s 13 m 2 20 1 0 1 m 2 s 20 m 3 30 2 0 1 m 3 s 7, s 14, s 16, s 17 m 4 26 2 0 2 m 4 s 1 m 5 28 2 1 2 m 5, m 6 s 3, s 4, s 10, s 11 m 6 32 8 3 6 m 7, m 9 s 5, s 15, s 18, s 19 m 7 32 8 5 8 m 8 s 9 Tabulka 4 - Optmalzované zprávy vytvořené ze zpráv Výsledek rozvrhování optmalzovaných zpráv je zobrazen na Obrázku 17. Uvedený obrázek oprot předchozím nemá ve sloupcích zobrazeny jednotlvé sgnály, č zprávy, ale každý sloupec představuje slot na sít FlexRay. Z obrázku je patrné, že optmalzované zprávy, které lze rozvrhnout do jedného slotu jsou takovým způsobem naplánovány. Tento krok je tedy závěrečným krokem algortmu a jako takový je jeho výstupem. Vypočtený harmonogram komunkace pro jednotlvé nody se pouze spojí bez dalších výpočtů. Pro detalnější představu, jak se upravují časová omezení pro zprávu během jejího vytváření, jsou na Obrázku 18 zobrazena časová omezení všech sgnálů sloučených do optmalzované zprávy m 5. Vytvořená zpráva musí převzít nejpozdější release tme a nejdřívější deadlne, aby splňovala všechna časová omezení sgnálů ve zprávě obsažených. Obrázek 16 - Grafcké zobrazení vytvořených optmalzovaných zpráv - 26 -
Obrázek 17 - Grafcká reprezentace celkového vygenerovaného rozvrhu Obrázek 18 - Zpřísňování časových omezení během frame packngu a optmalzace zpráv 2.3. Vylepšení algortmu Vzhledem k výsledkům mplementovaného algortmu bylo rozhodnuto, že bude tento postup rozvrhování sgnálů do statckého segmentu sítě FlexRay dále vylepšován. Bylo zvoleno, že bude snaha přesunout se od heurstky k optmálnímu řešení, pokud to bude možné. 2.3.1. Rozdělení sgnálů k nodům Jelkož se v této část algortmu neprovádí žádný výpočet, ale jedná se pouze o předzpracování sgnálů (převedení vstupních hodnot release tme a deadlne na hodnoty, se kterým algortmus pracuje) a rozdělení vstupních dat do skupn dle nodů, které jsou zapotřebí pro navržený algortmus a počítání btů, které je nutné přenést za hyperperodu pro každý node, není třeba tento krok dále zdokonalovat. Počet btů, které jsou potřebné pro každý node za hyperperodu, se využívá pro výpočet reže a dalších hodnocení algortmu. - 27 -
2.3.2. Frame packng Prvním rozdílem ve vylepšené verz frame packngu oprot původní mplementac je úvodní řazení sgnálů nkolv podle deadlne, ale podle velkost okna. Velkost okna je čas mez release tme a deadlne sgnálu. Seřazení sgnálů dle okna zajšťuje, že frame packng bude sdružovat především sgnály s podobnou velkostí okna (s respektováním časových omezení), takže vytvářené zprávy nebudou omezovány více, než je nezbytně nutné. Dále díky seřazení sgnálů dle velkost jejch okna zajšťuje, že sgnály s nejmenším velkostm okna budou sdruženy (pokud to bude možné kvůl časovým omezením) a sgnály s velkým časovým okny nebudou omezovány sgnály s malým časovým okny. Druhou důležtou změnou oprot změně původně popsané je fakt, že sgnály nejsou přřazovány do první zprávy, která splňuje časová omezení. Nejprve se ohodnotí všechny zprávy dle toho, jak je vhodné sgnál do zprávy přdat. Sgnál je poté vložen do zprávy, do které je jeho přřazení nejvhodnější. Ohodnocení každé zprávy bere v úvahu rozdílnost release tme a deadlne mez sgnálem a zprávou, a dále také výslednou velkost zprávy. Ohodnocení zprávy m pro přdání sgnálu s je vypočteno následujícím způsobem: ohodnocenífp m = 10 * ~ ~ ~ ~ ( Os Om + Ds Dm ) + ( W Cm ) Byla defnována mez udávající mnmální ohodnocení zprávy, kdy má ještě dojít k přdání právě zpracovávaného sgnálu do zprávy a kdy jž nkolv. Pokud an jedna zpráva nedosahuje nastavené meze, nebude sgnál přdán do žádné exstující zprávy, ale bude pro něj vytvořena zpráva nová. Tato mez zabraňuje vložení sgnálu do zprávy, která má velm rozdílná časová omezení, tím pádem by byla značně omezena možnost dále optmalzovat vytvořené zprávy v dalším kroku. Výsledkem tohoto vylepšení frame packngu je varanta, která využívá strateg Best Ft Decreasng (BFD) [6]. Uvedený postup odpovídá Pseudokódu 2. Asymptotcká časová složtost frame packngu zůstala stejná jako v původní 2 verz, tedy Ο ( s ), kde s je počet sgnálů pro právě procházený node. - 28 -
Vstup: sgnály(k) = [s(1), s(#sgnály(k))] Výstup: zprávy(k) = [m(1),, m(#zprávy(k))] frame_packng_mez = 20; for (p=1... #sgnály(k)) ohodnocení = zeros(1,#zprávy(k)); for (q=1... #zprávy(k)) ohodnocení(q) = ohodnoť přřazení s(p) do m(q); end; f (max(ohodnocení(q)) > frame_packng_mez) [max_ohodnocení, ndex] = max(ohodnocení); m(ndex) = přřaď s(p) do m(ndex); else vytvoř novou zprávu jen pro s(p); #zprávy(k) += 1; end; end; zprávy(k) = m; Pseudokód 2 - Vylepšená verze frame packngu Dynamcké programování Analýzou výsledků tohoto algortmu byl frame packng dentfkován jako část algortmu, která produkuje největší rež. Kvůl tomuto zjštění byly hledány jné způsoby, jak provádět frame packng tak, aby bylo docíleno lepších výsledků. S ohledem na časová omezení a prortu, která je defnována co možná nejmenším zpřísňováním časového omezení v tomto kroku 2, bylo zvoleno dynamcké programování. To má největší potencál vrátt výsledky v porovnatelném čase s ostatním částm algortmu. Stejně jako v předchozí mplementac frame packngu zde je sdružování sgnálů do zpráv realzováno odděleně po perodách. První varanty frame packngu pomocí dynamckého programování vytvářely vždy jednu optmální zprávu ze sgnálů konkrétní perodcty. Poté byly sgnály, ze kterých se zpráva sestávala, odebrány a znovu se hledala optmální zpráva ze zbylých sgnálů. Tento postup se opakoval, dokud pro danou perodctu zbývaly sgnály. 2 To by nejpravděpodobněj vedlo k málo efektvnímu rozvrhu komunkace. - 29 -
Následně byl spuštěn tentýž proces pro další perody. Tento postup byl zvolen pro ověření škálovatelnost řešení pro velké množny sgnálů, neboť nalezení kombnace optmálních zpráv pro sgnály jedné perodcty najednou je o několk řádů složtější problém. Ve chvíl, kdy byly vzaty v úvahu release tme a deadlne př slučování sgnálů do zpráv, se výpočet frame packngu na větších nstancích množn sgnálů pomocí dynamckého programování stal v porovnání s ostatním částm algortmu velm pomalým. Popsaná metoda postupného vytváření jednotlvých optmálních zpráv však nepředstavuje celkově optmální řešení. Popsaný způsob frame packngu pomocí dynamckého programování je dále označován DP. Vzhledem k výpočetnímu času př využtí dynamckého programování pro frame packng bylo rozhodnuto, že možnost nalézt optmální kombnac přřazení sgnálů do zpráv nebude dále rozvíjena, jelkož přechod k optmálnímu řešení by vedl k neúměrně velkému prodloužení výpočetních časů. Díky tomu by bylo praktcky nemožné zpracovávat větší množny sgnálů. 2.3.3. Optmalzace zpráv Stejně jako u frame packngu, nejsou nyní zprávy optmalzovány s nalezením jejch první vhodné dvojce. Nejprve jsou pro každou zprávu ohodnoceny ostatní zprávy podle toho, jak jsou vhodné pro spojení s právě aktuální zprávou. Toto ohodnocení bere v úvahu rozdílnost perod jednotlvých zpráv, rozdíly v release tme a deadlne potencálně slučovaných zpráv a celkovou velkost potencální nové zprávy. ohodnoceníoz m' ~ ~ = 100* m ~ ~ ( T T ) + 10* ( O O + D D ) + ( W C C ) m1 m2 m1 Stejně jako u frame packngu, zde je zavedena mez, která určuje ohodnocení, pod které se už zprávy slučovat nemají. Pokud pro aktuální zprávu žádná jná zpráva nedosáhne této meze, nebude se zpráva v tomto kroku s žádnou jnou slučovat a to přesto, že potencálně exstují takové zprávy, které by bylo možné s aktuální zprávou sloučt. Díky ohodnocení zpráv je zaručeno, že se nejprve budou slučovat zprávy s podobným časovým omezením a podobnou perodou. Zavedení meze optmalzace zpráv zajstí, že nebudou slučovány zprávy s výrazně odlšným perodam, což by značně zvyšovalo rež algortmu a mohlo by zabránt pozdějšímu sloučení vhodnějších zpráv. m2 m1 m2 m1 2-30 -
Vstup: zprávy(k) = [m(1),, m(#zprávy(k))] Výstup: optzprávy(k) = [m (1),, m (#optzprávy(k))] optmalzace_mez = 20; for (p=1... #zprávy(k)) m (p) = m(p); ohodnocení = zeros(1,#zprávy(k)); whle (max(ohodnocení) > optmalzace_mez) for (q=1...#zprávy(k)) ohodnocení(q) = ohodnoť spojení m (p) a m(q); end; f (max(ohodnocení) > optmalzace_mez) [max_ohodnocení, ndex] = max(ohodnocení); m (p) = spoj m (p) a m(ndex); end; end; end; optzprávy(k) = m ; Pseudokód 3 - Vylepšená verze optmalzace zpráv Uvedená varanta pro optmalzac zpráv odpovídá strateg Best Ft (BF) [6]. Výsledkem vylepšení optmalzace zpráv je mplementace odpovídající Pseudokódu 3. Asymptotcká časová složtost se vzhledem k uvedeným úpravám oprot 3 původní varantě zvýšla na Ο ( m ) packngem pro aktuální node., kde m je počet zpráv vytvořených frame 2.3.4. Tvorba rozvrhu Díky předchozím krokům algortmu se značně snížlo množství elementů, které je potřeba rozvrhnout (počet optmalzovaných zpráv je výrazně nžší, než počet sgnálů jednotlvých nodů). Díky tomu přchází v úvahu využtí některého z optmálních řešení k rozvržení optmalzovaných zpráv. V této fáz je potřeba nepreemptvně rozvrhnout optmalzované zprávy do co nejmenšího počtu slotů (v termnolog rozvrhování sloty představují dentcké procesory). Optmalzované zprávy mohou být popsány jako jednotkové harmoncké úlohy s celočíselným hodnotam release tme a deadlne bez - 31 -
možnost varablty v perodě (jtter). ILP formulace Výše popsaný problém je řeštelný pomocí následujících rovnc celočíselného lneárního programování (ILP): j x j -té možné umístění optmalzované zprávy od jejího release tme ( j -tý cyklus od release tme); { 0,1} x, y j t t -té opakování (optmalzovaná zpráva je v hyperperodě opakována kvůl své perodě) optmalzované zprávy pokud by první výskyt optmalzované zprávy byl v j -tém cyklu od release tme; { 0,1} y, z c počet optmalzovaných zpráv, které se mají přenášet v cyklu c ; { 0,1,..., } z #slotů nodu k, velkost okna optzpravy j = 1 x = 1 je povolen právě jeden výskyt pro každou j t t = 1 t t j y optmalzovanou zprávu v rámc jejího časového okna, j t x j = 0 součet všech výskytů optmalzované zprávy je právě takový jaký má být počet opakování zprávy v rámc hyperperody, y z 0 počet všech výskytů optmalzovaných zpráv v cyklu c může být c nejvýše roven maxmálnímu počtu slotů, cyklů v hyperperodě # z = = = optzpráv c c t 1 1 garantuje, že je alokován stejný počet pozc jako je celkový počet všech výskytů zpráv. Není potřeba dále zajšťovat požadavek pro přenos nstancí každé optmalzované zprávy (peroda v rámc hyperperody) vždy ve stejném slotu, protože toho lze dosáhnout v další fáz přřazovaní optmalzovaných zpráv do konkrétních čísel slotů a to takovým způsobem, že nejprve budou přřazeny optmalzované zprávy s největší perodou a optmalzované zprávy s nejnžší perodou až jako poslední. - 32 -
Spolupráce ILP a heurstky V případě, že bychom využíval jen celočíselné lneární programování, je nutné začít s nějakým počtem přípustných slotů. Aby nebylo nutné zahájt proces na nějakém náhodně vybraném maxmálním počtu slotů, je využta předchozí verze rozvrhování optmalzovaných zpráv. Tím je získán počet slotů, do kterých je v každém případě možné optmalzované zprávy rozvrhnout. Počet slotů získaný tímto způsobem je potom použt ve varantě rozvrhování pomocí celočíselného lneárního programování a to pro počáteční určení maxmálního počtu použtých slotů. ILP je následně spouštěno v cyklu, ve kterém je stále snžován počet slotů, jež je možné využít pro rozvrhování. Celočíselné lneární programování je spouštěno až do doby, kdy vrací provedtelný rozvrh. Ve chvíl, kdy ILP vrátí neprovedtelný rozvrh, se bere předchozí poslední provedtelný rozvrh. Díky postupnému snžování počtu použtých slotů využívá tento rozvrh jejch mnmální možný počet. Uvedená spolupráce ILP a heurstky je znázorněna na Pseudokódu 4. Vstup: optzprávy(k) = [m(1),, m(#optzprávy(k))] Výstup: rozvrh(k) rovrh_heurstka = vytvoř rozvrh(optzprávy(k)); UB = rozvrh_heurstka.počet_slotů; vytvoř matce(optzprávy(k)); nastav maxmum slotů na UB; whle (ILP vrací valdní rozvrh) xmn = spusť ILP na matcích; UB = UB - 1; nastav maxmum slotů na UB; end; rozvrh(k) = extrahuj rozvrh z valdního xmn; Pseudokód 4 - Spolupráce heurstky a ILP během tvorby rozvrhu - 33 -
Odlšné pořadí rozvrhovaných optmalzovaných zpráv Jednou z dalších varant rozvrhování optmalzovaných zpráv je jejch jné úvodní seřazení, než podle perody tedy způsobem jakým je to provedeno v původní varantě rozvrhování. Jné seřazení s však žádá částečnou úpravu algortmu tvorby rozvrhu. Postupné rozvrhování optmalzovaných zpráv podle perody totž zajšťovalo, že pokud se ve slotu našlo volné místo pro výskyt optmalzované zprávy v první perodě, bylo ve slotu vždy garantováno místo pro ostatní výskyty optmalzované zprávy v rámc hyperperody. Jako první by měly být zařazovány optmalzované zprávy, jež mají nejméně možností, na které místo v rozvrhu je lze zařadt. To odpovídá seřazení optmalzovaných zpráv podle jejch časových oken od nejmenšího po největší. U takto seřazených zpráv je dále vhodné optmalzované zprávy se stejným časovým oknem řadt dle jejch release tme (pro stejná časová okna je to dentcké se seřazením podle deadlne). V případě, kdy by byly vstupem algortmu množny sgnálů, které by neměly nastaveny release tme a deadlne 3, je seřazení dle velkost časového okna a release tme rovnocenné se řazením podle perody. To bylo provedeno v původní varantě rozvrhování. S ohledem na nutnost procházet všechna opakování optmalzovaných zpráv v rámc hyperperody př hledání vhodného místa ve slotu, je tato varanta pomalejší než původní verze rozvrhování optmalzovaných zpráv. Tato varanta rozvrhování optmalzovaných zpráv je znázorněna Pseudokódem 5. 3 Release tme roven nule a deadlne roven perodě pro všechny sgnály. - 34 -
Vstup: optzprávy(k) = [m(1),, m(#optzprávy(k))] Výstup: rozvrh(k) seřaď optzprávy(k) podle release tme; seřaď optzprávy(k) podle časového okna; #slotů(k) = 0; for (p=1... #optzpráv(k)) for (q=1... #slotů(k)) for (c=m'(p).release... m'(p).deadlne-1) f (m'(p) lze přenést ve slotu q se začátkem v cyklu c) přřaď m'(p) do slotu q; nastav první přenos m'(p) v cyklu c; pokračuj až dalším p; end; end; end; f (m'(p) nelze přenést v žádném aktuálním slotu) #slotů(k) += 1; přřaď m'(p) do slotu #slotů(k); nastav první přenos m'(p) v cyklu m'(p).release; end; end; Pseudokód 5 - Tvorba rozvrhu z optmalzovaných zpráv - 35 -
3. Výsledky algortmu Porovnáván jednotlvých verzí částí algortmu navzájem není možné, jelkož samotný výsledek jednotlvé část nelze objektvně ohodnott. Jako příklad uveďme stav, kdy výsledkem sdružování sgnálů do zpráv je vznk určtého počtu zpráv. Není však zaručeno, že menší počet zpráv je lepší výsledek. Pokud totž budou mít výsledné zprávy velm malé časové okno, ve kterém mohou být posílány, může dojít k stuac, že pro výsledný rozvrh bude potřeba více slotů, než kdyby bylo zpráv více. Potom by měly větší časová okna, a tím pádem by byly snáze rozvrhnutelné. Stejná stuace je u optmalzace zpráv. Byly testovány všechny smysluplné hodnoty pro zavedené meze pro frame packng a optmalzac zpráv a jejch kombnace na všech testovacích množnách sgnálů. Z těchto testů vyplynulo, že není potřeba pro každou množnu sgnálů testovat všechny možnost a kombnace mezí. Určtá zvolená hodnota meze pro frame packng a jedna mez pro optmalzac zpráv dává nejlepší výsledky pro všechny množny sgnálů. Porovnání jednotlvých verzí algortmů je zobrazeno v Tabulce 5. Obrázek 19 - Příklad problému pro heurstku a vyřešení ILP Rozvrhování optmalzovaných zpráv pomocí ILP řeší některé problémy, se kterým s původní mplementovaná heurstka nedokázala poradt. Příkladem uvedené stuace jsou sgnály znázorněné na Obrázku 19. V rámc testování verzí algortmu bylo zjštěno, že výsledky rozvrhování optmalzovaných zpráv pouze pomocí heurstky - 37 -
generuje rozvrhy se stejným počtem potřebných slotů, jako př využtí celočíselného programování. Z toho vyplývá, že použtá heurstka je velm úspěšná a není zapotřebí využívat optmální metodu ILP, která ke stejným výsledkům potřebuje nepoměrně delší čas. Vzhledem k tomuto zjštění nebyla v porovnávání výsledků verzí algortmu použta varanta s rozvrhováním optmalzovaných zpráv pomocí celočíselného lneárního programování. Hlavního cíle, kterým je mnmalzace počtu využtých slotů v rozvrhu komunkace pro každou množnu sgnálů, se podařlo pomocí vylepšených verzí některých částí algortmů dosáhnout. Dále bylo ověřeno několk alternatv, které oprot očekávání nesnžovaly počet slotů ve výsledném rozvrhu, ale doba potřebná k jejch výpočtu byla většnou značně delší. Dosažené výsledky pomocí nejlepší varanty vylepšené verze algortmu však nejsou oprot původní verz njak výrazné. Podrobnou analýzou bylo zjštěno, že ve vylepšené verz algortmu se počet potřebných slotů pro rozvrh komunkace rovná teoretckému mnmálnímu počtu slotů, do kterých je možné rozvrhnout optmalzované zprávy v naprosté většně množn sgnálů. U některých množn sgnálů dokonce výsledný rozvrh vylepšeného algortmu potřeboval právě tolk slotů, kolk bylo jejch naprosté teoretcké mnmum na vstupu do algortmu. Naprosté teoretcké mnmum slotů sgnály, je vypočteno následujícím způsobem: mn abs potřebných pro node, ve kterých lze přenést všechny mn abs = cel H C T W H kde H určuje počet cyklů v hyperperodě. Př tomto výpočtu neuvažujeme release tme an deadlne jednotlvých sgnálů. Tento údaj určuje absolutně mnmální počet slotů, do kterých by teoretcky šlo rozvrhnout vstupní sgnály. Po provedení sdružování sgnálů do zpráv a optmalzac zpráv, je třeba výpočet aktuálního teoretckého mnma slotů upravt. Povolujeme totž přenos maxmálně jedné optmalzované zprávy v jednom rámc. - 38 -
' mn abs = cel H T H kde hodnota T je peroda optmalzované zprávy. Uvedené mnmum je vždy větší, č stejné, než předchozí naprosté teoretcké mnmum slotů potřebných pro node mn abs. Údaj ' mn abs tedy udává nové teoretcké mnmum slotů potřebných pro vytvoření rozvrhu. An v tomto údaj se neuvažují release tme a deadlne. Vylepšená verze algortmu je schopna ve velm krátké době rozvrhnout velké množny sgnálů. Největší nstance testovacích množn sgnálů obsahovaly jeden node s až 3000 sgnály. Tato vylepšená verze algortmu byla schopna tyto množny sgnálů rozvrhnout v několka vteřnách. 3.1. Výkonnostní testy Aby bylo možno porovnat rychlost a úspěšnost výsledků jednotlvých verzí algortmu, byly vybrány testovací množny, na kterých byl algortmus v několka modfkacích spuštěn. Pro každou skupnu množn sgnálů bylo vygenerováno 10 nstancí podle stejných parametrů. Výsledek pro každou skupnu je tak tedy průměrem výsledků přes všechny její nstance. Jelkož algortmus je determnstcký, jeho několkanásobné spouštění na každé skupně dává dentcké výsledky. Skupny sgnálů mají následující parametry: Set1 an release tme an deadlne nejsou nastaveny, Set2 deadlne roven konc perody, release tme náhodně posunut do prvních pět cyklů, Set3 deadlne nastaven na dvě třetny perody, release tme náhodně posunut do prvních pět cyklů, Set4 podobná konfgurace jako Set2, Set5 - deadlne roven konc perody, release tme náhodně posunut do prvních pět cyklů, - 39 -
Set6 stejné parametry pro generování sgnálů, jen vyšší zatížení sběrnce, Set7 an release an deadlne nejsou nastaveny; pro jednotlvé nody je defnováno jen velm málo sgnálů, 1ECU_500 několk náhodně defnovaných deadlne, release tme náhodně posunut do prvních pět cyklů, 1ECU_1000 stejná konfgurace jako 1ECU_500; větší počet sgnálů, 1ECU_3000 stejná konfgurace jako 1ECU_1000; větší počet sgnálů; nastavena větší velkost slotu než u ostatních množn sgnálů. Skupna Původní Vylepšená DP Okno Zprávy Meze sgnálů #sgnálů#nodů mn #ID #ID t [s] #ID t [s] #ID t [s] #ID t [s] #ID t [s] #ID t [s] Set1 622 3 21,3 24,2 0,52 23,8 0,62 24,2 1,32 23,8 0,61 24 1,39 23,8 15,79 Set2 622 3 21,3 24,2 0,53 23,8 0,62 24,2 1,55 23,8 0,62 24 1,41 23,8 15,88 Set3 622 3 21,3 24,2 0,53 23,8 0,60 24,2 1,47 23,8 0,62 24 1,52 23,8 15,84 Set4 622 3 21,3 24,2 0,53 23,8 0,66 24,2 1,47 23,8 0,62 24 1,36 23,8 15,93 Set5 566,7 6 12,1 17,7 0,47 17,6 0,64 17,7 1,00 17,7 0,57 17,7 1,07 17,6 14,77 Set6 784,4 6 28,3 32,5 0,68 31,9 1,04 32,5 1,57 32 0,78 31,9 1,65 31,9 20,46 Set7 850,7 23 27,8 42,2 0,71 41,3 0,95 43,6 1,15 43,4 0,83 43,4 1,53 41,3 24,97 1ECU_500 467,3 1 20,1 20,8 0,42 20,4 0,47 21,2 5,52 20,7 0,46 20,4 1,17 20,4 11,01 1ECU_1000 973 1 41,5 42,1 0,91 41,9 0,99 43,7 11,18 42,2 0,96 41,9 3,30 41,9 24,51 1ECU_3000 2704 1 28,9 29,7 2,60 29,2 2,96 30,8 62,27 29,6 2,87 29,2 9,47 29,2 71,75 Tabulka 5 - Porovnání výsledků verzí algortmů V Tabulce 5 jsou zobrazeny výsledky běhu algortmu v několka modfkacích na popsaných množnách sgnálů. V každém řádku tabulky jsou uvedeny výsledky pro jeden typ množny sgnálů vypočtené několka rozdílným varantam algortmu. Součástí této tabulky jsou další popsné údaje k množnám sgnálů. Je zde uveden celkový počet sgnálů; počet nodů, mez které jsou sgnály rozděleny; a naprosté teoretcké mnmum slotů, které jsou potřeba pro přenos těchto sgnálů ve statckém segmentu na sít FlexRay. Pro každou z varant algortmu jsou výsledkem dva sloupce. První sloupec udává počet slotů potřebných pro vypočtený rozvrh, ve druhém je celkový čas běhu algortmu pro danou množnu sgnálů. - 40 -
Původní Vylepšená DP Okno Zprávy Meze FP FF BFD DP BFD BFD BFD Mez FP - opt - FP-okno FP-mn všechny OZ FFD BF BF BF BF BF Mez OZ - opt opt OZ-okno OZ-mn všechny Tabulka 6 - Část algortmu použté v jednotlvých varantách algortmu Použté část v jednotlvých varantách algortmu jsou popsány v Tabulce 6. Část algortmu rozdělující sgnály k jednotlvým nodům a část rozvrhující optmalzované zprávy do slotů nejsou v tabulce zobrazeny, neboť je pro všechny varanty algortmu používána stejná varanta. Zároveň jsou pro jednotlvé varanty algortmu v tabulce uvedeny meze, které byly v dané varantě využty. Hodnota opt představuje mez, která byla zvolena pro všechny množny sgnálů jako nejlepší (stejná hodnota pro všechny množny sgnálů dává ve všech případech nejlepší výsledky), a jedná se tedy o jednu konstantní hodnotu zvolenou př analýze a vyhodnocování výsledků algortmu. Meze FP-okno a OZ-okno jsou takové meze, které zamezují spojování sgnálů č optmalzac zpráv, pokud by mělo dojít ke zmenšení časového okna u frame packngu, respektve u optmalzace zpráv. Naopak meze FP-mn a OZ-mn jsou takové meze, jež nekladou žádné překážky frame packngu č optmalzac zpráv, pokud je výsledek stále valdní. Tímto způsobem se snažíme získat co nejmenší počet optmalzovaných zpráv. Specálním případem je varanta algortmu Meze. Tato varanta nepoužívá jednu přednastavenou mez, ale testuje všechny možné kombnace mezí frame packngu a optmalzace zpráv. Jako výsledek vrací varantu rozvrhu, který dosáhl nejnžšího počtu slotů. Výpočet sdružování sgnálů do zpráv a optmalzace zpráv ve varantách algortmu Okno a Meze jsou částečně modfkovány. Například u varanty Okno není potřeba brát v úvahu sgnály s rozdílným časovým omezením, protože v této verz bylo nastaveno, že se nebudou zmenšovat časová okna. Uvedenou změnu proto respektuje výpočet ohodnocení. Z Tabulky 5 je vdět vylepšení výsledků mez původní a vylepšenou verzí algortmu. Tabulka 5 také ukazuje, že další expermenty s jednotlvým částm algortmu nepřnesly zlepšení, an zrychlení výpočtu. Využtí celočíselného lneárního programování pro umsťování optmalzovaných zpráv do slotů není v tabulce zahrnuto. Př využtí ILP nebyl nkdy nalezen rozvrh pro méně slotů, než pro kolk slotů byl - 41 -
vytvořen harmonogram komunkace pomocí heurstky. Taktéž je těmto výsledky ověřeno, že strktní mnmalzace počtu zpráv ve frame packngu a následné optmalzac zpráv nevede k rozvrhu, který potřebuje mnmum slotů, stejně tak jako velm důsledné zachovávání velkost časových oken. Přesto, že algortmus je možné paralelzovat, byl ve všech uvedených případech spouštěn na jednom počítač s jedním jednojádrovým procesorem pro jednodušší možnost porovnání doby běhu s jž dostupným algortmy. Využtým běhovým prostředím byl Matlab 2009b na operačním systému Mcrosoft Wndows XP. Počítač byl vybaven procesorem Intel Core 2 Solo a 1GB operační pamět. 3.2. Srovnání s exstujícím metodam Nejlepší verze vytvořeného algortmu popsána v této dplomové prác byla v testech schopna rozvrhovat množny sgnálů obsahující téměř 3000 sgnálů pro jeden node za méně než 3 vteřny. Žádná z doposud dostupných možností rozvrhování statckého segmentu sítě FlexRay s použtím všech časových omezení, ve které je uvedena doba výpočtu, se této hodnotě an nepřblžuje. Exstuje jen velm málo možností jak rozvrhovat sgnály se všem časovým omezením (release tme, deadlne a peroda). Rozvrhování respektující tato omezení se začínají objevovat teprve v poslední době. Přestože už v dnešních luxusních vozech je až 70 ECU, které mez sebou komunkují a předávají s až 2500 sgnálů[1], dostupné metody rozvrhování sgnálů ve statckém segmentu počítají s desítkam, maxmálně stovkam sgnálů. Navíc výpočet rozvrhu komunkace pro takové množství sgnálů je časově náročný. Pomocí heurstky v [25] byl vypočten rozvrh pro 28 sgnálů v řádu jednotek mnut. V této prác je však uvažováno opakování přenosu sgnálu pro zajštění spolehlvost př výpadcích komunkace. Algortmus využívající MILP v [27] respektuje všechna časová omezení vstupních sgnálů. Výpočet rozvrhu pro 196 sgnálů trvá přblžně hodnu, ale prokázání optmalty pro tyto sgnály trvá déle než jeden den. Stejně jako algortmus vyvnutý v této dplomové prác, autoř [22] se rozhodl pro rozvrhování sgnálů separátně pro každý node. Motvací v uvedeném článku byla - 42 -
potřeba rozvrhování velkého množství sgnálů, které jsou v současnost popsány pro sběrnc CAN. Srovnání vyvnutého algortmu na stejných množnách sgnálů jako využíval autoř exstujících metod rozvrhování nebylo provedeno. Jedním z důvodů bylo to, že oslovení autoř jž neměl testované množny sgnálů k dspozc. Další důvodem byla skutečnost, že většna využívaných způsobů rozvrhování sgnálů ve statckém segmentu nepočítá s časovým omezením jednotlvých sgnálů, a proto by an př použtí stejných množn sgnálů nebylo porovnání výsledků relevantní. 3.3. Ověření algortmu na fyzcké sít Pro ověření a demonstrac provedtelnost vygenerovaných rozvrhů byl realzován praktcký test na sít FlexRay. K náhodně vybrané množně sgnálů byly přdány ukázkové sgnály z kaptoly 3.2.3. jako sgnály dalšího nodu a takto vyrobená nová množna sgnálů byla požta jako vstup algortmu. Výsledkem algortmu byl rozvrh na 36 slotů, z nchž poslední 4 sloty byly určeny pro nám přdaný node. Jednotlvá zařízení (založená na mkrokontrolérech Freescale MC9S12XF) na testovací sít FlexRay sestavené na katedře měření (vz Obrázek 20) byla nakonfgurována podle vygenerovaného algortmu. Ke sběrnc byl přpojen oscloskop Tektronx řady MSO/DPO4000B, který je schopen přímo dekódovat provoz na sít FlexRay. Výstup z oscloskopu je zachycen na Obrázku 3, kde je zobrazena část jednoho komunkačního cyklu. Záznam obrazovky oscloskopu ukazuje čtyř statcké sloty, do kterých byly rozvrhnuty sgnály použté pro ukázku fungování algortmu. V řádcích označených stejně jako ukázkové sgnály jsou ve chvílích, kdy je přenášen ten sgnál, podle kterého je řádek pojmenován, zobrazeny jednotkové mpulsy. Pokud porovnáme rozvrh vygenerovaný vyvnutým algortmem z Obrázku 17 (za pomoc Tabulky 4 pro převod optmalzovaných zpráv zpět na jednotlvé sgnály) a zachycené komunkace na sít FlexRay pomocí oscloskopu na Obrázku 21, zjstíme, že je př reálné komunkac opravdu dodržen vypočtený rozvrh. - 43 -
Obrázek 20 - Sestava testovací sítě FlexRay Obrázek 21 - Komunkace na sběrnc př praktckém testu zobrazena na oscloskopu [11] - 44 -