logo

CAN (Controller Area Network) protokoll

A CAN jelentése Controller Area Network jegyzőkönyv. Ez egy protokoll, amelyet a Robert Bosch 1986 körül. A CAN protokoll egy szabvány, amelyet arra terveztek, hogy a mikrokontroller és más eszközök gazdaszámítógép nélkül kommunikáljanak egymással. A CAN protokollt az egyéb kommunikációs protokollok között egyedivé tevő jellemző a busz broadcast típusa. Itt a broadcast azt jelenti, hogy az információt az összes csomóponthoz továbbítják. A csomópont lehet érzékelő, mikrokontroller vagy átjáró, amely lehetővé teszi a számítógép számára a hálózaton keresztüli kommunikációt az USB-kábelen vagy az Ethernet-porton keresztül. A CAN egy üzenet alapú protokoll, ami azt jelenti, hogy az üzenet hordozza az üzenetazonosítót, és az azonosító alapján dől el a prioritás. A CAN hálózatban nincs szükség csomópont azonosításra, így nagyon könnyű beilleszteni vagy törölni a hálózatból. Ez egy soros félduplex és aszinkron típusú kommunikációs protokoll. A CAN egy kétvezetékes kommunikációs protokoll, mivel a CAN hálózat a kétvezetékes buszon keresztül csatlakozik. A vezetékek sodrott érpárok, 120Ω karakterisztikus impedanciával, mindkét végén csatlakoztatva. Kezdetben elsősorban a járműveken belüli kommunikációra tervezték, de ma már sok más környezetben is használják. Az UDS-hez és a KWP 2000-hez hasonlóan a fedélzeti diagnosztikára is használható.

Miért tud?

A központosított szabványos kommunikációs protokollra az elektronikus eszközök számának növekedése miatt volt szükség. Például egy modern járműben több mint 7 TCU lehet különféle alrendszerekhez, például műszerfalhoz, sebességváltó-vezérlőhöz, motorvezérlő egységhez és még sok máshoz. Ha az összes csomópont egy az egyhez csatlakozik, akkor a kommunikáció sebessége nagyon magas lenne, de a vezetékek bonyolultsága és költsége nagyon magas lenne. A fenti példában egyetlen műszerfalhoz 8 csatlakozóra van szükség, ezért a probléma megoldása érdekében a CAN-t központosított megoldásként vezették be, amelyhez két vezeték szükséges, azaz a CAN magas és a CAN alacsony. A CAN protokoll használatának megoldása meglehetősen hatékony az üzenet prioritása miatt, és rugalmas, mivel egy csomópont beilleszthető vagy eltávolítható a hálózat befolyásolása nélkül.

A CAN protokoll alkalmazásai

Kezdetben a CAN protokollt a járműveken belüli kommunikációs problémák kezelésére tervezték. De a későbbiekben, az általa kínált funkciók miatt, számos más területen is használják. A CAN protokoll alkalmazásai a következők:

  • Autóipar (személygépjárművek, teherautók, buszok)
  • Elektronikus berendezések repüléshez és navigációhoz
  • Ipari automatizálás és mechanikus vezérlés
  • Lift és mozgólépcsők
  • Épületautomatizálás
  • Orvosi műszerek és berendezések
  • Tengerészeti, orvosi, ipari, orvosi

CAN réteges architektúra

Mint tudjuk, hogy a OSI modell 7 különböző rétegre osztja fel a kommunikációs rendszert. De a CAN réteges architektúra két rétegből áll, azaz

Értsük meg mindkét réteget.

  • Adatkapcsolati réteg: Ez a réteg felelős a csomópontok közötti adatátvitelért. Lehetővé teszi a kapcsolat létrehozását és megszakítását. Feladata továbbá a fizikai rétegen előforduló hibák észlelése és kijavítása. Az adatkapcsolati réteg két alrétegre oszlik:
      MAC:A MAC a Media Access Control rövidítése. Meghatározza, hogy a hálózatban lévő eszközök hogyan férhetnek hozzá a közeghez. Biztosítja az adatok tokozását és dekapszulálását, hibaészlelést és jelzést.
  • LLC:Az LLC a Logical link control rövidítése. Felelős a keretelfogadás szűréséért, a túlterhelésértesítésért és a helyreállítás kezeléséért.
  • Fizikai réteg: A fizikai réteg felelős a nyers adatok továbbításáért. Meghatározza az olyan paraméterek specifikációit, mint a feszültségszint, az időzítés, az adatátviteli sebesség és a csatlakozó.

A CAN specifikációk meghatározzák a CAN protokollt és a CAN fizikai réteget, amelyeket a CAN szabvány definiál ISO 11898. Az ISO 11898 három részből áll:

