You are here

A CAN busz világa...

21 posts / 0 new
Last post
Lengyel József
Lengyel József picture

Sziasztok !

Érdeklődnék ,hogy az autódiagnosztikai illesztő adapterek (ezek tehermentesítik a PC-n futó specifikus alkalmazást) ,hogyan csatlakoznak a jarmű CAN buszhóz ?

Arra vonatkozik a kérdés hogy :

a) A teszter rendelkezik egy a számára "fenntartott" (arbitrációs mezővel) ID azonosítóval amely minden autó esetén ugyan az ?

b) A teszter CAN 2.0 B protokoll szerint kommunikál ?

A válaszokat a kérdésekre előre is köszönöm !

Üdv : Lengyel József

Comments
Lengyel József
Lengyel József picture

Sziasztok !

Mindenkinek *** Nagyon Szépen Köszönöm a fáradozást a Nagyszerű Segítséget !

Üdv : Lengyel József

0

Kaszi28
Kaszi28 picture

Szia József!

A téma nagyon szerteágazó.
Vannak szabványosítási törekvések, de vannak gyártóspecifikus megoldások.

Meg ugye most az is kérés, hogy mikori állapot érdekel, mert
az autóknál a diagnosztikai megoldások igen sokat fejlődtek az utóbbi években.
Régebben mindenféle egy, vagy többvezetékes soros kommunikációt használtak, a szabványosságra törekvés minden igénye nélkül.

A CAN terjedésével egyre többen álltak át a CAN diagnosztikára, de erre is többféle szabvány született, illetve születik ma is, ahogy ez az irány is fejlődik.

A tendencia azt mutatja, hogy lassan a CAN is le lesz cserélve (legalábbis ami a diagnosztikát illeti) és LAN lesz helyette.
Lásd DoIP.

http://www.iso.org/iso/catalogue_detail.htm?csnumber=53765

De te a CAN-re kérdeztél rá:
A CAN-nél sok kommunikációs réteg épül egymásra.
A CAN 2.0B, amit említettél az a fizikai réteg.
A ma használatos teszterek ezt (is) használják.
De a többség támogat egyéb szabványokat is, mint pl. ISO9141.
Vannak multiprotokoll interfacek erre a célra, pl:

http://www.elmelectronics.com/obdic.html

Aztán ahhoz, hogy diagnosztikai információkat vigyünk át a teszter és a vezérlőegységek között kell egy szállítási réteg, mert a CAN magában nem nagyon alkalmas nagyobb adattömbök átvitelére, mint pl. program letöltése a vezérlő egységbe.
Ezt a szállítási réteg oldja meg, hogy egy tömböt több egymás után következő CAN üzenetben továbbít.
Meg még sok minden mást is megold.
Erre is van többféle szabvány.
Régebben a ISO TP, ma az UDS.

https://en.wikipedia.org/wiki/ISO_15765-2

https://en.wikipedia.org/wiki/Unified_Diagnostic_Services

Aztán ha már tudunk beszélgetni a vezérlővel, akkor kell egy olyan réteg, ami értelmezi, hogy mik azok az adatok, amiket átvittünk.
Természetesen erre is több szabvány van.

Régebben a KWP2000, újabban ODX.

https://en.wikipedia.org/wiki/Keyword_Protocol_2000

https://de.wikipedia.org/wiki/ODX

A linkek csak példák, a megfelelő kulcsszavakra keresve bizonyára lehet találni a neten, megfelelő leírásokat erről.

Még a CAN ID-ről:
Ez is szabványonként eltér.
A teszternek nem egy CAN ID-je van, hanem az vezérlőegységenként változik.
Van, hogy meg van határozva, hogy mondjuk a motorvezérlőt milyen CAN ID-vel lehet megszólítani és az milyen CAN ID-vel fog válaszolni.
Olyan is van, hogy a kommunikáció kezdetekor a vezérlő és a teszter megállapodnak, abban, hogy milyen CAN ID-vel fognak egymással beszélgetni.
Ezek azért szükségesek, mert a protokollok támogatják azt, hogy egy teszter "egy időben" több vezérlővel is kommunikáljon és mindegyikkel más más ID-t fog használni.

Üdv!

Kaszi

0

Lengyel József
Lengyel József picture

Szia,Kaszi28 !

Nagyon szépen köszönöm a magyarázatokat ,az alátámasztásokat (internet link) !

