Beültél az autódba, megnyomtad az indítógombot, és a motor pillanatok alatt életre kelt, de hogyan döntötte el az autód, hogy induljon-e vagy sem?

Nos, hogy az autó elinduljon, több antenna és elektronikus vezérlőegység kommunikált a kulcstartóval. A Controller Area Network (CAN) protokoll biztosítja a kommunikációt a kulcstartó, az antennák és az ECU-k között az autó belsejében.

Tehát mi az a CAN protokoll, és hogyan segíti elő a jármű rendszerein lévő eszközök együttműködését? Nos, derítsük ki.

Mi a CAN protokoll, és miért van szükség rá?

Régen az autókban nem volt sok elektronika. Valójában, ha az 1900-as évek elején el akarta indítani járművét, ki kellett szállnia a járműből, és kézzel kellett beindítania a motort.

A mai autók éppen ellenkezőleg, több elektronikus érzékelővel rendelkeznek, az utastér hőmérsékletétől a főtengely fordulatszámáig az elektronikus eszközök pedig mindent felügyelnek.

Ennek ellenére az ezektől az érzékelőktől kapott adatok feldolgozásukig értéktelenek. Ezt az adatfeldolgozást elektronikus vezérlőegységként (ECU) ismert számítástechnikai eszközök végzik.

instagram viewer
Kép forrása: SenseiAlan/Flickr

Az egyetlen CPU-val rendelkező számítógépekkel ellentétben az autónak több ECU-ja van, amelyek mindegyike egy adott feladat végrehajtásáért felelős. Bár ezek az ECU-k egyetlen feladatot is hatékonyan képesek végrehajtani, együtt kell működniük az olyan szolgáltatások biztosítása érdekében, mint pl ABS és KILÉPÉS megfelelően működjön.

Emiatt az autó összes ECU-ját csatlakoztatni kell. Ezeknek a kapcsolatoknak a létrehozásához egy pont-pont topológia használható, ahol minden ECU közvetlenül kapcsolódik minden másik ECU-hoz. Ez az architektúra azonban bonyolulttá tenné a rendszert. Valójában egy modern jármű több mint 70 ECU-val rendelkezik, és ezek egy az egyhez csatlakoztatása exponenciálisan megnövelné a vezetékek súlyát.

A probléma megoldására a Bosch a Mercedes-Benzzel és az Intellel együtt 1986-ban létrehozta a Controller Area Network protokollt. Ez a protokoll lehetővé tette az ECU-k számára, hogy a CAN-buszként ismert megosztott adatbusz segítségével kommunikáljanak egymással.

Hogyan működik a CAN?

A CAN protokoll egy üzenetalapú kommunikációs módszer, amely sodrott érpárú kábelekre támaszkodik az adatátvitelhez. Ezek a vezetékek CAN magas és CAN alacsony néven ismertek.

Az adatátvitel lehetővé tétele érdekében ezeken a vezetékeken a feszültségszinteket megváltoztatják. A feszültségszintek változásait ezután logikai szintekre fordítják le, amelyek lehetővé teszik az autó ECU-inak, hogy kommunikáljanak egymással.

Kép forrása: Spinningspark/Wikimédia

A logikai átvitelhez a CAN buszon mindkét vonal feszültsége 2,5 volt. Ezt az állapotot recesszív állapotnak is nevezik, ami azt jelenti, hogy a CAN busz bármely ECU számára elérhető.

Ellenkezőleg, a logikai 0 a CAN buszon akkor kerül átvitelre, ha a CAN magas vonal 3,5 voltos, a CAN alacsony vonal pedig 1,5 V feszültségű. A busznak ezt az állapotát domináns állapotnak is nevezik, amely a rendszer minden ECU-ját jelzi, hogy egy másik ECU küld, ezért meg kell várniuk, amíg az adás véget ér, mielőtt megkezdenék az üzenet továbbítását.

A feszültségváltozások lehetővé tételéhez az autó ECU-i a CAN-buszhoz csatlakoznak egy CAN adó-vevőn és egy CAN-vezérlőn keresztül. Az adó-vevő felelős azért, hogy a CAN-busz feszültségszintjeit olyan szintre konvertálja, amelyet az ECU megért. Az adatkezelő ezzel szemben a beérkezett adatok kezelésére és a protokoll követelményeinek teljesülésének biztosítására szolgál.

