Skript 05, Teil D3

92 downloads 204 Views 464KB Size Report
05 / Teil D / Seite 17. 05.012.01. CAN - Bus. Controller Area Network. Entwicklungsziel: Vernetzung der elektrischen/elektronischen Kom- ponenten eines ...
CAN - Bus Controller Area Network

CAN - Bus Controller Area Network ab 1985

Entwicklungsziel: Vernetzung der elektrischen/elektronischen Komponenten eines Kraftfahrzeuges als Lösung eines zunehmenden Verkabelungsproblems.

Entwicklung durch die Firmen Robert Bosch und Intel. Erster Einsatz in den Luxuslimousinen von BMW und Mercedes-Benz. Internationale Normung als ISO 11898 und ISO 11519 - 1

Innovation: Datenübertragung mit CSMA/CA - Protokoll

1995

Drei Mill. CAN-Bus-Systeme im Kfz-Bereich

(Carrier Sense Multiple Access/Collision Avoidence).

1999

Einsatz in verschiedenen Feldern der industriellen Automation und in der Gebäudetechnik.

Nachrichtenorientiertes Protokoll.

05.012.02

05.012.01

CAN - Bus Anwendung

CAN - Bus Anwendung

Triebwagen:

Landwirtschaft:

Alle leittechnischen Systeme sind über CAN-Bus und Profibus redundant vernetzt.

QSS 2000 Qualitätssicherung in der Sauenhaltung Dialog Agrartechnik GmbH

Quelle: http://www.qss2000.de

Quelle: http://www.geranova.de/lmarchiv/et2000.html 05.012.37

05 / Teil D / Seite 17

05.012.38

CAN - Bus Anwendung

CAN - Bus Verpackungsmaschine Aufgabe: Verpackung von Textilien (z.B. Strumpfhosen, Strümpfe und Söckchen) in Faltschachteln.

Quelle: http://www.qss2000.de

05.012.39

FRABA Sensorsysteme GmbH Schanzenstraße 35 51063 Köln

CAN - Bus Winkelcodierer mit CAN Bus

05.012.40

CAN - Bus Winkelcodierer mit CAN Bus Zeitdauer 'Lesen des Maßstabs' bis 'Daten auf dem Bus' 10ms. 16 Bit Microcontroller 80166 IP65 wartungsfrei

FRABA Sensorsysteme GmbH Schanzenstraße 35 51063 Köln

05.012.41

05 / Teil D / Seite 18

FRABA Sensorsysteme GmbH Schanzenstraße 35 51063 Köln

05.012.42

CAN - Bus Einsatz in Nutzfahrzeugen

CAN - Bus Netzstruktur CAN arbeitet mit einer Busstruktur: Knoten 1

Verknüpfung der Steuerungen mit dem CAN-Bus.

Knoten 2

Knoten 3

Knoten N

Buskabel Anzahl Knoten: theor. unbegrenzt, typisch bis 64; Buskabel: geschirmte, verdrillte 2-Draht-Leitung, andere Lösungen möglich. Quelle: Faun

05.012.04

05.012.43

CAN - Bus Buseigenschaften

CAN - Bus Nachrichtenorientiertes Protokoll Sendende Knoten übertragen in jedem Datentelegramm auf den Bus:

serielle Datenübertragung nach RS 485; Übertragungsrate 100 kBaud/800m - 1 MBaud/40m; Datenaustausch ohne Sender-/Empfängeradresse;

- eine Kennzeichnung zur Beschreibung des Datentyps;

Anzahl der Knoten theoretisch unbegrenzt;

- die Daten selbst.

typisch: Anwendungen mit bis zu 64 Knoten;

Sie senden weder ihre Absenderadresse noch eine Empfängeradresse.

Knoten können jederzeit auf den Bus ausgeben; spezielles Protokoll verhindert Kollisionen;

Vergleich: Ausstrahlung von Fernseh- und Rundfunksendungen. 05.012.05

05 / Teil D / Seite 19

05.012.06

CAN - Bus Nachrichtenorientiertes Protokoll

CAN - Bus Nachrichtenorientiertes Protokoll

Beispiele für Sender: Drehzahlsensoren

Die Datenkennzeichnungen werden zur Übertragung durch eindeutige Identifier (Binärzahlen) ersetzt.

Ort

Datenkennzeichnung

Datum

linkes Vorderrad

"Rad 1"

1061

rechtes Vorderrad