A téma nagyon érdekel mert ez a soros kommunikációk egyike amelyet szeretném jobban megismerni .
A csatolt linkeket figyelemben veszem valamint az ISO szabványban rögzített szempontokat.

Maga a ROBERT BOSCH cég olyan meggondolásból választotta a jármű ipar számára a CAN buszt mivel ez "kevésbé érzékeny" a külső zavarokra -egyrészt---. A másik szempont az volt ,hogy a villamos egységek egy vezeték párossal kommunikáljanak egymással.. Szempont volt a villamos hálózat kialakításánál a gazdasági megfontolás ,a biztonság.

Minden esetre Nagyon köszönöm a segítséget ,hogy legyen egy "tisztább kép" a CAN buszról.

Üdv : Lengyel József

0

city217
city217 picture

Szia.
Nálunk is "tisztább lenne a kép" ha adnál egy normális címet a topic-nak, igaz így is ötvenhétmillió találatot ad.
Üdv.

0

Lengyel József
Lengyel József picture

Szia city217 !

Olvasd be mind az 57 millió találatot és tárold el a buksidban . Te leszel egy új szerver ! :-))).Csak poén volt remélem nem sértődtél meg.

Ezért ez a címe mert így láttam jónak.

Üdv : Lengyel József

0

exGelkás
exGelkás picture
*

Szervusz Lengyel József!
Ez elég rendesen tárgyalja a kérdést:
http://moodle.autolab.uni-pannon.hu/Mecha_tananyag/autoipari_kommunikaci...
Üdv:
exGelkás
Ps: Most látom, hogy a kérés, nem erre vonatkozott, hanem a diagnosztikai csatlakozó, és a számítógép közötti területre.,
de nem hiszem, hogy haszontalan lenne! :-)

0

Lengyel József
Lengyel József picture

Szia ,exGelkás !

Nagyon szépen köszönöm a linket ! Mindenképp áttanulmányozom.Bizony ez nagyon is hasznos amit csatoltál ! A CAN busz-al való ismereteket szeretném elsajátítani valamint ,ha lesz rá mód a gyakorlatban is "kipróbálni".

Köszi szépen még egyszer !

Üdv : Lengyel József

0

Kaszi28
Kaszi28 picture

Szia!

Pontosan nem látom, hogy mivel szeretnél megismerkedni,
de kéretik nem összekeverni a CAN buszt, a CAN busz alapú diagnosztikával.

Ha csak a CAN a cél (ami alatt azt értem, hogy vezérlőegységek közötti kommunikáció megértése, vizsgálata, esetleg eszköz készítése arra, hogy egy vezérlőnek üzeneteket küldjön, vagy fogadjon, vagy két olyan egység készítése, amik egymással CAN-en kommunikálnak, stb.), akkor célszerű valamelyik félvezető gyártó (pl. Microchip, ha már említve lett) honlapján tájékozódni, adatlapokat, próba projekteket keresni.

Építhetsz magadnak egyszerű CAN-es áramkört, ami tipikusan mikrokontrollerből, CAN kontrollerből, CAN transceiver-ből áll.
Bármilyen kis mikrokontroller + MCP2515 + MCP2551.
Vagy korszerűbb PIC mikrokontrollerből, amiben van integrált CAN kontroller + MCP2551

http://www.microchip.com/design-centers/can

Vagy veszel egy kész terméket, pl ezt:
http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=APG...

Ilyenkor azok a protokollok nem kellenek, amiket az első hozzászólásomban írtam, elég a CAN specifikáció, pl innen:

http://www.can-cia.org/
Ezt a protokollt a CAN kontroller és CAN Transceiver tökéletesen lekezeli.

Ha azonban speciálisan a CAN diagnosztika területe érdekel, akkor pár réteggel feljebb érdemes beszállni a buliba, és az alatta levő rétegeket adottnak érdemes felfogni, hiszen ez a CAN kommunikációra épül ugyan, de a hardvertől elég távoli rétegekben működik.
Ez már szinte csak számítástechnika.

