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.