Mindezek a CAN-buszra kapcsolt ECU-k a sodrott kábelen tudnak adatokat továbbítani, de van egy fogás, csak a legmagasabb prioritású üzenetet lehet továbbítani a CAN-buszon. Ahhoz, hogy megértsük, hogyan továbbít egy ECU adatokat a CAN buszon, meg kell értenünk a CAN protokoll üzenetszerkezetét.

A CAN protokoll üzenetstruktúrájának megértése

Amikor két ECU szeretne kommunikálni, az alábbi felépítésű üzenetek továbbításra kerülnek a CAN buszon.

Ezeket az üzeneteket a CAN-busz feszültségszintjének változtatásával továbbítják, és a CAN-vezetékek csavart érpáras kialakítása megakadályozza az adatsérülést az átvitel során.

  • SOF: A Start Of Frame rövidítése, az SOF bit egyetlen domináns bites adatkeret. Ezt a bitet egy csomópont továbbítja, amikor adatokat akar küldeni a CAN buszon.
  • Azonosító: A CAN protokoll azonosítója 11 bites vagy 29 bites lehet. Az azonosító mérete a használt CAN protokoll verziójától függ. Ha a CAN kiterjesztett verzióját használjuk, akkor az azonosító mérete 29 bit, egyéb esetekben az azonosító mérete 11 bit. Az azonosító fő célja az üzenet prioritásának azonosítása.
  • RTR: A távoli átviteli kérelmet vagy az RTR-t akkor használja a csomópont, amikor adatokat kell kérni egy másik csomóponttól. Ennek érdekében az adatot kérő csomópont egy recesszív bitet tartalmazó üzenetet küld az RTR keretben a kívánt csomópontnak.
  • DLC: Az adathossz kód határozza meg az adatmezőben továbbított adatok méretét.
  • Adatmező: Ez a mező tartalmazza a hasznos adatokat. Ennek a hasznos adatnak a mérete 8 bájt, de az újabb protokollok, mint például a CAN FD, 64 bájtra növelik ezt a hasznos adatot.
  • CRC: A ciklikus redundancia ellenőrzés rövidítése, a CRC mező egy hibaellenőrző keret. Ugyanez 15 bit méretű, és a vevő és az adó egyaránt számítja. A továbbító csomópont az adatokhoz CRC-t hoz létre átvitelkor. Az adatok vételekor a vevő kiszámítja a kapott adatok CRC-jét. Ha mindkét CRC egyezik, az adatok sértetlensége megerősítést nyer. Ha nem, akkor az adatok hibásak.
  • Nyugtázó mező: Amint az adatok vétele megtörtént, és hibamentesek, a fogadó csomópont egy domináns bitet táplál be a nyugtázási keretbe, és visszaküldi az adónak. Ez jelzi az adónak, hogy az adatok vétele megtörtént, és hibamentes.
  • A keret vége: Az adatátvitel befejezése után hét egymást követő recesszív bit kerül továbbításra. Ez biztosítja, hogy minden csomópont tudja, hogy egy csomópont befejezte az adatátvitelt, és adatokat küldhet a buszon.

A fenti biteken kívül a CAN protokollnak van néhány későbbi felhasználásra fenntartott bitje.

A CAN egyszerűsítése egy példán keresztül

Most, hogy már alapvetően megértjük, hogyan néz ki egy üzenet a CAN-buszon, megérthetjük, hogyan történik az adatok továbbítása a különböző ECU-k között.

Az egyszerűség kedvéért tegyük fel, hogy az autónk 3 ECU-val rendelkezik: Node 1, Node 2 és Node 3. A 3 ECU közül az 1. és 2. csomópont kommunikálni akar a 3. csomóponttal.