számtani logikai egység
  • ISO 11898-1: Ez a rész az adatkapcsolati réteg és a fizikai jelkapcsolat specifikációit tartalmazza.
  • ISO 11898-2: Ez a rész a CAN fizikai réteg alá tartozik a nagy sebességű CAN számára. A nagy sebességű CAN akár 1 Mbps adatátviteli sebességet tesz lehetővé az erőátvitelben és a jármű töltési területén.
  • ISO 11898-3: Ez a rész szintén a CAN fizikai réteg alá tartozik az alacsony sebességű CAN számára. 125 kbps adatsebességet tesz lehetővé, és az alacsony sebességű CAN-t ott használják, ahol a kommunikáció sebessége nem kritikus tényező.

CiA DS-102: A CiA teljes formája a CAN az Automationban, amely meghatározza a CAN-csatlakozó specifikációit.

Ami a megvalósítást illeti, a CAN vezérlő és a CAN adó-vevő az alkalmazás, az operációs rendszer és a hálózatkezelési funkciók segítségével valósul meg a szoftverben.

CAN Keretezés

Ismerjük meg a CAN keret felépítését.

CAN protokoll
    SOF:Az SOF a keret kezdete, ami azt jelzi, hogy az új keret bekerült a hálózatba. 1 bites.Azonosító:A CAN 2.0 A specifikáció szerint meghatározott szabványos adatformátum 11 bites üzenetazonosítót használ a döntéshozatalhoz. Alapvetően ez az üzenetazonosító határozza meg az adatkeret prioritását.RTR:Az RTR a Remote Transmission Request rövidítése, amely meghatározza a keret típusát, legyen az adatkeret vagy távoli keret. 1 bites.Vezérlő mező:Felhasználó által meghatározott funkciókkal rendelkezik.
      MEGY:A vezérlőmezőben lévő IDE bit az azonosító kiterjesztést jelenti. Egy domináns IDE bit határozza meg a 11 bites szabványos azonosítót, míg a recesszív IDE bit határozza meg a 29 bites kiterjesztett azonosítót.DLC:A DLC a Data Length Code rövidítése, amely az adatmezőben lévő adathosszt határozza meg. 4 bites.Adatmező:Az adatmező legfeljebb 8 bájtot tartalmazhat.
    CRC mező:Az adatkeret tartalmaz egy 15 bites ciklikus redundancia-ellenőrző mezőt is, amely a hiba észlelésére szolgál, ha az átviteli idő alatt történik. A küldő kiszámítja a CRC-t az adatkeret elküldése előtt, a vevő pedig szintén kiszámítja a CRC-t, majd összehasonlítja a számított CRC-t a küldőtől kapott CRC-vel. Ha a CRC nem egyezik, akkor a vevő generálja a hibát.ACK mező:Ez a fogadó elismerése. Más protokollokban az összes csomag beérkezése után külön csomagot küldenek a nyugtázáshoz, de CAN protokoll esetén nem küldenek külön csomagot nyugtázásra.EOF:Az EOF a keret vége. 7 egymást követő recesszív bitet tartalmaz, ismert keret vége.

Most meglátjuk, hogyan továbbítják az adatokat a CAN hálózaton keresztül.

CAN protokoll

A CAN hálózat több CAN csomópontból áll. A fenti esetben három CAN-csomópontot vettünk figyelembe, és ezeket A csomópontnak, B csomópontnak és C csomópontnak neveztük el. A CAN-csomópont három elemből áll, amelyeket alább adunk meg:

  • Házigazda
    A gazdagép egy mikrokontroller vagy mikroprocesszor, amely valamilyen alkalmazást futtat egy adott feladat elvégzésére. A fogadó dönti el, hogy mit jelent a kapott üzenet, és milyen üzenetet küldjön ezután.
  • CAN vezérlő
    A CAN vezérlő a CAN protokoll által leírt kommunikációs funkciókkal foglalkozik. Kiváltja a CAN üzenetek átvitelét vagy fogadását is.
  • CAN adó-vevő
    A CAN adó-vevő felelős a CAN buszon lévő adatok továbbításáért vagy vételéért. Az adatjelet a CAN-buszról gyűjtött adatfolyammá alakítja, amelyet a CAN-vezérlő megért.

A fenti ábrán árnyékolatlan, csavart érpárú kábelt használnak az adatok továbbítására vagy fogadására. CAN-buszként is ismert, és a CAN-busz két vonalból áll, azaz a CAN alacsony vonalból és a CAN magas vonalból, amelyeket CANH-nak és CANL-nek is neveznek. Az átvitel az ezekre a vezetékekre alkalmazott feszültségkülönbség miatt következik be. A CAN a környezete miatt csavart érpárú kábelt és differenciálfeszültséget használ. Például egy autóban a motor, a gyújtásrendszer és sok más eszköz adatvesztést és adatsérülést okozhat a zaj miatt. A két vonal csavarása is csökkenti a mágneses teret. A busz mindkét végén 120Ω ellenállással van lezárva.

CAN jellemzők

CAN protokoll