"Rad 2"

1065

linkes Hinterrad

"Rad 3"

1060

rechtes Hinterrad

"Rad 4"

1064

Kurbelwelle

"Motordrehzahl"

3417

Identifier sind 11 Bit (CAN 2.0A) bzw. 29 Bit (CAN 2.0B) lang. Zuordung durch Systementwickler (nicht genormt), z.B.: Datenkennzeichnung

Identifier (Bsp.)

"Rad 1" "Rad 2" "Rad 3" "Rad 4" "Motordrehzahl"

000.0001.0000 000.0000.1111 000.0001.0010 000.0001.0001 000.1000.0000 05.012.08

05.012.07

CAN - Bus Nachrichtenorientiertes Protokoll

CAN - Bus Nachrichtenorientiertes Protokoll

Sensor am rechten Vorderrad sendet sein Telegramm:

Die Knoten prüfen über den Identifier, ob sie die Daten gebrauchen können. Falls nicht, werden sie ignoriert.

Sensor Rad vl

Sensor Rad vr

Sensor Rad hl

Sensor Kurbelwelle

Sensor Rad vl

Buskabel

Steuerg. ABS

Tachometer

Sensor Rad vr

Sensor Rad hl

Sensor Kurbelwelle

Buskabel

Drehzahlm.

Steuerg. ABS

Tachometer

Drehzahlm.

Telegramm akzeptiert ignoriert

Telegramm erreicht alle Knoten. 05.012.09

05 / Teil D / Seite 20

05.012.10

CAN - Bus Nachrichtenorientiertes Protokoll

CAN - Bus Nachrichtenorientiertes Protokoll Die Knoten prüfen über den Identifier, ob sie die Daten gebrauchen können. Falls nicht, werden sie ignoriert.

Sensor an der Kurbelwelle sendet sein Telegramm:

Sensor Rad vl

Sensor Rad vr

Sensor Rad hl

Sensor Kurbelwelle

Sensor Rad vl

Buskabel

Steuerg. ABS

Tachometer

Sensor Rad vr

Sensor Kurbelwelle

Sensor Rad hl

Buskabel

Drehzahlm.

Steuerg. ABS

Tachometer

Drehzahlm.

Telegramm akzeptiert ignoriert

Telegramm erreicht alle Knoten. 05.012.11

05.012.12

CAN - Bus CSMA/CA

CAN - Bus CSMA/CA

CSMA/CA - Regeln

Busanschaltung (stark vereinfacht)

Kein Master, alle Knoten sind gleichberechtigt.

Knoten 1

Ein Knoten darf senden, falls der Bus frei ist (CS = Carrier Sense).

Knoten 2

+5V Sen+5V der E E

Knoten 3

Knoten N

+5V E

Es kommt vor, daß mehrere Knoten gleichzeitig mit dem Startbit beginnen (MA = Multiple Access).

+5V -5V

E

R

Jeder Knoten muss seine Sendung sofort unterbrechen, wenn er feststellt, dass ein anderer Knoten gerade ein wichtigeres Telegramm senden will. (CA = Collision Avoidance) 05.012.13

0V

Buskabel 2-aderig

Im Ruhezustand führt das Buskabel eine Spannung von -5V = logisch '1'.

05 / Teil D / Seite 21

05.012.14

CAN - Bus CSMA/CA

CAN - Bus CSMA/CA

Funktion des Senders (stark vereinfacht) Knoten i +5V

Es gibt zwei Buszustände: rezessiv und dominant.

Knoten i

Knoten 1

+5V

Sender

E

+5V Sen+5V der E E

E

Empfänger Schalter geschlossen: sendet logisch '0'

0V

Anmerkung: Der Empfänger arbeitet parallel und unabhängig zum Sender. 05.012.15

+5V E

+5V Sen+5V der E E

Knoten 3

R

Buskabel 2-aderig

Buskabel 2-aderig

Pull-Up Widerstand

05.012.16

Beginnen mehrere Knoten gleichzeitig mit dem Senden des Startbits, so erhält der Knoten mit der wichtigsten Nachricht das alleinige Senderecht.

+5V -5V

E

Vereinbarung: Je wichtiger die Nachricht, desto (numerisch) kleiner der Identifier.

R

Empfänger

E

Buszuteilung

Knoten N

+5V E

+5V -5V

CAN - Bus CSMA/CA

Es gibt zwei Buszustände: rezessiv und dominant. Knoten 2

