Jste zde

Sběrnice a komunikace FlexRay nejen pro automobily

Komunikační protokol FlexRay představuje vysokorychlostní datové propojení jednotlivých řízených aplikací hlavně v dopravních prostředcích. Proti hojně používaným sběrnicím typu CAN a LIN poskytuje větší přenosovou rychlost srovnatelnou s Ethernetem, zároveň však vyšší odolnost proti elmag. rušení a unikátní dvoukanálovou strukturu. Tedy přesně to, co dnes vyžaduje moderní průmyslová komunikace i v tak náročných aplikacích, jako je stále složitější elektronické řízení a komunikace komponent v automobilech.

Standard FlexRay (zkratka z Flexible Ray = flexibilní paprsek), definován stejnojmenným konsorciem sdružujícím hlavní výrobce automobilů a jejich komponent (Daimler, Chrysler, BWM, General Motors, Ford, Volkswagen, Bosh, Freescale, Philips), je zajímavý také tím, že v sobě spojuje a vylepšuje prvky již nějakým způsobem dříve někde použité (princip TDMA, statický a dynamický přístup na sběrnici, či fyzické provedení sběrnice). Výsledkem je přenosový systém s unikátním systémem adresování a přístupem na sběrnici, kde je vše prakticky řízeno jen dvěma čísly/identifikátory. Výměna zpráv je pak založena na deterministickém komunikačním cyklu a synchronizace komunikace je vysoce strukturována a založena na taktování společném pro všechny uzly a komponenty sběrnice.

Základní parametry komunikace FlexRay

  • Přenosová rychlost až 10 Mb/s
  • Lze adresovat až 2047 uzlů v clusteru
  • Vzdálenost mezi uzly až 24 m
  • Sériový přenos pro dvouvodičové sběrnici
  • Dva nezávislé kanály pro každou jednotku
  • Zvýšená odolnost proti rušení (zabezpečení přenosu, diferenční přenos)
  • Mnoho konfigurací možného přenosu dat
  • Společná synchronizace všech jednotek v síti
  • Jednoduchý nebo dvojitý vysílací a přijímací buffer
  • Konfigurovatelný buffer od 2 do 254 bajtů
  • Filtrace zpráv podle čísla/identifikátoru rámce, čítače cyklů a volbě kom. kanálu
  • Služba dálkové "probuzení" libovolného uzlu
  • Detekce chyb na úrovni budiče sběrnice
  • Detekce chybovosti na úrovni vyšších vrstev

 

Topologie FlexRay sběrnice/sítě

Sběrnice FlexRay umožňuje v rámci jednoho clusteru navrhnout několik různých typů topologií a komunikačních cest. FlexRay tak může být konfigurována jako jednokanálová nebo dvoukanálová sběrnice (single channel/dual channel bus network), síť typu hvězda (star network), nebo různé hybridní kombinace obou uvedených struktur. Maximální délka sběrnice je dána následujícími kritérii:

  • Maximální zpoždění přenosu 2.4 mikrosekund
  • Maximální vzdálenost mezi uzly/komunikačními stanicemi 24 m
  • Maximálně 3 vzájemně propojené aktivní hvězdy

Cluster se nejčastěji skládá ze dvou kanálů, označených jako kanál A a kanál B. Každý uzel (node) v clusteru může být připojen jak ke kanálu A, tak kanálu B, nebo k oběma, přičemž všechny uzly připojené ke kanálu A jsou schopny komunikovat s ostatními uzly na kanálu A a stejně mohou vzájemně komunikovat i všechny uzly přepojeny ke kanálu B. Jestliže se uzel potřebuje připojit k více jak jednomu clusteru, pak komunikace s každým clusterem musí být prováděna prostřednictvím komunikačního řadiče (different communication controller).

  • Pasivní sběrnicová topologie (Passive bus topology) - obrázek ukazuje možnou konfiguraci sítě jako duální sběrnice (dual bus), kde uzle může být připojen k oběma kanálům A i B, pouze kanálu A nebo pouze ke kanálu B. V případě jednoduché sběrnice (single bus) musí být všechny jednotky připojeny jen na jeden kanál. Počet uzlů připojených ke sběrnici může být 2 až 2047.


 

