Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

29
Michael Bauer 1 CAN CAN C C ontroller ontroller A A rea rea N N etwork etwork Kommunikationsnetze

Transcript of Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Page 1: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 1

CANCANCController ontroller AArea rea NNetworketwork

Kommunikationsnetze

Page 2: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 2

GliederungGliederung

I. Einleitung

II. Grundlegende Eigenschaften des CAN Protokolls

III. Aufbau eines Datenframes

IV. Bitweise Arbitrierung

V. Fehlererkennung und Fehlerbehandlung

Page 3: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 3

I.I. EinleitungEinleitung

CAN Bussystem auch als Feldbus bezeichnet zur Kommunikation zwischen niedrigen Prozessoren (Sensoren/Aktoren)

Entwicklung von CAN als Autobus Mitte der 80-er Jahre bei der Firma Bosch GmbH und 1985 mit Intel erstmalig in Silizium realisiert

heute hat jeder große Halbleiterhersteller mind. ein CAN Produkt im Angebot

Notwendigkeit der Entwicklung war durch Automobilindustrie gegeben, da immer komplexere Kabelbäume in Fahrzeugen integriert wurdenBeispiel: Kabellänge > 2000m mit Gewicht > 100kg dazu kamen bis zu 600 verschiedene Kabelbäume pro Modell

Page 4: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 4

I.I. EinleitungEinleitung

1992 erstmalig in Serienmodell (S-Klasse) eingesetzt und heute in fast allen Automobiltypen verwendet, auch im echtzeitkritischen Bereich

weitere Anwendungen: - Verkehrsmittel:

PKW,LKW,Flugzeuge,Züge,Schiffe,

landwirtschaftliche Maschinen, Baumaschinen etc.

- Industriesteuerungen: programmierbare Steuerungen,

Handhabungsautomaten,Roboter,intelligente

Motorsteuerungen,Geldautomaten,Spielzeuge u.v.m.

Page 5: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 5

II.II. Grundlegende Eigenschaften des Grundlegende Eigenschaften des CAN ProtokollsCAN Protokolls

CAN Protokoll auf OSI Schicht 1 bis 2 baut auf eine Multimaster Hierarchie, das bedeutet bei

defekt eines Knoten läuft das Gesamtsystem trotzdem stabil weiter

Zugriffsverfahren CSMA/CD+CR:CS – Carrier SenseMA – Multiple AccessCD – Collision DetectionCR – Collision ResolutionJeder Knoten wartet bis der Bus frei ist und startet dann die Übertragung, andernfalls erfolgt eine Bitweise Arbitrierung.

Page 6: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 6

II.II. Grundlegende Eigenschaften des Grundlegende Eigenschaften des CAN ProtokollsCAN Protokolls

Ereignisgesteuerte Kommunikation:

Sobald ein Ereignis auftritt was zu einer zu übertragenden Information führt, sorgt der Teilnehmer für die Übertragung.

Kommunikation ist grundsätzlich Broadcast-orientiert:

- Zugriffssieger sendet grundsätzlich an alle anderen

Knoten, diese prüfen auf Fehler erst dann wird durch

Empfänger geprüft ob für ihn bestimmt

Page 7: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 7

II.II. Grundlegende Eigenschaften des Grundlegende Eigenschaften des CAN ProtokollsCAN Protokolls

Remote Request – Antwort:

- Nachfrage kann von jedem Knoten ausgelöst werden

- erfolgt über ein „Remote Request Frame“

- gerade aktuelle Daten werden dann gesendet

Page 8: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 8

II.II. Grundlegende Eigenschaften des Grundlegende Eigenschaften des CAN ProtokollsCAN Protokolls

Grenzwerte des System-Layout:

- 32 Knoten pro System (bei Standard

Leitungstranceivern)

- bis zu 128 Knoten möglich

- 211 Botschaften pro System (CAN 2.0A)

- 229 Botschaften pro System (CAN 2.0B)

- 0 bis 8 Byte Daten pro Botschaft

- 117 Bits pro Botschaft (CAN 2.0A)

- 136 Bits pro Botschaft (CAN 2.0B)

- Bit-Rate programmierbar zwischen 5kBit/s und 1MBit/s

Page 9: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 9

II.II. Grundlegende Eigenschaften des Grundlegende Eigenschaften des CAN ProtokollsCAN Protokolls

Leitungstreibereigenschaften

- Differential mode (+NRZ):

zwei Signalleitungen die mit komplementären Signalen

- Unsymmetrische Übertragung (+NRZ):

nur eine Signalleitung

- Gleichspannungsloser Betrieb:

Transformatorkopplung zur Unterdrückung

unterschiedlicher Erdungspotentiale

Page 10: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 10

III.III. Aufbau eines DatenframesAufbau eines Datenframes

Format nach CAN 2.0A

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER1 CONTROL1 DATA(Byte)

1 1 15 1 1 1 7 311 2 0-8

IDENTIFIER2

18

CONTROL2

6

Format nach CAN 2.0B

Page 11: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 11

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

SOF

1

Page 12: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 12

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 13: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 13

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 14: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 14

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Arbitrierung

