Tóth Csaba, Scherer Balázs:
Autóipari beágyazott rendszerek CAN – Controller Area Network Előadásvázlat Kézirat Csak belső használatra! 2012.02.05. © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 1
Ipari buszok (field bus-ok) • A LAN-ok egy speciális fajtája. • Csak a legszükségesebb OSI rétegek: – 1. PHY, fizikai réteg – 2. MAC, adatkapcsolati réteg közeg-hozzáférési alrétege – 3-6. Higher layers (hiányzik vagy összevonják) – 7. Application layer – Általában már nem tartozik az adott ipari busz szabványhoz.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 2
A CAN field bus • Kitalálója: – Robert Bosch GmbH – 1983-ban kezdte el a fejlesztést – 1986-ban publikálta – CAN = Controller Area Network
• Nemzetközi szabvány: ISO 11898 (1993) • Alkalmazása: – Kb. egyharmada autókban – Kb. kétharmada készülékekben (röntgen, CT, automaták, ipari berendezések stb.) © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 3
A CAN története évszámokban • • • • • • • •
1983 1985 1986 1987 1988 1991 1993 2001
© TCs, SchB BME MIT 2012.
A Bosch elkezdi a fejlesztést. Az Intel beszáll a projektbe. Publikálják a CAN specifikációt. Megjelenik az első működő CAN chip. Kaphatók a CAN chipek. Extended CAN; Mercedes S-modell ISO 11898, nemzetközi szabvány TTCAN (Time-Triggered CAN)
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 4
A CAN főbb jellemzői • Busz topológia Szórásos típusú hálózat: a hálózatra adott keretet mindenki veszi. • Tetszőleges topográfia Általában busz, pont-pont vagy csillag • Többszörös hozzáférés Nem destruktív ütközéskezeléssel (CSMA/CA) • Egycímes keretformátum; Cím helyett keretazonosító (A címnek inkább adatazonosító és prioritást meghatározó szerepe van.) • Fejlett hibadetektálás, hiba-elszigetelés © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 5
A CAN főbb jellemzői (folyt.) • Nagy sebességű: 0,125 - 1 Mbit/s-ig, jellemzően 500 kbit/s) Kis sebességű: 10 kbit/s-tól 125 kbit/s-ig • Távolság: kb. 40–500 m (függ a sebességtől, topográfiától, átviteli közegtől) • Többféle adatátviteli közeg, legtöbbször csavart érpár • NRZ (Non-Return to Zero) bitkódolás bitbeszúrással és bitkiejtéssel (bit-stuffing) • Rövid, változó hosszúságú keretek (0–64 bit hosszú adatmező, 0–8 adatbyte). © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 6
CAN szabványok ISO 11898-1 Data link layer and physical signalling ISO 11898-2 High speed medium access unit ISO 11898-3 Low- speed fault-tolerant mediumdependent interface ISO 11898-4 Time-triggered CAN ISO 11898-5 High speed CAN and low power applications ISO 11519-1, -2: (superseded by ISO 11898-3) © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 7
A CAN fizikai rétege • A huzalozott ÉS kapcsolat jelállapotai: – recessive (elengedett, 1), – domináns (meghúzott, 0).
• NRZ kódolás • Bitbeszúrás/bitkiejtés: – gondoskodik a gyakori jelátmenetekről (megkönnyíti a bitszinkronizációt)
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 8
Távolság, sebesség • A maximális sebesség limitált, de gyakran alsó sebességhatárt is megadnak. • Néhány tájékoztató érték: – 100 m – 200 m – 500 m – 6 km
500 kbit/s 250 kbit/s 125 kbit/s 10 kbit/s
• Alapvetően az arbitráció szab határt.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 9
Lezárás • A kábelt hullámimpedanciával le kell zárni. – Meggátolja a reflexiók kialakulását. – Biztosítja a helyes DC feszültségszinteket. – Csavart érpárnál 100-120 ohm.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 10
Csatlakozók • A CAN szabvány nem specifikálja a csatlakozókat. – A magasabb szintű protokollokban szokták rögzíteni a használandó csatlakozókat. (Ez ellentmond az OSI hivatkozási modell koncepciójának). – Legtöbbször 9-pólusú, DB-típusú csatlakozót használnak.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 11
CAN csatlakozók DB9
DN C-type connector DN mini-style connector
CANHUG connector © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 12
CAN transceiver (példa) Philips PCA82C251
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 13
© TCs, SchB BME MIT 2012.
Csak belső használatra!
-1,0 V
0,5 V
Recessive
Dominant
„0”
0,9 V
CAN_L
CAN_H
„1”
5,0 V
N_H – CAN_L
1,5 V
2,5 V
3,5 V
CAN_H – GND CAN_L – GND
Recessive
idő
Differenciális bemeneti feszültségtartomány a recessive állapothoz
Differenciális bemeneti feszültségtartomány a domináns állapothoz
High Speed CAN (ISO 11898-2)
„1”
Autóipari beágyazott rendszerek – CAN - 14
Egy CAN hálózat (példa)
Akkumulátortól (+12 V)
Fesz.stabilizátor
Szenzor
Beavatkozó
Mikrovezérlő + CAN vezérlő CAN transceiver
GND
CAN_L CAN_H 16 node
ECU
ECU
≤1 m
ECU
...
ECU
40 m
RT 120 Ω 500 kbit/s © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 15
RT
Példa: komplett CAN interfész
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 16
Példa: Philips PCA82C251 quick reference
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 17
Fault-tolerant CAN (ISO 11898-3)
Source: Rudan Bettelheim Senior Systems Engineer Freescale Technology Forum 2005 Bangalore
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 18
Single-wire CAN (SAE J2411)
Source: Rudan Bettelheim Senior Systems Engineer Freescale Technology Forum 2005 Bangalore
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 19
Bitidőzítés Egy bit Sync
Prop.segm.
Phase1
Phase2
Mintavételi pont
• Minden bit négy szegmensre van osztva. • Minden egyes szegmens az ún. időkvantum (time quanta, TQ) egész számú többszöröse. • A bitek szegmensei: – Synchronization Segment – Propagation Segment – Phase Segment 1 – Phase Segment 2 © TCs, SchB BME MIT 2012.
( 1 TQ) (1-8 TQ) (1-8 TQ) (1-8 TQ)
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 20
Bitidőzítés (folyt.) • Szinkronizációs szegmens – 1 kvantumnyi hosszú. – A szinkronizálását szolgálja. – A buszon a jelváltásoknak ebben a szegmensben kell megtörténniük.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 21
Bitidőzítés (folyt.) • Propagation szegmens – A busz terjedési idejét kompenzálja (beleértve a kábel jelterjedési idejét és az elektronika, pl. optocsatolók késleltetéseit is).
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 22
Bitidőzítés (folyt.) • Phase Segment 1 és 2 – A mintavétel a két fázisszegmens határán történik. – PS1 növelhető, PS2 csökkenthető egy adott értékkel (SJW)
• SJW, Synchronization Jump Width = 1...4 TQ • Szabályok: – Prop Seg + Phase Seg 1 >= Phase Seg 2 – Prop Seg + Phase Seg 1 >= TDELAY – Phase Seg 2 > Sync Jump Width + IPT
• IPT, Information Processing Time © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 23
Bitidőzítés (folyt.) • Az időkvantumot a rendszerórából állítják elő leosztással. • Szinkronizálás – Hard: a start bit recessive-domináns átmeneténél – Soft: bitenként a Sync figyelésével és SJW korrekcióval
• Mintavétel – Egyszeres – Többszörös (többségi szavazással)
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 24
CAN keretformátumok • • • •
Adatkeret Hibakeret Távoli keret Túlterhelés-keret
© TCs, SchB BME MIT 2012.
(Data frame) (Error frame) (Remote frame) (Overload frame)
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 25
Adatkeret – 2.0A vagy „standard” data frame =1
=0
= 0/1
CAN Data Frame 1
11
ID
1
2
4
r0,r1
Start of Arbitration Field Frame
0 - 64
Data Field
15
1 1 1
7
3
CRC Field
Control Field RTR
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
• Jelentése: „Halló, itt van az X azonosítójú adat, aki akarja, használja fel.” • CAN 2.0A vagy „standard CAN” adatkeret (11-bites ID) © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 26
Start of Frame =1
=0
= 0/1
CAN Data Frame 1
11
ID Start of Frame
1
2
4
r0,r1
0 - 64
Data Field
15
1 1 1
7
3
CRC Field
Arbitration Control Field Field RTR
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
• Start of Frame: a keret kezdetét jelzi.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 27
Arbitration Field: ID + RTR =1
=0
= 0/1
CAN Data Frame 1
11
ID Start of Frame
1
2
4
r0,r1
0 - 64
Data Field
15
1 1 1
7
3
CRC Field
Arbitration Control Field Field RTR
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
• ID (Identifier) Field: 11 bit (CAN 2.0A) – Adási sorrend: MSB – LSB – Többnyire az adatmező tartalmát azonosítja. – Az RTR bittel együtt meghatározza a keret prioritását is.
• RTR (Remote Transmit Request): távoli adáskérés © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 28
Control Field =1
=0
= 0/1
CAN Data Frame 1
11
ID Start of Frame
1
2
4
r0,r1
0 - 64
Data Field
15
1 1 1
7
3
CRC Field
Arbitration Control Field Field RTR
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
• Control Field: az adatmező hossza byte-okban – 2 bit: reserved (r1=0, r0=0) – 4 bit: Data Length Code, (9-féle adathossz: 0, 1, 2, ..., 8 byte) © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 29
Data Field =1
=0
= 0/1
CAN Data Frame 1
11
ID Start of Frame
1
2
4
r0,r1
0 - 64
Data Field
15
1 1 1
7
3
CRC Field
Arbitration Control Field Field RTR
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
• Data Field: max. 8 byte hosszúságú adatmező tetszőleges tartalommal.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 30
CRC Field =1
=0
= 0/1
CAN Data Frame 1
11
ID Start of Frame
1
2
4
r0,r1
0 - 64
Data Field
15
1 1 1
7
3
CRC Field
Arbitration Control Field Field RTR
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
• CRC Field: 15 bit + 1 bit CRC Delimiter (=1)
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 31
ACK =1
=0
= 0/1
CAN Data Frame 1
11
ID Start of Frame
1
2
4
r0,r1
0 - 64
Data Field
15
1 1 1
CRC Field
Arbitration Control Field Field RTR
CRC Delimiter
7
3
End of Frame Intermission ACK Delimiter ACK Slot
• ACK Slot: Tx:=1 / Rx:=0, azonnali nyugtázás; • ACK Delimiter (=1)
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 32
End of Frame =1
=0
= 0/1
CAN Data Frame 1
11
ID Start of Frame
1
2
4
r0,r1
0 - 64
Data Field
15
CRC Field
Arbitration Control Field Field RTR
CRC Delimiter
• End of Frame: 1111111 • Intermission: 111
© TCs, SchB BME MIT 2012.
1 1 1
7
3
End of Frame ACK Delimiter ACK Slot
Intermission
(7x1) (3x1)
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 33
Adatkeret – CAN 2.0B vagy „extended CAN” =1
=0
= 0/1
Extended CAN Data Frame 1
11
2
18
2
Identifier (11+18) Start of Frame
1
4
r0,r1
0 - 64
Data Field
Control Field RTR
11
Identifier
1
2
4
r0,r1
Start of Arbitration Field Frame
0 - 64
Data Field
15
1 1 1
7
3
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
CRC Field
Control Field RTR
Standard CAN Data Frame © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 34
Arbitráció és prioritás • Huzalozott ÉS kapcsolat – Ha az összes adó 1 értéket ad (recessive érték), akkor a buszon is egyes érték van. – Ha bármelyik állomás lehúzza a buszt (domináns vagy 0 érték), akkor a buszon nulla (domináns) érték jelenik meg.
• Buszfigyelés: szabad / foglalt • Egyszerre többen adnak: összeszinkronizálódnak, bitről bitre egyszerre hajtják meg a buszt. • Adás közben az adó folyamatosan figyeli a buszt. • Arbitráció • Újraadás © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 35
Arbitráció és prioritás (folyt.) • A domináns nyer (arbitrációs mező=ID+RTR bit). • Az ID az adás prioritását is meghatározza. • Nem destruktív arbitráció (szemben pl. az Ethernettel)
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 36
CAN ID • A CAN ID nem azonos a szokásos LAN-ok címével. – LAN példa: a cím egy adott állomást azonosít (az A állomás üzenetet küld a B állomásnak).
• A CAN ID mező bármit azonosíthat. – A CAN protokoll nem mondja meg, hogy mi a jelentése az ID-nek, ezt a magasabb szintű protokollok határozzák meg. – Az ID hossza, a bitek adási sorrendje rögzített, de a tartalmára vonatkozóan nincs előírás. – Az ID legtöbbször az adatmezőben elküldött adat azonosítója (neve). – Az autók esetében a különböző paraméterekhez (változókhoz) rendelnek azonosítókat, pl. egyedi ID-je van a motor fordulatszámának, a jármű sebességének stb. – A vevők az ID vizsgálatával döntik el, hogy fogadják-e (továbbítsák-e a felsőbb réteg felé) az adott paramétert tartalmazó keretet vagy dobják el. © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 37
Távoli keret (Remote Frame) =1
=0
= 0/1
CAN Remote Frame 1
11
1
ID
2
4
r0,r1
Start of Arbitration Field Frame
15
11
ID Start of Arbitration Field Frame
2
4
r0,r1
0 - 64
Data Field
15
1 1 1
7
3
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
CRC Field
Control Field
RTR = 0 CAN Data Frame
© TCs, SchB BME MIT 2012.
3
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot
Control Field
1
7
CRC Field
RTR = 1
1
1 1 1
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 38
Hibakeret (Error Frame) =1
=0
CAN Error Frame 6
Error Flag
CAN Error Frame 8
6
Error Delimiter
8
Error Flag
Error active mode
Error Delimiter
Error passive mode
• Jelentése: „Vigyázat, ez egy hibás keret!” • Generálása: ha az adó adás közben vagy bármelyik vevő vétel közben hibát észlel. – Error active mode: Error Flag = 6 db 0 – Error passive mode: Error Flag = 6 db 1 – Error Delimiter: 8 db 1 (recessive) © TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 39
Error active mode (error counter < 128) =1
6
=0
8 Node 1 (Error detected)
Error Flag
Error Delimiter 6
8 Node 2 (Bit-stuffing error / form error)
Error Flag
6 – 12
Error Delimiter
8
3 CAN bus
Error Flag
Error Delimiter
Intermission
Min. 6+8+3 = 17, max. 12+8+3 = 23
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 40
Error passive mode (error counter > 127) =1
6
=0
8 Node 1 (Error detected)
Error Flag
Error Delimiter 6
Suspend transmission
8 Node 2 (Bit-stuffing error)
Error Flag
6 – 12
Error Delimiter
8
3 CAN bus
Error Flag
Error Delimiter
Intermission
Bus idle
Min. 6+8+3 = 17, max. 12+8+3 = 23
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 41
Hibakezelés – Bit Monitoring / Bit Error • Bit Monitoring – Adáskor az adó összehasonlítja a kiadott bitet a vett bittel. – Ha az arbitrációs fázison kívül a két érték nem egyezik, Bit Error hiba keletkezik, amit az adó regisztrál. =1
=0
= 0/1
Bit Error hatóköre 1
11
ID
1
2
4
r0,r1
Start of Arbitration Field Frame
0 - 64
Data Field
15
7
3
CRC Field
Control Field RTR
© TCs, SchB BME MIT 2012.
1 1 1
Csak belső használatra!
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot Autóipari beágyazott rendszerek – CAN - 42
Hibakezelés – Bit Stuffing / Stuff Error • Bit Stuffing – A vevő figyeli a beérkező biteket. – A bitbeszúrás/-bitkiejtés szabály megsértése esetén Stuff Error hibát jelez.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 43
Hibakezelés – Frame Check / Form Error • Frame Check – A CAN keret bizonyos bitjei rögzítettek, így az ettől való eltérést a vevők képesek észlelni. – Ilyen típusú hiba esetén Form Error hiba keletkezik. =1
1
11
ID
1
2
4
r0,r1
Start of Arbitration Field Frame
0 - 64
Data Field
15
7
= 0/1
3
CRC Field
Control Field RTR
© TCs, SchB BME MIT 2012.
1 1 1
=0
Csak belső használatra!
End of Frame Intermission CRC ACK Delimiter Delimiter ACK Slot Autóipari beágyazott rendszerek – CAN - 44
Hibakezelés – Acknowledgement Check /Error • Acknowledgement Check – Egy adó sikeresen vett keretét valamennyi vevő nyugtázza az ACK bit nullába állításával. – Ha egyetlen vevő sincs a buszon, akkor az ACK bit egyes értékű marad, ami az adóban Acknowledgement Error hibát generál. – Az adó ily módon értesül arról, hogy vették-e a keretét. – Azt nem tudhatja, hogy mindenki vette-e a keretét, csupán azt, hogy senki nem vette vagy legalább egy állomás vette.
© TCs, SchB BME MIT 2012.
ACK Delimiter ACK Slot Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 45
Hibakezelés – CRC / CRC Error • Cyclic Redundancy Check – Az üzenetek integritását 15-bites CRC-vel védik. – CRC hiba esetén a vevő CRC Error hibát jelez. 15
1
CRC Field CRC Delimiter
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 46
Hiba-behatárolás, -elszigetelés • Fejlett hibakezelés • Hibaszámlálók: – Transmit Error Counter – Receive Error Counter
• Inkrementálnak, ha hibát észlelnek, és dekrementálnak, ha hibátlanul tudnak adni. • Az adáskor bekövetkező hibákat nyolcszoros súllyal számolják.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 47
Hiba-behatárolás, -elszigetelés • Error Active, Error Passive üzemmód – Ha a hibák száma meghalad egy bizonyos értéket, az állomás a normális (Error Active) állapotból átmegy egy fokozott elővigyázatosságot biztosító (Error Passive) állapotba. – Ha a hibák száma meghalad egy újabb küszöböt, az állomás nem adhat a buszra. – A hibák megszűnése esetén, bizonyos szabályok betartásával, az állomás visszakerülhet normál üzemmódba.
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 48
Error counters, error modes Init Error active REC > 127 OR TEC > 127
Error passive
REC < 128 AND TEC < 128 TEC > 255
© TCs, SchB BME MIT 2012.
(11 consecutive rec bits = = ACK delimiter (1) + EOF (7) + Interm. (3) = Error delimiter (8) + Intermission (3) )
128 x 11 rec bits
Bus off Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 49
Magasabb rétegek – Alkalmazási réteg • Ipari alkalmazásokhoz – CAL – CANopen – DeviceNet – CAN Kingdom – SDS –…
CAN in Automation (CiA) CAN in Automation (CiA) Allen Bradley–Rockwell Kvaser Honeywell
• Autós alkalmazásokhoz – OSEK/VDX – J 1939 –… © TCs, SchB BME MIT 2012.
OSEK SAE
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 50
Vége
© TCs, SchB BME MIT 2012.
Csak belső használatra!
Autóipari beágyazott rendszerek – CAN - 51