A CAN bus magyarázata: hogyan kommunikálnak a vezérlők, az akkumulátor-kezelő rendszerek (BMS) és a kijelzők

Egy modern elektromos eszközben a komponensek nem csupán energiát cserélnek, hanem információt is. A vezérlőnek tudnia kell az akkumulátor állapotát, a kijelzőnek a sebességet és a hőmérsékleteket, egy másik vezérlő pedig a másik vezérlő beállításait. A legelterjedtebb megoldás erre az autók világából származik: a CAN busz. Ez a útmutató elmagyarázza, hogyan működik, és hogyan lehet hibamentesen bekötni.

A lényeg

  • A CAN (Controller Area Network) egy olyan kommunikációs protokoll, amely több eszközt egyetlen, csavart vezetékpárral összeköt, amelyeket "CAN High" (felső CAN) és "CAN Low" (alsó CAN) néven ismerünk.
  • Mindkét végénél, a buszvezetékeken, 120 ohmos ellenállás szükséges, és ez csak a végpontokon kell, hogy legyen.
  • Minden üzenethez egy azonosító tartozik, amely egyben a prioritást is jelöli: a legfontosabb üzenetek mindig előkelnek.
  • Az összes eszköznek ugyanazt a kommunikációs sebességet kell használnia.

Egy busz, nem egy kapcsolat

Egy hagyományos soros kapcsolat két eszközt köt össze. A CAN viszont egy busz: minden eszköz ugyanarra a két vezetékre van csatlakoztatva, és mindegyik képes kommunikálni a többi eszközzel. Egy új eszközt a buszhoz csatlakoztatva lehet hozzáadni, anélkül, hogy új kábelt kellene a vezérlőhöz vezetni. Ez tette lehetővé, hogy széles körben elterjedjen az autóiparban, ahol több tucat számítógép néhány vezetékpár segítségével kommunikál egymással.

Egy könnyű elektromos járműben általában egy vagy több vezérlőt, az akkumulátor kezelőrendszerét (BMS), egy kijelzőt, egy telemetriai modult vagy egy töltőt találunk.

Két vezeték, egy különbség

A CAN bus két vezeték használatával működik: egy "CAN High" és egy "CAN Low" vezeték. Az információ nem a vezetékek feszültségének a referencia pont (föld)hez képest mért értékében, hanem a két vezeték közötti különbségben jelenik meg:

  • Nyugalmi állapotban (amikor a "recessive" beállítás aktív), a két vezeték ugyanazt a feszültséget mutatja, ami körülbelül a tápegység fele;
  • Ahhoz, hogy egy "domináns" bitet küldjön, a küldő elkülöníti a két vezetéket: az egyik felfelé, a másik lefelé mozog.

Egy elektromos zavarás, például egy olyan vezérlő által okozott, amely több száz amperrel dolgozik, egyformán érinti mindkét vezetéket. A két vezeték közötti feszültségkülönbség viszont változatlan marad. Ez teszi a CAN-t olyan robusztusnak egy zajos elektromos környezetben, feltéve, hogy a két vezetéket egymáshoz csavarták.

A lezáró ellenállások

Egy CAN busznak 120 ohmos ellenállást kell tartalmaznia a CAN High és a CAN Low vezetékek között mindkét fizikai végén. Ezek az ellenállások megakadályozzák a jelek visszaverődését a kábel végén, és visszaállítják a buszt a nyugalmi állapotba.

  • A buszos kapcsolat megfelelően működik: a CAN magas és a CAN alacsony vezetékek közötti ellenállást mérve, a készülékek kikapcsolt állapotában, körülbelül 60 ohmos értéket kapunk (ami két 120 ohmos ellenállás párhuzamos kapcsolásának felel meg).
  • Körülbelül 120 ohm: hiányzik egy ellenállás.
  • Egyértelműen 60 ohmnál alacsonyabb érték: ez azt jelenti, hogy túl sok terminálás van bekapcsolva, gyakran azért, mert több eszköz is rendelkezik saját, aktív termináljával.