Nézzük meg, hogy a CAN protokoll hogyan segíti a kommunikációt egy ilyen forgatókönyvben.

  • A busz állapotának észlelése: Az autó összes ECU-ja a CAN-buszra csatlakozik. Példánk esetében a Node 1 és Node 2 adatokat akar küldeni egy másik ECU-nak; mielőtt ezt megtenné, mindkét ECU-nak ellenőriznie kell a CAN-busz állapotát. Ha a busz domináns állapotban van, akkor az ECU-k nem tudnak adatokat továbbítani, mivel a busz használatban van. Másrészt, ha a busz recesszív állapotban van, az ECU-k képesek adatokat továbbítani.
  • A keret kezdetének küldése: Ha a CAN buszon a feszültségkülönbség nulla, akkor mind az 1., mind a 2. csomópont a busz állapotát dominánssá változtatja. Ehhez a CAN high feszültségét 3,5 V-ra emeljük, a CAN low feszültségét pedig 1,5 V-ra csökkentjük.
  • Annak eldöntése, hogy melyik csomópont férhet hozzá a buszhoz: Az SOF elküldése után mindkét csomópont verseng a CAN busz eléréséért. A CAN busz a Carrier Sense Multiple Access/Collision Detection (CSMA/CD) protokollt használja annak eldöntésére, hogy melyik csomópont kap hozzáférést. Ez a protokoll összehasonlítja a két csomópont által továbbított azonosítókat, és hozzáférést biztosít a magasabb prioritásúhoz.
  • Adatok küldése: Miután a csomópont hozzáfér a buszhoz, az adatmező a CRC-vel együtt elküldésre kerül a vevőnek.
  • A kommunikáció ellenőrzése és befejezése: Az adatok fogadásakor a 3. csomópont ellenőrzi a vett adatok CRC-jét. Ha nincs hiba, a 3. csomópont CAN üzenetet küld az adó csomópontnak egy domináns bittel a nyugtázási kereten az EOF-vel együtt, hogy megszakítsa a kommunikációt.

Különböző típusú CAN

Bár a CAN protokoll által használt üzenetstruktúra változatlan marad, az adatátvitel sebessége és az adatbitek mérete megváltozik a nagyobb sávszélességű adatátvitel érdekében.

Ezen eltérések miatt a CAN protokollnak különböző verziói vannak, amelyekről az alábbiakban egy áttekintést adunk:

  • Nagy sebességű CAN: A CAN vezetékeken lévő adatok soros továbbítása történik, és ez az átvitel különböző sebességgel történhet. A nagy sebességű CAN esetében ez a sebesség 1 Mbps. Ennek a nagy adatátviteli sebességnek köszönhetően nagy sebességű kannát használnak az ECU-khoz, amelyek vezérlik a hajtásláncot és a biztonsági rendszereket.
  • Alacsony sebességű CAN: Kis sebességű CAN esetén az adatátviteli sebesség 125 kbps-ra csökken. Mivel az alacsony sebesség alacsonyabb adatátviteli sebességet kínál, az utas kényelmét biztosító ECU-k csatlakoztatására szolgál, mint például a légkondicionáló vagy az infotainment rendszer.
  • Lehet FD: A CAN rugalmas adatsebesség rövidítése, a CAN FD a CAN protokoll legújabb verziója. 64 bájtra növeli az adatkeret méretét, és lehetővé teszi az ECU-k számára, hogy 1 Mbps és 8 Mbps közötti sebességgel továbbítsanak adatokat. Ezt az adatátviteli sebességet az ECU-k valós időben kezelhetik a rendszerkövetelmények alapján, lehetővé téve az adatok nagyobb sebességű átvitelét.

Mi az autóipari kommunikáció jövője?

A CAN protokoll lehetővé teszi, hogy több ECU kommunikáljon egymással. Ez a kommunikáció olyan biztonsági funkciókat tesz lehetővé, mint az elektronikus menetstabilizáló és a fejlett vezetőtámogató rendszerek, mint a holttér-érzékelő és az adaptív sebességtartó automatika.

Ennek ellenére a fejlett funkciók, például az autonóm vezetés megjelenésével a CAN-busz által továbbított adatmennyiség exponenciálisan növekszik. Ezen szolgáltatások engedélyezéséhez a CAN protokoll újabb verziói, például a CAN FD megjelennek a piacon.