Page 15: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 15

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 16: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 16

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 17: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 17

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 18: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 18

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 19: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 19

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 20: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 20

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 21: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 21

III.III. Aufbau eines DatenframesAufbau eines Datenframes

SOF: Start of Frame Identifier:Kennzeichnung und Priorität der Nachricht RTR: Remote Transmission Request Bit Control: Datenlänge und Extended ja/nein Data: Daten CRC: x15+ x14+ x10+ x8+ x7+ x4+ x3+1 DEL: Begrenzungsbit ACK: Bestätigungsbit/Bestätigungsslot EOF: End of Frame IFS: Interframe Space Bits minimaler Abstand zum nächsten

Frame

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER CONTROL DATA(Byte)

1 1 15 1 1 1 7 311 6 0-8

Page 22: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 22

III.III. Aufbau eines DatenframesAufbau eines Datenframes

Standardformat und erweitertes Format sind kompatibel zueinander

Unterscheidung durch zwei Bits SRR und IDE Bit Substitute Remote Request Bit ersetzt RTR und bedeutet, dass ein Standardformat prinzipiell Höherprior ist Identifier Extension Bit kennzeichnet Extended Format

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER1 CONTROL1 DATA(Byte)

1 1 15 1 1 1 7 311 2 0-8

IDENTIFIER2

18

CONTROL2

6

SOF

RTR

IFS

EOF

DEL

ACK

DEL

CRC

IDENTIFIER1 CONTROL1 DATA(Byte)

1 1 15 1 1 1 7 311 2 0-8

IDENTIFIER2

18

CONTROL2

6

Page 23: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 23

IV.IV. Bitweise ArbitrierungBitweise Arbitrierung

Wenn mehrere Teilnehmer gleichzeitig auf den Bus zugreifen, wird in einer Auswahlphase (Arbitrierung) entschieden wer am Bus bleiben darf.

Arbitrierungsfeld besteht aus RTR-Bit + Identifier jeder Knoten liest den aktuellen Wert des

Kommunikationsmedium und vergleicht mit dem gesendeten wenn Vergleich negativ ausfällt schaltet er sofort auf

Empfang physikalische Grundlage sind dominante bzw. rezessive

Buspegel („wired and“, „open collector“), d.h. das dominante Bit überschreibt das rezessive

00...00 ist also höchstpriore und 11...11 ist die am wenigsten wichtige Botschaft

Page 24: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 24

IV.IV. Bitweise ArbitrierungBitweise Arbitrierung

Beispiel:

SOF

RTR

IDENTIFIER1 DATA(Byte)

1 1 0-8

CONTROL

610 9 8 7 6 5 4 3 2 1 0

Teilnehmer 1

Teilnehmer 2

Teilnehmer 3

Buspegel

Arbitrierungsphase

Page 25: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 25

IV.IV. Fehlererkennung und Fehlererkennung und FehlerbehandlungFehlerbehandlung

Jeder erkannte Fehler wird allen Teilnehmer mitgeteilt, welche die empfangene Botschaft verwerfen.

Gesendet wird ein sogenanntes Errorframe, welches durch alle Teilnehmer erkannt wird.

Damit der Bus bei einer lokalen Störung eines Teilnehmers nicht dauerhaft belegt wird, zieht sich dieser nach und nach vom Busgeschehen zurück.

Part ofData Frame

6-Bit ActiveError Flag

0-6-Bits ActiveError Flag

8 Bits of ErrorDelimiter

Active Error Frame

Page 26: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 26

IV.IV. Fehlererkennung und Fehlererkennung und FehlerbehandlungFehlerbehandlung

1. Bit-Fehler:

empfangenes Bit gesendetes Bit außer Arbitrierungsphase bzw. Acknowledgement

2. Bit-Stuffing-Fehler:

mehr als 5 aufeinanderfolgende gleiche Bits zwischen Start of Frame und CRC-Delimiter

3. CRC-Fehler:

CRC Prüfsumme stimmt nicht 4. Format-Fehler:

Verletzung des Datenformats 5. Acknowledgement-Fehler:

während des Acknowledgement Slot kein dominantes Bit empfangen

Page 27: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 27

IV.IV. Fehlererkennung und Fehlererkennung und FehlerbehandlungFehlerbehandlung

Reihenfolge der Fehlerbehandlung:

1. Fehler wird erkannt

2. Errorframe wird von jedem Teilnehmer der den Fehler erkennt gesendet.

3. Telegramm wird von allen verworfen.

4. Fehlerzähler wird bei jedem Teilnehmer in entsprechender Weise beeinflusst.

5. Telegramm wird erneut komplett gesendet.

Page 28: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 28

LiteraturLiteratur

Wolfhard Lawrenz (Hrsg.): CAN Controller Area Network, 3., bearbeitete Auflage, Hüting Verlag 1999

Konrad Etschberger: CAN Controller-Area-Network, Carl Hanser Verlag 1994

Robert Bosch GmbH: CAN Specification, Version 2.0, Sep. 1991

Page 29: Michael Bauer1 CAN Controller Area Network Kommunikationsnetze.

Michael Bauer 29

FIN