00196043-05 - SG X und X4I FSE_de - 第90页

Kommunikation und Steuerung CAN-Bus-Protokoll CAN-Bus Student Guide SIPLACE X-Serie und X4I FSE 90 CAN-Bus-Protokoll 4.3.2 CAN-Bus-Protokoll CAN-Bus- Protokoll ▪ Start Dieses Bit kennzeichne t den Beginn eines Telegramms…

100%1 / 596
Kommunikation und Steuerung
CAN-Bus Allgemeiner Aufbau
89 Student Guide SIPLACE X-Serie und X4I FSE
Kommunikation über den CAN-Bus
Allgemeiner Aufbau
4.3.1 Allgemeiner Aufbau
Sehen Sie dazu auch...
4.3.2 CAN-Bus-Protokoll [ ➙ 90]
4.3.2.2 CAN-Bus-Arbitrierung [ ➙ 90]
CAN-Bus
Der CAN-Bus ist ein dezentraler Multi-Master Bus. Über
die Differenzspannung der zwei Leitungen CAN_High
und CAN_Low, welche jeweils mit einem
Abschlusswiderstand von 120 Ohm versehen sind,
werden die Daten übertragen.
CAN-Bus-Controller und Mikrocontroller
Legende
Mikrocontroller:
Tauscht mit dem CAN-Controller Daten aus
CAN-Controller:
Fügt den Datenrahmen hinzu, baut die Verbindung
auf, erledigt die Fehlerbehandlung.
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.
Kommunikation und Steuerung
CAN-Bus-Protokoll CAN-Bus
Student Guide SIPLACE X-Serie und X4I FSE 90
CAN-Bus-Protokoll
4.3.2 CAN-Bus-Protokoll
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 Ruhezustand
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 Datenfeldes in
Bytes an (DLC: data length code).
Datenfeld
Enthält die eigentliche Nutzinformation und kann 0 bis 8 Byte umfassen. Die Übertragung eines
Bytes beginnt mit dem höchstwertigen Bit.
Datensicherungsfeld CRC
Besteht aus einer 15-Bit Prüfsequenz (CRC Sequence + CRC Delimiter = CRC Field - Cyclic
Redundancy Check), sowie einem rezessiv übertragenem Begrenzungsbit. 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.
11-Bit-Identifier
4.3.2.1 11-Bit-Identifier
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).
CAN-Bus-Arbitrierung
4.3.2.2 CAN-Bus-Arbitrierung
Arbitrierung (engl. Arbitration bedeutet übersetzt Entscheidung)
Kommunikation und Steuerung
CAN-Bus CAN-Bus-Protokoll
91 Student Guide SIPLACE X-Serie und X4I FSE
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 belegen 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 Nachrichtenarbitrierungsfeldes
(Standard ist ein 11-Bit-Identifier) aufgelöst.
Grundlage der bitweisen Arbitrierung ist die Unterscheidung von 2 physikalischen Buspegeln, einem
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
Arbitrierungsversuch sofort ein und wird zum möglichen Empfänger der Nachricht. Am Ende der
Arbitrierung 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.
Zustandsdiagramm Arbitrierung
Im folgenden Beispiel ist die Arbitrierung durch bitweises Abtasten der Identifier von 2 Teilnehmern
dargestellt: