A modern idők buszrendszere

28 márc 2023

A 2000-es évekkel eljött az az időszak az autóiparban, amikor a CAN önmagában már messze nem volt elegendő az összes rendszer felügyeletéhez egy személygépkocsiban.

Egy konzorciumi fejlesztés hatására 2009-ben, mikor a harmadik, végleges verziója kijött, a FlexRay egy új ajtót nyitott meg a járműipari kommunikációs protokollok világában.

Az alábbi cikkben ezt a viszonylag friss, ám ma már nélkülözhetetlen alrendszert mutatjuk be.

 

Definíció

A FlexRay egy ISO-szabványos, determinisztikus, hibatűrő, nagy sebességű kommunikációs busz, amely vezetékes kormányzás, drive-by-wire, brake-by-wire, adaptív sebességtartó automatika, aktív felfüggesztés és egyéb biztonsági alkalmazásokban is használható.

Olyan vállalatok közös fejlesztésének eredménye, mint a BMW, VW, Daimler AG, GM, Bosch, NXP Semiconductors, vagy a Freescale. 2009-ben jött el az év, amikor bemutatták a 3.0-ás verzót, ez lett a FlexRay végleges protokollja.

Olyan autókban debütált a rendszer, mint:

  • Audi A8 (2011)
  • BMW X5
  • BMW X6
  • BMW 7
  • BMW 5
  • BMW 5 GT
  • Rolls Roys Ghost

Az alapvető követelmény az volt a FlexRay protokollal szemben, hogy nagy adatátviteli sebességre legyen képes – nagyobbra, mint a CAN.

A FlexRay két különálló, teljesen független csatornával rendelkezik, az adatátviteli sebessége pedig csatornánként 10 Mbit másodpercenként.

Ami pedig szintén az alapvető jellemzőihez tartozik: teljesíti a biztonságkritikus vezérlés követelményeit. Ezáltal rábízhatunk olyan rendszereket, mint a brake-by-wire vagy a steer-by-wire, ahol viszonylag sok adatnak, gyorsan és megbízhatóan kell áramolnia a protokollon keresztül.

Ezek a rendszerek a mai napig általános témának számítanak a jog világában, így ma még nincs egyértelmű konszenzus az alkalmazásukról, ám tény, hogy a FlexRay lehetővé tette a használatukat.

 

Hálózati tulajdonságok

Ha három szóban kellene jellemezni a protokollt, akkor azt mondhatnánk róla, hogy: gyors, determinisztikus és hibatűrő. Ez utóbbi azért fontos, mert nincs arbitráció, mint a CAN esetén (a CAN-ről már korábban cikkeztünk).

Noha az autóipar generálta a hálózat létrejöttét, valójában a FlexRay olyan jól sikerült, hogy nem maradt meg pusztán a járművek környezetében.

A 10Mbit/s-os csatornánkénti adatátviteli sebesség jelentős, ezért általában a két csatornát ugyanarra a célra használják, így valósítják meg a hardveres redundanciát.

A kommunikációs ciklus felosztható statikus és dinamikus időszeletekre. A statikus rész vezérlőegységekhez vannak rendelve, míg a dinamikus rész a fent maradó sávszélességen akár multimédiás célokat is ki tud elégíteni. Idővezérelt elven működik, amely biztosítja a küldött és fogadott információk sérthetetlenségét, de szervezésbeli nehézséget is okoz.

 

Működés

 

Óra

A FlexRay rendszer egy buszból és ECU-kból (elektronikus vezérlőegység) áll. Minden ECU független órával rendelkezik – itt nyilvánul meg az idővezéreltség lényege. Az óraeltolódás nem lehet több 0,15%-nál a referencia órajelhez képest, tehát a rendszer leglassabb és leggyorsabb órajele közötti különbség nem lehet nagyobb 0,3%-nál.

Ez azt jelenti, hogy ha az ECU-s egy küldő, az ECU-r pedig egy vevő, akkor a küldő minden 300 ciklusához 299 és 301 vevőciklus tartozik. Az órákat elég gyakran újraszinkronizálják annak biztosítására, hogy ez ne okozzon problémát. Az órát a statikus szegmensben küldjük.

 

Bits on the bus

Minden alkalommal csak egy ECU ír a buszra. Minden elküldendő bit a buszon 8 minta órajelciklusig tart. A vevő tárolja az utolsó 5 minta pufferét, és az utolsó 5 minta többségét használja bemeneti jelként.

Az egyciklusú átviteli hibák befolyásolhatják a bithatár közelében lévő eredményeket, de nem befolyásolják a 8 ciklusos tartomány közepén lévő ciklusokat.

 

Mintavételezett bitek

A bit értékének mintavételezése a 8 bites régió közepén történik. A hibákat a szélsőséges ciklusokba helyezik át, és az órát elég gyakran szinkronizálják ahhoz, hogy az eltolódás kicsi legyen. A drift kisebb, mint 1 ciklus 300 ciklusonként, és az átvitel során az óra 300 ciklusonként többször szinkronizálódik.

 

Keret

Minden kommunikáció keretek formájában kerül elküldésre. Az üzenet bájtokból áll, a következőképp:

  • Átviteli indítójel (TSS) – 0. bit
  • Keret indítójel (FSS) – 1. bit
  • m-szer:
    • Byte indítójel 0 (BSS0) – 1. bit
    • Byte indítójel 1 (BSS1) – 0. bit
    • Az i-edik bájt 0. bitje
    • Az i-edik bájt 1. bitje
    • Az i-edik bájt 2. bitje
    • Az i-edik bájt 7. bitje
  • Keretvégi jel (FES) – 0. bit
  • Átviteli végjel (TES) – 1. bit

Ha semmi sem kommunikál, a busz 1-es állapotban van (nagyfeszültség), így minden vevő tudja, hogy a kommunikáció akkor indult el, amikor a feszültség 0-ra esik.

A vevő úgy tudja, hogy az üzenet befejeződött, ha ellenőrzi, hogy BSS0 (1) vagy FES (0) érkezett-e.

Vegyük figyelembe, hogy a bitenkénti 8 ciklusnak semmi köze a bájtokhoz. Minden bájt átvitele 80 ciklust vesz igénybe. 16 a BSS0 és BSS1, és 64 a bitjei számára.

 

Óraszinkronizálás

Az órák újraszinkronizálása megtörténik, amikor a megválasztott jel 1-ről 0-ra változik, ha a vevő tétlen volt, vagy BSS1-et várt.

Mivel a szinkronizálás a megválasztott jelen történik, a szinkronizálás során fellépő kis átviteli hibák, amelyek a határbiteket érintik, legfeljebb 1 ciklussal torzíthatják a szinkronizálást. Mivel a szinkronizálás között legfeljebb 88 ciklus telik el (BSS1, 8 bit az utolsó bájtból, FES és TES – 11 bit 8 ciklusból), és az óraeltolódás nem nagyobb 1-nél 300 ciklusonként, az eltolódás torzíthatja az órát.  A vétel során előforduló kis átviteli hibák csak a határbiteket érinthetik. Tehát a legrosszabb esetben a két középső bit helyes, így a mintavételezett érték is helyes.

RELATED POST

Írj egy választ