can bus on board

CAN

en: control area network

A CAN buszt eredetileg a Robert Bosch GmbH feljesztette ki Zuffenhausenben, 1983-ban. A protokoll hivatalos bemutatója 1986-ban történt meg, a Society of Automotive Engineers (SAE) kongresszuson, Detroit-ban (Michigan). Az első CAN vezérlő chipet 1987-ben dobta piacra az Intel - Philips duó. A Bosch által továbbfejlesztett változat 1991-ben debütált CAN 2.0 néven. A CAN teljesíti az amerikai OBD-II jármű diagnoszikai standard  előírásait, mely 1996-tól érvényes az USA-ban, és az EOBD standard-ot, mely az európai benzinüzemű járművekre 2001-től, dízelekre pedig 2004-től alkalmazható.

A CAN célja elsősorban az volt, hogy az akkoriban robbanásszerűen fejlődő autoipar rendszer-decentralizációs törekvéseihez megbízható eszközként szolgáljon, ezért az alábbi célkitűzéseknek kellett megfelelnie:

  • nagy üzembiztonság, akár szélsőségek körülmények között is
  • igen rövid ciklusidő, viszonylag magas átviteli sebesség mellett
  • minimális adatmennyiség továbbítása
  • broadcasting támogatás
  • gyors és egyszerű átkonfigurálás lehetősége
  • alacsony ár

can logo Az ambíciózus tervek ellenére a CAN busz rendesen megállta a helyét, jelenleg is folyamatosan fejlesztik, és a járműiparban egyeduralkodóvá nőtte ki magát. Nagyon gyakran kerül olyan gyártósorokon, technológiai rendszerekben is alkalmazásra, ahol a kis mennyiségű adat rövid ciklusidővel való továbbítása az elsődleges szempont, bár napjainkban ezt a pozícióját rendesen szorongatja a Profinet.

A CAN busz egy multi-master broadcast serial busz, melynek elsődleges feladata az ECU-k (electronic control units) összekapcsolása.  Egy autóban jelenleg akár 70 ECU is lehet. A legnagyobb ezek közül szinte mindig a motor ECU-ja, de jellemzően az ajtóknak, fékeknek, világításnak, műszereknek, , az airbag-nek, az audio-rendszernek és a riasztónak is saját ECU-ja van.

A CAN-busznak rögtön két protokollja is létezik, a gyors ISO 11898 és a lassú 11519-2. A két protokoll csak a fizikai szinteken tér el egymástól - ergo vezetéken összekötve nem kompatibilisak. A CAN-ekre alkalmazott OSI táblázat ezáltal így néz ki:

CAN OSI

Az OSI-ról bővebbenitt olvashat.

réteg name név al-rétegegységek normák
7 Application
layer
Alkalmazási
réteg
    
6 Presentation
Layer
Megjelenítési
réteg
5 Session Layer Viszonylati réteg
4 Transport
Layer
Forgalmazási
réteg
 Retransmission controlnincs standardizálva az ISO 11898 és ISO11519-2 által
   
3 Network Layer Hálózati
Réteg
2 Data Link
Layer
Adatkapcsolati
réteg
LLCReceived message selection
Overload notification
Error recovery
Ezek a szintek azonos módon kerültek definiálásra a ISO11898-ban és az ISO11519-2-ben.
MACMessage framing
Connection control method
Arbitration for data collision
Spread of failure suppression function
Error notification
Error detection
Response method
Communication method
1   Physical Layer   Fizikai
réteg  
PLSBit encoding (NRZ)
Bit timing
Synchronization method
PMA A két alsó szint eltérő módon került definiálásra a ISO11898-ban és az ISO11519-2-ben.
MDI 
  A fizikai átviteli közeg nincs standardizálva

alréteg megnevezések:

LLC: Logical Link Control
MAC: Medium Access Control
PLS: Physical Signaling Sub-layer
PMA: Physical Medium Attachment
MDI: Medium Dependent Interface