Mégegyszer: A CAN már évtizedek óta benne van az autókban és a vezérlőegységek közötti kommunikációt oldották meg vele.
De ekkor még nem használhatták diagnosztikára, hogy miért, ennek sok oka van.
A legfőbb, hogy először nem minden vezérlő egységet tettek fel a CAN-re, egyszerűbb vezérlőknél erre még nem volt szükség.
Ezért diganosztikára más módszereket használtak. Másrészt a CAN-re épülő diagnosztikai protokollok még meg sem voltak.
Aztán évekkel később, mikor már az autóelektronika komplexitása olyan szintre emelkedett, hogy már majdnem minden vezérlőt célszerű volt feltenni a CAN-re, akkor alakították ki a CAN diagnosztikai protokollokat, amiket az első hozzászólásomban írtam.
Tehát a CAN diagnosztika, nem vezérlő-vezérlő kapcsolat, hanem vezérlő-diagnosztikai eszköz kapcsolat.

Ha van további konkrét kérdésed, szívesen segítek.

Üdv!

Kaszi

0

Lengyel József
Lengyel József picture

Szia ,kaszi28 !

Igazán nagyon szépen köszönöm a felvilágossítást !

Ami engemet érdekel az a következő :

a vezérlő- vezérlő (Node = csomopontók) közötti gyakorlati működés CAN ;

-És persze a vezérlő -diagnosztikai eszköz közötti kapcsolat. Hogyan működik ,gyakorlati kivitelezések ,szabványok .

Egyébként tervben van ,hogy egy Microchip mikrokontroller segítségével amelyben már integrálva van a teljes CAN modul élesben is kipróbáljam hogyan is dolgozik a két csomópont (Node) az adatbuszon.

Mivel nem a szakmában dolgozom ,mivel az elektronika számítástechnika érdekel nagyon is szeretnék ismereteket e téren elsajátítani !

Tehát érdekel a Node = csomópont közötti CAN kommunikáció is ;
valamint a vezérlőegység (csomópont = Node) és diagnosztikai eszköz közötti kapcsolat is.

Burkoltan rá tértél az OSI model rétegeire is. Egyébként ,ha jól emlékszem hét rétegből tevődik össze. Bövebben erről a Dr Konya László A PIC "Mikrokontrollerek Alkalmazástechnikája" című könyvében olvashatunk.

Örök hála a tájékoztatásokért a segítségért !

Üdv : Lengyel József

0

Kaszi28
Kaszi28 picture

Így van, az OSI rétegekről írtam.
Az eredeti CAN szabvány, csak az alsó kettő réteget definiálta, a fizikai és adatkapcsolati réteget.
Ezért vált szükségessé később a felsőbb réteg szabványainak kidolgozása.

A fizikai rétegre is többféle szabvány van, lásd alább a "The physical media attachment sub-layer" fejezetben.

http://www.can-cia.org/can-knowledge/can/systemdesign-can-physicallayer/

Alapvető fontosságú eldönteni, hogy melyik verzióval szeretnél kísérletezni, mert az adott szabványoz illeszkedő CAN Transceivert kell alkalmazni.

De jelenleg az un. High-Speed CAN a legelterjedtebb, ISO 11898-2.

Üdv!
Kaszi

0

Lengyel József
Lengyel József picture

Szia Kaszi28!

Nagyon szépen köszönöm a csatolt internet linket !

Mivel most kezdtem elsajátítani a CAN bus ismereteket megpróbálok beszerezni egy olyan mikrokontrollert (amelyben integrálva van a CAN ENGINE modul is) .

ki szeretném próbálni "élőben " két csomópont ,hogyan kommunikál egymással.

Ami az OSI modellt illeti úgy látszik az alkalmazása során lehet talán a legjobban megérteni ,hogy "mit is akar".

A mai mikrokontrollerek már támogatják a CAN 2.0 B - t is . Tudnak működni standard CAN kontroller ként is és kiterjesztett ID-s mezővel is amilyen a CAN 2.0 B .

- Jó lenne tudni ,hogy az adott csomópont "élőben" hogyan kezeli a "hiba aktiv" és hiba "passziv" állapotokat is.

Ha csak arra jó ez hogy jobban megismerjem a CAN rendszert akor is megérte foglalkozni vele.

Nagyon szépen köszönöm még egyszer !

Üdv : Lengyel József

0

Kaszi28
Kaszi28 picture

A feladat tehát az, hogy a kiválasztott fizikai protokollnak megfelelő CAN Transceivert végy, plusz CAN kontrollert (mindegy, hogy külön, vagy prociba integráltat).
Ennek a kettőnek pontosan az a dolga, hogy lekezelje a CAN specifikációt.
A CAN kontrollerben levő protokoll engine nagyban leegyszerűsíti a CAN kezelését, automatikusan megoldja pl. a bit stuffingot, sziknronizációt a jelváltásokra, stb.

