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
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ővebben itt olvashat.
réteg |
name |
név |
al-réteg | egységek | normák |
|---|---|---|---|---|---|
7 |
Application |
Alkalmazási |
|
||
6 |
Presentation |
Megjelenítési |
|||
5 |
Session Layer |
Viszonylati réteg |
|||
4 |
Transport |
Forgalmazási |
Retransmission control | nincs standardizálva az ISO 11898 és ISO11519-2 által | |
3 |
Network Layer |
Hálózati |
|||
2 |
Data Link |
LLC | Received 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. | |
| MAC | Message 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
|
PLS | Bit 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 fő különbségek az ISO11898 és ISO11519-2 között
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 szintek | ISO 11898 (High speed) | ISO 11519-2 (Low speed) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Max. sebesség |
1 Mbps | 125 kbps | ||||||||||
| Jellemző sebesség |
125 kbps - 1 Mbps | 10 kbps - 125 kbps | ||||||||||
| Maximális távolság |
40 m / 1 Mbps | 1 km / 40 kbps | ||||||||||
| Állomások max. száma |
30 | 20 | ||||||||||
| busz topológia | ||||||||||||
| recesszív (1) | domináns (0) | recesszív (1) | domináns (0) | |||||||||
| min | nom | max | min | nom | max | min | nom | max | min | nom | max | |
| CAN_High ( V ) | 2,00 | 2,50 | 3,00 | 2,75 | 3,50 | 4,50 | 1,60 | 1,75 | 1,90 | 3,85 | 4,00 | 5,00 |
| CAN_Low ( V ) | 2,00 | 2,50 | 3,00 | 0,50 | 1,50 | 2,25 | 3,10 | 3,25 | 3,40 | 0,00 | 1,00 | 1,15 |
| Pot.diff H-L (V) | -0,50 | 0 | 0,05 | 1,50 | 2,00 | 3,00 | -0,30 | -1,50 | - | 0,30 | 3,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 busz jellemző sebességgörbéje

CAN buszok kötése és jelszintjei
| ISO 11898 (High speed) | ISO 11519-2 (Low speed) |
|---|---|
| jelszintek | |
![]() |
![]() |
| kötésrajz | |
![]() |
![]() |
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.
CAN szabványos üzenetkeretek
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ő neve | Hossza (bit) |
Értéke | Leírás |
|---|---|---|---|
| Start-of-frame (SOF) | 1 | 0 | Az 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ő. Bővebb leírása itt található. |
| Remote transmission request (RTR) | 1 | 0 | Kérés üzenetkeret jelzése. Ez esetben inaktív. |
| Identifier extension bit (IDE) | 1 | 0 | Nem bővitett telegram. |
| Reserved bit (r0) | 1 | 0 | Tartalék bit. |
| Data length code (DLC)* | 4 | 0..8 | Adatbájtok száma |
| Data field (Adatmező) |
0-8 byte | Adatmező (hosszát a DLC mező definiálja) | |
| CRC | 15 | Cyclic Redundancy Check : ellenőrző kód | |
| CRC delimiter | 1 | 1 | |
| ACK slot | 1 | Nyugtázó bit | |
| ACK delimiter | 1 | 1 | |
| End-of-frame (EOF) | 7 | 1 (7×) |
Normál és kibővített üzenetkeret különbsége

Kibővített üzenetkeret
en: Extended frame format
| Mező neve | Hossza (bit) |
Értéke | Leírás |
|---|---|---|---|
| Start-of-frame (SOF) | 1 | 0 | Az 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 A | 11 | Arbitrációs mező. Bővebb leírása itt található. | |
| Substitute remote request (SRR) | 1 | 1 | Buszvonalon 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) | 1 | 1 | Bővített telegramm jelzése. |
| Identifier B | 18 | Az arbitációs mező második része. | |
| Remote transmission request (RTR) | 1 | 0 | |
| Reserved bits (r0, r1) | 2 | 0 | Tartalék bitek |
| Data length code (DLC)* | 4 | 0..8 | Adatbájtok száma |
| Data field | 0-8 byte | Adatmező (hosszát a DLC mező definiálja) | |
| CRC | 15 | Cyclic Redundancy Check : ellenőrző kód | |
| CRC delimiter | 1 | 1 | |
| ACK slot | 1 | Nyugtázó bit | |
| ACK delimiter | 1 | 1 | |
| End-of-frame (EOF) | 7 | 1 (7×) |
CAN bus arbitráció
en: arbitration, hu: döntőbíráskodás

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
felhasznált források
A CAN-BUS legfontosabb jellemzői (Dr. Hodossy László)
license
Erre a dokumentumra a Creative Commons-Lizenz 3.0 szabályai érvényesek.
A dokumentum továbbfelhasználása engedélyhez kötött. Részleteiben is csak forrásmegjelöléssel
(pl: forrás:wwww.ob121.com) használható.
Engedélykérés, további információ: mail kukac ob121.com




