pdf-Datei / 464,14 KB

Werbung
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
Herunterladen