A programozási feladat ezáltal leegyszerűsödik az érdemi részre, hogy pl. a megfelelő transmitter bufferbe betöltsük a kiküldendő adatokat és CAN ID-t, majd jelet adunk a kiküldésre és a CAN kontroller már ki is küldi a CAN protokollnak megfelelően.
A vétel is hasonlóan megy.
Mindezek előtt a CAN kontrollert inicializáló üzemmódba kell kapcsolni és jópár regisztert be kell konfigurálni, az adott feladatnak megfelelően.
Aztán normál módra kell váltani és már mehetnek is a bitek a CAN-en.

Ha már a CAN kommunikáció lényegét megértetted, akkor javaslom olvasd el az egyik CAN kontroller doksiját, abban részletesen le van írva, hogy mikor mit és hogy kell felkonfigurálni.
Vannak komplett páldák is a Microchipnél.

Üdv!
Kaszi

0

Lengyel József
Lengyel József picture

Szia,Kaszi28 !

Köszönöm szépen a javaslatodat !

Pontosan azt tettem már le is töltöttem két CAN kontroller típust ezek a bizonyos önálló CAN kontrollerek (Stand Alone CAN Controller).

Az egyik a Microchip terméke : MCP2510 a másik a SJA 1000 (Philips). Le emelem a nem létező kalapomat ezen cégek mérnökei előtt . Ezek nagyon "okos" kis IC-k !

Még egyszer köszi szépen !

Üdv : Lengyel József

0

Kaszi28
Kaszi28 picture

Szia!
Az SJA1000 már elég régi jószág, gyakorlatilag ez vált ipari standardá.
Persze időközben dobtak ki újabb revíziókat belőle.

Én a Microchip MCP2515-el dolgoztam, ez javított verziója a 2510-nek.

Sok sikert velük!

Üdv!
Kaszi

0

Lengyel József
Lengyel József picture

Szia !

Nagyon szépen köszönöm !

Üdv : Lengyel József

0

Kaszi28
Kaszi28 picture

Még beszúrnám ezt a cikket, amely eléggé plasztikusan ábrázolja a helyzetet.

http://totalcar.hu/magazin/technika/2010/12/02/segitseg_busz_van_az_auto...

Üdv!
Kaszi

0

Lengyel József
Lengyel József picture

Szia Kaszi28 !

Elolvastam amit csatoltál. Azért nem semmi...

Foglalkozom amatőr szinten mikrokontroller programozással ,pár projektet Hála Istennek megvalósítottam. De szeretném mint említettem megismerni ezt a bizonyos részt is (CAN ,diagnosztika).

Amennyire lehet próbálok tájékozódni, annak ellenére ,hogy nem a szakmámban dolgozom...

Tényleg Örök Hála a remek tájékoztatásért !

Üdv : Lengyel József

0

exGelkás
exGelkás picture
*

Szervusz Lengyel József!
Ez egy a feladat megoldására alkalmas eszköz adatlapja ebben is találhatsz hasznos információt.
http://www.alldatasheet.com/datasheet-pdf/pdf/346044/NXP/LPC2119.html
A CAN hálózatokat előszeretettel használják ipari körülmények között is, bár népszerűségét a járműiparnak köszönheti.
Üdv:
exGelkás

0

Lengyel József
Lengyel József picture

Szia,exGelkás !

Köszönöm szépen a fáradozásodat ! Ez egy jó dokumentáció (a volt PHILIPS által napjainkban NXP cég csoport ) által alkotott mikrokontrolleről.

Hasonló tulajdonságokkal tehát hasonló periferiákkal rendelkezik a Microchip cég által gyártott PIC32MX7.. sorozatú mikrokontroller is. Itt is megtaláljuk a CAN busz periferiát.

Nagyon Szépen Köszönöm ! Ha valamiben én is tudok segíteni én is szívesen teszem !

Üdv : Lengyel József

0

Kaszi28
Kaszi28 picture

Hello!

Igen, ez a leírás nem rossz, de ez az "alap" CAN protokollt ismerteti "csak",amit a vezérlő egységek egymás közötti kommunikációjára használnak.
A különböző diagnosztikai protokollok (teszter és autó között) erre épülnek, de szükségesek az általam említett felsőbb protokollok.

Üdv!
Kaszi

0

Sponsored links