Příklad připojení uzlů (Node) v čisté topologii sběrnice (Bus)

  • Aktivní topologie hvězda (Active star topology) - FlexRay může tvořit i vícenásobná topologie hvězda. Podobně jako sběrnicová topologie, vícenásobná hvězda podporuje redundantní komunikační kanály. Každý kanál musí být otevřený nebo uzavřený kruh v němž mohou být ne více než dva hvězdové oddělovače (star couplers 1A a 1B) v síťovém kanále. Příchozí signál je oddělovačem aktivně směrován k ostatním komunikačním uzlům. Na následujícím obrázku je jednoduchá redundantní topologie hvězda. Logická struktura je stejná jako v případě výše uvedené topologie typu sběrnice. Též je možné vytvořit jen jednokanálovou neredundantní síť.

Příklady připojení uzlů (Node) a oddělovačů (Star 1A a 2A) v čisté topologii typu hvězda (star)

  • Hybridní topologie - různá kombinace topologií typu pasivní sběrnice a hvězda. Limitem zde jsou jednotlivé limity výše uvedených topologií.

Příklad typické hybridní topologie sběrnice a hvězda

Architektura uzlů

Uzel vytváří rozhraní mezi komunikujícím zařízením (Host) a fyzickou sběrnicí tvořenou vodiči. Prakticky je každý uzel realizován následující částmi:

  • komunikační řadič CC (communication controller)
  • napájecí zdroj PS (power supply)
  • dva budiče sběrnice BD (two bus drivers) - každý komunikační kanál vyžaduje jeden budič
  • nadřazený systém (host) tvořený aplikačním procesorem

Rozhraní Host - komunikační řadič (Host - communication controller interface)

Host poskytuje řízení, konfigurační informace a payload data, která mají být vyslána v průběhu tzv. komunikačního cyklu (communication cycle). Naopak řadič CC poskytuje host stavové informace a doručuje přijatá payload data z komunikačního rámce.

Rozhraní komunikační řadič - budič sběrnice (Communication controller - bus driver interface)

Rozhraní mezi budičem BD a řadičem CC se sestává ze tří digitálních elektrických signálů. Dva jsou výstupy z CC (TxD a TxEN) a jeden je vstup do BD (RxD). CC využívá signál TxD (Transmit Data) k přenosu aktuální signálové sekvence v momentě vyslání na komunikační kanál. Signál TxEN (Transmit Data Enable Not) indikuje řadič žádost budiči o vyslání dat na vysílací vodiče příslušného kanálu. Budič BD naopak využívá signál RxD (Receive Data) k přenosu aktuálně přijaté datové sekvence (rámce) do řadiče CC.

Rozhraní budič sběrnice - host

Rozhraní mezi budičem BD a nadřazeným host systémem využívá buď dvou diskrétních logických signálů:

  • STBN (Standby Not) - řízení provozního módu BD
  • ERRN (Error Not) - k indikaci chyb a

nebo sériového rozhraní SPI s diskrétním signálem INTN (Interrupt Output).

 

Blokové schéma architektury FlexRay uzlu

Základní funkce protokolu

Primární protokol chování komunikace FlexRay je ztělesňován čtyřmi základními mechanismy/jádry:

  • Kódování a dekódování (Coding a Decoding) = CODEC
  • Řízení přístupu na sběrnici (Media Access Control) = MAC
  • Zpracování rámce a symbolu (Frame and Symbol Processing) = FSP
  • Synchronizace času/hodin (Clock Synchronization) = MTG, CSS, CSP