Knoten N

rezessiv: Spannungsdifferenz -5V = logisch '1'. Alle Knoten senden logisch '1'.

CAN - Bus CSMA/CA

0V

Knoten 3

Empfänger

Schalter offen: sendet logisch '1'

Knoten 1

Knoten 2

Pull-Up Widerstand

dominant: Spannungsdifferenz 5V = logisch '0'. Mind. ein Knoten sendet logisch '0'.

Zur Klärung der Rechte überträgt jeder sendende Knoten als erstes nach dem Startbit den Identifier seiner Nachricht.

05.012.17

05 / Teil D / Seite 22

05.012.18

CAN - Bus CSMA/CA

CAN - Bus CSMA/CA

Beispiel: Paralleler Buszugriff durch Sensor 'Rad vr' und Sensor 'Kurbelwelle': Rad vl

Rad vr

+5V E

Rad hl

+5V

Kurbelwelle

+5V

E

Rad vl

+5V -5V

E

1. Schritt: Beide senden das Startbit (log. '0'): Rad vr

+5V

E

E

Rad hl

+5V

Kurbelwelle

+5V

E

+5V -5V

E

R

E

R

+5V Buskabel 2-aderig

0V

Buskabel 2-aderig

0V

Identifier Sensor 'Rad vr': 000.0000.1111 Identifier Sensor 'Kurbelwelle': 000.1000.0000

Beide sehen auf dem Bus +5V = log. '0'. 05.012.19

05.012.20

CAN - Bus CSMA/CA

CAN - Bus CSMA/CA

2. Schritt: Beide senden das höchstwertige Bit ihres Identifiers: Rad vl

Rad vr

+5V E

Rad hl

+5V

Kurbelwelle

+5V

E

E

3. Schritt: Beide senden das zweite Bit ihres Identifiers: Rad vl

+5V -5V

Rad vr

+5V

E

E

Rad hl

+5V E

E

R

+5V -5V

E

R

+5V 0V

Kurbelwelle

+5V

+5V

Buskabel 2-aderig

0V

Sensor 'Rad vr': sendet log. '0' und sieht log. '0' Sensor 'Kurbelwelle': sendet log. '0' und sieht log. '0'

Buskabel 2-aderig

Sensor 'Rad vr': sendet log. '0' und sieht log. '0' Sensor 'Kurbelwelle': sendet log. '0' und sieht log. '0'

05.012.21

05 / Teil D / Seite 23

05.012.22

CAN - Bus CSMA/CA

CAN - Bus CSMA/CA

4. Schritt: Beide senden das dritte Bit ihres Identifiers:

5. Schritt: Beide senden das vierte Bit ihres Identifiers:

Rad vl

Rad vr

+5V E

Rad hl

+5V

Kurbelwelle

+5V

E

Rad vl

+5V -5V

E

Rad vr

+5V

E

E

Rad hl

+5V E

'0'

E

R

0V

Sensor 'Rad vr': sendet log. '0' und sieht log. '0' Sensor 'Kurbelwelle': sendet log. '0' und sieht log. '0' 05.012.23

Bedeutung der Abkürzungen aus Bild 05.012.25 stets '1'

RTR

3 Stopbits (INT)

DLC '1'

2 bit stets '0'

Buskabel 2-aderig

CAN - Bus Telegrammformat

Standard CAN (Version 2.0A)

Start- RTR bit

'1'

Sensor 'Rad vr': sendet log. '0' und sieht log. '0' Sensor 'Kurbelwelle': sendet log. '1', sieht aber log. '0' und verliert das Senderecht. 05.012.24

CAN - Bus Telegrammformat

'0'

E

+5V

Buskabel 2-aderig

Bus 11 bit 4 bit 0-64 bit ruht Identifier DLC Daten

+5V -5V R

+5V 0V

Kurbelwelle

+5V

Bus 15 bit 1 bit 7 Stop- ruht CRC ACK bits (EOF)

Bedeutung d. Abkürzungen siehe Bild 05.012.26

CRC ACK EOF INT

05.012.25

05 / Teil D / Seite 24

Remote Transmisson Request (Sendeaufforderung) Data Length Code (Code der Länge des Datenfeldes) Cyclic Redundancy Check Acknowledge (Empfangsbestätigung) End of Frame (Telegrammende) Intermission (Pause) 05.012.26

CAN - Bus Remote Transmisson Request

CAN - Bus Remote Transmisson Request

