Általános információ
CAN kommunikációs eljárás
B – 1. érzékelő
CAN - Kommunikációs busz
M - Végrehajtó elemek I - III (szervo mechanizmusok)
N - Vezérlőegységek / vezérlők I - V
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 (lásd a fenti ábrát).
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.
Bármely, a CAN adatbuszra csatlakoztatott vezérlőegység képes ezt a jelet kiolvasni, ez alapján kiszámítani a szabályozási paramétereket, és vezérelni a szervo aktuátort.
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 képes vezérelni az aktuátort, amely a megfelelő adatcsomagot a CAN-buszon keresztül kapja, és ennek alapján számítja ki a szervomechanikán 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 Mbps is lehetséges, maximum 40 m-es vonalhosszal.
- 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. Az ehhez a vonalhoz csatlakoztatott összes 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 a csúcsot.
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ó blokk csak azokat az üzeneteket dolgozza fel (adatcsomagok), 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ó adatcsomag után 3 bites intervallum következett, és egyetlen vezérlőegység sem kezd el üzenetet küldeni). Ebben az esetben az adatbusz logikai szintjének recesszívnek kell lennie (logikus «1»).
Ha több vezérlőegység egyszerre kezd üzenetet küldeni, akkor életbe lép az a prioritáselv, 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 adatcsomagokon kívül a CAN adatbuszon egy adott üzenet kérésére szolgáló csomagok is használatosak, ilyen kérésre a kért információt szolgáltatni tudó vezérlőegység válaszol.
Adatcsomag formátum
Normál átviteli módban az adatcsomagok a következő blokkkonfigurációkkal rendelkeznek (személyzet):
- 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 adatbuszon lévő utolsó üzenet érvénytelen.
A CAN adatbusz protokoll két különböző CAN adatbusz üzenet keretformátumot támogat, amelyek csak az azonosító hosszában térnek el egymástól:
- szabványos formátum;
- Bővített formátum.
A járművezérlő rendszerek adatcsere-rendszereiben jelenleg 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 (lásd a fenti ábrát):
- Start of Frame (start bit): Kijelöli az üzenet elejét és szinkronizálja az összes modult;
- Arbitration Field (azonosító és kérés): Ez a mező egy azonosítóból áll (címek) 11 bit és 1 ellenőrző bit (Remote Transmission Request-Bit). Ez a vezérlőbit adatkeretként jelöli meg a keretet (adatkeret) vagy távoli keretként (távoli kérés keret) adatbájtok nélkül;
- Control Field (vezérlő bitek): Vezérlőmező (6 bites) IDE bitet tartalmaz (Identifier Extension Bit) a szabványos és a kiterjesztett formátum felismerésére, egy tartalék bit a későbbi bővítményekhez és - az utolsó 4 bitben - az adatmezőbe ágyazott adatbájtok száma (adatmező);
- Data Field (adat): Az adatmező 0-8 bájtnyi adatot tartalmazhat; a CAN adatbuszon egy 0 bájt hosszú üzenetet használnak az elosztott folyamatok szinkronizálására;
- 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): Az adatcsomag végét jelöli;
- Intermission (intervallum): Két adatcsomag közötti intervallum. Az intervallumnak legalább 3 bitesnek kell lennie. Ezt követően bármelyik vezérlőegység továbbíthatja a következő adatcsomagot;
- IDLE (pihenő mód): Ha egyetlen vezérlőegység sem küld üzenetet, akkor a CAN busz tétlen marad a következő adatcsomag elküldésé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ő hőmérséklet pedig a legalacsonyabb.
Az azonosító határozza meg, hogy a CAN-buszon milyen prioritású üzenetet küldenek (cím) 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
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.
Vezérlőegységek
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 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 (lásd a fenti ábrát).
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) a CAN-B buszra csatlakoztatott összes 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ó.