Jejich oblast fungování lze pak imaginárně rozdělit do následujících čtyřech hladin/úrovní, dá se říct odpovídající hladinám OSI modelu:

  • Fyzická vrstva - nejnižší (Physical layer) - obsahuje hardwarový přístup na sběrnici (budiče, kontrolu přenus BG apod.)
  • Kódovací vrstva - 2. nejnižší (Coding/decoding layer) - provádí úpravu dat a fyzické kódování přenášených bitů (např. NRZ)
  • Protokolová vrstva - 3. nejnižší (Protocol execution layer) - provádí samotný provoz uzlu, vytváří z dat komunikační rámec apod.
  • Propojovací vrstva - nejvyšší (Control host interface layer) - provádí rozhraní mezi uzlem a nadřazeným systémem (CPU)

Rozhraní CHI (Controller Host Interface) mezi řadičem a nadřazeným host systémem poskytuje mechanismus pro interakci s uvedeným základními a protokolovými mechanismy v prostřednictvím služby POC (Protocol Operation Control). Jejím účelem je poskytování zpětné vazby, stavových informací a také reagovat na příkazy nadřazeného systému a stavy protokolu změnou funkce základních mechanismů. Například definuje stavy komunikačního uzlu v závislosti na chybovosti.

Schématické znázornění a propojení úrovní v nichž pracují jednotlivé mechanismy FlexRay komunikace

Fyzické kódování přenášených bitů a bajtů

Každý uzel podporuje komunikaci po dvou nezávislých fyzických kanálech označených jako A a B. FlexRay protokol je sice nezávislý na fyzické vrstvě, ale předpokládá se binární dvouvodičové médium s dvěma odlišnými hladinami, označované jako HIGH a LOW, a kde se logické úrovně přenášejí jako diferenčním napětím mezi dvěma vodiči, podobně jako u CAN. Logické 0 odpovídá rozdílové napětí 0 V a logické 1 odpovídá rozdílové napětí 1.2 V. Tok bitů generovaný z těchto dvou úrovní je označován jako CE (Communication Element). Jako kódování jednotlivých bitů by mělo používat NRZ (Non-Return to Zero). Aby bylo možné v každém uzlu podporovat dva kanály, musí být implementovány dvě sady nezávislých kódovacích a dekódovacích procesů, zvlášť pro každý z kanálů A a B (CODEC a / CODEC b). Popis chování kódování a dekódování je sice obsaženo ve třech procesech, ale hlavní práci, tj. kódování a dekódování dat pro přenos po vodičích sběrnice, provádí proces CODEC. Za spouštění a řízení CODEC procesu stojí již zmíněný POC.

Fyzický přenos dat po vodičích sběrnice se skládá z následujících částí dle obrázku níže:

  • úvodní přenosová sekvence TSS (Transmission Start Sequence) - zahajuje přenos
  • startovací sekvence rámce FSS (Frame Start Sequence) - určuje začátek přenosu datového rámce
  • startovací sekvence bajtu BSS (Byte Start Sequence) - zahajuje přenos bajtu (podobně jako RS-232)
  • ukončovací sekvence rámce FES (Frame End Sequence) - oznamuje konec rámce
  • zpracování rámce a symbolu FSP (Frame and Symbol Processing) - taktuje přenos rámců
  • řízení přístupu na přenosové médium MAC (Media Access Control Process) - zahajuje komunikaci po médiu

Struktura fyzického přenosu FlexRay protokolu - fyzické kódování dat na sběrnici v případě tzv. statického segmentu

Formát komunikačního rámce FlexRay

Komunikace a přenos dat mezi uzly je zajišťováno pomocí přenášení datového komunikačního rámce, který obsahuje nejen samotná přenášená data, ale i řídící prostředky a informace pro směrování, určení uzlu, zabezpečení přenosu apod.