A gyakorlati különbségeket a következő fejezet fejti ki részleteiben.

A CAN Busz a jelátvitelhez két vezetéket alkalmaz, a CAN H és CAN L vezetéket (ellensodrott, esetleg árnyékolt). A zavarvédelem miatt az ezeken futó jelek ellenfázisúak, lásd egy kicsit lejjebb.

A CAN-Busz fizikai szintje két normával, az ISO11898 és ISO11519-2-vel definiálható. Ezeknek az összehasonlítása látható a lenti táblázatban.

Fizikai szintekISO 11898 (High speed)ISO 11519-2 (Low speed)
Max.
sebesség
1 Mbps125 kbps
Jellemző
sebesség
125 kbps - 1 Mbps10 kbps - 125 kbps
Maximális
távolság
40 m / 1 Mbps1 km / 40 kbps
Állomások
max. száma
3020
busz topológia
 recesszív (1)domináns (0)recesszív (1)domináns (0)
minnommaxminnommaxminnommaxminnommax
CAN_High ( V )2,002,503,002,753,504,501,601,751,903,854,005,00
CAN_Low ( V )2,002,503,000,501,502,253,103,253,400,001,001,15
Pot.diff H-L (V)-0,5000,051,502,003,00-0,30-1,50-0,303,00-
Technikai
jellemzők
UTP vagy FTP Zárt (LOOP) busz Z  = 120 Ω busz fajlagos ellenállás: 70 MΩ/m busz késleltetési idő: 5 ns/m véglezárás:  120 Ω (Min. 85 Ω, Max. 130 Ω) UTP vagy FTP Nyitott (OPEN) busz Z  = 120 Ω busz fajlagos ellenállás: 90 MΩ/m busz késleltetési idő: 5 ns/m véglezárás:  2.20 Ω (Min. 2.09 Ω, Max. 2.31 Ω) CAN_L és GND kapacitás: 30 pF/m CAN_H és GND kapacitás: 30 pF/m

 

can bus speed ISO 11519-2 / ISO 11898

ISO 11898 (High speed)ISO 11519-2 (Low speed)
jelszintek
can bus signal levels / high speedcan bus signal levels / low speed
kötésrajz
can bus end terminals / high speedcan bus end terminals / low speed

A zavarvédelem miatt a CAN_L, CAN-H vezetékeken futó jelek ellenfázisúak, azonos szingálokra ellenkező feszültségszint irányokba térnek ki.

Az eddig ismertetett két CAN szabvány ( ISO 11898 és ISO11519-2) szerencsére csak a fizikai szint egy részén térnek el, a táviratok felépítését tartalmazó adatkapcsolati réteg szerencsére mindkét esetben azonos.

  • Normál üzenetkeret
  • Kibővített üzenetkeret
  • Kérés üzenetkeret
  • Hiba üzenetkeret
  • Túlterheltség üzenetkeret

Normál üzenetkeret

en: Base frame format

 

Mező neveHossza
(bit)
ÉrtékeLeírás
Start-of-frame (SOF)10Az adatátvitel megkezdését jelző bit. Ennek értéke fix 0.  A buszon alapból 1-es érték van kinn, így ennek a lehúzása jelzi az átvitel kezdetét.
Identifier
(Arbitrációs mező)
11-Arbitrációs mező.
Remote transmission request (RTR)10Kérés üzenetkeret jelzése. Ez esetben inaktív.
Identifier extension bit (IDE)10Nem bővitett telegram.
Reserved bit (r0)10Tartalék bit.
Data length code (DLC)*40..8Adatbájtok száma
Data field
(Adatmező)
0-8 byte Adatmező (hosszát a DLC mező definiálja)
CRC15 Cyclic Redundancy Check : ellenőrző kód
CRC delimiter11 
ACK slot1 Nyugtázó bit
ACK delimiter11 
End-of-frame (EOF)71 (7×) 

Normál és kibővített üzenetkeret különbsége

can bus telegram / standard and extended format

