• Online: 2.228

Tue Nov 06 21:53:13 CET 2007    |    BlackTM    |    Kommentare (20)    |   Stichworte: Bus, CAN, Daten, Fahrzeug, Fehler, Notmodus, Protokoll, Spezifikation

Der CAN Standard ist kein Geheimnis, aber dennoch für alle die sich die 73-Seiten CAN2.0 Spezifikation nicht durchlesen wollen kommt hier eine vereinfachte Erklärung.

 

Für mehr: weiterlesen.

 

Physikalische Auslegung

Im Fahrzeug wird CAN als Stichleitung oder Ring ausgeführt, bei ersterem droht mit einer Unterbrechung der Kommunikationsausfall, bei letzterem erst ab zwei Unterbrechungen an unterschiedlichen Leitungsabschnitten. Bei beiden Varianten können Kurzschlüsse gegen Plus oder Masse den Bus befristet lahmlegen (der normale Dualwire-CAN kommt damit teilweise klar). Je nach Länge der Busleitungen werden zwei Terminationswiderstände (Abschlusswiderstände) im System benötigt, die können sich im Kabelsatz oder in verschiedenen Steuergeräten befinden.

 

Mir sind zwei Ausführungen bekannt: der 2-Draht CAN und der 1-Draht CAN. Bei einem 2-Draht-CAN System wird die Spannungsdifferenz der ersten und invertierten zweiten Leitung ermittelt und daraus eine logische 1 oder 0 erzeugt. Beim 1-Draht CAN (iirc nur bei General Motors in Verwendung) ermittelt man die Spannungsdifferenz zur Signalmasse. Prinzipiell sind auf einem 2-Draht-CAN höhere Übertragungsraten möglich und Störungen haben kaum Einfluss, da sie selten nur eine der beiden Datenleitungen betreffen, sondern beide. Damit ändert sich eventuell die Spannung auf beiden Leitungen, die Differenz bleibt aber gleich und das Signal damit unbeeinflusst. Die beiden Leitungen werden zudem verdrillt, damit sie möglichst keine Kapazität erzeugen (was bei 2 parallel liegenden Leitungen vorkommen könnte, sie wirken wie ein Kondensator). Der 1-Draht CAN funktioniert bei geringen Datenübertragungsraten aber ebenfalls zuverlässig.

 

Die Kommunikation

Ein Knoten sendet ein Paket (auch Frame genannt), alle anderen Knoten empfangen es und bestätigen noch bevor es komplett übertragen wurde den formal korrekten Erhalt (dafür ist der sogenannte Acknowledge-Slot gedacht) oder bei einem Problem verhindern sie die korrekte Übertragung. Auf höheren Protokollebenen entscheidet jeder Busknoten für sich, ob es für ihn relevant ist und ob die Daten gültig bzw. der Situation angemessen sind.

 

Es gibt also keinen bestimmten Knoten ohne den ein CAN-Netzwerk an sich nicht arbeiten würde, solange mindestens 2 da sind können diese arbeiten. Auf höheren Protokollebenen jedoch sieht es ganz anders aus, würde z.B. ein Steuergerät ausfallen welches für die Übermittlung der Zündschlossstellung zuständig ist müssen andere von einem Standardwert ausgehen, dieser sagt normalerweise, das die Zündung ausgeschalten ist.

 

Ein paar Zahlen

Übertragungsrate ist bis 1 MBit/s Rohdaten spezifiziert. Der Protokolloverhead beträgt bestenfalls rund 15%, schlechtestenfalls rund 60%.

 

Kollisionserkennung

Möchten 2 Knoten gleichzeitig senden, entscheidet sich noch während ein Paket übertragen wird ob es vollständig gesendet werden kann oder ob ein anderes Vorrang hat. Den Vorgang nennt man Busarbitrierung (Ressourcenverteilung auf dem Bus), der funktioniert bei CAN so, das jedes Frame eine Identifikation am Anfang des Datenpakets enthält. Diese Identifikation hat eine Länge von 11 oder 29 Bit (CAN 2.0) und da diese vom Anfang her gesendet wird setzen die sendewilligen Busknoten ihren CAN-Ein/Ausgang je nachdem was sie senden möchten der Reihe nach auf 0 oder 1. Eine 0 überschreibt eine 1 und jeder sendende Knoten beobachtet ob der Bus auch tatsächlich den Status hat den er selbst senden wollte. Wird bemerkt das der Bus einen anderen Status hat als vorgesehen, hört der Knoten auf, weiter sein Datenpaket senden zu wollen, hört bis zum Ende des Frames mit und versucht danach erneut sein Paket abzuschicken. Je niedriger die Identifikationszahl (kurz ID) ist, desto höher ist also die Priorität dieses Frames und desto wahrscheinlicher erhalten die darin enthaltenen Daten Vorrang vor niedriger priorisierten Frames.

 

