ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická katedra měření DIPLOMOVÁ PRÁCE Metody měření vybraných parametrů komunikačního standardu FlexRay a jejich implementace 2007
Anotace Tato práce se zabývá studiem specifických vlastností nového komunikačního standardu z oblasti automotive standardu FlexRay. Hledá nepsané souvislosti standardu a přenáší jeho teorii do praxe. Dále se zabývá vybudováním demonstrační sítě postavené na bázi těchto znalostí, výběrem/realizací hardwaru a vytvořením univerzálního programového kódu jednotlivých nódů. Nakonec se zaměřuje na metodu analýzy vybraného parametru délky komunikačního cyklu stanice v souvislosti se soustavně probíhající časovou synchronizací. Metoda měření je odvozena a dále převedena do praxe implementací do hradlového pole FPGA. Annotation This thesis deals with study specific features of a new communication standard from automotive branch The FlexRay standard. It finds unwritten context of standard and applies its theory into practices. It deals further with build up demonstration network based on obtained knowledge, with selection and implementation of the hardware and with writing universal program code of used nodes. The last it focusing on a method of analysis selected parameter communication cycle length of each node in relation with systematically executed time synchronizing. Measurement method is educed and then transfered into practices by implementation in glue logic (FPGA).
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil pouze podklady (literaturu, projekty, SW) uvedené v přiloženém seznamu. V Praze dne 19.1.2007 podpis
Poděkování Chtěl bych tímto poděkovat své rodině, která mě zejména zpočátku studií hodně podporovala a motivovala. Dále bych chtěl nejmenovitě poděkovat některým kolegům z oboru, kteří pro mě vždycky byli a jsou dobrou inspirací. A konečné poděkování patří Ing. Janu Malinskému, jako vedoucímu diplomové práce, který akceptoval mé návrhy na trochu odlišné směrování diplomové práce, než bylo míněno zadáním.
Obsah Obsah...1 Seznam obrázků...3 1 Úvod...5 1.1 Motivace pro nový standard sběrnice v automotive...5 1.2 Historie standardu a současný trh...9 1.3 Cíl práce...12 2 Rozbor zadání...13 2.1 Požadavky...13 2.2 Koncepce řešení...13 3 Standard FlexRay...15 3.1 Představení...15 3.2 Porovnání s dalšími standardy (LIN x CAN x FlexRay)...16 3.3 Topologie sítě...19 3.4 Fyzická vrstva...21 3.5 FlexRay stanice...24 3.6 Komunikační cyklus...25 3.6.1 Formát rámce...26 3.6.2 Statický segment, kódování rámců...28 3.6.3 Dynamický segment, kódování rámců...32 3.6.4 Symbolové okno, kódování...35 3.6.5 Klidový stav...36 3.7 Vzorkování příchozích bitů komunikačním kontrolérem...37 3.8 Synchronizace stanic, hierarchie časování...38 3.8.1 Základní hierarchie časování...38 3.8.2 Časová synchronizace stanic...39 3.9 Wake-up, Start-up clusteru...42 3.9.1 Wake-up clusteru, kódování...42 3.9.2 Start-up clusteru...43 3.10 Závěrečné ustavení...46 4 Stavba demonstrační sítě...47 4.1 Možnosti užitého hardwaru...48 4.1.1 Mikrokontrolér MC9S12XDP512...48 4.1.2 Vývojový kit SK-S12XDP512-A...49 4.1.3 Komunikační kontrolér MFR4200, výjimky v implementaci protokolu...50 4.1.4 Ovladač sběrnice TJA1080...52 4.1.5 Deska FRDC s MFR4200 a 2x TJA1080...53 4.2 Využitá konfigurace realizačních prostředků...54 4.2.1 Propojení signálových linek mezi deskami...54 4.2.2 Vliv propojení desek na funkci periférií vývojového kitu...57 4.2.3 Konfigurace DIP switchů a jumperů na obou deskách...58 4.3 Popis firmware stanice demonstrační sítě...59 4.3.1 Namapování periferie MFR4200 do paměťového rozsahu mikrokontroléru MC9S12XDP512, rychlost přístupu...59 4.3.2 Hlavní program, vývojový diagram...60 4.3.3 Inicializace periférií integrovaných na čipu...67 4.3.4 Inicializace TJA1080 a registrů MFR4200...68 4.3.5 Výpočet CRC hlavičky rámce...72-1 -
4.3.6 Zaslání žádosti o start, nastavitelné prodlení...74 4.4 Firmware z pohledu obsluhy stanice pracující s oknem hyperterminálu (Windows)...75 4.4.1 První připojení stanice k počítači...75 4.4.2 Podporované příkazy...75 4.4.3 Demonstrativní přenos dat...77 5 Analýza za pomoci hradlového pole FPGA...78 5.1 Vybraný parametr proměnná délka komunikačního cyklu stanice...79 5.2 Nóniová metoda měření časového intervalu...80 5.2.1 Klasické hradlování, idea, odvození...81 5.2.2 Nedostatky metody, potřeby...82 5.2.3 Nóniová metoda, idea, odvození...83 5.2.4 Nóniová metoda, vylepšení...87 5.3 Od teorie k praxi adaptace na daný problém, užití metody...88 5.4 Využitá konfigurace realizačních prostředků...90 5.4.1 Vývojová deska...90 5.4.2 Použité I/O porty hradlového pole...91 5.5 Popis měřícího automatu...92 5.5.1 Obecný popis funkce...92 5.5.2 VHDL kód, blokové schéma měřícího automatu/analyzátoru...96 5.6 Měřící automat/analyzátor z pohledu obsluhy...100 5.7 Naměřené výsledky...102 5.7.1 Použité přístroje...103 5.7.2 Proměnná délka komunikačního cyklu FlexRay...103 5.7.3 Simulované časové intervaly pro ověření metody...106 6 Závěr...108 Použitá literatura...109 Příloha A schéma vývojového kitu SK-S12XDP512-A...111 Příloha B schéma Freescale Generic FlexRay Daughter Card...116 Příloha C ukázka obsluhy stanice v okně Hyperterminálu...120 Příloha D struktura přiloženého CD...126-2 -
Seznam obrázků Obr. 1-1 Současná architektura a rozložení sběrnic ve vozidle VW Golf V...6 Obr. 1-2 Univerzální příklad stávajícího obsazení elektroniky vozu...7 Obr. 1-3 Trend vývoje obsazení elektroniky ve vozidle...7 Obr. 1-4 FlexRay Protocol Roadmap...10 Obr. 1-5 Nová generace automobilu se sběrnicí FlexRay Philips...11 Obr. 1-6 Fujitsu FPGA-Eva-Kit...11 Obr. 2-1 Diplomová práce Jiří Prokeš r. 2005...13 Obr. 3-1 Předpokládané nasazení sítě FlexRay v automobilu...15 Obr. 3-2 Závislost reálné přenosové rychlosti stanice na požadované TDMA...16 Obr. 3-3 Arbitráž zpráv na sběrnici CAN...17 Obr. 3-4 Závislost reálné přenosové rychlosti stanice na požadované CAN CSMA...17 Obr. 3-5 Srovnání standardů LIN x CAN x FlexRay...18 Obr. 3-6 Spojení typu bod-bod...19 Obr. 3-7 Topologie pasivní sběrnice...19 Obr. 3-8 Topologie pasivní hvězda...19 Obr. 3-9 Topologie aktivní hvězda...20 Obr. 3-10 Hybridní topologie...20 Obr. 3-11 Diferenciální sběrnice...21 Obr. 3-12 Elektrické stavy na sběrnici...22 Obr. 3-13 Testovací konfigurace pro měření průběhu diferenciálního signálu...23 Obr. 3-14 Minimální požadavky na průběh výstupního signálu...23 Obr. 3-15 Minimální požadavky na průběh vstupního signálu...23 Obr. 3-16 Architektura stanice na sběrnici...24 Obr. 3-17 Komunikační cyklus...25 Obr. 3-18 Formát rámce...26 Obr. 3-19 Kódování rámce, statický segment...31 Obr. 3-20 Příklad rozvržení komunikačního cyklu FlexRay (bez symbolového okna)...34 Obr. 3-21 Kódování rámce, dynamický segment...35 Obr. 3-22 Kódování CAS a MTS v symbolovém okně...36 Obr. 3-23 Vzorkování stavu sběrnice, většinová volba...37 Obr. 3-24 Hierarchie časování...38 Obr. 3-25 Stanovení parametru k...40 Obr. 3-26 Výpočet konečné odchylky pro korekci...40 Obr. 3-27 Potřebnost korekce rychlosti i offsetu...41 Obr. 3-28 Prováděné korekce v komunikačních cyklech...41 Obr. 3-29 Iniciátor vzbuzení clusteru...42 Obr. 3-30 Kódování WUS...43 Obr. 3-31 Stavový diagram Start-up procesu (ColdStart Node)...44 Obr. 3-32 Stavový diagram integračního procesu Sync nebo Normal Node...44 Obr. 3-33 Start-up proces pro stanice s různou rolí...45 Obr. 4-1 Freescale Generic FlexRay Daughter Card...47 Obr. 4-2 SofTec Automotive Development Kit SK-S12XDP512-A...47 Obr. 4-3 Zapojení asynchronního paměťového interface MFR4200...53 Obr. 4-4 Zapojení HCS12 synchronního interface MFR4200...54 Obr. 4-5 Propojení signálů mezi mikrokontrolérem a ovladači sběrnice TJA1080...55 Obr. 4-6 Módy činnosti ovladačů sběrnice TJA1080...56 Obr. 4-7 Obsazené porty mikrokontroléru zasunutím FRDC desky...57-3 -
Obr. 4-8 Konfigurace DIP switchů a jumperů nódu...58 Obr. 4-9 Globální paměťový prostor mikrokontroléru MC9S12XDP512...59 Obr. 4-10 Vývojový diagram hlavního programu 1...61 Obr. 4-11 Vývojový diagram hlavního programu 2...62 Obr. 4-12 Vývojový diagram hlavního programu 3...63 Obr. 4-13 Vývojový diagram hlavního programu 4...64 Obr. 4-14 Vývojový diagram hlavního programu 5...65 Obr. 4-15 Vývojový diagram hlavního programu 6...66 Obr. 4-16 Vývojový diagram hlavního programu 7...67 Obr. 4-17 Tabulka konkrétního nastavení registrů MFR4200...71 Obr. 4-18 Výpočet CRC s generujícím polynomem...73 Obr. 4-19 Výpočet CRC s CRC polynomem...73 Obr. 4-20 Algoritmus výpočtu CRC hlavičky rámce...73 Obr. 5-1 EP1S80 DSP vývojová deska...78 Obr. 5-2 Klasické hradlování hodinového signálu, situace 1...81 Obr. 5-3 Klasické hradlování hodinového signálu, situace 2...81 Obr. 5-4 Nóniová metoda, idea, odvození...83 Obr. 5-5 Nóniová metoda klasicky...87 Obr. 5-6 Nóniová metoda s cejchováním...87 Obr. 5-7 Generování okna pro povolení průchodu START/STOP události...89 Obr. 5-8 Použité I/O porty hradlového pole...91 Obr. 5-9 Obecný popis funkce měřícího automatu...94 Obr. 5-10 Detail funkce imaginárního čítače 2...95 Obr. 5-11 Blokové schéma měřícího automatu - generátor oken, zobrazovač...96 Obr. 5-12 Blokové schéma měřícího automatu - rychle startující generátor, interpretr dat po sériové lince...97 Obr. 5-13 Blokové schéma měřícího automatu - hlavní automat, čítače, cejchovací automat...98 Obr. 5-14 Blokové schéma měřícího automatu - bloky vstupů a výstupů...100 Obr. 5-15 Histogram délek komunikačních cyklů, 65536 naměřených údajů...104 Obr. 5-16 Histogram délek komunikačních cyklů, 262144 naměřených údajů...105 Obr. 5-17 Simulovaný cyklus o proměnné délce, pohled 1...106 Obr. 5-18 Simulovaný cyklus o proměnné délce, pohled 2...106 Obr. 5-19 Simulovaný cyklus o proměnné délce, pohled 3...107-4 -
1 Úvod 1.1 Motivace pro nový standard sběrnice v automotive V poslední době se na automobilovém trhu můžeme setkat s novými trendy, jejichž podstatou je zásah do různých podskupin řízení vozu. Zprvu to byly trendy ke zvýšení vlastní bezpečnosti posádky vozidla, v současné době jsou to již trendy ke zvýšení celkové bezpečnosti silničního provozu a v neposlední řadě také zvýšení komfortu řízení vozu. Vyjmenujme si několik příkladů těch nejviditelnějších zástupců: ABS (Antilock Braking System) zabraňující ztrátě adheze jednotlivých kol v podélném směru vznikající při prudkém brzdění či brzdění na povrchu, který nemá v tomto směru optimální vlastnosti ESP (Electronic Stability Program) založený na okamžitém vyhodnocování parametrů o jízdě a aktivním vyrovnávání přetáčivosti i nedotáčivosti vozu způsobenou ztrátou adheze kol v bočním směru EBD (Electronic Brake force Distribution) zajišťující elektronické rozdělení brzdné síly mezi kola vozu tak, aby bylo dosaženo za nepříznivých podmínek požadovaného brzdného účinku nebo alespoň maximálně možného MSR (Motors-Schleppmoment-Regelung) zamezující negativnímu vlivu brzdného účinku motoru na chování vozidla při rychlém podřazení či rychlém sundání nohy z plynu ASR/TCS (Traction Control System) regulující prokluz kol hnaných náprav při prudké akceleraci (podle přidružených funkcí a historií jsou označení těchto systémů mezi výrobci různá) systém pro udržování bezpečného odstupu automobilu od objektu jedoucího vpředu v závislosti na rychlosti a dalších faktorech ovlivňujících bezpečnost provozu systém pro zásah do řízení směru vozidla v krizových situacích jako je vyhýbání se překážce automatický parkovací asistent ovládající celé řízení automobilu K systémům pro zvýšení vlastní bezpečnosti posádky vozidla musíme přidat také systém AIRBAGů ve vozidle, který do seznamu systémů ovlivňujících řízení vozu nepatří. - 5 -
Jmenované systémy zahrnující senzory, akční členy a elektronické řídící jednotky (ECU) jsou ve většině dnešních automobilů propojeny sběrnicí CAN (Controller Area Network), jakožto primární sběrnicí dovolující všem zařízením komunikovat, sdílet informace a pracovat s jinými zařízeními. Již dnes je ale díky počtu zařízení a možnosti ovlivnění některých základních funkcí automobilu chybou v jiném nedůležitém zařízení rozdělena sběrnice na několik částí. Můžeme říci dokonce, že systémy automobilu se během vývoje rozdělily na několik skupin, každý s vlastní komunikační sběrnicí, jejíž stav a vytížení by neměl ovlivňovat funkce jiné skupiny. Tento záměr samozřejmě v reálném voze splněn není,protožeřada funkcí je globálních a zasahujících do funkcí více skupin a tak zde určitá provázanost existuje. Na složitost současné situace se můžeme podívat na příkladu vozidla VW Golf páté generace (Obr. 1-1). Obr. 1-1 Současná architektura a rozložení sběrnic ve vozidle VW Golf V - 6 -
Řešení spočívající v rozdělení sběrnic do několika okruhů je tedy ulička pro další vývoj slepá. Se vzrůstající složitostí systému a s velkým členěním vzniká opět poptávka po snížení počtu sběrnic v automobilu, po zvýšení jejich přenosové rychlosti a po zamezení vlivu chyby jednoho přístroje na komunikaci mezi ostatními (hledání jiného mechanismu přístupu na sběrnici, než je dnešní CSMA Carrier Sense Multiple Access metoda na sběrnici CAN). Obr. 1-2 Univerzální příklad stávajícího obsazení elektroniky vozu Vývoj jde stále kupředu a mnohé trendy mluví o technologiích by-wire. Všechny tyto podměty vedly některé výrobce k zamyšlení nad sběrnicí nové generace. Nejprve bychom si měli ale vysvětlit, co termín by-wire v oboru automotive znamená. Jedná se především o termíny drive-by-wire, break-by-wire, safe-by-wire, kde stávající mechanické a hydraulické vazby v budoucnu plně nahradí elektronika a přenos informace elektronickou cestou. Ihned samozřejmě vyvstávají otázky: Budou tato auta dostatečně bezpečná, když člověk nebude moci mechanickým úkonem zabrzdit, čizměnit směr jízdy? Co když přenos informace selže? Tyto otázky byly spolu s nedostatečnou kapacitou sběrnice CAN pro stávající obsazení elektroniky vozu (Obr. 1-2), která v budoucnu ještě poroste (Obr. 1-3), hlavním motorem pro vývoj nového standardu automobilové sběrnice. Obr. 1-3 Trend vývoje obsazení elektroniky ve vozidle - 7 -
Heslovitě tedy hlavní body motivace pro nový standard automobilové sběrnice: trh si žádá nový široce dostupný průmyslový standard pro komunikační systém vozu současný zvyšující se počet různých komunikačních systémů ve voze je neudržitelný poptávka po vyšších přenosových rychlostech po sloučení sběrnic požadavek na deterministickou síť, u které je do detailu známo a je předvídatelné zpoždění při přenosu zprávy a chování při jakémkoliv vytížení sběrnice (důležité pro technologie by-wire ) požadavek na bezkolizní/bezchybovou síť související s předchozím bodem požadavek na sběrnici dovolující použití distribuovaného řídícího systému, opět souvisí s výše uvedeným bodem a známou latencí přenosu informace zvýšení bezpečnosti přenosu fyzickým médiem (sekundární záložní kanál) - 8 -
1.2 Historie standardu a současný trh Některé z výše uvedených požadavků vedly výrobce k určitému vlastnímu výzkumu. Nejvíce se v této oblasti angažovaly firmy BMW a DaimlerChrysler. Záhy se ale zjistilo, že nově kladené požadavky nesplňuje žádný z do té doby existujících komunikačních protokolů nebo že existující protokoly v některých bodech nevyhovují. Vznikla tedy potřeba spolupráce na novém protokolu jako standardu pro budoucí nové automobily s moderními technologiemi. To vše se dělo před rokem 1999. V roce 2000 je tedy založeno konsorcium FlexRay postavené na spolupráci firem BMW, DaimlerChrysler, Philips a Motorola Semiconductor Product Sector (nyní Freescale Semiconductor), o něco později doplněné o firmu Bosch. V roce 2001 se připojuje firma GM (General Motors) a v roce 2003 VW AG (Volkswagen Automobile Group). Konsorcium má v současnosti 7 výše uvedených hlavních členů, dále pak 13 prémiových členů a dalších 47 přidružených členů. V blízké budoucnosti se mluví o dalších 26 členech z řad firem ze sektoru vývoje pro automobilový průmysl. Ke konci roku 2005 byla konsorciem zveřejněna specifikace protokolu, fyzické vrstvy a další přidružené dokumenty verze V2.1 a dále popis funkce a chování členu Bus Guardian ve verzi V2.0.9. - 9 -
Nyní se pojďme podívat a prozkoumat současný trh elektroniky. Na obrázku (Obr. 1-4) vidíme roadmapu verzí specifikace protokolu FlexRay spolu se součástkovou základnou firmy Freescale a Philips. Nutno podotknout, že komunikační kontrolér MFR4200 je stále k dispozici pouze v předprodukčních vzorcích a zřejmě se nikdy komerčně vyrábět nebude. Obr. 1-4 FlexRay Protocol Roadmap Je postaven na starší specifikaci V1.1, obsahuje řadu chyb (viz. kapitola 4.1.3 Komunikační kontrolér MFR4200, výjimky v implementaci protokolu) a neimplementuje zcela všechna specifika protokolu FlexRay. Již během realizace diplomové práce měla firma Freescale ve vzorcích pro členy konsorcia kontrolér MFR4300 s implementací protokolu V2.1 a s odstraněním známých chyb svého předchůdce. Bohužel se nám jej podařilo získat až v závěru roku 2006, tedy před dokončením diplomové práce. Freescale také pokračuje ve vývoji integrovaných řešení procesoru spolu s kontrolérem na jednom čipu na bázi procesorů S12XFR, MPC55xxFR. Označení procesor, které je užito je zavádějící, ale v textu lépe odlišitelné. Správný výraz pro procesor s integrovanými perifériemi je mikrokontrolér. - 10 -
Výrobce Philips kromě budiče sběrnice TJA1080 vyvinul procesor SJA2510 na bázi jádra ARM9 s integrovaným komunikačním kontrolérem sběrnice FlexRay ve verzi V2.1. V současné době je od konce roku 2005 dostupný ve vzorcích pro členy konsorcia a bohužel zatím pro širší okruh nedostupný. Mělo by jít o první na světě vyráběné integrované řešení na jednom čipu na bázi standardu FlexRay. Obr. 1-5 Nová generace automobilu se sběrnicí FlexRay Philips Dalším hráčem na trhu výrobců je Fujitsu (Obr. 1-6), o jehož aktivitách a návaznostech nemáme mnoho informací. Za zmínku stojí, že Fujitsu byla první firma s implementací protokolu V2.1 na křemíku. Obr. 1-6 Fujitsu FPGA-Eva-Kit - 11 -
1.3 Cíl práce Diplomová práce se věnuje jednou třetinou studiu obsáhlého standardu FlexRay, jakožto novému trendu v automotive a jeho přiblížení těm, kteří si tuto práci přečtou. Tato část práce si neklade za cíl jen výtah důležitých bodů standardu, ale je i obohacena o postřehy a zkušenosti z provozu a ladění sítě a uvádí některé souvislosti mezi uvedenými vlastnostmi standardu. Další třetinou se věnuje vybudování demonstrační sítě postavené na bázi tohoto standardu, výběrem/realizací hardwaru a vytvořením univerzálního programového kódu jednotlivých nódů. Firmware řídícího mikrokontroléru je udělán tak, aby se choval maximálně variabilně a mohl tak být použit pro demonstrace této sítě jak na akademické půdě, tak i jinde, bez nutnosti zásahu do programu. To v důsledku znamená, že se nód chová po připojení k počítači přes sériový port jako virtuální konzole s nativním příkazovým řádkem, kde je možno zadávat příkazy jako help, whois?, či jiné, sloužící ke konfiguraci některých funkcí nódu, v případně nutnosti i ke konfiguraci, vyčítání a zobrazování registrů obsluhovaného komunikačního kontroléru sběrnice FlexRay. Poslední třetinou se diplomová práce věnuje měření a analýze vybraných parametrů běžící sběrnice za pomocí hradlového pole FPGA. V tomto případě se specializuje na proměnný parametr délky komunikačního cyklu v souvislosti se soustavně probíhající synchronizací časové základny stanice na globální časové parametry sítě. Pro tento účel byla použita idea noniového měřiče časového intervalu, avšak důkladně přepracovaného pro účel kontinuálního měření po sobě jdoucích cyklů, cejchovaného během každé etapy odměru a adaptovaného na možnosti digitální techniky FPGA. Metoda zde bude důkladně popsána a odvozena. Hlavním cílem je ale uvedení tohoto významného tématu do praxe v České republice a dále inženýrská práce na předvýrobních vzorcích bez technické podpory výrobce a s nedostatkem informací typickým pro období před vypuštěním na trh (pozn.: okolo termínu odevzdání DP lze již běžněji nalézt informace týkající se tohoto tématu, MFR4300 byl vypuštěn na trh vč. podpory). Tato diplomová práce by měla sloužit také jako reálná základna pro disertační práci, popř. další diplomové práce v oboru. - 12 -
2 Rozbor zadání 2.1 Požadavky Zadání diplomové práce hovoří o návrhu metod měření vybraných parametrů sběrnice FlexRay a to zejména o návrhu metod pro měření časování a synchronizačních procesů v clusteru této sběrnice a dalších funkcích. Navržená řešení mají být implementována za pomocí jazyka VHDL do programovatelného hradlového pole FPGA. Zadání předpokládá převzetí funkční sběrnice od předchůdce zabývajícím se tématikou na katedře měření. 2.2 Koncepce řešení Nedostatek informací a předvýrobních vzorků kontrolérů MFR4200/MFR4300 bohužel donutil předchůdce zpracovat tématiku pouze teoreticky a to popisem daného kontroléru a sběrnice. Práce je tedy přeloženým výtahem ze zmíněných oblastí a neřeší tedy fyzické problémy. Dalším možným zdrojem byla diplomová práce z roku 2005, jejímž řešitelem byl pan Jiří Prokeš. Ta měla za úkol zejména vyvinout pro firmu ST Microelectronics hardwarové rozhraní AMI-APB mezi IP funkcí implementovanou do hradlového pole FPGA a mikrokontrolérem STA2051, jenž měl plnit funkci řídicí jednotky (Obr. 2-1). Obr. 2-1 Diplomová práce Jiří Prokeš r. 2005-13 -
APB je rozhraní vnitřní sběrnice mikrokontroléru s jádrem ARM7 a tedy IP funkce implementovaná v externím hradlovém poli nebyla připojitelná k výstupnímu rozhraní tohoto mikrokontroléru (EMI). Výsledkem práce byl tak zejména tento interface. Navíc zapůjčené desky si firma ST odebrala zpět a tak na katedře měření nezůstal celkově funkční hardware. Tyto skutečnosti mě vedly k postavení nové funkční sítě s vlastním hardwarem a vlastním programem jednotlivých nódů psaném v jazyce C pro mikrokontroléry umožňující svými funkcemi rekonfigurovatelnost a vhodnost pro demonstrační účely a následná měření. Vznikl tak odklon od zadání diplomové práce směrem k cílům diplomové práce popsaných v kapitole 1.3 Cíl práce. Na doslovné řešení vytyčených problémů v zadání tak zbylo méně prostoru. - 14 -
3 Standard FlexRay 3.1 Představení Standard FlexRay popisuje jak komunikační protokol a chování jednotlivých zařízení (nódů) vzhledem k síti (clusteru), tak i specifikuje parametry fyzické vrstvy. Byl vyvinut speciálně pro obor automotive a to zejména pro oblasti, kde je zapotřebí v předem známém garantovaném čase plná doručitelnost zprávy a předvídatelné chování celé sítě. Tytoklíčové parametry dovolují použití distribuovaného řídícího systému a bezpečnostních aplikací ovládající řízení vozidla bez mechanických přenosových prvků informace. Síť je dále jištěna dvojitou cestou pro přenos informace, která však nemusí být v nekritických aplikacích využita. Každá stanice (nód) může navíc obsahovat volitelný hlídací člen (bus guardian), který kontroluje korektní chování komunikačního kontroléru a zamezuje fyzickému přístupu na médium v nevlastněných časových slotech. To zabraňuje zejména vzniku kolizí na síti, jakémukoliv nedefinovanému stavu či rozpadu komunikace, popř. celé sítě. Předpokládané nasazení sítě FlexRay v automobilu je ve výše uvedených aplikacích vyžadujících bezpečnost a deterministické chování sítě. Dále se díky vyšší přenosové rychlosti 10Mb/s a svým vlastnostem uplatní jako páteřní síť vozidla (Obr. 3-1). Obr. 3-1 Předpokládané nasazení sítě FlexRay v automobilu - 15 -
3.2 Porovnání s dalšími standardy (LIN x CAN x FlexRay) U standardu FlexRay je na sběrnici přistupováno metodou TDMA (Time Division Multiple Access), česky vícenásobný přístup s časovým dělením. Prakticky to znamená rozdělení kanálu na časové úseky (time sloty), které jsou přiděleny účastníkům nebo jejich podfunkcím k vysílání. Ostatní účastníci nebo jejich podfunkce mohou v jakémkoliv time slotu poslouchat a odebírat si z něj data. Rozdělení time slotů jevtomto případě před rozběhnutím sběrnice známo a musí být nastaveno. Nevýhodou tohoto uspořádání je možnost nevyužití přenosové kapacity média, pokud rozdělené sloty nebudou obsazeny přenosem dat. Tato situace nastane v případě, že v automobilu bude vždy univerzálně nakonfigurovaná síť, avšak při výrobě nebudou některé jednotky v závislosti na výbavě vozu obsazeny. Výhodou této sítě je, že při rostoucím požadavku na přenos dat poroste i reálný objem přenesených dat za určitý časový úsek a to až do limitu daným přidělenou přenosovou rychlostí (Obr. 3-2). Obr. 3-2 Závislost reálné přenosové rychlosti stanice na požadované TDMA Tento limit se přibližně rovná: PPS / PSnC PPR = * PRVS CPS ; kde: PPR přidělená přenosová rychlost PPS přidělený počet slotů v komunikačním cyklu PSnC právo na slot v každém n-tém komunikačním cyklu (doplňuje se číslo n) CPS celkový počet slotů v komunikačním cyklu PRVS přenosová rychlost všech slotů v komunikačním cyklu - 16 -
U standardu CAN (Controller Area Network) je na sběrnici přistupováno metodou CSMA (Carrier Sense Multiple Access), česky vícenásobný přístup s detekcí nosné/probíhající komunikace. Prakticky to znamená, že pokud chce zařízení vyslat data, přistupuje na médium až po detekci klidového stavu. Při vysílání pak provádí příposlech na sběrnici a pokud detekuje dominantní úroveň, zatímco samo vysílá recesivní, ihned přestane s přenosem. Obr. 3-3 Arbitráž zpráv na sběrnici CAN Tato vlastnost je využívána zejména ve chvíli, kdy po detekci klidového stavu chtějí dvě nebo více zařízení ve stejný čas přistoupit na sběrnici (Obr. 3-3). V tom případě bude přenesena zpráva s nejnižším číslem, tzv. identifikátorem, jehož bitové složení je v danou chvíli na sběrnici dominantní (příklad: v systému vysílačů s otevřeným kolektorem je dominantní úroveň 0 ). Pomocí identifikátorů na začátku zprávy tak vzniká priorita paketů. Nevýhodou tohoto uspořádání je negarantovaná doručitelnost a latence zpráv s vyšším číslem identifikátoru při obsazení přenosové kapacity média zprávami s nízkými čísly identifikátorů (Obr. 3-4) a také možnost ovlivnění či výpadku celé sítě při chybném fungování firmwaru v některém ze zařízení. Obr. 3-4 Závislost reálné přenosové rychlosti stanice na požadované CAN CSMA - 17 -
Možno ještě podotknout, že každé zařízení přijímá všechny zprávy a následně podle vlastního nastavitelného filtru čísel zpráv rozhodne, zda zprávu dále zpracuje. Identifikátor vyslané zprávy tak často nenese údaj o zasílateli ani příjemci, ale o významu obsahu dat uložených ve zprávě. U standardu LIN (Local Interconnect Network) je na sběrnici přistupováno metodou MASTER-SLAVE. To znamená, že přístup je kontrolován jedním hlavním zařízením na sběrnici a na stranu podřízených zařízení se neklade žádný požadavek na arbitráž či management kolizních stavů. Hlavní výhodou této sběrnice je její jednoduchost a nízká cena implementace zařízení. Sběrnice je založena na jednoduchosti SCI (UART) interface. Nízká přenosová rychlost 20kbit/s nemusí být považována za nevýhodu, protože již od zrodu této sběrnice je znám cílový segment této nenáročné technologie. Na závěr si uvedeme srovnávací tabulku výše uvedených standardů (Obr. klíčovými vlastnostmi. 3-5) s jejich Obr. 3-5 Srovnání standardů LIN x CAN x FlexRay - 18 -
3.3 Topologie sítě Existuje samozřejmě mnoho kombinací zapojení nódů do sítě. Cluster FlexRay může obsahovat jeden či dva komunikační kanály. Základními topologiemi jsou však zapojení sběrnice, hvězda, či hybridní topologie. Zapojení hvězda může obsahovat jak pasivní, tak aktivní zařízení na distribuci komunikace do jednotlivých větví zapojených jako bod-bod (Obr. 3-6). Obr. 3-6 Spojení typu bod-bod Základním parametrem sběrnice je maximální vzdálenost Ibus mezi dvěma libovolnými stanicemi maximálně 24m, výjimku tvoří zapojení s aktivními hvězdami, které tuto vzdálenost prodlužuje. Dalším významným parametrem je zpoždění signálu Tpd po průchodu sítí, které nesmí být mezi žádnými stanicemi clusteru větší než 2,5µs. Nyní se pojďme podívat na parametry vybraných topologií. U topologie pasivní sběrnice (Obr. 3-7) i pasivní hvězdy (Obr. 3-8) opět platí, že součet délek sběrnice mezi dvěma libovolnými zařízeními nesmí přesáhnout 24m. Maximální počet odboček sběrnice resp. ramen hvězdyatedyi připojených zařízení je 22. Topologie hvězda má logicky jediné pasivní spojení všech linek v jednom bodě. Obr. 3-7 Topologie pasivní sběrnice Obr. 3-8 Topologie pasivní hvězda - 19 -
Topologie aktivní hvězda (Obr. 3-9) nám dovoluje prodloužit elektrickou vzdálenost mezi nódy při zachování maximální délky jednotlivých pasivních úseků sběrnice. Stále ale platí pravidlo pro maximální zpoždění signálu průchodem sítí při komunikaci mezi dvěma libovolnými zařízeními v clusteru. Obr. 3-9 Topologie aktivní hvězda Využitím a spojením těchto topologií v jedné síti se dostaneme k hybridní topologii, která může vypadat, jak udává příklad na obrázku (Obr. 3-10). Konfigurace sítě může dokonce vypadat i tak, že kanál A bude mít v clusteru topologii aktivní hvězda, zatímco kanál B bude pasivní sběrnice. Další popis a specifikace viz. kapitola Použitá literatura. Obr. 3-10 Hybridní topologie - 20 -
3.4 Fyzická vrstva Každý nód (stanice na sběrnici) obsahuje ovladač dvou identických kanálů. Elektrický přenos signálů v clusteru je prováděn zapomocídiferenciální sběrnice (Obr. 3-11). To je samozřejmě známá záležitost v oboru průmyslových sběrnic. Jejími hlavními výhodami jsou dobrá odolnost proti rušení za použití levných nestíněných kroucených vodičů a na druhou stranu také dobrá elektromagnetická slučitelnost v souvislosti s vyzařováním do okolí. Pokud se na médium (oba vodiče linky) dostane kapacitní vazbou sériové rušení x z okolí ve stejné míře, jeho výsledný efekt je na konci linky po zesílení signálu ideálním rozdílovým zesilovačem nulový. To samé platí pro rušení souhlasné, které vzniká při rozdílném potenciálu zemí vysílače a přijímače. Z rovnice (A+x) (B+x)=A-Bjeto zřejmé. V reálném případě je potlačení souhlasného rušení v řádu 60 db i více, což při dostatečné úrovni užitečného signálu postačuje a tedy rušení neovlivňuje přenos dat. Posledním rušivým prvkem může být indukované napětí do vodivé smyčky při vystavení měnícímu se elektromagnetickému poli (u i = dφ/dt, Φ =dvojnýintegrál přes plochu z vektorů B*dS). Při použití kroucené dvoulinky se sudým počtem smyček (orientace smyček se střídavě mění) se indukavaná napětí (+u i,- u i ) od měnícího se elektromagnetického vnějšího pole vyruší. Dále plocha každé elementární smyčky je zanedbatelná a tedy poslední smyčka, která by nebyla do páru s opačně orientovanou produkuje zanedbatelné u i (srovnej s původní plochou smyčky nekroucené dvoulinky). Obr. 3-11 Diferenciální sběrnice Použitý kabel pro přenos elektrických signálů není specifikován podle typu. Specifikovány jsou pouze jeho parametry. Tedy pro každý kanál se používá dvoulinka o impedanci 80Ω 100Ω. Dalším parametrem je poměrné zpoždění signálu po průchodu vodičem, které je stanoveno na maximálně 10ns/m. - 21 -
Na sběrnici jsou definované 4 stavy (Obr. 3-12). Idle_LP je stav sběrnice, kdy jsou zařízení v low-power módu a komunikace neběží. Dalším stavem je klidový stav Idle, ten se vyskytuje v různých částech komunikace na sběrnici a to zejména v mezerách mezi časovými sloty a na konci každého komunikačního cyklu. Nakonec tu máme stavy DATA_1 a DATA_0, které v komunikaci odpovídají logické 1 a logické 0. Obr. 3-12 Elektrické stavy na sběrnici Standard FlexRay je navržen tak, aby při komunikaci nedocházelo k žádným kolizím. Z toho plyne jedna podstatná vlastnost. Není definována žádná dominantní úroveň ve vztahu ke stavům DATA_1 a DATA_0 a tím pádem ani stav na sběrnici při kolizi dvou vysílačů. Samozřejmě stav Idle je recesivní. Jednou jedinou výjimkou možných kolizí jsou startovací fáze protokolu při spouštění sběrnice, která bude popsána v kapitole 3.9 Wake-up, Start-up clusteru. - 22 -
Nakonec se pojďme podívat na minimální požadavky na průběh signálů na výstupu vysílače a vstupu přijímače bus driverů v clusteru, jak ukazují obrázky (Obr. 3-13, Obr. 3-14, Obr. 3-15). Další popis a specifikace viz. kapitola Použitá literatura. Obr. 3-13 Testovací konfigurace pro měření průběhu diferenciálního signálu Obr. 3-14 Minimální požadavky na průběh výstupního signálu Obr. 3-15 Minimální požadavky na průběh vstupního signálu - 23 -
3.5 FlexRay stanice Architektura nódu připojeného na sběrnici je postavena na několika základních prvcích (Obr. 3-16). Napájení, řídící mikrokontrolér (µc) a ostatní prvky související s daným zařízením a pak také komunikační kontrolér (CC), volitelný bus guardian (BG) a bus driver (BD), což jsou prvky související se sítí FlexRay. Uveďme si popis hlavních funkcí prvků souvisejících se sítí: Obr. 3-16 Architektura stanice na sběrnici Komunikační kontrolér obsahuje: Interface pro spojení s řídícím mikrokontrolérem včetně zdrojů přerušení Implementaci jádra protokolu Řízení výměny zpráv pomocí bufferů Implementaci synchronizace na globální časovou základnu sítě Implementaci procedury vzbuzení spící sítě Wake-up a startování sítě Start-up Implementaci pro zasílání a příjem symbolů, řízení přístupu na médium Error management a funkce pro diagnostiku sítě v určitém rozsahu Bus Guardian: Chrání časové sloty na sběrnici proti neoprávněnému přístupu kontroléru Chrání funkčnost sítě při chybě zařízení (špatně napsaný ovládací firmware) Provádí detekci chyb a kontrolu obsahu v časové doméně Bus Driver: Vysílá a přijímá data ze sběrnice (10Mbit/s) Zabezpečuje nízké emise v souvislosti s elektromagnetickou kompatibilitou Zajišťuje odolnost dat proti vnějšímu rušení (dif. buzení a příjem) Kontroluje napětí jednotky Detekce Wake-Up symbolu na médiu - 24 -
3.6 Komunikační cyklus TDMA struktura sítě je realizována za pomocí jednotlivých v čase po sobě jdoucích komunikačních cyklů (Obr. 3-17). Cyklus se na sběrnici FlexRay periodicky opakuje se vším rozčleněním a nakonfigurovanými sloty. Obr. 3-17 Komunikační cyklus Jak je vidět na obrázku, obsahuje 4 části: statický segment, dynamický segment, symbolové okno a klidový stav na konci cyklu. Funkci jednotlivých částí si popíšeme v následujících podkapitolách. Základní globální jednotkou, ve které se měří čas na sběrnici je 1MT (makrotik). Nominální délka makrotiku v nanosekundách, zanedbáváme-li nepřesnost hodin jednotlivých stanic, musí být v celém clusteru shodná a známá před spuštěním sítě. Každý makrotik je v lokální stanici (nódu) skládán z celistvého počtu mikrotiků (µt) tak, aby se dosáhlo s určitou tolerancí stejné délky makrotiku. Mikrotik je lokální parametr a jeho délka závisí na použitém lokálním generátoru (krystalu) a od něj odvozených hodin. Jeden mikrotik je roven 1; 2; 4 násobku periody hodin stanice jakožto vzorkovací periody. Uvažované délky mikrotiku jsou 12,5; 25; 50ns. Více popisu v kapitole 3.8.1 Základní hierarchie časování. - 25 -
3.6.1 Formát rámce Do každého slotu může být vysílán jeden rámec, který je ještě před přístupem na fyzickou vrstvu zakódován. Jakým způsobem závisí na tom, zda-li jde o statický, či dynamický segment. Nyní se pojďme podívat na to, jak takový rámec (Obr. 3-18) před zakódováním vypadá a z čeho se skládá. Obr. 3-18 Formát rámce Rezervovaný bit slouží pro budoucí rozšíření standardu, vysílačem je nastaven na log 0. Indikátor preambule datového segmentu má dvě funkce pokud je aktivní. Jestliže je rámec vysílán ve statickém segmentu, indikuje přítomnost network management vektoru na začátku přenášených dat. Pokud je rámec vysílán v dynamickém segmentu, poukazuje indikátor na to, že počátek dat má význam jako ID zprávy. Indikátor nulového rámce je aktivní v log 0 a indikuje, že rámec nenese žádná užitečná data. Zařízení v síti totiž vysílá, pokud je mu přidělen statický slot, rámce v každém cyklu, i když řídící procesor neposlal komunikačnímu kontroléru (Obr. 3-16) žádná data k přenesení. Naznačuje tak vlastně, že je jím slot obsazen a znemožňuje v tomto slotu přístup na sběrnici jinému zařízení s aktivním bus guardian členem. Popsaná vlastnost slouží jako ochrana před zásahem chybně fungujícího zařízení, které se může snažit přistoupit do zmiňovaného pro něj cizího slotu v důsledku chybně napsaného firmware či špatné informace o vlastnictví slotů. Kontext užití je popsán v kapitole 3.6.2 Statický segment, kódování rámců. - 26 -
Indikátor synchronizačního rámce říká, že rámec má být použit k synchronizaci časových základen stanic v síti, které jeho ID akceptují. Maximální počet rámců s tímto nastaveným bitem a synchronizační funkcí je omezen v komunikačním cyklu na 15. Synchronizační rámec může být vysílán pouze ve statickém segmentu a to na obou kanálech současně. Přesnější popis funkce je v kapitole 3.8.2 Časová synchronizace stanic. Indikátor startovacího rámce říká, že rámec má být použit k rozběhnutí sítě na které neběží žádná komunikace ani synchronizace. Výlučně vždy je využíván spolu s indikátorem synchronizačního rámce, samotný nikdy. Rámec tedy přebírá také pravidla platící pro synchronizační rámec. Po rozběhnutí sítě, tedy v normálním stavu, zůstává tento bit u rámce stále nastaven a nemá již žádnou funkci. Minimální počet zařízení v síti nutných pro rozběhnutí sítě za pomocí startup&sync rámců je 2. Více jak tři startovací rámce nemají pro síť žádný efekt. Přesnější popis funkce je v kapitole 3.9.2 Start-up clusteru. ID rámce obsahuje číslo slotu v rozsahu 1..2047, ve kterém je rámec vysílán. Délka dat udává velikost datového segmentu (označeno zeleně) a uvádí se jako počet dvoubajtů v rozsahu 0..127. Hlavičkové CRC slouží k případné detekci chybného obsahu dat a je počítáno z neměnící se části hlavičky každého rámce. Standard udává, že těchto 11bitů CRC si musí řídící procesor spočítat sám a vložit spolu s dalšími nastavovacími údaji rámce do registrů komunikačního kontroléru. Jako zdroj CRC tedy slouží 20bitů dat a to jmenovitě: bit sync, bit startup, 11bitů ID rámce a 7bitů délky dat. Generujícím polynomem CRC výpočtu je číslo 0x385, inicializačním vektorem výpočtu pak číslo 0x1A. Detaily a princip výpočtu CRC je uveden v kapitole 4.3.5 Výpočet CRC hlavičky rámce. Číslo cyklu slouží k identifikaci cyklu, v němž je rámec posílán. Uvádí se v rozsahu 0..63. Slouží volitelně k tomu, aby proces s nízkými požadavky na přenos dat neobsazoval určený statický slot v každém cyklu, ale jen v každém n-tém cyklu. V kontroléru je možno nastavit kromě všech možností tedy také filtr cyklu pro vysílání a příjem. Ve výsledku může být obsazen tedy jeden statický slot výstupními daty 64 procesů běžící v jedné stanici. Každý proces si pak obsadí tentýž statický slot v jiném cyklu. Jde o tzv. cycle multiplexing viz. v kapitola 3.6.2 Statický segment, kódování rámců. Po cyklu 63 následuje cyklus 0. - 27 -
Data0, Data1 obsahují přenášená data, pokud je rámec platný (not null frame) a data vzhledem k nastavení bitu indikátor preambule datového segmentu CRC segment slouží k případné detekci chybného obsahu dat v rámci. 24bitů CRC počítá před vysláním komunikační kontrolér (Obr. 3-16) sám a to podle aktuálního obsahu rámce. Generujícím polynomem CRC výpočtu je číslo 0x5D6DCB, inicializačním vektorem výpočtu pak pro kanál A číslo 0xFEDCBA a pro kanál B číslo 0xABCDEF. 3.6.2 Statický segment, kódování rámců Statický segment (Obr. 3-17) může být rozdělen do x časových slotů (2 až 1023) s konstantní předdefinovanou délkou v jednotce makrotik (1 MT globální časová jednotka). Počet slotů i jejich délka je volitelná globální konstanta, viz. kapitola 3.8.1 Základní hierarchie časování, umožňující designérovi sítě volit optimální parametry pro danou aplikaci. Globální konstanty jsou společné pro všechny nódy sítě a musejí být známy již před startem sítě. Využití časového slotu je věc jiná. Kolik percentuálního času přiděleného slotu jednotka využije pro přenos svých dat záleží na ní, podmínkou je ale nepřesáhnutí svým zakódovaným rámcem striktně přidělený časový interval pro vysílání statický časový slot. Velikost rámce (tj. délka dat režie spolu s délkou užitečných dat) může být v každém statickém slotu jiná, záleží na přenosových potřebách daného zařízení, jemuž bude slot přidělen k vysílání. Pokud v jednotce běží více procesů předávajících data jiným jednotkám a pokud je pro předávání těchto dat zvolen designérem statický segment (zaručená latence pro kritická data), lze vybrat mezi dvěma způsoby, jak toto provést. Jedním způsobem je, pokud objem předávaných dat za jeden komunikační cyklus spolu se zakódováním přesahuje možnosti umístění do jednoho statického časového slotu, alokovat příslušný počet těchto slotů pro jednotlivé procesy jednoho vysílače (jednotky). - 28 -
Druhý způsob se týká opačného případu, kdy v jednotce běží sice více procesů, ale jimi generovaný tok dat by plně nevyužil přidělené statické časové sloty. V tomto případě lze jeden přidělený statický časový slot jednotce multiplexovat mezi jednotlivé procesy v ní běžící. Stále ale platí pravidlo, že jeden statický slot může být přidělen pouze jedné jednotce, nelze tedy multiplexovat výstupy procesů z různých jednotek do jednoho statického slotu! Jedné jednotce pak v tomto duchu může být eventuelně přiděleno více statických slotů. Na eventualitu přepínání výstupů více procesů běžící v jednotce do stejného časového statického slotu je přímo standard FlexRay připraven a řeší ji pod termínem cycle multiplexing. Standard FlexRay totiž podporuje identifikaci aktuálního komunikačního cyklu (0 až 63) přímo v přenášeném rámci a tak lze komunikačnímu kontroléru (Obr. 3-16) přistupujícím na sběrnici zadat, aby data procesu patřící do daného statického slotu odeslal právě jen v určitém/v určitých předem definovaných komunikačních cyklech. Data od jiného procesu pak v cyklech jiných. Tato vlastnost musí být ale využívána s ohledem na požadovanou latenci doručení kritických dat od vzniklé události. Proč? Uveďme si příklad. Mějme jednotku, ve které běží 3 procesy (např. sběr, digitalizace a předzpracování dat ze 3 bezpečnostně důležitých senzorů automobilu). Latence doručení dat do jiných jednotek je pro systém a jeho chování kritická, proto jsme pro přenos zvolili statický segment. Výstupní datový tok všech 3 procesů je relativně malý a lze jej tedy za využití druhého způsobu (multiplexování) přenést jedním přiděleným statickým slotem. Statický slot bude v každém lichém cyklu obsahovat výstupní data procesu 1. Zbylé sudé cykly budou obsahovat střídavě výstupní data procesů 2 a 3. Toto lze nastavením filtru pro vysílání či firmwarem jednotky zařídit. Pokud je délka komunikačního cyklu 1ms, bude latence přenosu dat od procesu 1 k jiným jednotkám maximálně 2ms, latence přenosu dat od procesů 2 a 3 pak maximálně 4ms. Pokud ale systém vyžaduje latenci přenosu dat od procesu 1 k jiným jednotkám maximálně do 1ms, nemůžeme využívat multiplexování, ale musíme pro výstup takovéhoto procesu alokovat samostatný statický slot. Jak jsme ale výše uvedli, díky malému množství dat v každém cyklu, nebude takto alokovaný statický slot v časovém měřítku relativně krátkým rámcem plně využit. - 29 -
Model přenosu výstupních dat uvažované jednotky tedy pozměníme na jiný, méně efektivní, ales nižší latencí pro přenos kritických dat z výstupu procesu 1. Tedy uvažovaná jednotka si pro své 3 procesy alokuje 2 statické sloty a to tak, že v prvním statickém slotu budou v každém cyklu výstupní data procesu 1, v druhém statickém slotu lichých komunikačních cyklů výstupní data procesu 2 a nakonec v druhém statickém slotu, ale v sudých cyklech data procesu 3. Latence přenosu dat k jiným jednotkám bude pak maximálně 1ms, 2ms a 2ms. Požadavky jsou nyní splněny. Nesmíme zapomenout, že standard FlexRay popisuje dva identické kanály pro každou stanici clusteru. Celý zde výše uvedený příklad předpokládá konfiguraci takovou, že proces jednotky obsadil kvůli bezpečnosti přenosu oba kanály A i B a to tak, že kanál A je využit pro výše uvedený příklad, kanál B pak jako duplicitní, záložní, sloužící pro získání dat ostatními jednotkami při poruše přenosu či výpadku na kanálu A (stejný obsah dat v alokovaných statických slotech). Pokud není vyžadována maximální bezpečnost přenosu dat, ale jen definovaná latence (taková konfigurace je ale neobvyklá), lze využít statický slot kanálu A pro proces 1 spolu s v čase identicky umístěným statickým slotem kanálu B pro procesy 2a3. Výsledkem by byl v čase obsazený jeden statický slot a opět latence přenosu dat k jiným jednotkám maximálně 1ms, 2ms a 2ms. Stále ale platí pravidlo, že jeden statický slot (v čase identicky umístěný na kanálu A a B) může být přidělen pouze jedné jednotce. Počítadlo aktuálního čísla statického slotu je tedy pro oba kanály A i B shodné. Dále si zmiňme pravidlo, že alokace statických slotů pro jednotlivé jednotky musí být určena ještě před startem sítě. Pokud má jednotka alokovaný statický slot pro své vysílání (tím rozuměj včase identický statický slot jak na kanálu A, tak na kanálu B) a při běhu systému dojde k tomu, že procesor neposlal komunikačnímu kontroléru sběrnice (Obr. 3-16) žádná data, která by v přiděleném slotu měla být odvysílána, vyšle kontrolér na médium prázdný rámec s příznakem NOT NULL FRAME =0atoproto,abyindikoval alokaci slotu pro svou jednotku. Tím zamezí nově připojujícím se stanicím s aktivním Bus Guardian členem přivlastnit si pro vysílání tento statický slot, ať už jde o jakékoliv důvody (např. neznalost rozvržení alokace statických slotů pro současné aktivní jednotky v síti nebo chyba v obslužném firmware procesoru jednotky). - 30 -
Příklad, jak vypadá rozvržení statického segmentu v praxi je na (Obr. 3-20). Umístěné rámce (v obrázku zeleně) jsou popsány příslušností jak číslem stanice/jednotky, tak i písmenem odlišující procesy v ní běžící. Nyní si pojďme popsat, jak se zakóduje popsaný rámec na (Obr. 3-18) pro vysílání do přiděleného statického slotu (přístup na médium povolen signálem TxEN = 0). Encoding je zakreslen na (Obr. 3-19). Obr. 3-19 Kódování rámce, statický segment TSS Transmission Start Sequence se skládá ze 3 až 15 bitů v úrovni low. Sekvence je používána ke správné funkci aktivních hvězd. Aktivní hvězda se používá jako hub (z terminologie počítačových sítí) pro každý kanál clusteru zvlášť. Obsahuje budiče sběrnice s přepínatelnou funkcí vysílání/příjem a ovládající hradlové pole. V základním stavu jsou všechny budiče sběrnice v režimu příjem. Po detekci příchodu začátku rámce na jeden z budičů sběrnice má hradlové pole čas během této doby TSS na přepnutí ostatních budičů do režimu vysílání a sestavení propojení k nim. O čas potřebný na popsaný úkon zkrátí na vysílacích částech délku TSS sekvence, tak aby bylo zpoždění mezi následně přijatým FSS na jedné straně a vyslaným FSS na ostatních stranách minimální. Po detekci ukončení rámce přepne ovládající hradlové pole všechny budiče zpět do základního stavu příjem. Tím je aktivní hvězda připravena na příchod dalšího rámce z jakékoliv strany (budiče sběrnice). Zapojení aktivní hvězdy je popsáno v kapitole 3.3 Topologie sítě. FSS Frame Start Sequence představuje pak opravdový začátek rámce a slouží k synchronizaci vzorkovače bitů na straně přijímačů, viz. kapitola 3.7 Vzorkování příchozích bitů komunikačním kontrolérem. BSS Byte Start Sequence slouží k synchronizaci přijímače/start následující sekvence 8 bitů dat. - 31 -
8bitů dat slouží k přenosu připraveného rámce popsaného v kapitole 3.6.1 Formát rámce rozděleného bez jakýchkoliv ohledů po 8 bitových částech. Sekvence BSS + 8bitů dat je vysílána tolikrát, kolikrát je potřeba k přenesení všech těchto částí. Jejich spojením na druhé (přijímací) straně je opět sestaven rámec popsaný svým formátem v kapitole 3.6.1. FES Frame End Sequence indikuje ukončení vysílání rámce jak pro přijímací stranu, tak pro případnou aktivní hvězdu, přes kterou je rámec předáván ostatním stanicím. Ukončení vysílání musí přijít před koncem přiděleného časového úseku uvnitř slotu, jak ukazuje obrázek. Za touto sekvencí následuje ještě CID Channel Idle Delimiter, který je reprezentován 11 bity stavu high - na obrázku (Obr. 3-19) není vyznačeno. Tento prvek slouží k indikaci ukončení komunikačního elementu. Dále následuje stav channel idle, sloužící jako nárazníkové pásmo pro umístění rámců do po sobě jdoucích statických slotů. Toto umístění může díky lokálním časovým základnám jednotlivých stanic v globálním pohledu času tzv. plavat. Jak konec, tak i začátek statického slotu je tímto nárazníkovým pásmem v časové ose vybaven. Při běhu clusteru dochází samozřejmě k adaptaci a korekci lokální časové základny stanice na globální vidění času, viz. kapitola 3.8.2 Časová synchronizace stanic, tak aby díky ujíždějícím lokálním časovým základnám k překonání tohoto nárazníkového pásma nedošlo. 3.6.3 Dynamický segment, kódování rámců Dynamický segment (Obr. 3-17) může být rozdělen do y dynamických časových slotů, tak aby celkový počet statických a dynamických slotů nepřesáhl 2047. Dynamický slot má na rozdíl od statického variabilní délku a to podle toho, jak velkým rámcem je obsazen. Skládá se pak z celistvého počtu tzv. minislotů, kterými je dynamický segment v časové ose pevně rozčleněn. Jak je vidět z volitelného počtu (0 až 7986) těchto minislotů na dynamický segment, lze cluster nakonfigurovat tak, že komunikační cykly, pokud designér sítě uváží, žádný dynamický segment obsahovat nemusejí. Počet minislotů i jejich délka je volitelná globální konstanta, viz. kapitola 3.8.1 Základní hierarchie časování. - 32 -
Minimální délka jednoho dynamického slotu je jeden minislot a to právě tehdy, když stanice, které je dynamický slot přidělen, nemá data k vyslání. Maximální délka dynamického slotu (n minislotů) je závislá od konfigurace clusteru tak, aby po započetí vysílání rámce, jeho konec i s ukončovací sekvencí nepřesáhl konec dynamického segmentu. Tento systém s variabilní délkou dynamických slotů vede k tomu, že umístění počátku určitého přiděleného slotu v čase závisí na obsazení předchozích slotů v dynamickém segmentu daty. Čím více stanic v předchozích dynamických segmentech odeslalo svá data, tím dále jsou posunuty počátky následujících dynamických slotů. Toto je rozdíl oproti statickému segmentu, kde jsou počátky statických slotů zakotveny pevně a stejně v čase pro každý cyklus. Designér sítě samozřejmě volí délku dynamického segmentu mnohem kratší, než by odpovídala součtu délek plně obsazených dynamických slotů, kdyby se všechna zařízení na sběrnici rozhodla ve stejný cyklus odeslat svá data. Tento případ totiž většinou nenastává, protože, pokud bychom měli stanici, která potřebuje přenést svá data každý cyklus, přiřadíme jí slot statický. V tomto je vidět opodstatnění dynamického segmentu, tj. ušetření teoretické propustnosti sítě sdílením části času cyklu (dynamický segment) pro více stanic, které mají nestálý výstupní tok dat většinou výstupy událostí. V tomto případě, ale není zaručena latence přenosu zprávy (nedeterministický přenos), proč přesně si popíšeme nyní. Pokud je totiž dostatečný počet předešlých dynamických slotů obsazen a velikost dynamického segmentu je omezená, může se počátek dynamického slotu přiděleného mé stanici posunout až za hranici těsně před koncem dynamického segmentu. V tomto případě nebudou data odeslána a pokus proběhne opět příští komunikační cyklus. Toto zajišťuje komunikační kontrolér sběrnice (Obr. 3-16) samovolně. Z výše uvedených úvah také vyplývá, že přidělením nižšího čísla dynamického segmentu určité stanici k vysílání, znamená zvýhodnění (vyšší prioritu k odeslání rámce) stanice oproti stanicím ostatním. Stanice s vyšším přiděleným číslem dynamického slotu se dostane totiž k vysílání, pouze tehdy, když v předchozích dynamických slotech ostatní stanice poslaly v souhrnu méně dat tak, že se počátek jí přiděleného dynamického slotu neposunul za výše uvedenou hranici těsně před koncem dynamického segmentu. - 33 -