2.5 Soros adatkommunikációs rendszerek – CAN (Ötödik rész) 3.4. A CAN adatbusz rendszerek üzenetformátuma Az információt a soros adatátviteli rendszereknél szabványosított keretformátumba foglalják. A teljes üzenetet alkotó bitsorozat az adott kereten belül úgynevezett mezőkre osztott. Az egyes mezőkbe elhelyezkedő bitcsoportok fontos protokolláris, hibafelismerő és adatátviteli feladatokat teljesítenek. Forrás: V A G
18. ábra
3.4.1. A Startmező – startbit A buszvonal üzenetmentes helyzetben „H” szintű (1), ha azt valamelyik ECU használni akarja, azzal kezdi az adást, hogy a vonalat „L” szintre (0) húzza, tehát előállítja a start bitet. Ez azt eredményezi, hogy a többi ECU is elkezdi figyelni a vonalat, és egyúttal szinkronizálja a saját órajelét. Mivel aszinkron a rendszer, mindegyik ECU saját órajel generátorral rendelkezik, amelyek természetesen nem „járnak” teljesen együtt. (A szinkronozás az adás megkezdését követően más éleknél is létrejön.) 3.4.2. Döntési mező – arbitrációs mező Mint már említettük, a CAN a Multi Master elvből következően nem a résztvevőket, hanem az üzenetek tartalmát részesíti előnyben. A döntési mező mondja meg, hogy milyen tartalmú üzenet kerül a buszra − tehát azt majd, mely vezérlőknek kell feldolgozniuk − és egyben e mező tartalmától függ a buszhasználati jogosultság is. Mivel jelenleg két CAN szabvány szerinti üzenetformát is alkalmaznak (ezek egy hálózaton belül is használatosak), a start bit utáni arbitrációs mező hossza 11+1 (CAN 2.0A változatnál), illetve 11+2+18+1 (a CAN 2.0B változatnál) bit. A rendszer úgy van megalkotva, hogy a CAN 2.0A változat üzenetei a CAN 2.0 B üzeneteihez képest prioritást élvezzenek. (Jelen írásunkban a könnyebb megértés céljából csak a CAN 2.0A arbitrációs mezőjével foglalkozunk.) Az döntési mező a CAN 2.0 A változatnál két részből áll, az azonosító mezőből és az adatkérelmi mezőből, amely mindösszesen egyetlen bit.
1
3.4.2.1. Azonosító mező A CAN 2.0A változatnál az azonosító mező 11 bit hosszúságú, ami elvileg 211= 2048 féle azonosító kódot jelenthet, ennyiféle üzenet kerülhet elméletileg a buszra. (A valóságban a számuk csak 2032. A CAN 2.0.B változatnál az azonosító mező hosszát 29 bitre növelték, hogy az üzenetfajták száma emelkedhessen, legyen és lehetőség a fejlesztésre is.) A buszhasználati jogosultságot úgy Forrás: V A G tudják rangsorolni, hogy az azonosító Forrás: V A G mezőben mindig a legkisebb számértékkel szereplő üzenet fog a buszra felkerülni. Mivel a rendszer „0 domináns”, ha több vezérlő egyszerre kezdi használni a buszt a start bit után következően, minél tovább van, a vezérlőnek a magas helyi értékeken „0 értékű bitje” − tehát minél kisebb az azonosító száma − annál nagyobb az üzenete prioritása. Példánkban (19. ábra) látható, hogy mivel az ABS/ASR ECU azonosító mezőjének a számszerű értéke a legkisebb bináris szám (a 211, és a 210 helyi értéken is 0-van), ennek üzenete fog a buszra felkerülni. Mivel a 19. ábra buszforgalmat az RX vezetékeken mindegyik vezérlő olvassa, az ABS/ASR ECU tudja, hogy a buszon az ő üzenetének arbitrációs értéke jelent meg. Az ABS/ASR ECU tehát adóként, a többi ECU, csak vevőként üzemelhet tovább, az üzenetcsomag végéig. 3.4.2.2. Adatkérelem, adatküldés − RTR bit A buszra nem csak adatok, hanem utasítások - pl. egy adatkérő utasítás – is felkerülhet. Az arbitrácis mező utolsó bitje − az RTR bit − erről ad információt. 20. ábra
Adatküldő üzenetkeret – RTR=0 21. ábra
Ha az RTR bit (Remote Transmission Request⇒ távoli átviteli kérelem) értéke „0” az üzenet adatközlő, ha „1” akkor adat kérő. Mivel a „0” a domináns bit, azonos arbitrációs mező tehát azonos „üzenettípus” esetén adatküldésnek van prioritása. Az adatkérő üzenetben (22. ábra) nincs adatmező. Adatkérő üzenetkeret – RTR=1 22. ábra
3.4.3. Ellenőrző mező − Control mező A kontrol bitmező 6 bitből áll. Az első bit − az úgynevezett IDE bit − a rendszerkódot azonosítja. CAN 2.0A esetén az IDE bit értéke „0”, CAN 2.0B esetén „1”. Ennek ismerete az üzenet dekódolásához fontos, hiszen az arbitrációs mező hossza különbözik. A hat bitből a második egy tartalék (rezervált) bit, a későbbi fejlesztésekre. Értéke jelenleg „0”. Az utolsó négy bit azt az összegkódot adja meg, amely alapján az adatmező hossza megtudható. 2
3.4.4. Adatmező Az adatmező maximálisan 8 byte -ot tartalmazhat, számuk azonban 0-8 között rugalmasan változhat. Maximális hossza tehát 64 bit, de általában csak 1-3 byte hosszúak. Természetesen e miatt változik az üzenet hossza is. Egy példa: Egy 0-5V között változó jelfeszültségű fojtószelep potenciométer 33,6º -ra fordult el. A fojtószelep érzékelési szögtartománya 102º. Az információt küldő vezérlő e jelet egy byte-on ábrázolja. Rajzoljuk meg az adatmező bitfolyamának időfüggvényét! A kimenet kódolása NRZ. A rendszer HS−CAN, melynek sebessége ez esetben 500 kbit/s. Megoldás: A fojtószelep helyzete 0,0º 0,4º 0,8º
A fojtószeleppotenciométer jelfeszültsége 0V 0,0196 V 0,0392 V
A jel digitális alakja 0000 0000 0000 0001 0000 0010
⇓ 10º
0,49 V
0001 1001
1,647 V
0101 0100
5V
1111 1111
23. ábra
⇓ 33,6º
⇒
⇓ 102º
A jelfeszültség nagysága: UIN= 5V/102º *33,6º= 1,647 V. D= k*A/R= k*Uin/Uref = 256*1,647/5=84,326 Ennek egészrésze: 84 D, bináris alakja: 01010100 B A bitfolyam periódusideje: T=1/500 kHz = 2µs A bitfolyam időfüggvénye:
3.4.5. CRC (üzenet ellenőrző) mező Az információ-átviteli hiba jelzésre a CAN 15+1 bitet tartalmazó ellenőrző mezőt használ. (Cyclic Redundancy Check = ciklikus redundancia vizsgálat). Egy meglehetősen bonyolult matematikai műveletsor elvégzésével − a CRC mezőt megelőző bitek értékeiből − az adó és a vevők is azonos módon képezik a CRC mező 15 bitjét. A vevő összehasonlítja a kapott és az általa kiszámított bitsorozatot. Ha ezek nem egyeznek meg átviteli hiba történt. A 16. recesszív bit jelzi a mező lezárását. 3.4.6. Nyugtázó mező Két recesszív bitből áll, amelyből az első arra szolgál, hogy a vett üzenet hibás vagy hibátlan voltát a vevő visszajelezze az üzenetet küldőnek. Ha bármelyik vevő e bitet dominánsra húzza, az azt jelzi, hogy legalább 1 vevő hibátlannak ítélte az üzenetet. Ha az üzenet hibás – a vevők recesszív állapotban hagyják az ACK-Slot-nak nevezett bitet, – az adó azt megismétli. A második recesszív bit csupán a nyugtázó mező végét jelzi. 3.4.7. Üzenet vége mező Az üzenet végét 7 recesszív bit zárja. Erről ismerik fel a vevők, hogy vége az üzenetnek. Erre mezőre nem érvényesítik a bit beültetési szabály. Ezt még minimálisan 3 bitnyi szünet (Interframe Space) követi és ezután indulhat a következő információcsomag. 3.4.8. Hibaüzenet - Error Ha valamelyik vevő „menetközben” felismeri a továbbított üzenet hibás voltát, hibaüzenetet állít elő. Ez egy hibajelzéssel kezdődik (Error Flag), az ECU 6 domináns bitet ültet a buszra. Ezt minden vevő a bitbeültetési szabály miatt észreveszi. Amennyiben más vevők is „egyetértenek” újabb 6 domináns bit következhet, majd 8 üzenetlezáró recesszív bit, és persze a 3 bitnyi − keretek közti − szünet után, folytatódhat a kommunikáció. 3
3.4.9. Túlterheltség - Overload Ilyen üzenet két esetben generálódhat a buszon. Egyrészt ha valamelyik vevő még egy kis időt kér a korábban kapott adatok feldolgozására, másrészt, ha az üzenetkeretek közötti szünetidőt biztosító 3 recesszív bit valamelyike helyett egy vevő domináns bitet észlel. Ez az üzenet összesen két bitmezőből áll. Hasonlóan a hibaüzenethez ez is 6 domináns bittel kezdődik, közvetlenül az üzenet vége mező után. (Ekkor az üzenetkeretek közötti szünet első bitje helyett már domináns bit van.) A hat domináns bit után mivel a többi vezérlő is túlterheltséget érzékel, azok is hasonló üzenetet küldenek, ezért e mező 7 bitre növekszik. Az Overload üzenetet 8 recesszív bit zárja, amelyre természetesen nem érvényes a bit beültetési szabály. Hárombitnyi keretek közti szünet után ez esetben is folytatódhat a kommunikáció. 4. A leggyakrabban alkalmazott CAN adatátviteli rendszerek 4.1. Kis adatátviteli sebességű CAN – Low Speed CAN (ISO11519-2) A soros adatátviteli rendszerek sebességét a hálózat jellemzői (pl. önkapacitása) és az alkalmazott feszültség nagysága döntően befolyásolja. Alacsonyabb bitráta alkalmazása mellet nagyobb feszültségek és kevésbé igényes hálózat alkalmazható. 24. ábra
A 24. ábrán példaként bemutatott LSCAN adatátviteli sebessége 100 kbit/s, tehát periódusideje 10µs. Információs vezetékei feszültségszintje az alábbiak szerint változik:
CAN-H CAN-L
Recesszív (1) ~0 ~5V
Domináns (0) ~4V ~1V
4.2. Nagy adatátviteli sebességű CAN rendszer – High Speed CAN (ISO11898) A nagy adatátviteli sebesség kis önkapacitású, jó csillapítású rendszert és alacsonyabb jelátviteli feszültségeket feltételez. 25. ábra A 25. ábrán példaként bemutatott HSCAN adatátviteli sebessége 500 kbit/s, tehát periódusideje 2µs. Információs vezetékei feszültségszintje az alábbiak szerint változik:
CAN-H CAN-L 26. ábra
Forrás: TOYOTA
Recesszív (1) ~2,5V ~2,5V
Domináns (0) ~3,5V ~1,5V
Az egyes gyártók alkalmazott soros információátviteli rendszereinek jellemzői erősen eltérhetnek egymástól még akkor is, ha üzenetkeretüket a CAN előírása szerint építik fel. A 26. ábrán a Toyotákon alkalmazott CAN feszültségviszonyait láthatjuk. A recesszív bit előállításakor a CAN-H potenciálja 2,4V, a CAN-Lé 2,6V. A domináns bit esetén a CAN-H 2,7V-ra emelkedik, a CAN-L 2,3-ra csökken. A feszültségdifferencia tehát a recesszív bit létrehozásakor −0,2V, a domináns bit létrehozásakor +0,4. 4
4.3. Multiplex kommunikációs rendszerek – CAN topológia Már említettük, hogy a gépjárműveken alkalmazott elektronikusan irányított rendszereket alrendszercsoportokba fűzik, és azok legtöbbször kapcsolatban állnak egymással. A kapcsolatot egy csatoló számítógép – Gateway (fedélzeti hálózati vezérlőegység, CAN-átjáró, CAN-csatoló, CAN-szerver) – teremti meg. Az alrendszerek sebességei eltérnek (eltérhetnek) egymástól. Az alrendszerekre bontás − tehát a multiplex rendszer − előnyei: 27. ábra - mivel csökken a buszon az adatforgalom a különböző csatornák szereplői nem zavarják egymást a kommunikációban, - egy-egy vezérlő ez esetben, a számára fölösleges információkkal lényegesen kevesebbet találkozik, - egy vezérlő CAN-re kiható hibája, nem idézi elő a teljes rendszer halálát, - növekedhet a hálózatban szereplő vezérlők, intelligens érzékelők és intelligens beavatkozók száma, - szétválaszthatók a különböző üzemmódokban működő vezérlő (pl. azok melyek csak a gyújtás ráadását követően működnek.) - különböző sebességű alrendszerek alkalmazhatók, amelyek között van olyan amelyik, kétvezetékes létére egy vetetéken is működőképes marad, - a gateway segíti a rendszer soros diagnoszForrás: V A G tikáját. A muliplex rendszer jármű-specifikus hálózatának blokkvázlatát CAN-bus topológiának nevezzük. (topo = hely) Ennek ismerete nélkül sokszor komoly gondot jelenthet a hibakeresés. A 27. ábrán egy VW Poló CAN topológiáját láthatjuk A fedélzeti hálózati vezérlőegység két egymástól közel független alrendszert kapcsol össze az 500 kbit/s sebességű (HS) meghajtás (hajtáslánc) CAN-t és a 100 kbit/s sebességű (LS) komfort CAN-t. A komfortbusz egy alrendszert alkot, de két ágban. A komfort I. külön komfort vezérlőegységgel rendelkezik. Az infotainment CAN buszra a rádió, a navigáció-vezérlő a telefoninterfész, stb. csatlakozik. A vezérlők egy része közvetlenül kapcsolódik a diagnosztikai csatlakozó „K” vezetékére, de mindegyiket megszólíthatjuk rendszerteszterrel a virtuális „K” vezetéken is. Ezt a gateway teszi lehetővé. 2007-10-05 A CAN hálózatról szóló sorozat hatodik „cikke”, két hét múlva jelenik meg!
5