CAN Bus Workshop_Version 03__ 06_2008_DE.pdf - 第35页

1 - 9 S tudent Guid e CAN BU S Wor kshop Ausgabe 0 6/2008 2 Komm unikation un d S teuerung 9 2.2.1.3 CAN-Bus-Arbitr ierung Arbitrie rung (en gl. Arbitr ation bede utet über setzt Entsc heidung) Bei C AN erfolg t der Bu s…

100%1 / 299
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
1 - 10
Student Guide CAN BUS Workshop
2 Kommunikation und Steuerung Ausgabe 06/2008
10
Im folgendem Beispiel ist die Arbitrierung durch bitweises Abtasten der Identifier von 2 Teilneh-
mern dargestellt.
Abb. 2.2 - 8 CAN-Bus Arbitrierung mit 2 Teilnehmern
Haben Busteilnehmer A und B einen Sendewunsch, so beginnen sie nach Start-of-frame Bit zu
senden und vergleichen jeweils gesendetes und empfangenes Bit. Da "0" auf dem Bus dominiert,
erkennt Busteilnehmer B hier beim vierten Bit einen Unterschied zum gesendeten Bit und zieht
sich vom Bus bis zum nächsten Start-of-frame zurück. Busteilnehmer A erkennt keinen Unter-
schied und sendet weiter. Nachrichten mit hoher Priorität haben also einen Identifier, der mit vie-
len "0" beginnt.
Es existieren zwei Buszustände während der Arbitrierung: dominant und rezessiv.
2.2.1.4 Fehler auf dem CAN-Bus
Error Frames
Was sind Error Frames?
Error Frames werden von den einzelnen Subsystemen gesendet, wenn ein Kommando nicht der
Kodiervorschrift entspricht oder physikalisch zerstört wurde. D. h. wenn in einem CAN-Telegramm
6 oder mehr Bits hintereinander den gleichen Pegel High oder Low aufweisen.
Wird so ein Kommando von einem Teilnehmer erkannt informiert er sofort die anderen Teilnehmer
und den Absender des Telegramms, indem er einen Error Frame sendet.
Durch den Empfang eines Error Frames verwerfen alle Teilnehmer die empfangene Nachricht und
beginnen ebenfalls einen Error Frame zu senden.
Wenn der Bus wieder frei ist, wird das Kommando erneut gesendet.
Eine Häufung von Error Frames deutet auf physikalische Busfehler hin. Werden zu viele Error Fra-
mes während des Betriebes erkannt, ist eine detaillierte Analyse der CAN-Signale notwendig.