Általános információ
A modern járművek több CAN 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.
CAN kommunikációs eljárás
B - 1. érzékelő; CAN - Adatbusz; M - Végrehajtó elemek I-III (szervo mechanizmusok); 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ó érzékeny elemének jele (érzékelő) belép a legközelebbi vezérlőegységbe, amely feldolgozza és továbbítja a CAN adatbuszra.
Ezt a jelet bármelyik CAN adatbuszra csatlakoztatott vezérlőegység ki tudja olvasni, ez alapján kiszámítja a vezérlési művelet paramétereit, és vezérli a megfelelő állítómű működését.
Előnyök
Az elektromos és elektronikus eszközök szokásos kábeles csatlakoztatásával minden vezérlőegység közvetlenül kapcsolódik minden érzékelőhöz és aktuátorhoz, amelyről méréseket kap, vagy amelyeket vezérel.
A vezérlőrendszer bonyolultsága 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ékeit csak a legközelebbi vezérlőegységhez húzzák, amely a mért értékeket adatcsomaggá alakítja, és továbbítja a CAN buszra;
- Bármely vezérlőegység vezérelheti az aktuátort, amely a megfelelő adatcsomagot a CAN buszon keresztül kapja, és ennek alapján számítja ki 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égek érintkezőkimeneteinek számának csökkentése;
- Fogyás;
- Az érzékelők számának csökkentése, mert egyetlen érzékelő jelei (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;
- Diagnosztikai képességek fejlesztése. Mert egyetlen érzékelő jelei (pl sebességjelző) különböző rendszerek használják, akkor ha minden ezt a jelet használó rendszer hibaüzenetet ad ki, akkor általában a jeleit feldolgozó érzékelő vagy vezérlőegység hibás. Ha a 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 is lehetséges, maximum 40 m-es vonalhosszal.. Jelenleg a Mercedes-Benz járművek adatátviteli sebessége 83 Kbit/s és 500 Kbit/s között van;
- Egy vonalon több üzenet is továbbítható egymás után.
A CAN adatbusz egy kétvezetékes vezetékből áll, amely csavart érpárból készül. Minden ehhez a vonalhoz csatlakoztatott eszköz (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ükröződnek (vagyis ha egy vezetéken logikai nulla szintet továbbítanak (0), majd a másik vezetéken - egy logikai egység szintje (1), és fordítva).
A kétvezetékes átviteli sémát két okból használják: hibaelhárításra és a megbízhatóság alapjaként.
Ha csak egy vezetéken van feszültségcsúcs, például EMC problémák miatt (EMC), akkor a vevők ezt hibaként azonosíthatják, és figyelmen kívül hagyhatják ezt a tüskét.
A CAN-busz két vezetékének egyikében bekövetkező rövidzárlat vagy szakadás esetén az integrált szoftver- és hardvermegbízhatósági rendszernek köszönhetően az egyvezetékes üzemmódra váltás történik. A sérült távvezetéket már nem használják.
A felhasználók által továbbított és fogadott sorrend és formátum (előfizetők) üzeneteket a kommunikációs protokoll határozza meg.
A CAN adatbusz lényeges megkülönböztető jellemzője az előfizetői címzés elvén alapuló többi buszrendszerhez képest az üzenethez kapcsolódó címzés.
Ez azt jelenti, hogy minden, a buszon továbbított üzenetnek állandó címe van (azonosító), megjelölve ennek az üzenetnek a tartalmát (pl.: 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.
A CAN buszon egy üzenetben lévő adatmennyiség 8 bájt.
A fogadó egység 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 cserebusz szabad (azaz ha az utolsó csomag után 3 bites intervallum következett, és egyik vezérlőegység sem kezdi el küldeni a következő üzenetet). Ebben az esetben az adatbusz logikai szintjének recesszívnek kell lennie (logikus «1»).
Ha egyszerre több vezérlőegység kezd üzenetet küldeni, akkor a prioritási elv lép életbe, amely szerint a legmagasabb prioritású üzenet kerül először továbbításra idő- és bitveszteség 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 döntőbíráskodás jogát, automatikusan fogadásra 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ések csomagjait is felhasználják - az ilyen kérésre a kért információt szolgáltatni képes vezérlőegység válaszol.
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 (pl.: hűtőfolyadék hőmérséklet);
- Remote Frame (kérés keret) üzeneteket kérni a CAN adatbuszon 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 kommunikációs rendszerei csak a szabványos formátumot használják.
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 elejét és szinkronizálja az összes modult;
- Arbitration Field (választottbírósági mező): Ez a mező egy 11 bites azonosítót tartalmaz (címek) be és egy vezérlőbit (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 lefoglalt bit a következő kiterjesztések számára, és - az utolsó 4 bitben - az adatmezőbe ágyazott adatbájtok számáról szóló információ (lásd alább);
- Data Field (adat): Az adatmező 0-tól 8 bájtig terjedő adatot tartalmazhat, - a CAN buszon 0 bájt hosszúságú üzenetek továbbítása 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 előforduló hibák vezérlésére szolgál;
- ACK Field (átvétel visszaigazolása): ACK mező (Acknowledgement Field) nyugtázó jelet tartalmaz minden olyan vevőegységhez, amely hiba nélkül kapott üzenetet a CAN buszon keresztül;
- End of Frame (keret vége): Egy 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, ezután bármelyik vezérlőegység megkezdheti a következő csomag továbbítását;
- IDLE (pihenő mód): Ha egyetlen vezérlőegység sem küld üzenetet, akkor a CAN busz készenléti üzemmódban marad (elvárások) a következő csomag kezdetéig.
Prioritások
Az adatok valós idejű feldolgozása érdekében lehetővé kell tenni azok gyors átvitelét.
Ehhez nemcsak nagy fizikai adatsebességű kapcsolatra van szükség, hanem egy közös CAN busz gyors biztosítására is, ha több vezérlőegységnek kell egyszerre üzenetet küldenie.
Annak érdekében, hogy a CAN adatbuszon továbbított üzeneteket a sürgősségi fok szerint meg lehessen különböztetni, az egyes üzeneteknek különböző 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 közepesek, a külső levegő hőmérséklete pedig a legalacsonyabb.
Az azonosító határozza meg, hogy a CAN-buszon milyen prioritású üzenetet küldenek (cím mezőben) a megfelelő üzenetet.
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 bármelyike «recesszív» (logikus «1»), vagy «uralkodó» (logikus «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
Választottbírósági példa
Első vezérlőegység (N I) elveszti a választottbíróságot a 3. bittől kezdve
Harmadik vezérlőegység (N III) elveszti a választottbírósági eljárást a 7. bittől kezdve
Második vezérlőegység (N II) fenntartja a hozzáférési jogot a CAN adatbuszhoz és továbbíthatja annak üzenetét
Ha egyszerre több vezérlőegység is elindítja az adatátvitelt, akkor a közös adatbuszhoz való hozzáférés konfliktusa megoldódik «megosztott erőforrás-kérelmek bitenkénti rendezése» a megfelelő azonosítókkal.
Az azonosító mező továbbításakor az adó 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óegység által továbbított recesszív bitet felülírja egy másik adóegység domináns bitje, akkor az első adóegység elveszti adási jogát (választottbíróság) és vevőblokk lesz.
Más vezérlőegységek csak akkor kísérlik meg üzeneteiket továbbítani a CAN adatbuszon, amikor az ismét szabaddá válik. Ebben az esetben a továbbítási 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 hibafelismerési szintet különböztet meg:
- Mechanizmusok az adatkeret szintjén (adatkeret);
- Bitszintű mechanizmusok.
Mechanizmusok az adatkeret szintjén
Cyclic-Redundancy-Check
A CAN adatbuszon keresztül továbbított üzenet alapján az adó kiszámítja a mezőben lévő adatcsomaggal együtt továbbított vezérlőbiteket «CRC Field» (ellenőrző összegeket). A vevő egység ezeket a vezérlőbiteket a CAN adatbuszon kapott üzenet alapján újraszámítja, és összehasonlítja az ezzel az üzenettel kapott vezérlőbitekkel.
Frame Check
Ez a mechanizmus ellenőrzi a továbbított blokk szerkezetét (keret), vagyis az adott fix formátumú és kerethosszúságú bitmezőket újraellenőrzik.
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
A mezők közötti minden adatkeretben «Start of Frame» és a mezőny vége «CRC Field» legfeljebb 5 egymást követő, azonos polaritású bit lehet.
Minden 5 azonos bitből álló sorozat után a blokkadó 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 minden, a CAN adatbuszra csatlakoztatott vezérlőegység értesítést kap a fellépő helyi hibáról, és ennek megfelelően 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, és ismét 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 megkezdi üzenetének újraküldését (automatikus ismétlés kérés funkció).
CAN busz típusok
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.
CAN adatátviteli sebességű terület «motor és futómű» (CAN-C) 125 Kbps, és a CAN adatbusz «Szalon» (CAN-B) a különösen sürgős üzenetek kisebb száma miatt mindössze 83 Kbps adatátviteli sebességre tervezték.
A két buszrendszer közötti adatcsere ún «átjárók», azaz mindkét adatbuszra csatlakoztatott vezérlőegységek.
Száloptikai D2B (Digital Daten-Bus) területre alkalmazott adatok «Audio/Kommunikáció/Navigáció». Az optikai kábel lényegesen nagyobb mennyiségű információt képes továbbítani, mint egy rézkábellel ellátott busz.
CAN-C busz «Motor és alváz»
A terminálvezérlő egység mindkét oldalán egy úgynevezett adatbusz-lezáró ellenállás van felszerelve, amelynek ellenállása 120 Ω, és a két adatbusz-vezeték közé csatlakozik.
A motortér CAN adatbusz csak bekapcsolt gyújtásnál aktív.
A CAN-C buszra több mint 7 vezérlőegység csatlakoztatható.
CAN-B busz «Szalon»
Egyes, az utastér CAN adatbuszához 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 az utastéri CAN adatbusznak kikapcsolt gyújtás mellett is működőképesnek 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őség szerinti csökkentése érdekében a CAN adatbusz az átvitelhez szükséges adatok hiányában passzív készenléti módba kapcsol, és csak a következő elérésekor aktiválódik újra.
Ha az utastéri CAN adatbusz passzív készenléti üzemmódjában van, bármely vezérlőegység (például egyzáras vezérlőmodul) üzenetet küld rajta keresztül, akkor azt csak a fő rendszermodul fogadja (elektronikus gyújtáskapcsoló, EZS/EIS). Az EZS modul eltárolja ezt az üzenetet a memóriában, és aktiváló jelet küld (Wake-up) minden CAN-B buszra csatlakoztatott vezérlőegységhez.
Aktiválásakor az EZS ellenőrzi az összes CAN-adatbusz-felhasználót, majd továbbítja a korábban tárolt üzenetet.
A CAN-B buszra több mint 20 vezérlőegység csatlakoztatható.