Rámec se skládá ze 3 segmentů:

  • hlavička (header segment) - tvoří informační část rámce a skládá se z 5 bajtů obsahující:
    • reserved bit - zatím nepoužívaný, slouží pro budoucí protokoly
    • payload preamble indicator - označuje zda payload segment obsahuje NMV (Network Management Vector) v případě tzv. statického segmentu nebo message ID v případě tzv. dynamického segmentu. NMV i message ID určuje nadřazený systém a samotný komunikační řadič jej nezpracovává
    • null frame indicator - indikátor nulového rámce
    • sync frame indicator - označuje zda jde o synchronizační rámec
    • startup frame indicator - indikátor startovacího rámce
    • frame ID - zajišťuje funkci adresování - definuje slot, ve kterém je rámec vysílán a vždy přísluší jen jednomu uzlu a jednomu kanálu v komun. cyklu
    • payload length - určuje délku datového payload segmentu
    • header CRC - zabezpečení hlavičky CRC kódováním
    • cycle count - indikuje číslo cyklu z pohledu vysílacího uzlu
  • payload segment - část rámce přenášející požadovaná data
  • trailer segment - čast rámce zajišťující zabezpečení přenosu hlavičky a payload segmentu pomocí 24bitového CRC kódu (cyclic redundancy check code)

Struktura FlexRay komunikačního rámce (po kliknutí na obrázek se zobrazí detail)

Každý uzel pak vysílá rámec na sběrnici/síť tak, že hlavička jde první, následována payload segmentem a trailer segmentem, který se vysílá vždy jako poslední. Co se týče přenosu uvnitř jednotlivých segmentů, jsou jednotlivá pole vysílána v pořadí od leva doprava dle výše uvedeného obrázku. Například v hlavičce je reserved bit vysílán jako první a cycle count pole jako poslední.

FlexRay payload segment může obsahovat 0 až 254 bajtů (0 až 127 dvoubajtových slov) dat. Jejich počet je definován hodnotou v hlavičce v poli payload length. Jednotlivé přenášené bajty jsou označeny číselně a počítané od 0.

Řízení přístupu na médium MAC a sychronizace

Ve FlexRay protokolu je řízení přístupu na sběrnici (MAC - Media Access Control) založeno na stále se periodicky opakujícím cyklu, ve kterém se přenáší jednotlivé komunikační datové rámce v podobě slotů. Celý tzv. komunikační cyklus definován časovací hierarchií skládající se z následujících čtyř úrovní:

  • komunikační cyklus (communication cycle level) - nejvyšší úroveň, která je tvořena tzv. statickým a dynamickým segmentem, symbolickými okny (symbol windows) a NIT (network idle time).
  • arbitration grid level - druhá nejvyšší hladina, která tvoří celou páteř řízení přístupu. Ve statickém segmentu je složena z po sobě jdoucích časových intervalů - statických slotů (static slots), zatímco v dynamickém segmentu se skládá z odlišných časových intervalů, tzv. minislotů (minislots).
  • macrostick level - jsou to stavební jednotky vrstvy arbitration grid a vytvářejí tzv. akční body (action points), ve kterých začne přenos statického, dynamického segmentu nebo symbolického okna (symbol window) a v případě dynamického segmentu i skončí.
  • microstick level - nejnižší úroveň, stavební jednotka úrovně macrosticks. Tvoří základní taktování celé FlexRay komunikace, včetně všech připojených uzlů a jednotek.

Závislost jednotlivých časovacích úrovní, ze kterých je synchronizace komunikace tvořena

V rámci komunikačního cyklu, se data přenáší dvěma odlišnými způsoby, dvěma schématy přístupu na sběrnici:

  • statickými segmenty - využívají statického TDMA (static Time Division Multiple Access) ke koordinování přenosu a jsou v něm všechny komunikační sloty stejně dlouhé. Počet slotů je konstatní v rámci jednoho clusteru a každý slot je tvořen identickým počtem macrosticks. Výsledkem je statická šířka pásma (static bandwidth) a malý jitter.
  • dynamickými segmenty - využívají FTDMA (Flexible Time Division Multiple Access), jehož schéma je založené na dynamickém minislottingu (dynamic mini-slotting based scheme). Ten obsahuje jeden nebo více minislotů, přičemž délka dynamického slotu závisí na tom, zda je právě vyžadován přenos dat některým uzlem nebo není. Výsledkem je proměnná šířka pásma (varying bandwidth).

 

