Tartalomjegyzék: Általános információk ↡ Előnyök ↡ Adatátviteli formátum ↡ Prioritások ↡ Hibafelismerés ↡ Mechanizmusok az adatkeret szintjén ↡ Bitszintű mechanizmusok ↡ Hibaelhárítás ↡ Típusok CAN busz ↡
Általános információk
A modern autók több CAN adatcsere hálózati buszt használnak (Controller Area Network) különböző rendszerek moduljai/vezérlőegységei és a jármű működtetőinek vezérlői között.
A CAN buszon keresztüli adatcsere sorrendje
B – 1. érzékelő; CAN - Adatkommunikációs busz; M - Működtetők I-III (szervomechanizmusok); N - Vezérlőegységek/vezérlők IV
A busz full duplex (vagy csak duplex), azaz bármely csatlakoztatott eszköz egyszerre képes üzeneteket fogadni és továbbítani.
A megfelelő információ (szenzor) érzékeny elemének jele a legközelebbi vezérlőegységbe kerül, amely feldolgozza és továbbítja a CAN adatcsere buszra.
Bármely, a CAN adatbuszra csatlakoztatott vezérlőegység képes ezt a jelet kiolvasni, vezérlési paramétereket számítani az alapján és vezérelni a megfelelő aktuátor működését.
Előnyök
Az elektromos és elektronikus eszközök hagyományos kábelezésénél minden vezérlőegység közvetlenül csatlakozik az összes érzékelőhöz és aktuátorhoz, amelyektől méréseket kap vagy vezérli azokat.
A vezérlőrendszer bonyolultabbá válása túlzott hosszúsághoz vagy több kábelvonalhoz vezet.
A szabványos kábelezéshez képest az adatbusz:
- A kábelek számának csökkentése. Az érzékelők vezetékei csak a legközelebbi vezérlőegységig terjednek, amely a mért értékeket adatcsomaggá alakítja és továbbítja a CAN buszra;
- Az aktuátor bármely vezérlőegységgel vezérelhető, amely a CAN buszon keresztül kapja a megfelelő adatcsomagot és ez alapján kiszámítja a vezérlési művelet értékét;
- Az elektromágneses kompatibilitás javítása;
- A dugaszolható csatlakozások számának csökkentése és a vezérlőegységeken lévő érintkezők számának csökkentése;
- Fogyás;
- Az érzékelők számának csökkentése, mert jeleket egy érzékelőtől (például a hűtőfolyadék hőmérséklet-érzékelőjétől) különféle rendszerek használhatók;
- Továbbfejlesztett diagnosztikai képességek. Mert jeleket egy érzékelőtől (például sebességjelző) különböző rendszerek használják, akkor ha egy adott jelet használó összes rendszer hibaüzenetet ad ki, akkor általában az érzékelő vagy vezérlőegység a hibás, amelyik feldolgozza a jeleit. Ha egy hibaüzenet csak egy rendszertől érkezik, bár ezt a jelet más rendszerek is használják, akkor a hiba oka leggyakrabban a feldolgozó vezérlőegységben vagy szervomechanikában van;
- Nagy adatátviteli sebesség - akár 1 Mbit/s, maximum 40 m-es vonalhosszal Jelenleg a Mercedes-Benz járműveken az adatátviteli sebesség 83 Kbit/s és 500 Kbit/s között mozog;
- Több üzenet is továbbítható felváltva ugyanazon a vonalon.
A CAN adatbusz egy csavart érpár formájában készült kéterű vezetékből áll. Minden eszköz ehhez a vonalhoz csatlakozik (készülékvezérlő egységek).
Az adatátvitel mindkét vezetéken duplikálással történik, és az adatbusz logikai szintjei tükörképesek (vagyis ha egy vezetéken logikai nulla szint (0) kerül átvitelre, akkor logikai egy szint (1) a másik vezetéken továbbítják, és fordítva).
A kétvezetékes átviteli áramkört két okból használják: hibaelhárításra és a megbízhatóság alapjaként.
Ha csak egy vezetéken lép fel feszültségcsúcs – például elektromágneses kompatibilitási (EMC) problémák miatt – a vevőegységek ezt hibaként azonosíthatják, és figyelmen kívül hagyhatják a tüskét.
Rövidzárlat vagy szakadás esetén a CAN busz két vezetéke közül az integrált szoftveres és hardveres megbízhatósági rendszernek köszönhetően egyvezetékes üzemmódba kapcsol át. A sérült távvezeték használhatatlanná válik.
A felhasználók által továbbított és fogadott tartalmak sorrendje és formátuma (előfizetők) üzeneteket a kommunikációs protokoll határozza meg.
A CAN adatbusz lényeges megkülönböztető jellemzője a többi előfizetői címzési elven alapuló buszrendszerhez képest az üzenethez kapcsolódó címzés.
Ez azt jelenti, hogy minden buszon továbbított üzenetnek állandó címe van (azonosító), megjelölve ennek az üzenetnek a tartalmát (például: hűtőfolyadék hőmérséklet). A CAN adatbusz protokoll akár 2048 különböző üzenet továbbítását teszi lehetővé, a 2033-tól 2048-ig terjedő címek állandó hozzárendelésével.
Az adatmennyiség egy üzenetben a CAN buszon keresztül 8 bájt.
A fogadó blokk csak azokat az üzeneteket dolgozza fel, amelyeket a saját azonosító listája tárol (elfogadás ellenőrzése).
Adatcsomagok csak akkor továbbíthatók, ha a CAN kommunikációs busz szabad (azaz ha az utolsó csomag után 3 bites intervallum volt, és egyik vezérlőegység sem kezdi el továbbítani a következő üzenetet). Ebben az esetben az adatbusz logikai szintjének recesszívnek kell lennie (logikai "1").
Ha több vezérlőegység egyszerre kezd üzenetet küldeni, akkor életbe lép a prioritási elv, amely szerint a legmagasabb prioritású üzenet kerül először továbbításra idő- és bitpazarlás nélkül (a közös adatbuszhoz való hozzáférési kérelmek eldöntése).
Minden vezérlőegység, amely elveszíti a választottbírósági jogot, automatikusan vételre vált, és újra megpróbálja elküldeni üzenetét, amint az adatbusz újra felszabadul.
Az adatcsomagok mellett az információcsere során a CAN adatbuszon egyes üzenetekre vonatkozó kérési csomagok is felhasználásra kerülnek - ilyen kérésre az a vezérlő egység válaszol, amely képes a kért információt szolgáltatni.
Adatátviteli formátum
Normál átviteli módban a következő konfigurációjú csomagok használatosak:
- Data Frame (üzenet keret) üzenetek továbbítására a CAN adatbuszon keresztül (például: hűtőfolyadék hőmérséklet);
- Remote Frame (kérés keret) üzeneteket kérni a CAN adatbuszon keresztül egy másik vezérlőegységtől;
- Error Frame (hiba keret), - minden csatlakoztatott vezérlőegység értesítést kap, ha hiba történt, és a CAN adatbusz utolsó üzenete érvénytelen.
A CAN adatbusz-protokoll két különböző üzenetkeret-formátumot támogat, amelyek csak az azonosító hosszában térnek el egymástól: Standard és Extended.
Jelenleg a Daimler Chrysler járművezérlő rendszer adatcsere-rendszerei csak szabványos formátumot használnak.
Keret formátum
A CAN buszon keresztül továbbított üzenetek minden egyes kerete hét egymást követő mezőből áll:
- Start of Frame (start bit): Kijelöli az üzenet kezdetét, és szinkronizálja az összes modult;
- Arbitration Field (választottbírósági mező): Ez a mező egy 11 bites azonosítóból (címből) és egy vezérlőbitből áll (Remote Transmission Request-Bit), megjelölve a keretet Adatkeretként (adatkeret) vagy távoli keretként (távoli kérés keret);
- Control Field (vezérlő bitek): A 6 bites vezérlőmező tartalmazza a meghatározó IDE bitet (Identifier Extension Bit), a használt formátum típusának felismerésére szolgál (szabványos vagy bővített), egy tartalék bit a későbbi kiterjesztésekhez és - az utolsó 4 bitben - az adatmezőben tárolt adatok bájtjainak száma (lásd alább);
- Data Field (adat): Az adatmező 0-8 bájtnyi adatot tartalmazhat, - 0 bájtos üzenetek továbbítása a CAN buszon keresztül az elosztott folyamatok szinkronizálására szolgál;
- CRC Field (vezérlő mező): CRC mező (Cyclic-Redundancy-Check Field) 16 bitet tartalmaz, és az átvitel során a vezérlési hiba felismerésére szolgál;
- ACK Field (a fogadás megerősítése): ACK mező (Acknowledgement Field) megerősítő jelet tartalmaz az összes olyan vevőegység fogadására, amely hiba nélkül kapott üzenetet a CAN buszon keresztül;
- End of Frame (keret vége): A keret végét jelöli;
- Intermission (intervallum): Két szomszédos adatkeret közötti intervallum. Az intervallum hosszának legalább 3 bitnek kell lennie, annak azonosítása után, hogy melyik vezérlőegység kezdheti meg a következő csomag továbbítását;
- IDLE (pihenő mód): Ha egyetlen vezérlőegység sem küld üzenetet, a CAN-busz nyugalmi (standby) üzemmódban marad a következő csomag továbbításáig.
Prioritások
Az adatok valós idejű feldolgozásához lehetővé kell tenni azok gyors továbbítását.
Ez nem csak egy nagy fizikai adatátviteli sebességű vonal meglétét igényli, hanem azonnali hozzáférést is igényel egy közös CAN-buszhoz, ha több vezérlőegységnek kell egyidejűleg üzeneteket továbbítania.
A CAN adatbuszon keresztül továbbított üzenetek sürgősségi fok szerinti megkülönböztetése érdekében az egyes üzeneteknek eltérő prioritásokat biztosítanak.
A gyújtás időzítése például a legmagasabb prioritású, a csúszási értékek a középső prioritásúak, és a külső levegő hőmérséklete a legalacsonyabb.
A CAN-buszon keresztüli üzenet továbbításának prioritását az azonosító határozza meg (cím mezőben) megfelelő üzenet.
A kisebb bináris számnak megfelelő azonosító magasabb prioritású, és fordítva.
A CAN adatbusz protokoll két logikai állapoton alapul: A bitek vagy "recesszívek" (logikai "1") vagy "dominánsak" (logikai "0"). Ha egy domináns bitet legalább egy modul továbbít, akkor a többi modul által továbbított recesszív bitek felülíródnak.
Példa
Példa a választottbíráskodás megszervezésére
Az első vezérlőegység (NI) a 3. bittől kezdődően elveszti az arbitrációt
A harmadik vezérlőegység (N III) a 7. bittől elveszti az arbitrációt
A második vezérlőegység (N II) megtartja a hozzáférést a CAN adatbuszhoz, és továbbítani tudja az üzenetét
Ha egyidejűleg több vezérlőegység kezdi meg az adatátvitelt, a közös adatbuszhoz való hozzáférés konfliktusát a "megosztott erőforrás-kérelmek bitalapú arbitrációja" oldja fel a megfelelő azonosítók használatával.
Azonosítómező továbbításakor az adóegység minden bit után ellenőrzi, hogy van-e még adási joga, vagy más vezérlőegység küld már magasabb prioritású üzenetet a buszon.
Ha az első adóblokk által továbbított recesszív bitet felülírja egy másik adóblokk domináns bitje, akkor az első adóblokk elveszti adási jogát (arbitráció), és vevőblokk lesz.
Más vezérlőegységek csak akkor próbálják meg üzeneteiket továbbítani a CAN adatbuszon keresztül, ha az ismét szabaddá válik. Ebben az esetben az átviteli jog ismét a CAN adatbuszon lévő üzenet prioritása szerint kerül megadásra.
Hibafelismerés
Az interferencia adatátviteli hibákhoz vezethet. Az ilyen átviteli hibákat fel kell ismerni és ki kell javítani. A CAN adatbusz protokoll két hibaészlelési szintet különböztet meg:
- Mechanizmusok az adatkeret szintjén (adatkeret);
- Mechanizmusok bitszinten.
Mechanizmusok az adatkeret szintjén
Cyclic-Redundancy-Check
A CAN adatbuszon keresztül továbbított üzenet alapján az adóegység kiszámítja a vezérlőbiteket, amelyeket az adatcsomaggal együtt továbbít a "CRC Field" mezőben (ellenőrző összegeket). A vevő egység újraszámítja ezeket a vezérlőbiteket a CAN adatbuszon kapott üzenet alapján, és összehasonlítja őket az üzenettel együtt kapott vezérlőbitekkel.
Frame Check
Ez a mechanizmus ellenőrzi az átvitt blokk (frame) szerkezetét, vagyis az adott fix formátumú és kerethosszúságú bitmezőket újraellenőrzi.
A Frame Check által észlelt hibák formátumhibákként vannak megjelölve.
Bitszintű mechanizmusok
Monitoring
Mindegyik modul üzenet továbbításakor figyeli a CAN adatbusz logikai szintjét, és meghatározza az átvitt és vett bitek közötti különbségeket. Ez biztosítja az adóegységben előforduló globális és lokális bithibák megbízható felismerését.
Bit Stuffing
Minden adatkeretben a mező között "Start of Frame" és a "CRC mező" vége nem lehet több, mint 5 egymást követő azonos polaritású bit.
Minden 5 azonos bitből álló sorozat után az adóblokk hozzáad egy ellentétes polaritású bitet a bitfolyamhoz.
A vevőegységek törlik ezeket a biteket, miután üzenetet kaptak a CAN adatbuszon.
Hibaelhárítás
Ha bármelyik CAN adatbusz-modul hibát észlel, hibaüzenet küldésével megszakítja az aktuális adatátviteli folyamatot. A hibaüzenet 6 domináns bitből áll.
A hibaüzenetnek köszönhetően a CAN adatbuszra csatlakoztatott összes vezérlőegység helyi hibáról értesül, ezért figyelmen kívül hagyja a korábban továbbított üzenetet.
Rövid szünet után az összes vezérlőegység ismét képes üzeneteket küldeni a CAN adatbuszon keresztül, és először a legmagasabb prioritású üzenet kerül elküldésre.
Az a vezérlőegység, amelynek a CAN adatbuszon lévő üzenete a hibát okozta, szintén elkezdi újraküldeni üzenetét (automatikus ismétlési kérés funkció).
Típusok CAN busz
A különböző vezérlési területekhez különböző CAN buszokat használnak. Adatátviteli sebességben különböznek egymástól.
A motor és a váz CAN adatbusz (CAN-C) átviteli sebessége 125 kbit/s, míg a belső CAN adatbusz (CAN-B) a kisebb szám miatt mindössze 83 kbit/s átviteli sebességre lett tervezve. különösen sürgős üzenetek /Wi.
Az adatcsere két buszrendszer között úgynevezett "átjárókon" keresztül történik, azaz az úgynevezett "átjárókon" keresztül. mindkét adatbuszra csatlakoztatott vezérlőegységek.
Száloptikai busz D2B (Digital Daten-Bus) az "Audio/Kommunikáció/Navigáció" területre alkalmazott adatok. Egy optikai kábel lényegesen több információt képes továbbítani, mint egy rézkábellel ellátott busz.
CAN-C - busz "Motor és alváz"
A sorkapcsos vezérlőegységben mindkét oldalon egy 120 ohmos ellenállású, úgynevezett adatbusz-lezáró ellenállás található, amely az adatbusz mindkét vezetéke közé van kötve.
A motortér CAN adatbusz csak bekapcsolt gyújtásnál aktiválódik.
A CAN-C buszra több mint 7 vezérlőegység csatlakoztatható.
CAN-B - "Saloon" busz
Egyes, a belső CAN adatbuszra csatlakoztatott vezérlőegységek a gyújtás bekapcsolásától függetlenül aktiválódnak (például: egyzáras rendszer).
Ezért a belső CAN adatbusznak lekapcsolt gyújtásnál is működőképes készenléti üzemmódban kell lennie, ami azt jelenti, hogy a gyújtás kikapcsolt állapotában is biztosítani kell az adatcsomagok továbbításának lehetőségét.
A nyugalmi áramfelvétel lehető legnagyobb mértékű csökkentése érdekében a CAN adatbusz az átvitelhez szükséges adatok hiányában passzív készenléti üzemmódba lép, és csak a következő hozzáféréskor aktiválódik újra.
Ha a belső CAN adatbusz passzív készenléti üzemmódjában bármely vezérlőegység (pl. egyzáras vezérlőmodul) üzenetet továbbít rajta, azt csak a fő rendszermodul fogadja (elektronikus gyújtáskapcsoló, EZS/EIS). Az EZS modul ezt az üzenetet a memóriában tárolja, és ébresztő jelet küld a CAN-B buszra csatlakoztatott összes vezérlőegységnek.
Aktiválásakor az EZS ellenőrzi az összes CAN adatbusz-felhasználó jelenlétét, majd továbbítja a korábban a memóriában tárolt üzenetet.
A CAN-B buszra több mint 20 vezérlőegység csatlakoztatható.