A hiányzó vagy felesleges csatlakozó a leggyakoribb ok, ami instabil kommunikációt okoz.

Azonosítók és prioritás

Minden CAN üzenethez egy azonosító tartozik, egy szám, amely jelzi, hogy az üzenet miről szól (például "akkumulátor állapota" vagy "motor előtti beállítás"). Az eszközök olvasnak minden üzenetet, és csak azokat tárolják, amelyek relevánsak számukra.

Amikor két eszköz egyszerre kezd el adatot küldeni, azok bitenként összehasonlítják azonosítóikat a kommunikációs kábelen. A domináns bit "túlírja" a recesszív bitet: az eszköz, amely recesszív bitet küld, és domináns bitet fogad, rájön, hogy veszített, és abbahagyja a továbbítást. A kisebb azonosító mindig győz, anélkül, hogy bármilyen adat sérülne. Ezt az eljárást "arbitrációnak" nevezzük: a kritikus üzenetekhez a legkisebb azonosítókat rendeljük.

Beépített megbízhatóság

  • Minden üzenet tartalmaz egy ellenőrző kódot: ha egy üzenet sérül, az rendszer felismeri ezt, és az üzenet újraküldésre kerül.
  • Minden vevő a vétel sikeres voltát egy visszaigazoló bit segítségével jelzi.
  • Egy olyan eszköz, amely sorozatosan hibákat produkál, automatikusan kikapcsolja magát, hogy ne akadályozza a teljes kommunikációs rendszert.

A bus sebessége

Minden eszköznek, amely egy buszhoz tartozik, ugyanazzal a sebességgel kell működnie. A leggyakoribb értékek 250 és 500 kilobit másodpercenként, néha 1 megabit másodpercenként. Minél gyorsabb a busz, annál rövidebb lehet a maximális hossza, de egy könnyű jármű esetében, amelynek hossza legfeljebb néhány méter, a hossz ritkán jelent korlátot. Egy újabb verzió, a CAN FD, nagyobb mennyiségű adatot képes továbbítani üzenetenként, nagyobb sebességgel.

Példa: két összekapcsolt vezérlő

Egy dupla motoros robogónál, két CAN-buszon keresztül összekötött vezérlő eggyel azonos módon működik: az a vezérlő, amely a gázpedál jeleit fogadja, továbbítja az információt a másiknak, és egyetlen beállítási szoftver látja mindkét vezérlőt. Ez a VESC vezérlőkre jellemző, amelyet a mi "A VESC egyszerűen magyarázva" című cikkünkben ismertetünk.

Műhelytipp.

Mindig csatlakoztassa össze a CAN magas és a CAN alacsony vezetékeket, és tartsa őket távol a fáziskábelektől. Ellenőrizze a 60 ohmos ellenállást a multiméterrel a bekapcsolás előtt. Öt percnyi ellenőrzés megakadályozhatja az órákig tartó, időnkénti kommunikációs problémák keresését.

Gyakori kérdések

A CAN-bus szállít áramot a készülékek működtetéséhez?

Nem, a CAN interfész csak az adatokat továbbítja. Az eszközöknek saját tápegységük van, amelyet néha a kábel más vezetékén keresztül biztosítanak.

Miért működik a CAN kommunikáció időnként csak szakaszosan?

A leggyakoribb okok közé tartozik a hiányzó vagy túlzott termináció, a nem csavart vezetékek, amelyek a nagyfeszültségű kábelközelében futnak, egy elhasználódott csatlakozó, vagy két eszköz, amelyeknek eltérő a buszsebességük.

Lehet-e bármilyen CAN-kommunikációt használó eszközt összekapcsolni egymással?

Elektromosan akkor igen, ha ugyanazt a kommunikációs sebességet használják. Azonban ahhoz, hogy képesek legyenek kommunikálni, ugyanazt a "nyelvet" kell beszélniük: azonos azonosítókat és azonos üzenetformátumot kell használniuk. Két különböző gyártó eszközei nem tudnak egymással kommunikálni anélkül, hogy valamilyen módosításra ne lenne szükség.