CAN Bus Workshop_Version 03__ 06_2008_DE.pdf - 第34页
1 - 8 S tudent Guide CAN BUS Wor kshop 2 Kommu nikation und S teuerung Ausg abe 06/2 008 8 2.2.1.1 CAN-Bus-Pr otokoll Abb. 2.2 - 5 CA N-Bus-Protokoll Start : Dieses Bit ke nnzeich net den Beginn eines T elegr amms und be…

1 - 7
Student Guide CAN BUS Workshop
Ausgabe 06/2008 2 Kommunikation und Steuerung
7
2.2.1 Allgemeiner Aufbau
Der CAN-Bus ist ein dezentraler Multi-Master Bus. Über die Differenzspannung der zwei Leitun-
gen CAN_High und CAN_Low, welche jeweils mit einem Abschlusswiderstand von 120 Ohm ver-
sehen sind, werden die Daten übertragen.
Abb. 2.2 - 3 CAN Bus Struktur
Abb. 2.2 - 4 CAN Bus Controller und Mikricontroller
Legende
– Mikrocontroller: Tauscht mit dem CAN-Controller Daten aus
– CAN-Controller: Fügt den Datenrahmen hinzu, baut die Verbindung auf, erledigt die Fehler-
behandlung.
– Sender/Empfänger: Pegelanpassung (Treiberstufen)
Jeder Busteilnehmer besitzt einen CAN-Controller, welcher Daten senden und empfangen kann,
wenn der Bus frei ist.
Dieser CAN-Controller kommuniziert mit einem Mikrocontroller. Der Mikrocontroller steuert und
kontrolliert den entsprechenden CAN-Bus-Teilnehmer.
Ein CAN-Bus-Teilnehmer kann nur senden, wenn der Bus frei ist, d. h. keine Kommunikation zu
anderen Teilnehmern stattfindet. Der Zugriff auf den CAN-BUS wird im CAN-Protokoll (Identifier)
festgelegt. Damit ergeben sich unterschiedliche Prioritäten der CAN-Bus-Teilnehmer.

1 - 8
Student Guide CAN BUS Workshop
2 Kommunikation und Steuerung Ausgabe 06/2008
8
2.2.1.1 CAN-Bus-Protokoll
Abb. 2.2 - 5 CAN-Bus-Protokoll
Start: Dieses Bit kennzeichnet den Beginn eines Telegramms und besteht aus einem dominanten
Bit. Ein Teilnehmer (TN) kann mit der Arbitrierung nur beginnen, solange sich der Bus im Ruhe-
zustand befindet.
Adressenfeld (11-Bit-Identifier): Der Wert des 11-Bit-Identifier entscheidet über den Buszugriff.
Der niedrigere Wert besitzt die höhere Priorität.
Steuerfeld: Die 4 niedrigsten Bit des 6-Bit-Feldes geben die Datenlänge des nachfolgenden Da-
tenfeldes in Bytes an (DLC: data length code).
Datenfeld: Enthält die eigentliche Nutzinformation und kann 0 bis 8 Byte umfassen. Die Übertra-
gung eines Bytes beginnt mit dem höchstwertigen Bit.
Datensicherungsfeld CRC: Besteht aus einer 15-Bit Prüfsequenz (CRC Sequence + CRC Deli-
miter = CRC Field - Cyclic Redundancy Check), sowie einem rezessiv übertragenem Begren-
zungsbit. Mit der in der Prüfsequenz enthaltenen redundanten Information kann der Empfänger
nachprüfen, ob die empfangene Nachricht durch Störeinwirkungen verfälscht wurde.
Ende: Jedes Datentelegramm wird durch eine Bitsequenz von 7 rezessiven Bits abgeschlossen.
2.2.1.2 11-Bit Identifier
Abb. 2.2 - 6 11-Bit-Identifier
Das CAN-Bussystem verwendet den 11-Bit-Identifier zur Adressierung der versch. CAN-Objekte.
Ein 11 Bit langer Identifier (Adresse) identifiziert die Nachricht bzgl. Art, Priorität, Quelle und/oder
Ziel.
Durch den Identifier wird auch der Buszugriff gesteuert (Arbitrierung).
Start
Adresse
(11 bit Kennung)
Steuer-
information.
Daten (0-8 Bytes
Benutzerinformation)
CRC
Ende

1 - 9
Student Guide CAN BUS Workshop
Ausgabe 06/2008 2 Kommunikation und Steuerung
9
2.2.1.3 CAN-Bus-Arbitrierung
Arbitrierung (engl. Arbitration bedeutet übersetzt Entscheidung)
Bei CAN erfolgt der Buszugriff durch die TN völlig unkoordiniert nach dem Prinzip des dezentralen
Buszugriffs. Es ist grundsätzlich möglich, dass mehrere TN gleichzeitig mit dem Senden einer
Nachricht (Kommando oder Meldung) beginnen. Generell gilt, dass ein TN nur dann den Bus be-
legen kann, wenn dieser frei ist. Die Busteilnehmer erkennen den Belegungszustand des Busses
über eine festgelegte Zeitspanne, innerhalb welcher der Bus auf Ruhepotential sein muss.
Immer dann, wenn mehrere TN gleichzeitig mit dem Senden einer Nachricht beginnen, wird im
Rahmen einer Auswahlphase (Arbitrierungsphase) entschieden, welcher TN am Bus verbleiben
darf.
Ein solcher Buszugriffskonflikt wird durch bitweises Aufschalten des Nachrichtenarbitrierungsfel-
des (Standard ist ein 11-Bit-Identifier) aufgelöst.
Grundlage der bitweisen Arbitrierung ist die Unterscheidung von 2 physikalischen Buspegeln, ei-
nem dominanten (low) und einem rezessiven Bit (high).
Ein freier Bus befindet sich auf rezessivem Pegel. Ein TN, der den Bus belegt, signalisiert dies
durch Aufschalten eines dominanten Bits (SoF, Start of Frame). Während der Arbitrierungsphase
vergleicht jeder sendende TN den von ihm aufgeschalteten Buspegel mit dem tatsächlich auf dem
Bus vorhandenen Pegel.
Jeder TN, der ein rezessives Bit gesendet hat und ein dominantes beobachtet, stellt seinen Arbi-
trierungsversuch sofort ein und wird zum möglichen Empfänger der Nachricht. Am Ende der Ar-
bitrierung bleibt nur derjenige TN am Bus, dessen Nachricht den niedrigsten Identifierwert besitzt
(logische Null wird durch dominanten Pegel abgebildet). Die Priorität einer Nachricht ist also hö-
her, je niedriger der Wert des Identifier dieser Nachricht.
Dadurch wird sichergestellt, das bei gleichzeitiger Belegung des Busses durch mehrere TN immer
nur ein TN am Bus bleibt. Die von diesem TN gesendete Nachricht wird hier nicht zerstört, so dass
wir von einer verlustlosen Arbitrierung sprechen.
Abb. 2.2 - 7 Zustandsdiagramm Arbitrierung
Warten auf freien Bus
Aufschalten Bit SoF
Empfangszustand
Aufschalten des
1. Arbitrierungsbits
Vergleich Buspegel mit
aufgeschaltetem Bit
Fehlerzustand
Arbitrierung verloren
rezessives Bit auf dominanten Bus aufgeschalten
i d ll A bit i bit f h lt
Aufschalten
weiterer Bits
Start: ein TN sendet
eine Nachricht