A feszültségkülönbség segítségével meghatározzuk, hogy a 0 és az 1 hogyan kerül továbbításra a CAN buszon. A fenti ábra a feszültség grafikonja, amely a CAN alacsony és a CAN magas feszültségszintjét mutatja. A CAN terminológiában az 1-es logikát recesszívnek mondják, míg a logikai 0-t a domináns. Ha a CAN magas vonalat és a CAN alacsony vonalat 2,5 V-tal kapcsolják, akkor a tényleges differenciálfeszültség nulla volt. A CAN buszon lévő nulla voltos feszültséget a CAN adó-vevő recesszívként vagy logikai 1-ként olvassa be. A CAN buszon lévő nulla volt a busz ideális állapota. Ha a CAN magas vonalat 3,5 V-ra húzzuk, a CAN alacsony vonalat pedig 1,5 V-ra húzzuk le, akkor a busz tényleges differenciálfeszültsége 2 volt. A CAN adó-vevő domináns bitként vagy logikai 0-ként kezeli. Ha a busz állapotát domináns vagy logikai 0 értékre érjük el, akkor lehetetlenné válik, hogy bármely másik csomópont recesszív állapotba lépjen.

A CAN jellemzőiből tanult kulcspontok

  • Az 1. logika recesszív állapot. Az 1 CAN buszon való átviteléhez a CAN magas és a CAN alacsony feszültséget egyaránt 2,5 V-tal kell alkalmazni.
  • A logikai 0 egy domináns állapot. A 0 CAN buszon való átviteléhez a CAN high értéket 3,5 V-ra, a CAN alacsony értéket pedig 1,5 V-ra kell alkalmazni.
  • A busz ideális állapota recesszív.
  • Ha a csomópont eléri a domináns állapotot, akkor nem tud visszalépni a recesszív állapotba más csomópont által.

CAN busz logika

CAN protokoll
CAN protokoll

A fenti forgatókönyvből megtudhatjuk, hogy a domináns állapot felülírja a recesszív állapotot. Ha a csomópont egyszerre küldi a domináns és a recesszív bitet, akkor a busz domináns marad. A recesszív szint csak akkor következik be, ha az összes csomópont elküldi a recesszív bitet. Az ilyen logikát ÉS logika néven ismerik, és fizikailag nyitott kollektoros áramkörként valósítják meg.

CAN kommunikációs elv

Mint tudjuk, az üzenetet a választottbírósági mezőben beállított prioritás alapján küldjük el. A szabványos keretnél az üzenetazonosító 11 bites, míg a kiterjesztett keretnél az üzenetazonosító 29 bites. Lehetővé teszi a rendszertervező számára, hogy magában a tervezésben megtervezze az üzenetazonosítót. Minél kisebb az üzenetazonosító, annál magasabb lesz az üzenet prioritása.

Nézzük meg, hogyan működik a választottbíráskodás folyamatábrán keresztül.

CAN (Controller Area Network) protokoll

A feladó el akarja küldeni az üzenetet, és arra vár, hogy a CAN-busz tétlenné váljon. Ha a CAN busz tétlen, akkor a küldő elküldi a SOF-t vagy a domináns bitet a busz eléréséhez. Ezután elküldi az üzenetazonosító bitet a legjelentősebb bitben. Ha a csomópont észleli a domináns bitet a buszon, miközben a recesszív bitet továbbította, az azt jelenti, hogy a csomópont elvesztette az arbitrációt, és leállítja a további bitek továbbítását. A feladó vár, és újra elküldi az üzenetet, ha a busz felszabadul.

CAN választottbírósági példa

CAN protokoll

Ha három csomópontot veszünk figyelembe, azaz az 1. csomópontot, a 2. csomópontot és a 3. csomópontot, akkor ezeknek a csomópontoknak az üzenetazonosítói 0x7F3, 0x6B3 és 0x6D9.

CAN protokoll

Mindhárom csomópont átvitele a legjelentősebb bittel a fenti diagramon látható.

tizenegythbit: Mivel a csomópontok mindhárom bitje recesszív, így a buszbit is recesszív marad.

10thbit: Minden csomópont 10. bitje recesszív, így a busz is recesszív marad.

9thbit: Az 1. csomópontnak recesszív bitje van, míg a többi csomópontnak domináns bitje van, így a busz is domináns marad. Ebben az esetben az 1. csomópont elvesztette az arbitrációt, ezért leállítja a bitek küldését.

hivatkozási mutató c

8thbit: Mind a 2, mind a 3 csomópont recesszív bitet küld, így a busz állapota recesszív marad.

7thbit: A 2. csomópont domináns bitet küld, míg a 3. csomópont recesszív bitet küld, így a busz állapota domináns marad. Ebben az esetben a 3-as csomópont elvesztette az arbitrációt, így leállítja az üzenet küldését, miközben a 2-es csomópont megnyerte az arbitrációt, ami azt jelenti, hogy továbbra is fenntartja a buszt az üzenet beérkezéséig.