Der Fehlerfall

Sollte ein Fehler auftreten bei dem andere Knoten oder der sendende Knoten selbst Formfehler in einem Frame entdeckt, so wird das Frame als defektes Frame markiert und nach mehreren dieser defekten Frames geht der sendende Knoten komplett in den passiven Modus. Er sendet dann also nichts mehr bis ein Ereignis eintritt nachdem dieser Zustand erneut überprüft werden soll. Das kann das Aus- und Wiedereinschalten der Zündung oder abklemmen der Batterie sein. Dies tritt zum Beispiel auf wenn systematisch ein Steuergerät aufgrund von zuviel Kapazität in der Leitung oder fehlenden Abschlusswiderständen keine saubere Flanke liefern kann oder wie weiter oben geschrieben Unterbrechungen auf dem Bus vorliegen, die verhindern das andere Knoten ein Frame als korrekt erhalten markieren.

 

Da es eine serielle Kommunikation ist (Bit für Bit wird übertragen), müssen sich die Knoten synchronisieren, damit immer im richtigen Moment geschrieben bzw. gelesen wird. Dies passiert bei CAN während eine Nachricht gesendet wird, nämlich eine bestimmte Zeit nach einer Bitflanke (Wechsel von 0 auf 1 bzw. 1 auf 0). Zu lange Zeit ohne eine Bitflanke wäre ein Fehler, deshalb wird nach 5 Bits ohne Änderung ein Bitwechsel erzwungen (ausser in 3 bestimmten Bereichen des Frames oder wenn nichts gesendet wird).

 

Wann ein Knoten überhaupt etwas senden möchte kann durch Eintreten eines Ereignisses (wie zum Beispiel Betätigung einer Taste im Armaturenbrett, Veränderung der Gaspedalstellung, Erkennen eines Hindernisses vom Parkassistent) ausgelöst werden, auf einer festen zeitlichen Basis (was letztlich auch ein Ereignis ist, z.B. pro Sekunde die Stellung des Zündschlossschalters oder alle 10 Millisekunden die Raddrehzahl) erfolgen oder einer Mischung aus beidem (pro Sekunde die Stellung des Zündschlossschalters und wenn sie sich ändert).

 

Am sinnvollsten werden also wichtige, sich schnell ändernde Informationen in Datenpaketen transportiert die eine niedrige ID haben und unwichtigere mit hohen IDs. Extrem kritische oder sicherheitsrelevante Signale jedoch werden meist hartverdrahtet, darunter zählen Crashsensoren und Zündpillen des Rückhalteystems. Zudem wird auch bei einigen Steuergeräten das geschaltete Plus noch verdrahtet, damit diese abschalten auch wenn das Fahrzeug sich in einem Notmodus ohne CAN-Kommunikation befindet. Diese Rückfallebene (nicht Teil des CAN-Protokolls, aber vorgeschrieben) sorgt dafür, dass mindestens

 

  • das Abblendlicht und
  • Rücklicht leuchten,
  • die Blinker, die Hupe und die Warnblinkanlage noch funktionieren und
  • die Scheibenwischer in geringer Stufe laufen.
  • Bremssystem (ABS und ESP),
  • Motorelektronik und
  • Servolenkung funktionieren eingeschränkt weiter, ausser ihre Betriebsspannung fällt ebenfalls aus.

 

weitere Informationsquellen (kleine Auswahl davon)

Beschreibung auf Wikipedia

Erklärungen von Vector-Informatik

 

Falls ihr Anmerkungen, Kritik oder Fragen habt, verwendet die Kommentarfunktion oder schickt mir eine PN.


Mon Nov 12 11:58:04 CET 2007    |    bert

Also deine Erklärungen sind echt der Hammer! :)

Tue Nov 13 21:27:36 CET 2007    |    der_Derk

Hehe, ich habe gerade die 4.9er Version von CANoe auf dem Laptop wiedergefunden - ein Relikt aus Uni-Zeiten, "simulieren sie eine Gebäudeautomatisierung mit CAN"... :D

 

Ist die aktuelle Demo immer noch auf 4 Nodes beschränkt? Und produziert die immer noch soviele gelbe Popups, die davor warnen das ganze blos nicht in den USA zu verwenden? ;)

Thu Nov 15 00:48:20 CET 2007    |    BlackTM

Keine Ahnung, seit der 4er Version hab ich 5.0, 5.1, 5.2, 6.0 und 6.1 mitgemacht... allerdings full mit noch ein paar Optionen.

Die Warnung für Amerikaner ist aber immer noch drin. Hat aber afaik nur rechtliche (Produkthaftung?) Gründe, weil CANoe in Amerika von vector-cantech verkauft wird und nicht von Vector Informatik. Ansonsten dürfen das auch Amerikaner benutzen, hab jedenfalls nichts Gegenteiliges gehört.

 

Zu der Beschränkung kann ich nix sagen, aber wenn man CAPL hat, kann man sich das Leben schon erleichtern :-) Schonmal das Realtime-Feature verwendet?

Thu Nov 15 07:13:39 CET 2007    |    der_Derk

Im Grunde genommen war mein einziger Kontakt mit CAN oben genannte Studienarbeit, das war 2004. Seitdem habe ich damit nichts mehr zu tun gehabt - wir haben hier zwar auch Demonstratoren und Roboter mit CAN-Systemen (meistens basierend auf 'nem HC12), aber das ist zur Zeit nicht meine Baustelle - müsste mich auch erst wieder einlesen... ;)

Tue Jul 08 13:27:05 CEST 2008    |    Standspurpirat11024

Was hälst du von ASI? Wäre das keine gute GRundlage im Auto? Sehr robust auf äussere Einflüsse etc.

Wed Jul 09 01:15:53 CEST 2008    |    BlackTM

Vorteile:

- sehr günstig

- parasitische Versorgung der Slaves

- einfacher Aufbau, weniger Leitungen, weniger Steckverbindungen

 

Nachteile:

- nicht unbedingt den Spannungsschwankungen im Automobilbereich gewachsen (Vermutung)

- zu geringe Übertragungsrate (124 Bit in 5ms, 4 Bit pro Slave pro Zyklus), damit auch gleichzeitig den vielfältigen Daten im Automobilbereich nicht gewachsen (ein kleines Steuergerät sendet und empfängt im Normalbetrieb schon grob geschätzt 200 verschiedene Informationen)

 

ASI wird aber iirc auch im Automobil eingesetzt um Sensorinformationen zu empfangen. Das ist dann aber so, das ein Steuergerät ASI benutzt um Daten zu erfassen, verarbeitet sie weiter und gibt die Info via CAN an das Netzwerk weiter. Davon bekommt man aber recht wenig mit.

 

Wie die ASI-Website schon schreibt ist es ein Zusatz, kein Ersatz zu anderen Netzwerken.

Fri Apr 05 08:13:55 CEST 2019    |    Federspanner51442

Am sinnvollsten werden also wichtige, sich schnell ändernde Informationen in Datenpaketen transportiert die eine niedrige ID haben und unwichtigere mit hohen IDs.

geometry dash

Sat Apr 06 09:53:09 CEST 2019    |    Turboschlumpf52873

Great article, Thanks for sharing such article with us from our website learn to fix connection with audio device windows 10 operating system by getting help from tutorial and pictures.

Wed Jan 01 08:22:27 CET 2020    |    Achsmanschette133220

dfbgbdf

Wed Jan 01 08:22:44 CET 2020    |    Achsmanschette133220

We sobbed to look at each other, making an appointment for the next day

Be together forever, my love

For your own sake, because I love you

Early morning for each other the first ray of sunshine.

shell shockers

Mon Jan 20 08:26:05 CET 2020    |    Duftbaumdeuter133029

In the event that you review the 'red stapler' fellow in the film Office Space–the representative who was more than once downgraded to a more unfortunate and more unfortunate workspace, from desk area, to shared space, and in the long run to a cellar stockpiling wardrobe then you'll perceive my life. Click here to know more.

Thu Feb 29 02:51:22 CET 2024    |    salmawisoky

Am sinnvollsten werden also wichtige, sich schnell ändernde Informationen in Datenpaketen transportiert die eine niedrige ID haben und unwichtigere mit hohen IDs. Drift Boss

Deine Antwort auf "Wie funktioniert CAN? Ganz einfach!"