Regelfall: Knoten sendet periodisch mit Identifier 000.0000.1111 Daten über Drehzahl des Rades vr. Sensor Rad vl

Sensor Rad vr

Mit RTR können andere Knoten zusätzliche Datenübertragungen anfordern.

Sensor Kurbelwelle

Sensor Rad hl

Sensor Rad vl

Buskabel

Steuerg. ABS

Tachometer

Drehzahlm.

Steuerg. ABS

Tachometer

Drehzahlm.

Drehzahlm.

05.012.28

Sensor Kurbelwelle

Sensor sendet Daten mit Identifier = 000.0000.1111 und RTR = 0, sobald der Bus frei wird. Sensor Rad vl

Buskabel

Steuerg. ABS

Tachometer

CAN - Bus Remote Transmisson Request

Knoten prüfen über den Identifier, ob sie die Daten liefern können. Falls nicht, wird das Telegramm ignoriert. Sensor Rad hl

Sensor Kurbelwelle

sendet: Identifier = 000.0000.1111 RTR = 1

CAN - Bus Remote Transmisson Request

Sensor Rad vr

Sensor Rad hl

Buskabel

05.012.27

Sensor Rad vl

Sensor Rad vr

Sensor Rad vr

Sensor Rad hl

Sensor Kurbelwelle

Buskabel

Telegramm akzeptiert ignoriert

Steuerg. ABS

05.012.29

05 / Teil D / Seite 25

Tachometer

Drehzahlm.

05.012.30

CAN - Bus Data Length Code

CAN - Bus Data Length Code DLC: Beschreibung der Länge des Datenfeldes

DLC: Beschreibung der Länge des Datenfeldes Bus ruht

11 bit Identifier

4 bit 0-64 bit DLC Daten

stets '1'

Anzahl Bytes im Datenfeld

3 Stopbits (INT)

0 1 2 3 4 5 6 7 8

'1' '0' Startbit

RTR

2 bit stets '0'

15 bit CRC

1 bit ACK

7 Stopbits (EOF)

DLC

Bus ruht

0 0 0 0 0 0 0 0 1

0 0 0 0 1 1 1 1 0

0 0 1 1 0 0 1 1 0

0 1 0 1 0 1 0 1 0

05.012.31

05.012.32

CAN - Bus Acknowledge

CAN - Bus Acknowledge

ACK: Empfangsbestätigung Bus ruht

11 bit Identifier

4 bit DLC

Der Sender sendet für das ACK-Bit eine '1':

0-64 bit Daten

stets '1'

3 Stopbits (INT)

Bus ruht

'1'

11 bit Identifier

4 bit DLC

0-64 bit Daten

stets '1'

3 Stopbits (INT)

'1'

'0'

'0' Startbit

RTR

2 bit stets '0'

15 bit CRC

1 bit ACK

7 Stopbits (EOF)

Bus ruht

Startbit

05.012.33

05 / Teil D / Seite 26

RTR

2 bit stets '0'

15 bit CRC

1 bit ACK

7 Stopbits (EOF)

Bus ruht

05.012.34

CAN - Bus Acknowledge

CAN - Bus Praktisch nutzbare Buslängen

Gleichzeitig sendet jeder Empfänger bei erfolgreichem Empfang ein ACK-Bit '0' (dominant). Bus ruht

11 bit Identifier

4 bit DLC

0-64 bit Daten

stets '1'

Bitrate [kBits/s]

3 Stopbits (INT)

'1' '0' Startbit

RTR

2 bit stets '0'

15 bit CRC

1 bit ACK

7 Stopbits (EOF)

Bus ruht

05.012.35

CAN - Bus Zusammenfassung alle Knoten gleichberechtigt, keine Master/Slaves; Zahl und Art der Ein- und Ausgänge variabel; Ein- und Ausgänge digital (ein/aus) oder analog; nachrichtenorientiertes Protokoll; Buszugriff mittels CSMA/CA, echtzeitfähig; zweiaderiges Buskabel, keine LWL; maximale Busausdehnung 40m bei 1MBaud; hohe Fehlersicherheit; ISO-Norm, herstellerunabhängig. 05.012.36

05 / Teil D / Seite 27

Bitzeit [µs]

max. Buslänge [m]

1000

1,00

30

800

1,25

50

500

2,00

100

250

4,00

250

125

8,00

500

62,5

16,00

1000

20

50,00

2500 05.012.47