Kibővített üzenetkeret

en: Extended frame format

 

Mező neveHossza
(bit)
ÉrtékeLeírás
Start-of-frame (SOF)10Az adatátvitel megkezdését jelző bit. Ennek értéke fix 0.  A buszon alapból 1-es érték van kinn, így ennek a lehúzása jelzi az átvitel kezdetét.
Identifier A11 Arbitrációs mező. Bővebb leírásaitt található.
Substitute remote request (SRR)11Buszvonalon egyszerre lehet normál és kibővített üzenetfajta, SRR bit csak akkor írható át dominánsra, ha az első 11 arbitrációs bit alapján a kérő a legmagasabb prioritású és adni akar: SRR=0, a verseny eldőlt, a többiek csak vevők lehetnek, de ha csak adatkérő, akkor a verseny folytatódik (SRR=1), IDE értéke mutatja, hogy az arbitrációs mező (verseny) folytatódik-e a kibővített formátumú állomások között. A kibővített formátumú állomás akkor nyerhet, ha adatokat akar küldeni (RTR=0), de ha RTR=1, akkor az alaprendszer adatkérése a győztes. Tehát a kettős üzemmód esetén az alapváltozat üzenetei élveznek prioritást a bővített változattal szemben.
Identifier extension bit (IDE)11Bővített telegramm jelzése.
Identifier B18 Az arbitációs mező második része.
Remote transmission request (RTR)10 
Reserved bits (r0, r1)20Tartalék bitek
Data length code (DLC)*40..8Adatbájtok száma
Data field0-8 byte Adatmező (hosszát a DLC mező definiálja)
CRC15 Cyclic Redundancy Check : ellenőrző kód
CRC delimiter11 
ACK slot1 Nyugtázó bit
ACK delimiter11 
End-of-frame (EOF)71 (7×) 

 

CAN bus arbitráció

en: arbitration, hu: döntőbíráskodás

can bus arbitration 

Ez az eljárás a CSMA/CR közeghozzáférési eljárás része. Feladata eldönteni, hogy melyik állomás (node) forgalmazhat. Az eljárás akkor élesedik, amikor több állomás nagyjából egyszerre kezd adni. A CSMA/CR egyidejűleg csak egy állomásnak engedi meg a forgalmazást, de ehhez meg kell tudni állapítani, hogy melyiküknek magasabb a prioritása (alacsonyabb az Identifier értéke). Az Identifier mező hossza normál üzenetkeret esetén 11 bit (2048 azonosító kód), kibővített üzenetkeret esén 29 bit (536 870 912 azonosító kód). A fenti esetben 3 versenyző (node) kezd vetélkedni az adás jogáért. Az SOF (start of frame) után mindhárom egyidejűleg kezdi adni a saját azonosító kódját, és figyelik, hogy mi történik a buszon. Ha bármelyikük 0-t ad, az domináns adásnak számít, azaz elnyomja a többiek recesszív "1"-es értékét. Először a node 2 adja fel a meccset az 5. azonosító bitnél, mert a saját recesszív értékével szemben a buszon egy domináns jelet lát, így innen visszalép, csak hallgatózik a továbbiakban. A node 1 a 2. bitnél dobja be a törölközőt, mert a buszról visszaolvasott információk szerint a node 3 itt is le tudta húzni a buszon a jelszintet, azaz magasabb prioritást bírt produkálni. Tapsoljuk meg a győztes node 3-at, megkapta az adás jogát.

CAN standardok / specifikációk

ISO/DIS 11898-1

Road vehicles – Controller area network (CAN) – Part 1: Data link layer and physical signaling

ISO/DIS 11898-2

Road vehicles – Controller area network (CAN) – Part 2: High-speed medium access unit

ISO/CD 11898-3

Road vehicles – Controller area network (CAN) – Part 3: Low-speed fault tolerant medium dependent interface

ISO/CD 11898-4

Road vehicles – Controller area network (CAN) – Part 4: Time triggered communication