Porovnání struktury statického a dynamického segmentu uvnitř komunikačního cyklu

Komunikační cyklus se provádí periodicky stále dokola s periodou danou zadanou hodnotou počtu makrosticks. Jednotlivé cykly jsou číslovány od nuly v poli "cycle count". Komunikační cyklus vždy obsahuje statický segment, který obsahuje pevný počet statických slotů. Zároveň však může obsahovat i dynamický segment, složený z nastavitelného počet minislotů. Nakonec obsahuje symbolické okno (symbol window), který je tvořen také volitelným počtem macrosticks a slouží k zasílání alarmových, diagnostických a různých řídících zpráv. Jestliže však není vyžadováno, lze ho "vymazat" nastavením nulové délky (nula macrosticks). Každý komunikační cyklus je vždy ukončen "prázdným" časovým intervalem NIT (Network Idle Time), obsahující zbývající počet macrosticks, které nejsou v rámci cyklu vyplněny statickým nebo dynamickým segmentem.

Sled, struktura a časová synchronizace komunikačních cyklů protokolu FlexRay

Přenos rámců a identifikace segmentů

Jak již bylo zmíněno výše řízení přenosu uvnitř statického a dynamického segmentu je založeno na unikátním číslu/identifikátoru rámce frame ID, zatímco položka cycle count označuje pořadové číslo přenášeného rámce, resp. počítá přenesené sloty s daným frame ID. Každý identifikátor je totiž pevně přidělen určitému uzlu v clusteru pro konkrétní kanál a vždy pouze jeden uzel může v komunikačním cyklu na daném kanále zasílat rámec s tímto číslem. Frame ID tím zároveň i určuje polohu konkrétního statického slotu (vyhrazeného pro daný uzel) vzhledem k začátku statického segmentu. Tento slot má tak daný uzel pevně vyhrazen v komunikačním cyklu pro přenos rámce/dat, ať již ho využije nebo ne. K praktickému určení místa příslušného slotu v od začátku segmentu slouží v každém uzlu čítače slotů. U dynamického segmentu, který je složen z pevně časově dlouhých krátkých slotů - minislotů, naopak mohou být sloty využity libovolnou stanicí, která právě potřebuje vysílat a to libovolně dlouho v rámci délky komunikačního cyklu.

Každá uzel s pevně přiřazeným Frame ID má ve statickém segmentu pevně určené místo pro vysílání

Závěr

I když je základní princip komunikace dle protokolu FlexRay je vcelku jednoduchý, množství implementovaných funkcí a služeb pro zajištění co největší univerzálnosti z ní v celkovém vyznění dělá velmi složitý komunikační standard, jehož popis zabírá velmi mnoho stovek stran. V tomto článku a na omezeném prostoru jsem se pokusil co nejstručněji ale zároveň dost detailně popsat "páteř" FlexRay komunikace a všechny její zajímavé aspekty. Vývojáře a další zájemce o vskutku detailní popis FlexRay protokolu odkazuji na stánky www.flexray.com, kde po jednoduché registraci lze prostřednictvím e-mailu dostat i několik tisíců stran popisu v podobě několika běžných pdf souborů.

Antonín Vojáček

DOWNLOAD & Odkazy

  • Domovská stránka komunikačního protokolu FlexRay - www.flexray.com
  • Domovská stránka firmy Freescale, výrobce integrovaných obvodů pro FlexRay - www.freescale.com
  • Ing. Petr Krist: "Průmyslové sběrnice a elektromagnetická kompatibilita - kap. 5.6.4 FlexRay"
Hodnocení článku: