http://www.kfz-tech.de/CAN-Bus.htm Einleitung Das waren noch

Transcrição

http://www.kfz-tech.de/CAN-Bus.htm Einleitung Das waren noch
http://www.kfz-tech.de/CAN-Bus.htm
__________________________________
Einleitung
Das waren noch Zeiten, als je ein Steuergerät die Zündung und ein anderes die Einspritzung
regelte. Heute wird langsam die Zahl von 50 Steuergeräten in einem Fahrzeug überschritten. Wenn
nun mehrere davon die gleiche Information brauchen, sollte ein Sensor reichen. Dieser erhält ein
Mini-Steuergerät, das die Daten über den CAN-Bus weitergibt. Das spart Kabel und ermöglicht eine
Fehleranalyse, die sogar die Steckverbindungen einbezieht.
Rein theoretisch würden für das ganze Auto eine groß dimensionierte Versorgungsleitung und neben der vorhandenen Masse - zwei relativ dünne Steuerleitungen genügen, die noch nicht einmal
abgeschirmt oder verdrillt sein müssen. Theoretisch deshalb, weil einmal die
Datenübertragungskapazität des Busses begrenzt ist und zusätzlich verschiedene
Geschwindigkeiten nötig sind. Da nur Minicomputer mit Eingabe-, Ausgabeeinheit, ROM- und RAMSpeicher (Controller) auf das Netz zugreifen können, müsste jede Glühbirne (z.B. Standlicht) und
jeder Schalter einen solchen Controller haben. Diese kosten in der Großserie zwar deutlich weniger,
ihr Preis hängt aber von der Geschwindigkeit des Busses ab. Deshalb wird es z.B. für die
Komfortelektronik wohl immer einen langsameren und für die Motor- bzw. Sicherheitselektronik
schnellere CAN-Busse geben.
Aufgabe
- die Information von jedem Steuergerät für alle anderen nutzbar zu machen und damit Sensoren
einzusparen.
- den Aufwand an Verkabelung zu verringern.
- die Ausführung von Befehlen zu überwachen und damit zuverlässiger zu gestalten.
- den Fehlererkennungs- und Diagnosebereich zu erweitern.
Funktion
Der CAN-Bus überträgt mit einer Übertragungsrate von 50 kBit/s bei 1000 m Leitungslänge bis 1
MBit/s bei 40 m Leitungslänge. Jedes Steuergerät auf dem CAN-Bus ist gleichberechtigt und kann
Daten senden und empfangen. Wichtigere Daten (z.B. des ABS-Systems) können unwichtigere
Daten (z.B. Türschlosssteuerung) kurzzeitig verdrängen, weil nicht die Teilnehmer die Adresse
(Identifier) und damit die Priorität erhalten sondern die übermittelten Datenpakete.
Bei freiem Bus kann jeder Teilnehmer versuchen, Daten auf den CAN-Bus zu geben. Da er
gleichzeitig mitliest, erkennt er, ob andere mit ihm senden. Eine Nachricht ist daran zu erkennen,
ob sich die Spannung zwischen 'low' und 'high' ändert. Da jeder Teilnehmer zu Beginn meist eine
andere Geschwindigkeit beim raschen Wechsel zwischen diesen Zuständen hat, müssen sie sich auf
gleiche Geschwindigkeit einigen (synchronisieren). Dazu sind am Beginn einer jeden Nachricht
mehrere Wechsel zwischen '0' und '1' vorgeschrieben, die den Teilnehmern ausreichend
Gelegenheit geben, in die gleiche Taktfrequenz zu kommen. Dies ist sehr wichtig, wenn Bits nicht
gleichzeitig über mehrere Leitungen, sondern der Reihe nach über eine Leitung geschickt werden
(serielle Datenübertragung). Sollte für eine längere Zeit keine Nachricht über den CAN-Bus
gesendet werden, so besteht die Gefahr, dass die Taktfrequenz der einzelnen Teilnehmer trotzdem
zu stark voneinander abweicht und nicht mehr zu synchronisieren ist. Deshalb werden bei Pausen
auf dem CAN-Bus in regelmäßigen Abständen Nachrichten ohne Daten versandt.
Es folgt dann der Identifier, der aus einer Folge von dominanten (z.B. '1') und rezessiven Bits (z.B.
'0') besteht. Je wichtiger die Nachricht, desto mehr dominante Bits hat er an vorderer Stelle. Sie
überschreiben die rezessiven. Dies merkt der Absender der unwichtigeren Nachricht und stoppt
seine Ausgabe. Nach dem Ende dieser Nachricht darf er es erneut versuchen. Nachrichten mit
höchster Priorität können ohne Zeitverzögerung abgesetzt werden.
Die Identifier werden beim Aufbau des CAN-Busses durch den Entwickler vergeben und enthalten
Lücken für später evtl. noch zu integrierende Nachrichten bzw. Sender/Empfänger. Reichen für die
Anzahl der möglichen Nachrichten Identifier mit 11 Bit Länge nicht aus, so sind auch 29 Bit als
Identifier-Länge möglich. Da die Identifier-Länge durch ein Bit im nachfolgenden Steuerfeld
gekennzeichnet wird, ist hier der Vorrang des kürzeren vor dem längeren Identifier festgelegt.
Datenpakete mit unterschiedlich langen Identifiern können also über den gleichen Bus gesendet
werden, weil der Teilnehmer mit dem langen Identifier spätestens beim Lesen des Steuerfeldes
stoppt. Ein bestehender CAN-Bus kann allein durch Änderung der Software für die bestehenden
Teilnehmer auf die Aufnahme neuer Nachrichten bzw. Sender/Empfänger vorbereitet werden. Bei
genügend großen Lücken ist noch nicht einmal das nötig.
Im CAN-Bus können nicht nur Nachrichten versandt, sondern auch angefordert werden. Einzelne
Teilnehmer (z.B. das Steuergerät) können also bei anderen (z.B. dem Controller des
Temperaturfühlers) dessen Werte erfragen. Dabei haben versandte Nachrichten den Vorrang.
Nachrichten können nicht nur unterschiedlich lange Identifier, sondern auch unterschiedlich lange
Datenpakete enthalten. Die Länge des Datenpakets wird im Steuerfeld angezeigt. Das Datenfeld
folgt diesem. Ein zusätzliches Bit, das zusammen mit dem Identifier versandt wird, kennzeichnet
das Datenpaket als Nachricht oder Anforderung.
Fast wichtiger noch als das Datenfeld ist die folgende Datensicherung. Die Daten, die hier
übertragen werden, dienen allein der Überprüfung auf korrekten Empfang des vorherigen
Datenfeldes. Z.B. die Quersumme aller Daten könnte hier ausgegeben werden. Alle Teilnehmer
würden in diesem Fall zusätzlich addieren und dann vergleichen. Da sich dabei aber zwei Fehler
aufheben können, sind die beim CAN-Bus angewandten Prüfmethoden wesentlich komplizierter. So
sind also alle Möglichkeiten der Fehlererkennung sowohl des Senders als auch aller Empfänger
gegeben. Denn alle Empfänger müssen den richtigen Empfang quittieren oder ein Fehlerprotokoll
senden. Haben nach einer bestimmten Zeit nicht alle quittiert, so wird die Nachricht wiederholt. Im
CAN-Bus sind also auch Möglichkeiten eingebaut, nicht mehr funktionierende Teilnehmer beim
nächsten Nachrichtenversand zu erkennen und entsprechend zu reagieren. Dass jeder Teilnehmer
zumindest am Beginn einer Nachricht gleichzeitig schreibt und liest, ermöglicht ihm die Erkennung
eigener Fehler. Er kann sich selbst vom Bus abschalten. Alle nicht betroffenen Teile des CANBusses funktionieren, solange die Nachrichten fehlerfrei ankommen. Sogar der Zustand, dass sich
bei einem Controller die Nachrichten stapeln, weil er nicht senden darf (Überlastung), kann den
anderen Busteilnehmern angezeigt und damit als Fehler abgespeichert und z.B. durch einen
angeschlossenen Werkstatttester ausgelesen werden.
Zusätzlich stehen auf der Hardwareseite drei Leitungskombinationen zur Verfügung. Das Signal
zwischen CAN-Low und Masse verhält sich genau umgekehrt zu dem Signal zwischen CAN-High und
Masse. Große Störspannungen können also nur eines der beiden Signale abschwächen. Sie würden
gleichzeitig das andere sogar noch verstärken. So sind Fehlinformationen nahezu ausgeschlossen.
Üblich sind heute mehrere CAN-Busse mit je nach Funktionen verschiedenen Geschwindigkeiten.
Sogenannte Gateways können an jedem der CAN-Busse angeschlossen sein und Nachrichten
umsetzen. So braucht z.B. ein Werkstatttester nur einen CAN-Bus anzuzapfen, um Informationen
aus allen CAN-Bussen zu erhalten oder sie dorthin zu transportieren (z.B. Neuprogrammierung).
Inzwischen hat sich eine gewisse Normung der über den CAN-Bus transportierten Messwerte
durchgesetzt. So wird ein Lastsignal nicht nur für den Sender und einen Empfänger lesbar. Da es
die Last in Nm enthält, können unterschiedliche Empfänger das Signal weiter verarbeiten.
Vorteile
- Das Gesamtsystem ist zuverlässiger. Es enthält z.B. weniger störanfällige Steckverbindungen.
- Verdrahtung weniger komplex und dadurch kosteneffektiver.
- Die Installation und mögliche Veränderung wird einfacher.
- Zusätzliche Elemente (z.B. Steuereinheiten) können leichter hinzugefügt oder der Einbauort
leichter verändert werden.
- Die Diagnosefähigkeit des Systems wird entweder erst ermöglicht oder verbessert.
- Es kann beinahe an jeder beliebigen Stelle in das System eingegriffen werden, um Daten
auszulesen und/oder Parameter und evtl. sogar ganze Kennfelder zu ändern.
Nachteile
- Es wird eine bestimmte Kommunikationsgeschwindigkeit gefordert.
- Jeder an den Bus angeschlossene Sensor braucht einen Controller.
Geschichte
Vorstellung 1985 durch Bosch und Intel
Anfang der 90er Jahre wurde die CAN-Bus Technik erstmals in Serienautomobilen und in
Industriesteuerungen angewandt.
1992 Mercedes S-Klasse (Hochgeschwindigkeitsnetzwerk Motor-, Getriebesteuerung und
Armaturenbrett)
2001 Einbau sogar schon in Fahrzeuge der unteren Mittelklasse.